mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl": - WOK-generated header files from inc and sources from drv are moved to src - CDL files removed - All packages are converted to nocdlpack
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
-- Created on: 1995-06-06
|
||||
-- Created by: Jean Yves LEBEY
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
package BRepApprox
|
||||
|
||||
---Purpose: This package provides services on intersection curves
|
||||
-- dealt by topological operations on BRep objects.
|
||||
-- Services are approximation services.
|
||||
|
||||
|
||||
uses
|
||||
|
||||
MMgt,
|
||||
TColStd,
|
||||
gp,
|
||||
GeomAbs,
|
||||
Adaptor3d,
|
||||
Geom,
|
||||
Geom2d,
|
||||
BRepAdaptor,
|
||||
IntSurf,
|
||||
ApproxInt
|
||||
|
||||
is
|
||||
|
||||
class ApproxLine;
|
||||
|
||||
class SurfaceTool;
|
||||
|
||||
class Approx instantiates Approx from ApproxInt
|
||||
(Surface from BRepAdaptor,
|
||||
SurfaceTool from BRepApprox,
|
||||
Quadric from IntSurf,
|
||||
QuadricTool from IntSurf,
|
||||
ApproxLine from BRepApprox);
|
||||
|
||||
end BRepApprox;
|
128
src/BRepApprox/BRepApprox_Approx.hxx
Normal file
128
src/BRepApprox/BRepApprox_Approx.hxx
Normal file
@@ -0,0 +1,128 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_Approx_HeaderFile
|
||||
#define _BRepApprox_Approx_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <BRepApprox_TheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheComputeLineBezierOfApprox.hxx>
|
||||
#include <Approx_MCurvesToBSpCurve.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class StdFail_NotDone;
|
||||
class BRepAdaptor_Surface;
|
||||
class BRepApprox_SurfaceTool;
|
||||
class IntSurf_Quadric;
|
||||
class IntSurf_QuadricTool;
|
||||
class BRepApprox_ApproxLine;
|
||||
class BRepApprox_ThePrmPrmSvSurfacesOfApprox;
|
||||
class BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox;
|
||||
class BRepApprox_TheImpPrmSvSurfacesOfApprox;
|
||||
class BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_TheComputeLineOfApprox;
|
||||
class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_MyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_TheComputeLineBezierOfApprox;
|
||||
class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_Approx
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_Approx();
|
||||
|
||||
Standard_EXPORT void Perform (const BRepAdaptor_Surface& Surf1, const BRepAdaptor_Surface& Surf2, const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ = Standard_True, const Standard_Boolean ApproxU1V1 = Standard_True, const Standard_Boolean ApproxU2V2 = Standard_True, const Standard_Integer indicemin = 0, const Standard_Integer indicemax = 0);
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ = Standard_True, const Standard_Boolean ApproxU1V1 = Standard_True, const Standard_Boolean ApproxU2V2 = Standard_True, const Standard_Integer indicemin = 0, const Standard_Integer indicemax = 0);
|
||||
|
||||
Standard_EXPORT void SetParameters (const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer DegMin, const Standard_Integer DegMax, const Standard_Integer NbIterMax, const Standard_Boolean ApproxWithTangency = Standard_True, const Approx_ParametrizationType Parametrization = Approx_ChordLength);
|
||||
|
||||
Standard_EXPORT void SetParameters (const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Boolean RelativeTol, const Standard_Integer DegMin, const Standard_Integer DegMax, const Standard_Integer NbIterMax, const Standard_Integer NbPntMax, const Standard_Boolean ApproxWithTangency = Standard_True, const Approx_ParametrizationType Parametrization = Approx_ChordLength);
|
||||
|
||||
Standard_EXPORT void Perform();
|
||||
|
||||
Standard_EXPORT Standard_Real TolReached3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real TolReached2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbMultiCurves() const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& Value (const Standard_Integer Index) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const BRepAdaptor_Surface& Surf1, const IntSurf_Quadric& Surf2, const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ, const Standard_Boolean ApproxU1V1, const Standard_Boolean ApproxU2V2, const Standard_Integer indicemin, const Standard_Integer indicemax);
|
||||
|
||||
Standard_EXPORT void Perform (const IntSurf_Quadric& Surf1, const BRepAdaptor_Surface& Surf2, const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ, const Standard_Boolean ApproxU1V1, const Standard_Boolean ApproxU2V2, const Standard_Integer indicemin, const Standard_Integer indicemax);
|
||||
|
||||
Standard_EXPORT void UpdateTolReached();
|
||||
|
||||
|
||||
BRepApprox_TheComputeLineOfApprox myComputeLine;
|
||||
BRepApprox_TheComputeLineBezierOfApprox myComputeLineBezier;
|
||||
Approx_MCurvesToBSpCurve myBezToBSpl;
|
||||
Standard_Boolean myTolReached;
|
||||
Standard_Boolean myApproxBez;
|
||||
Standard_Boolean myWithTangency;
|
||||
Standard_Real myTol3d;
|
||||
Standard_Real myTol2d;
|
||||
Standard_Boolean myRelativeTol;
|
||||
Standard_Integer myDegMin;
|
||||
Standard_Integer myDegMax;
|
||||
Standard_Integer myNbPntMax;
|
||||
Standard_Integer myNbIterMax;
|
||||
Standard_Real myMinFactorXYZ;
|
||||
Standard_Real myMinFactorUV;
|
||||
Standard_Real myTolReached3d;
|
||||
Standard_Real myTolReached2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_Approx_HeaderFile
|
@@ -1,53 +0,0 @@
|
||||
-- Created on: 1995-07-20
|
||||
-- Created by: Modelistation
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class ApproxLine from BRepApprox inherits TShared from MMgt
|
||||
|
||||
uses
|
||||
|
||||
PntOn2S from IntSurf,
|
||||
LineOn2S from IntSurf,
|
||||
BSplineCurve from Geom,
|
||||
BSplineCurve from Geom2d
|
||||
|
||||
is
|
||||
|
||||
Create(CurveXYZ: BSplineCurve from Geom;
|
||||
CurveUV1: BSplineCurve from Geom2d;
|
||||
CurveUV2: BSplineCurve from Geom2d)
|
||||
returns ApproxLine from BRepApprox;
|
||||
|
||||
Create(lin: LineOn2S from IntSurf; Tang: Boolean from Standard)
|
||||
returns ApproxLine from BRepApprox;
|
||||
|
||||
NbPnts(me)
|
||||
returns Integer from Standard
|
||||
is static;
|
||||
|
||||
Point(me: mutable; Index: Integer from Standard)
|
||||
|
||||
returns PntOn2S from IntSurf
|
||||
is static;
|
||||
|
||||
fields
|
||||
|
||||
myCurveXYZ : BSplineCurve from Geom;
|
||||
myCurveUV1 : BSplineCurve from Geom2d;
|
||||
myCurveUV2 : BSplineCurve from Geom2d;
|
||||
myLineOn2S : LineOn2S from IntSurf;
|
||||
|
||||
end ApproxLine from BRepApprox;
|
||||
|
@@ -14,15 +14,19 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_ApproxLine.ixx>
|
||||
|
||||
#include <BRepApprox_ApproxLine.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <IntSurf_LineOn2S.hxx>
|
||||
#include <IntSurf_PntOn2S.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : BRepApprox_ApproxLine
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
BRepApprox_ApproxLine::BRepApprox_ApproxLine
|
||||
(const Handle(Geom_BSplineCurve)& CurveXYZ,
|
||||
const Handle(Geom2d_BSplineCurve)& CurveUV1,
|
||||
|
77
src/BRepApprox/BRepApprox_ApproxLine.hxx
Normal file
77
src/BRepApprox/BRepApprox_ApproxLine.hxx
Normal file
@@ -0,0 +1,77 @@
|
||||
// Created on: 1995-07-20
|
||||
// Created by: Modelistation
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_ApproxLine_HeaderFile
|
||||
#define _BRepApprox_ApproxLine_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <MMgt_TShared.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class Geom_BSplineCurve;
|
||||
class Geom2d_BSplineCurve;
|
||||
class IntSurf_LineOn2S;
|
||||
class IntSurf_PntOn2S;
|
||||
|
||||
|
||||
class BRepApprox_ApproxLine;
|
||||
DEFINE_STANDARD_HANDLE(BRepApprox_ApproxLine, MMgt_TShared)
|
||||
|
||||
|
||||
class BRepApprox_ApproxLine : public MMgt_TShared
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_ApproxLine(const Handle(Geom_BSplineCurve)& CurveXYZ, const Handle(Geom2d_BSplineCurve)& CurveUV1, const Handle(Geom2d_BSplineCurve)& CurveUV2);
|
||||
|
||||
Standard_EXPORT BRepApprox_ApproxLine(const Handle(IntSurf_LineOn2S)& lin, const Standard_Boolean Tang);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbPnts() const;
|
||||
|
||||
Standard_EXPORT IntSurf_PntOn2S Point (const Standard_Integer Index);
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTI(BRepApprox_ApproxLine,MMgt_TShared)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Handle(Geom_BSplineCurve) myCurveXYZ;
|
||||
Handle(Geom2d_BSplineCurve) myCurveUV1;
|
||||
Handle(Geom2d_BSplineCurve) myCurveUV2;
|
||||
Handle(IntSurf_LineOn2S) myLineOn2S;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_ApproxLine_HeaderFile
|
86
src/BRepApprox/BRepApprox_Approx_0.cxx
Normal file
86
src/BRepApprox/BRepApprox_Approx_0.cxx
Normal file
@@ -0,0 +1,86 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_Approx.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRepApprox_SurfaceTool.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntSurf_QuadricTool.hxx>
|
||||
#include <BRepApprox_ApproxLine.hxx>
|
||||
#include <BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#include <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_TheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define TheISurface IntSurf_Quadric
|
||||
#define TheISurface_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheISurfaceTool IntSurf_QuadricTool
|
||||
#define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
|
||||
#define Handle_TheWLine Handle(BRepApprox_ApproxLine)
|
||||
#define TheWLine BRepApprox_ApproxLine
|
||||
#define TheWLine_hxx <BRepApprox_ApproxLine.hxx>
|
||||
#define ApproxInt_ThePrmPrmSvSurfaces BRepApprox_ThePrmPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_ThePrmPrmSvSurfaces_hxx <BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces_hxx <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces_hxx <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_TheImpPrmSvSurfaces BRepApprox_TheImpPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheImpPrmSvSurfaces_hxx <BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces_hxx <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces_hxx <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_TheMultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define ApproxInt_TheMultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ApproxInt_TheMultiLineTool BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ApproxInt_TheMultiLineTool_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define ApproxInt_TheComputeLine BRepApprox_TheComputeLineOfApprox
|
||||
#define ApproxInt_TheComputeLine_hxx <BRepApprox_TheComputeLineOfApprox.hxx>
|
||||
#define ApproxInt_MyBSplGradientOfTheComputeLine BRepApprox_MyBSplGradientOfTheComputeLineOfApprox
|
||||
#define ApproxInt_MyBSplGradientOfTheComputeLine_hxx <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define ApproxInt_MyGradientbisOfTheComputeLine BRepApprox_MyGradientbisOfTheComputeLineOfApprox
|
||||
#define ApproxInt_MyGradientbisOfTheComputeLine_hxx <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define ApproxInt_MyBSplGradientOfTheComputeLine BRepApprox_MyBSplGradientOfTheComputeLineOfApprox
|
||||
#define ApproxInt_MyBSplGradientOfTheComputeLine_hxx <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define ApproxInt_MyGradientbisOfTheComputeLine BRepApprox_MyGradientbisOfTheComputeLineOfApprox
|
||||
#define ApproxInt_MyGradientbisOfTheComputeLine_hxx <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define ApproxInt_TheComputeLineBezier BRepApprox_TheComputeLineBezierOfApprox
|
||||
#define ApproxInt_TheComputeLineBezier_hxx <BRepApprox_TheComputeLineBezierOfApprox.hxx>
|
||||
#define ApproxInt_MyGradientOfTheComputeLineBezier BRepApprox_MyGradientOfTheComputeLineBezierOfApprox
|
||||
#define ApproxInt_MyGradientOfTheComputeLineBezier_hxx <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define ApproxInt_MyGradientOfTheComputeLineBezier BRepApprox_MyGradientOfTheComputeLineBezierOfApprox
|
||||
#define ApproxInt_MyGradientOfTheComputeLineBezier_hxx <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define ApproxInt_Approx BRepApprox_Approx
|
||||
#define ApproxInt_Approx_hxx <BRepApprox_Approx.hxx>
|
||||
#include <ApproxInt_Approx.gxx>
|
||||
|
@@ -0,0 +1,74 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_BFGS.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class math_MultipleVarFunctionWithGradient;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox : public math_BFGS
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Real myTol3d;
|
||||
Standard_Real myTol2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,40 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_BSpParLeastSquare BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpParLeastSquare_hxx <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_BSpParFunction BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpParFunction_hxx <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_BSpGradient_BFGS BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpGradient_BFGS_hxx <BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_BSpGradient BRepApprox_MyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpGradient_hxx <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_BSpGradient_BFGS.gxx>
|
||||
|
@@ -0,0 +1,140 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <math_IntegerVector.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox : public math_MultipleVarFunctionWithGradient
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G);
|
||||
|
||||
Standard_EXPORT const math_Vector& NewParameters() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiBSpCurve CurveValue();
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex);
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& FunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_IntegerVector& Index() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const;
|
||||
|
||||
Standard_EXPORT void SetFirstLambda (const Standard_Real l1);
|
||||
|
||||
Standard_EXPORT void SetLastLambda (const Standard_Real l2);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& X);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
BRepApprox_TheMultiLineOfApprox MyMultiLine;
|
||||
AppParCurves_MultiBSpCurve MyMultiBSpCurve;
|
||||
Standard_Integer nbpoles;
|
||||
math_Vector myParameters;
|
||||
Standard_Real FVal;
|
||||
math_Vector ValGrad_F;
|
||||
math_Matrix MyF;
|
||||
math_Matrix PTLX;
|
||||
math_Matrix PTLY;
|
||||
math_Matrix PTLZ;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox MyLeastSquare;
|
||||
Standard_Boolean Contraintes;
|
||||
Standard_Integer NbP;
|
||||
Standard_Integer NbCu;
|
||||
Standard_Integer Adeb;
|
||||
Standard_Integer Afin;
|
||||
Handle(TColStd_HArray1OfInteger) tabdim;
|
||||
Standard_Real ERR3d;
|
||||
Standard_Real ERR2d;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
Standard_Real mylambda1;
|
||||
Standard_Real mylambda2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,35 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define Squares BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define Squares_hxx <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_BSpFunction BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpFunction_hxx <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_BSpFunction.gxx>
|
||||
|
@@ -0,0 +1,175 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <math_IntegerVector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_DimensionError;
|
||||
class Standard_NoSuchObject;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const math_Vector& V1c, const math_Vector& V2c, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve BezierValue();
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue();
|
||||
|
||||
Standard_EXPORT const math_Matrix& FunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT const math_Matrix& Distance();
|
||||
|
||||
Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT Standard_Real FirstLambda() const;
|
||||
|
||||
Standard_EXPORT Standard_Real LastLambda() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Points() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Poles() const;
|
||||
|
||||
Standard_EXPORT const math_IntegerVector& KIndex() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Init (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbBColumns (const BRepApprox_TheMultiLineOfApprox& SSP) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const;
|
||||
|
||||
Standard_EXPORT void Affect (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer Index, AppParCurves_Constraint& Cons, math_Vector& Vt, math_Vector& Vc);
|
||||
|
||||
Standard_EXPORT void ComputeFunction (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void SearchIndex (math_IntegerVector& Index);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Matrix& TheB);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_Constraint FirstConstraint;
|
||||
AppParCurves_Constraint LastConstraint;
|
||||
AppParCurves_MultiBSpCurve SCU;
|
||||
Handle(TColStd_HArray1OfReal) myknots;
|
||||
Handle(TColStd_HArray1OfInteger) mymults;
|
||||
math_Matrix mypoles;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
math_Matrix B2;
|
||||
math_Matrix mypoints;
|
||||
math_Vector Vflatknots;
|
||||
math_Vector Vec1t;
|
||||
math_Vector Vec1c;
|
||||
math_Vector Vec2t;
|
||||
math_Vector Vec2c;
|
||||
math_Matrix theError;
|
||||
math_IntegerVector myindex;
|
||||
Standard_Real lambda1;
|
||||
Standard_Real lambda2;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Standard_Integer Nlignes;
|
||||
Standard_Integer Ninc;
|
||||
Standard_Integer NA;
|
||||
Standard_Integer myfirstp;
|
||||
Standard_Integer mylastp;
|
||||
Standard_Integer resinit;
|
||||
Standard_Integer resfin;
|
||||
Standard_Integer nbP2d;
|
||||
Standard_Integer nbP;
|
||||
Standard_Integer nbpoles;
|
||||
Standard_Integer deg;
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean iscalculated;
|
||||
Standard_Boolean isready;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_DimensionError.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_LeastSquare BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_LeastSquare_hxx <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_LeastSquare.gxx>
|
||||
|
@@ -0,0 +1,75 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
#define _BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_BFGS.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class math_MultipleVarFunctionWithGradient;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox : public math_BFGS
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Real myTol3d;
|
||||
Standard_Real myTol2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
@@ -0,0 +1,43 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_ParLeastSquare BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_ParLeastSquare_hxx <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_ResConstraint BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_ResConstraint_hxx <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_ParFunction BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_ParFunction_hxx <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_Gradient_BFGS BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_Gradient_BFGS_hxx <BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_Gradient BRepApprox_MyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_Gradient_hxx <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_Gradient_BFGS.gxx>
|
||||
|
@@ -0,0 +1,75 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_BFGS.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_MyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class math_MultipleVarFunctionWithGradient;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox : public math_BFGS
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Real myTol3d;
|
||||
Standard_Real myTol2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,43 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_ParLeastSquare BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_ParLeastSquare_hxx <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_ResConstraint BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_ResConstraint_hxx <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_ParFunction BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_ParFunction_hxx <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_Gradient_BFGS BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_Gradient_BFGS_hxx <BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_Gradient BRepApprox_MyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_Gradient_hxx <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_Gradient_BFGS.gxx>
|
||||
|
@@ -0,0 +1,100 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class StdFail_NotDone;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_MyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 1);
|
||||
|
||||
Standard_EXPORT BRepApprox_MyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations, const Standard_Real lambda1, const Standard_Real lambda2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiBSpCurve Value() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real AverageError() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_MultiBSpCurve SCU;
|
||||
math_Vector ParError;
|
||||
Standard_Real AvError;
|
||||
Standard_Real MError3d;
|
||||
Standard_Real MError2d;
|
||||
Standard_Real mylambda1;
|
||||
Standard_Real mylambda2;
|
||||
Standard_Boolean myIsLambdaDefined;
|
||||
Standard_Boolean Done;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,42 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_BSpParLeastSquare BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpParLeastSquare_hxx <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_BSpParFunction BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpParFunction_hxx <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_BSpGradient_BFGS BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpGradient_BFGS_hxx <BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_BSpGradient BRepApprox_MyBSplGradientOfTheComputeLineOfApprox
|
||||
#define AppParCurves_BSpGradient_hxx <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_BSpGradient.gxx>
|
||||
|
@@ -0,0 +1,92 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
#define _BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class StdFail_NotDone;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_MyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve Value() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real AverageError() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_MultiCurve SCU;
|
||||
math_Vector ParError;
|
||||
Standard_Real AvError;
|
||||
Standard_Real MError3d;
|
||||
Standard_Real MError2d;
|
||||
Standard_Boolean Done;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
@@ -0,0 +1,45 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_ParLeastSquare BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_ParLeastSquare_hxx <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_ResConstraint BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_ResConstraint_hxx <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_ParFunction BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_ParFunction_hxx <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_Gradient_BFGS BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_Gradient_BFGS_hxx <BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_Gradient BRepApprox_MyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_Gradient_hxx <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_Gradient.gxx>
|
||||
|
@@ -0,0 +1,92 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_MyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_MyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class StdFail_NotDone;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_MyGradientbisOfTheComputeLineOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_MyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve Value() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real AverageError() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_MultiCurve SCU;
|
||||
math_Vector ParError;
|
||||
Standard_Real AvError;
|
||||
Standard_Real MError3d;
|
||||
Standard_Real MError2d;
|
||||
Standard_Boolean Done;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_MyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,45 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_ParLeastSquare BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_ParLeastSquare_hxx <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_ResConstraint BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_ResConstraint_hxx <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_ParFunction BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_ParFunction_hxx <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_Gradient_BFGS BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_Gradient_BFGS_hxx <BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_Gradient BRepApprox_MyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_Gradient_hxx <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_Gradient.gxx>
|
||||
|
@@ -0,0 +1,125 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
#define _BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox : public math_MultipleVarFunctionWithGradient
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G);
|
||||
|
||||
Standard_EXPORT const math_Vector& NewParameters() const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiCurve& CurveValue();
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& X);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
BRepApprox_TheMultiLineOfApprox MyMultiLine;
|
||||
AppParCurves_MultiCurve MyMultiCurve;
|
||||
Standard_Integer Degre;
|
||||
math_Vector myParameters;
|
||||
Standard_Real FVal;
|
||||
math_Vector ValGrad_F;
|
||||
math_Matrix MyF;
|
||||
math_Matrix PTLX;
|
||||
math_Matrix PTLY;
|
||||
math_Matrix PTLZ;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox MyLeastSquare;
|
||||
Standard_Boolean Contraintes;
|
||||
Standard_Integer NbP;
|
||||
Standard_Integer NbCu;
|
||||
Standard_Integer Adeb;
|
||||
Standard_Integer Afin;
|
||||
Handle(TColStd_HArray1OfInteger) tabdim;
|
||||
Standard_Real ERR3d;
|
||||
Standard_Real ERR2d;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define Squares BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Squares_hxx <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define ResolCons BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define ResolCons_hxx <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define AppParCurves_Function BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_Function_hxx <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_Function.gxx>
|
||||
|
@@ -0,0 +1,125 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <math_MultipleVarFunctionWithGradient.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox : public math_MultipleVarFunctionWithGradient
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G);
|
||||
|
||||
Standard_EXPORT const math_Vector& NewParameters() const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiCurve& CurveValue();
|
||||
|
||||
Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError3d() const;
|
||||
|
||||
Standard_EXPORT Standard_Real MaxError2d() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& X);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
BRepApprox_TheMultiLineOfApprox MyMultiLine;
|
||||
AppParCurves_MultiCurve MyMultiCurve;
|
||||
Standard_Integer Degre;
|
||||
math_Vector myParameters;
|
||||
Standard_Real FVal;
|
||||
math_Vector ValGrad_F;
|
||||
math_Matrix MyF;
|
||||
math_Matrix PTLX;
|
||||
math_Matrix PTLY;
|
||||
math_Matrix PTLZ;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox MyLeastSquare;
|
||||
Standard_Boolean Contraintes;
|
||||
Standard_Integer NbP;
|
||||
Standard_Integer NbCu;
|
||||
Standard_Integer Adeb;
|
||||
Standard_Integer Afin;
|
||||
Handle(TColStd_HArray1OfInteger) tabdim;
|
||||
Standard_Real ERR3d;
|
||||
Standard_Real ERR2d;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define Squares BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Squares_hxx <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define ResolCons BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define ResolCons_hxx <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define AppParCurves_Function BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_Function_hxx <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_Function.gxx>
|
||||
|
@@ -0,0 +1,175 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
#define _BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <math_IntegerVector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_DimensionError;
|
||||
class Standard_NoSuchObject;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const math_Vector& V1c, const math_Vector& V2c, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve BezierValue();
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue();
|
||||
|
||||
Standard_EXPORT const math_Matrix& FunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT const math_Matrix& Distance();
|
||||
|
||||
Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT Standard_Real FirstLambda() const;
|
||||
|
||||
Standard_EXPORT Standard_Real LastLambda() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Points() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Poles() const;
|
||||
|
||||
Standard_EXPORT const math_IntegerVector& KIndex() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Init (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbBColumns (const BRepApprox_TheMultiLineOfApprox& SSP) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const;
|
||||
|
||||
Standard_EXPORT void Affect (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer Index, AppParCurves_Constraint& Cons, math_Vector& Vt, math_Vector& Vc);
|
||||
|
||||
Standard_EXPORT void ComputeFunction (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void SearchIndex (math_IntegerVector& Index);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Matrix& TheB);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_Constraint FirstConstraint;
|
||||
AppParCurves_Constraint LastConstraint;
|
||||
AppParCurves_MultiBSpCurve SCU;
|
||||
Handle(TColStd_HArray1OfReal) myknots;
|
||||
Handle(TColStd_HArray1OfInteger) mymults;
|
||||
math_Matrix mypoles;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
math_Matrix B2;
|
||||
math_Matrix mypoints;
|
||||
math_Vector Vflatknots;
|
||||
math_Vector Vec1t;
|
||||
math_Vector Vec1c;
|
||||
math_Vector Vec2t;
|
||||
math_Vector Vec2c;
|
||||
math_Matrix theError;
|
||||
math_IntegerVector myindex;
|
||||
Standard_Real lambda1;
|
||||
Standard_Real lambda2;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Standard_Integer Nlignes;
|
||||
Standard_Integer Ninc;
|
||||
Standard_Integer NA;
|
||||
Standard_Integer myfirstp;
|
||||
Standard_Integer mylastp;
|
||||
Standard_Integer resinit;
|
||||
Standard_Integer resfin;
|
||||
Standard_Integer nbP2d;
|
||||
Standard_Integer nbP;
|
||||
Standard_Integer nbpoles;
|
||||
Standard_Integer deg;
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean iscalculated;
|
||||
Standard_Boolean isready;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_DimensionError.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_LeastSquare BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_LeastSquare_hxx <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_LeastSquare.gxx>
|
||||
|
@@ -0,0 +1,175 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <math_IntegerVector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_DimensionError;
|
||||
class Standard_NoSuchObject;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const math_Vector& Parameters, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const math_Vector& V1c, const math_Vector& V2c, const Standard_Real l1, const Standard_Real l2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve BezierValue();
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue();
|
||||
|
||||
Standard_EXPORT const math_Matrix& FunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const;
|
||||
|
||||
Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT const math_Matrix& Distance();
|
||||
|
||||
Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d);
|
||||
|
||||
Standard_EXPORT Standard_Real FirstLambda() const;
|
||||
|
||||
Standard_EXPORT Standard_Real LastLambda() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Points() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& Poles() const;
|
||||
|
||||
Standard_EXPORT const math_IntegerVector& KIndex() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Init (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbBColumns (const BRepApprox_TheMultiLineOfApprox& SSP) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const;
|
||||
|
||||
Standard_EXPORT void Affect (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer Index, AppParCurves_Constraint& Cons, math_Vector& Vt, math_Vector& Vc);
|
||||
|
||||
Standard_EXPORT void ComputeFunction (const math_Vector& Parameters);
|
||||
|
||||
Standard_EXPORT void SearchIndex (math_IntegerVector& Index);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA);
|
||||
|
||||
Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Matrix& TheB);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
AppParCurves_Constraint FirstConstraint;
|
||||
AppParCurves_Constraint LastConstraint;
|
||||
AppParCurves_MultiBSpCurve SCU;
|
||||
Handle(TColStd_HArray1OfReal) myknots;
|
||||
Handle(TColStd_HArray1OfInteger) mymults;
|
||||
math_Matrix mypoles;
|
||||
math_Matrix A;
|
||||
math_Matrix DA;
|
||||
math_Matrix B2;
|
||||
math_Matrix mypoints;
|
||||
math_Vector Vflatknots;
|
||||
math_Vector Vec1t;
|
||||
math_Vector Vec1c;
|
||||
math_Vector Vec2t;
|
||||
math_Vector Vec2c;
|
||||
math_Matrix theError;
|
||||
math_IntegerVector myindex;
|
||||
Standard_Real lambda1;
|
||||
Standard_Real lambda2;
|
||||
Standard_Integer FirstP;
|
||||
Standard_Integer LastP;
|
||||
Standard_Integer Nlignes;
|
||||
Standard_Integer Ninc;
|
||||
Standard_Integer NA;
|
||||
Standard_Integer myfirstp;
|
||||
Standard_Integer mylastp;
|
||||
Standard_Integer resinit;
|
||||
Standard_Integer resfin;
|
||||
Standard_Integer nbP2d;
|
||||
Standard_Integer nbP;
|
||||
Standard_Integer nbpoles;
|
||||
Standard_Integer deg;
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean iscalculated;
|
||||
Standard_Boolean isready;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,37 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_DimensionError.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_LeastSquare BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_LeastSquare_hxx <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_LeastSquare.gxx>
|
||||
|
@@ -0,0 +1,100 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
#define _BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& ConstraintMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Vector& Duale() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& ConstraintDerivative (const BRepApprox_TheMultiLineOfApprox& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA);
|
||||
|
||||
Standard_EXPORT const math_Matrix& InverseMatrix() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Integer NbConstraints (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbColumns (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer Deg) const;
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
Standard_Real Err;
|
||||
math_Matrix Cont;
|
||||
math_Matrix DeCont;
|
||||
math_Vector Secont;
|
||||
math_Matrix CTCinv;
|
||||
math_Vector Vardua;
|
||||
Standard_Integer IncPass;
|
||||
Standard_Integer IncTan;
|
||||
Standard_Integer IncCurv;
|
||||
TColStd_Array1OfInteger IPas;
|
||||
TColStd_Array1OfInteger ITan;
|
||||
TColStd_Array1OfInteger ICurv;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile
|
@@ -0,0 +1,33 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_ResolConstraint BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define AppParCurves_ResolConstraint_hxx <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_ResolConstraint.gxx>
|
||||
|
@@ -0,0 +1,100 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Error() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& ConstraintMatrix() const;
|
||||
|
||||
Standard_EXPORT const math_Vector& Duale() const;
|
||||
|
||||
Standard_EXPORT const math_Matrix& ConstraintDerivative (const BRepApprox_TheMultiLineOfApprox& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA);
|
||||
|
||||
Standard_EXPORT const math_Matrix& InverseMatrix() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Integer NbConstraints (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbColumns (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer Deg) const;
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean Done;
|
||||
Standard_Real Err;
|
||||
math_Matrix Cont;
|
||||
math_Matrix DeCont;
|
||||
math_Vector Secont;
|
||||
math_Matrix CTCinv;
|
||||
math_Vector Vardua;
|
||||
Standard_Integer IncPass;
|
||||
Standard_Integer IncTan;
|
||||
Standard_Integer IncCurv;
|
||||
TColStd_Array1OfInteger IPas;
|
||||
TColStd_Array1OfInteger ITan;
|
||||
TColStd_Array1OfInteger ICurv;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile
|
@@ -0,0 +1,33 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define ToolLine BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ToolLine_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define AppParCurves_ResolConstraint BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define AppParCurves_ResolConstraint_hxx <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_ResolConstraint.gxx>
|
||||
|
@@ -1,239 +0,0 @@
|
||||
-- Created on: 1995-07-20
|
||||
-- Created by: Modelistation
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class SurfaceTool from BRepApprox
|
||||
|
||||
uses
|
||||
|
||||
Shape from GeomAbs,
|
||||
SurfaceType from GeomAbs,
|
||||
Pln from gp,
|
||||
Cone from gp,
|
||||
Cylinder from gp,
|
||||
Sphere from gp,
|
||||
Torus from gp,
|
||||
Pnt from gp,
|
||||
Vec from gp,
|
||||
Array1OfReal from TColStd,
|
||||
BezierSurface from Geom,
|
||||
BSplineSurface from Geom,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d,
|
||||
Ax1 from gp,
|
||||
Dir from gp,
|
||||
Surface from BRepAdaptor
|
||||
|
||||
raises
|
||||
|
||||
NoSuchObject from Standard,
|
||||
OutOfRange from Standard
|
||||
|
||||
is
|
||||
|
||||
FirstUParameter(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
FirstVParameter(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
LastUParameter(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
LastVParameter(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
|
||||
|
||||
NbUIntervals(myclass; S: Surface from BRepAdaptor;
|
||||
Sh : Shape from GeomAbs)
|
||||
---C++: inline
|
||||
returns Integer from Standard;
|
||||
|
||||
NbVIntervals(myclass; S: Surface from BRepAdaptor;
|
||||
Sh : Shape from GeomAbs)
|
||||
---C++: inline
|
||||
returns Integer from Standard;
|
||||
|
||||
|
||||
|
||||
UIntervals(myclass; S : Surface from BRepAdaptor;
|
||||
T : in out Array1OfReal from TColStd;
|
||||
Sh : Shape from GeomAbs);
|
||||
---C++: inline
|
||||
|
||||
VIntervals(myclass; S : Surface from BRepAdaptor;
|
||||
T : in out Array1OfReal from TColStd;
|
||||
Sh : Shape from GeomAbs) ;
|
||||
---C++: inline
|
||||
|
||||
|
||||
UTrim(myclass; S : Surface from BRepAdaptor;
|
||||
First, Last, Tol : Real)
|
||||
---C++: inline
|
||||
returns HSurface from Adaptor3d
|
||||
raises
|
||||
OutOfRange from Standard;
|
||||
---Purpose: If <First> >= <Last>
|
||||
|
||||
VTrim(myclass; S : Surface from BRepAdaptor;
|
||||
First, Last, Tol : Real)
|
||||
---C++: inline
|
||||
returns HSurface from Adaptor3d
|
||||
raises
|
||||
OutOfRange from Standard;
|
||||
---Purpose: If <First> >= <Last>
|
||||
|
||||
|
||||
IsUClosed(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Boolean from Standard;
|
||||
|
||||
IsVClosed(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Boolean from Standard;
|
||||
|
||||
|
||||
IsUPeriodic(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Boolean from Standard;
|
||||
|
||||
UPeriod(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
IsVPeriodic(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Boolean from Standard;
|
||||
|
||||
VPeriod(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
|
||||
|
||||
Value(myclass; S : Surface from BRepAdaptor;
|
||||
u,v : Real from Standard)
|
||||
---C++: inline
|
||||
returns Pnt from gp;
|
||||
|
||||
D0(myclass; S : Surface from BRepAdaptor;
|
||||
u,v : Real from Standard;
|
||||
P : out Pnt from gp);
|
||||
---C++: inline
|
||||
|
||||
D1(myclass; S : Surface from BRepAdaptor;
|
||||
u,v : Real from Standard;
|
||||
P : out Pnt from gp;
|
||||
D1u,D1v: out Vec from gp);
|
||||
---C++: inline
|
||||
|
||||
D2(myclass; S : Surface from BRepAdaptor;
|
||||
u,v : Real from Standard;
|
||||
P : out Pnt from gp;
|
||||
D1U,D1V,D2U,D2V,D2UV: out Vec from gp);
|
||||
---C++: inline
|
||||
|
||||
D3(myclass; S : Surface from BRepAdaptor;
|
||||
u,v : Real from Standard;
|
||||
P : out Pnt from gp;
|
||||
D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV: out Vec from gp);
|
||||
---C++: inline
|
||||
|
||||
DN(myclass; S : Surface from BRepAdaptor;
|
||||
u,v : Real from Standard;
|
||||
Nu,Nv : Integer from Standard)
|
||||
---C++: inline
|
||||
returns Vec from gp;
|
||||
|
||||
|
||||
|
||||
UResolution(myclass; S:Surface from BRepAdaptor; R3d: Real from Standard)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
VResolution(myclass; S:Surface from BRepAdaptor; R3d: Real from Standard)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
GetType(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns SurfaceType from GeomAbs;
|
||||
|
||||
|
||||
Plane(myclass; S: Surface from BRepAdaptor)
|
||||
---C++: inline
|
||||
returns Pln from gp;
|
||||
|
||||
Cylinder(myclass; S : Surface from BRepAdaptor) returns Cylinder from gp
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
|
||||
Cone(myclass; S : Surface from BRepAdaptor) returns Cone from gp
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
Torus(myclass; S : Surface from BRepAdaptor) returns Torus from gp
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
|
||||
Sphere(myclass; S : Surface from BRepAdaptor) returns Sphere from gp
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
Bezier(myclass; S : Surface from BRepAdaptor) returns BezierSurface from Geom
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
BSpline(myclass; S : Surface from BRepAdaptor) returns BSplineSurface from Geom
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
AxeOfRevolution(myclass; S: Surface from BRepAdaptor) returns Ax1 from gp
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
Direction(myclass; S: Surface from BRepAdaptor) returns Dir from gp
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
BasisCurve(myclass; S:Surface from BRepAdaptor) returns HCurve from Adaptor3d
|
||||
raises NoSuchObject from Standard;
|
||||
---C++: inline
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
NbSamplesU(myclass; S : Surface from BRepAdaptor) returns Integer from Standard;
|
||||
|
||||
|
||||
NbSamplesV(myclass; S : Surface from BRepAdaptor) returns Integer from Standard;
|
||||
|
||||
|
||||
NbSamplesU(myclass; S : Surface from BRepAdaptor; u1,u2: Real from Standard) returns Integer from Standard;
|
||||
|
||||
|
||||
NbSamplesV(myclass; S : Surface from BRepAdaptor; v1,v2: Real from Standard) returns Integer from Standard;
|
||||
|
||||
|
||||
|
||||
end SurfaceTool from BRepApprox ;
|
@@ -14,7 +14,17 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include "BRepApprox_SurfaceTool.ixx"
|
||||
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRepApprox_SurfaceTool.hxx>
|
||||
#include <Geom_BezierSurface.hxx>
|
||||
#include <Geom_BSplineSurface.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
|
||||
Standard_Integer BRepApprox_SurfaceTool::NbSamplesU (const BRepAdaptor_Surface&)
|
||||
{
|
||||
|
162
src/BRepApprox/BRepApprox_SurfaceTool.hxx
Normal file
162
src/BRepApprox/BRepApprox_SurfaceTool.hxx
Normal file
@@ -0,0 +1,162 @@
|
||||
// Created on: 1995-07-20
|
||||
// Created by: Modelistation
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_SurfaceTool_HeaderFile
|
||||
#define _BRepApprox_SurfaceTool_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <GeomAbs_SurfaceType.hxx>
|
||||
#include <gp_Pln.hxx>
|
||||
#include <gp_Cylinder.hxx>
|
||||
#include <gp_Cone.hxx>
|
||||
#include <gp_Torus.hxx>
|
||||
#include <gp_Sphere.hxx>
|
||||
#include <gp_Ax1.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
class Standard_NoSuchObject;
|
||||
class Standard_OutOfRange;
|
||||
class BRepAdaptor_Surface;
|
||||
class Adaptor3d_HSurface;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class Geom_BezierSurface;
|
||||
class Geom_BSplineSurface;
|
||||
class Adaptor3d_HCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_SurfaceTool
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
static Standard_Real FirstUParameter (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Real FirstVParameter (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Real LastUParameter (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Real LastVParameter (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Integer NbUIntervals (const BRepAdaptor_Surface& S, const GeomAbs_Shape Sh);
|
||||
|
||||
static Standard_Integer NbVIntervals (const BRepAdaptor_Surface& S, const GeomAbs_Shape Sh);
|
||||
|
||||
static void UIntervals (const BRepAdaptor_Surface& S, TColStd_Array1OfReal& T, const GeomAbs_Shape Sh);
|
||||
|
||||
static void VIntervals (const BRepAdaptor_Surface& S, TColStd_Array1OfReal& T, const GeomAbs_Shape Sh);
|
||||
|
||||
//! If <First> >= <Last>
|
||||
static Handle(Adaptor3d_HSurface) UTrim (const BRepAdaptor_Surface& S, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol);
|
||||
|
||||
//! If <First> >= <Last>
|
||||
static Handle(Adaptor3d_HSurface) VTrim (const BRepAdaptor_Surface& S, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol);
|
||||
|
||||
static Standard_Boolean IsUClosed (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Boolean IsVClosed (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Boolean IsUPeriodic (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Real UPeriod (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Boolean IsVPeriodic (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Standard_Real VPeriod (const BRepAdaptor_Surface& S);
|
||||
|
||||
static gp_Pnt Value (const BRepAdaptor_Surface& S, const Standard_Real u, const Standard_Real v);
|
||||
|
||||
static void D0 (const BRepAdaptor_Surface& S, const Standard_Real u, const Standard_Real v, gp_Pnt& P);
|
||||
|
||||
static void D1 (const BRepAdaptor_Surface& S, const Standard_Real u, const Standard_Real v, gp_Pnt& P, gp_Vec& D1u, gp_Vec& D1v);
|
||||
|
||||
static void D2 (const BRepAdaptor_Surface& S, const Standard_Real u, const Standard_Real v, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V, gp_Vec& D2U, gp_Vec& D2V, gp_Vec& D2UV);
|
||||
|
||||
static void D3 (const BRepAdaptor_Surface& S, const Standard_Real u, const Standard_Real v, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V, gp_Vec& D2U, gp_Vec& D2V, gp_Vec& D2UV, gp_Vec& D3U, gp_Vec& D3V, gp_Vec& D3UUV, gp_Vec& D3UVV);
|
||||
|
||||
static gp_Vec DN (const BRepAdaptor_Surface& S, const Standard_Real u, const Standard_Real v, const Standard_Integer Nu, const Standard_Integer Nv);
|
||||
|
||||
static Standard_Real UResolution (const BRepAdaptor_Surface& S, const Standard_Real R3d);
|
||||
|
||||
static Standard_Real VResolution (const BRepAdaptor_Surface& S, const Standard_Real R3d);
|
||||
|
||||
static GeomAbs_SurfaceType GetType (const BRepAdaptor_Surface& S);
|
||||
|
||||
static gp_Pln Plane (const BRepAdaptor_Surface& S);
|
||||
|
||||
static gp_Cylinder Cylinder (const BRepAdaptor_Surface& S);
|
||||
|
||||
static gp_Cone Cone (const BRepAdaptor_Surface& S);
|
||||
|
||||
static gp_Torus Torus (const BRepAdaptor_Surface& S);
|
||||
|
||||
static gp_Sphere Sphere (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Handle(Geom_BezierSurface) Bezier (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Handle(Geom_BSplineSurface) BSpline (const BRepAdaptor_Surface& S);
|
||||
|
||||
static gp_Ax1 AxeOfRevolution (const BRepAdaptor_Surface& S);
|
||||
|
||||
static gp_Dir Direction (const BRepAdaptor_Surface& S);
|
||||
|
||||
static Handle(Adaptor3d_HCurve) BasisCurve (const BRepAdaptor_Surface& S);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamplesU (const BRepAdaptor_Surface& S);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamplesV (const BRepAdaptor_Surface& S);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamplesU (const BRepAdaptor_Surface& S, const Standard_Real u1, const Standard_Real u2);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamplesV (const BRepAdaptor_Surface& S, const Standard_Real v1, const Standard_Real v2);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepApprox_SurfaceTool.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_SurfaceTool_HeaderFile
|
155
src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox.hxx
Normal file
155
src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox.hxx
Normal file
@@ -0,0 +1,155 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_TheComputeLineBezierOfApprox_HeaderFile
|
||||
#define _BRepApprox_TheComputeLineBezierOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_SequenceOfMultiCurve.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <Approx_SequenceOfHArray1OfReal.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox;
|
||||
class AppParCurves_MultiCurve;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_TheComputeLineBezierOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_TheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-3, const Standard_Real Tolerance2d = 1.0e-6, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheComputeLineBezierOfApprox(const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheComputeLineBezierOfApprox(const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT void Init (const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT void Perform (const BRepApprox_TheMultiLineOfApprox& Line);
|
||||
|
||||
Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax);
|
||||
|
||||
Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d);
|
||||
|
||||
Standard_EXPORT void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsAllApproximated() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsToleranceReached() const;
|
||||
|
||||
Standard_EXPORT void Error (const Standard_Integer Index, Standard_Real& tol3d, Standard_Real& tol2d) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbMultiCurves() const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiCurve& Value (const Standard_Integer Index = 1) const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiCurve& ChangeValue (const Standard_Integer Index = 1);
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& SplineValue();
|
||||
|
||||
Standard_EXPORT void Parametrization (Approx_ParametrizationType& partype) const;
|
||||
|
||||
Standard_EXPORT const TColStd_Array1OfReal& Parameters (const Standard_Integer Index = 1) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean Compute (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer fpt, const Standard_Integer lpt, math_Vector& Para, Standard_Real& TheTol3d, Standard_Real& TheTol2d);
|
||||
|
||||
Standard_EXPORT Standard_Boolean ComputeCurve (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer firspt, const Standard_Integer lastpt);
|
||||
|
||||
Standard_EXPORT void Parameters (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer firstP, const Standard_Integer LastP, math_Vector& TheParameters) const;
|
||||
|
||||
Standard_EXPORT Standard_Real SearchFirstLambda (const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Para, const math_Vector& V, const Standard_Integer index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real SearchLastLambda (const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Para, const math_Vector& V, const Standard_Integer index) const;
|
||||
|
||||
Standard_EXPORT void FirstTangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer index, math_Vector& V) const;
|
||||
|
||||
Standard_EXPORT void LastTangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer index, math_Vector& V) const;
|
||||
|
||||
|
||||
AppParCurves_SequenceOfMultiCurve myMultiCurves;
|
||||
AppParCurves_MultiCurve TheMultiCurve;
|
||||
AppParCurves_MultiBSpCurve myspline;
|
||||
Standard_Boolean alldone;
|
||||
Standard_Boolean tolreached;
|
||||
Approx_ParametrizationType Par;
|
||||
Handle(TColStd_HArray1OfReal) myParameters;
|
||||
Handle(TColStd_HArray1OfReal) myfirstParam;
|
||||
Approx_SequenceOfHArray1OfReal myPar;
|
||||
TColStd_SequenceOfReal Tolers3d;
|
||||
TColStd_SequenceOfReal Tolers2d;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
Standard_Integer mydegremin;
|
||||
Standard_Integer mydegremax;
|
||||
Standard_Real mytol3d;
|
||||
Standard_Real mytol2d;
|
||||
Standard_Real currenttol3d;
|
||||
Standard_Real currenttol2d;
|
||||
Standard_Boolean mycut;
|
||||
Standard_Boolean mysquares;
|
||||
Standard_Integer myitermax;
|
||||
AppParCurves_Constraint myfirstC;
|
||||
AppParCurves_Constraint mylastC;
|
||||
Standard_Integer myMultiLineNb;
|
||||
Standard_Boolean myIsClear;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_TheComputeLineBezierOfApprox_HeaderFile
|
55
src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox_0.cxx
Normal file
55
src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox_0.cxx
Normal file
@@ -0,0 +1,55 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_TheComputeLineBezierOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define LineTool BRepApprox_TheMultiLineToolOfApprox
|
||||
#define LineTool_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define Approx_MyGradient BRepApprox_MyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_MyGradient_hxx <BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_ParLeastSquareOfMyGradient BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_ParLeastSquareOfMyGradient_hxx <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_ResConstraintOfMyGradient BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_ResConstraintOfMyGradient_hxx <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_ParFunctionOfMyGradient BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_ParFunctionOfMyGradient_hxx <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_Gradient_BFGSOfMyGradient BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_Gradient_BFGSOfMyGradient_hxx <BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_ParLeastSquareOfMyGradient BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_ParLeastSquareOfMyGradient_hxx <BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_ResConstraintOfMyGradient BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_ResConstraintOfMyGradient_hxx <BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_ParFunctionOfMyGradient BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_ParFunctionOfMyGradient_hxx <BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_Gradient_BFGSOfMyGradient BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox
|
||||
#define Approx_Gradient_BFGSOfMyGradient_hxx <BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx>
|
||||
#define Approx_ComputeLine BRepApprox_TheComputeLineBezierOfApprox
|
||||
#define Approx_ComputeLine_hxx <BRepApprox_TheComputeLineBezierOfApprox.hxx>
|
||||
#include <Approx_ComputeLine.gxx>
|
||||
|
167
src/BRepApprox/BRepApprox_TheComputeLineOfApprox.hxx
Normal file
167
src/BRepApprox/BRepApprox_TheComputeLineOfApprox.hxx
Normal file
@@ -0,0 +1,167 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_TheComputeLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_TheComputeLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <AppParCurves_HArray1OfConstraintCouple.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class BRepApprox_TheMultiLineToolOfApprox;
|
||||
class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox;
|
||||
class BRepApprox_MyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox;
|
||||
class AppParCurves_MultiBSpCurve;
|
||||
class AppParCurves_MultiCurve;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_TheComputeLineOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_TheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-3, const Standard_Real Tolerance2d = 1.0e-6, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheComputeLineOfApprox(const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheComputeLineOfApprox(const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT void Interpol (const BRepApprox_TheMultiLineOfApprox& Line);
|
||||
|
||||
Standard_EXPORT void Init (const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False);
|
||||
|
||||
Standard_EXPORT void Perform (const BRepApprox_TheMultiLineOfApprox& Line);
|
||||
|
||||
Standard_EXPORT void SetParameters (const math_Vector& ThePar);
|
||||
|
||||
Standard_EXPORT void SetKnots (const TColStd_Array1OfReal& Knots);
|
||||
|
||||
Standard_EXPORT void SetKnotsAndMultiplicities (const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults);
|
||||
|
||||
Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax);
|
||||
|
||||
Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d);
|
||||
|
||||
Standard_EXPORT void SetContinuity (const Standard_Integer C);
|
||||
|
||||
Standard_EXPORT void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsAllApproximated() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsToleranceReached() const;
|
||||
|
||||
Standard_EXPORT void Error (Standard_Real& tol3d, Standard_Real& tol2d) const;
|
||||
|
||||
Standard_EXPORT const AppParCurves_MultiBSpCurve& Value() const;
|
||||
|
||||
Standard_EXPORT AppParCurves_MultiBSpCurve& ChangeValue();
|
||||
|
||||
Standard_EXPORT const TColStd_Array1OfReal& Parameters() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean Compute (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer fpt, const Standard_Integer lpt, math_Vector& Para, const TColStd_Array1OfReal& Knots, TColStd_Array1OfInteger& Mults);
|
||||
|
||||
Standard_EXPORT Standard_Boolean ComputeCurve (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer firspt, const Standard_Integer lastpt);
|
||||
|
||||
Standard_EXPORT void Parameters (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer firstP, const Standard_Integer LastP, math_Vector& TheParameters) const;
|
||||
|
||||
Standard_EXPORT Standard_Real SearchFirstLambda (const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Para, const TColStd_Array1OfReal& Knots, const math_Vector& V, const Standard_Integer index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real SearchLastLambda (const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Para, const TColStd_Array1OfReal& Knots, const math_Vector& V, const Standard_Integer index) const;
|
||||
|
||||
Standard_EXPORT void TangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const AppParCurves_MultiCurve& C, const Standard_Real U, math_Vector& V) const;
|
||||
|
||||
Standard_EXPORT void FirstTangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer index, math_Vector& V) const;
|
||||
|
||||
Standard_EXPORT void LastTangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer index, math_Vector& V) const;
|
||||
|
||||
Standard_EXPORT void FindRealConstraints (const BRepApprox_TheMultiLineOfApprox& Line);
|
||||
|
||||
|
||||
AppParCurves_MultiBSpCurve TheMultiBSpCurve;
|
||||
Standard_Boolean alldone;
|
||||
Standard_Boolean tolreached;
|
||||
Approx_ParametrizationType Par;
|
||||
Handle(TColStd_HArray1OfReal) myParameters;
|
||||
Handle(TColStd_HArray1OfReal) myfirstParam;
|
||||
Handle(TColStd_HArray1OfReal) myknots;
|
||||
Handle(TColStd_HArray1OfInteger) mymults;
|
||||
Standard_Boolean myhasknots;
|
||||
Standard_Boolean myhasmults;
|
||||
Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints;
|
||||
Standard_Integer mydegremin;
|
||||
Standard_Integer mydegremax;
|
||||
Standard_Real mytol3d;
|
||||
Standard_Real mytol2d;
|
||||
Standard_Real currenttol3d;
|
||||
Standard_Real currenttol2d;
|
||||
Standard_Boolean mycut;
|
||||
Standard_Boolean mysquares;
|
||||
Standard_Integer myitermax;
|
||||
AppParCurves_Constraint myfirstC;
|
||||
AppParCurves_Constraint mylastC;
|
||||
AppParCurves_Constraint realfirstC;
|
||||
AppParCurves_Constraint reallastC;
|
||||
Standard_Integer mycont;
|
||||
Standard_Real mylambda1;
|
||||
Standard_Real mylambda2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_TheComputeLineOfApprox_HeaderFile
|
73
src/BRepApprox/BRepApprox_TheComputeLineOfApprox_0.cxx
Normal file
73
src/BRepApprox/BRepApprox_TheComputeLineOfApprox_0.cxx
Normal file
@@ -0,0 +1,73 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_TheComputeLineOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#include <AppParCurves_MultiBSpCurve.hxx>
|
||||
#include <AppParCurves_MultiCurve.hxx>
|
||||
|
||||
|
||||
#define MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define LineTool BRepApprox_TheMultiLineToolOfApprox
|
||||
#define LineTool_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#define Approx_MyBSplGradient BRepApprox_MyBSplGradientOfTheComputeLineOfApprox
|
||||
#define Approx_MyBSplGradient_hxx <BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_BSpParLeastSquareOfMyBSplGradient BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define Approx_BSpParLeastSquareOfMyBSplGradient_hxx <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_BSpParFunctionOfMyBSplGradient BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define Approx_BSpParFunctionOfMyBSplGradient_hxx <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_BSpGradient_BFGSOfMyBSplGradient BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define Approx_BSpGradient_BFGSOfMyBSplGradient_hxx <BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_BSpParLeastSquareOfMyBSplGradient BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define Approx_BSpParLeastSquareOfMyBSplGradient_hxx <BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_BSpParFunctionOfMyBSplGradient BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define Approx_BSpParFunctionOfMyBSplGradient_hxx <BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_BSpGradient_BFGSOfMyBSplGradient BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox
|
||||
#define Approx_BSpGradient_BFGSOfMyBSplGradient_hxx <BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_MyGradientbis BRepApprox_MyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_MyGradientbis_hxx <BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_ParLeastSquareOfMyGradientbis BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_ParLeastSquareOfMyGradientbis_hxx <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_ResConstraintOfMyGradientbis BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_ResConstraintOfMyGradientbis_hxx <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_ParFunctionOfMyGradientbis BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_ParFunctionOfMyGradientbis_hxx <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_Gradient_BFGSOfMyGradientbis BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_Gradient_BFGSOfMyGradientbis_hxx <BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_ParLeastSquareOfMyGradientbis BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_ParLeastSquareOfMyGradientbis_hxx <BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_ResConstraintOfMyGradientbis BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_ResConstraintOfMyGradientbis_hxx <BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_ParFunctionOfMyGradientbis BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_ParFunctionOfMyGradientbis_hxx <BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_Gradient_BFGSOfMyGradientbis BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox
|
||||
#define Approx_Gradient_BFGSOfMyGradientbis_hxx <BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx>
|
||||
#define Approx_BSplComputeLine BRepApprox_TheComputeLineOfApprox
|
||||
#define Approx_BSplComputeLine_hxx <BRepApprox_TheComputeLineOfApprox.hxx>
|
||||
#include <Approx_BSplComputeLine.gxx>
|
||||
|
@@ -0,0 +1,142 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile
|
||||
#define _BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <IntImp_ConstIsoparametric.hxx>
|
||||
#include <math_FunctionSetWithDerivatives.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
class StdFail_UndefinedDerivative;
|
||||
class Standard_ConstructionError;
|
||||
class BRepAdaptor_Surface;
|
||||
class BRepApprox_SurfaceTool;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox : public math_FunctionSetWithDerivatives
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox();
|
||||
|
||||
Standard_EXPORT BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& S1, const BRepAdaptor_Surface& S2);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT void ComputeParameters (const IntImp_ConstIsoparametric ChoixIso, const TColStd_Array1OfReal& Param, math_Vector& UVap, math_Vector& BornInf, math_Vector& BornSup, math_Vector& Tolerance);
|
||||
|
||||
Standard_Real Root() const;
|
||||
|
||||
gp_Pnt Point() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsTangent (const math_Vector& UVap, TColStd_Array1OfReal& Param, IntImp_ConstIsoparametric& BestChoix);
|
||||
|
||||
gp_Dir Direction() const;
|
||||
|
||||
gp_Dir2d DirectionOnS1() const;
|
||||
|
||||
gp_Dir2d DirectionOnS2() const;
|
||||
|
||||
const BRepAdaptor_Surface& AuxillarSurface1() const;
|
||||
|
||||
const BRepAdaptor_Surface& AuxillarSurface2() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Address surf1;
|
||||
Standard_Address surf2;
|
||||
gp_Pnt pntsol1;
|
||||
gp_Pnt pntsol2;
|
||||
Standard_Real f[3];
|
||||
Standard_Boolean compute;
|
||||
Standard_Boolean tangent;
|
||||
Standard_Real tgduv[4];
|
||||
gp_Vec dpuv[4];
|
||||
IntImp_ConstIsoparametric chxIso;
|
||||
Standard_Real paramConst;
|
||||
Standard_Real ua0;
|
||||
Standard_Real va0;
|
||||
Standard_Real ua1;
|
||||
Standard_Real va1;
|
||||
Standard_Real ub0;
|
||||
Standard_Real vb0;
|
||||
Standard_Real ub1;
|
||||
Standard_Real vb1;
|
||||
Standard_Real ures1;
|
||||
Standard_Real ures2;
|
||||
Standard_Real vres1;
|
||||
Standard_Real vres2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define IntImp_ZerParFunc BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define IntImp_ZerParFunc_hxx <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
|
||||
#include <IntImp_ZerParFunc.lxx>
|
||||
|
||||
#undef ThePSurface
|
||||
#undef ThePSurface_hxx
|
||||
#undef ThePSurfaceTool
|
||||
#undef ThePSurfaceTool_hxx
|
||||
#undef IntImp_ZerParFunc
|
||||
#undef IntImp_ZerParFunc_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile
|
@@ -0,0 +1,33 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
|
||||
#include <StdFail_UndefinedDerivative.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRepApprox_SurfaceTool.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define IntImp_ZerParFunc BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define IntImp_ZerParFunc_hxx <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <IntImp_ZerParFunc.gxx>
|
||||
|
106
src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx
Normal file
106
src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx
Normal file
@@ -0,0 +1,106 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile
|
||||
#define _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#include <ApproxInt_SvSurfaces.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class BRepAdaptor_Surface;
|
||||
class BRepApprox_SurfaceTool;
|
||||
class IntSurf_Quadric;
|
||||
class IntSurf_QuadricTool;
|
||||
class BRepApprox_ApproxLine;
|
||||
class BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_TheImpPrmSvSurfacesOfApprox : public ApproxInt_SvSurfaces
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_TheImpPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& Surf1, const IntSurf_Quadric& Surf2);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheImpPrmSvSurfacesOfApprox(const IntSurf_Quadric& Surf1, const BRepAdaptor_Surface& Surf2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Compute (Standard_Real& u1, Standard_Real& v1, Standard_Real& u2, Standard_Real& v2, gp_Pnt& Pt, gp_Vec& Tg, gp_Vec2d& Tguv1, gp_Vec2d& Tguv2);
|
||||
|
||||
Standard_EXPORT void Pnt (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Pnt& P);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& Tg);
|
||||
|
||||
Standard_EXPORT Standard_Boolean TangencyOnSurf1 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
|
||||
|
||||
Standard_EXPORT Standard_Boolean TangencyOnSurf2 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
gp_Pnt2d MyParOnS1;
|
||||
gp_Pnt2d MyParOnS2;
|
||||
gp_Pnt MyPnt;
|
||||
gp_Vec2d MyTguv1;
|
||||
gp_Vec2d MyTguv2;
|
||||
gp_Vec MyTg;
|
||||
Standard_Boolean MyIsTangent;
|
||||
Standard_Boolean MyHasBeenComputed;
|
||||
gp_Pnt2d MyParOnS1bis;
|
||||
gp_Pnt2d MyParOnS2bis;
|
||||
gp_Pnt MyPntbis;
|
||||
gp_Vec2d MyTguv1bis;
|
||||
gp_Vec2d MyTguv2bis;
|
||||
gp_Vec MyTgbis;
|
||||
Standard_Boolean MyIsTangentbis;
|
||||
Standard_Boolean MyHasBeenComputedbis;
|
||||
Standard_Boolean MyImplicitFirst;
|
||||
BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox MyZerImpFunc;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile
|
46
src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox_0.cxx
Normal file
46
src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox_0.cxx
Normal file
@@ -0,0 +1,46 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx>
|
||||
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRepApprox_SurfaceTool.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntSurf_QuadricTool.hxx>
|
||||
#include <BRepApprox_ApproxLine.hxx>
|
||||
#include <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define TheISurface IntSurf_Quadric
|
||||
#define TheISurface_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheISurfaceTool IntSurf_QuadricTool
|
||||
#define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
|
||||
#define Handle_TheLine Handle(BRepApprox_ApproxLine)
|
||||
#define TheLine BRepApprox_ApproxLine
|
||||
#define TheLine_hxx <BRepApprox_ApproxLine.hxx>
|
||||
#define ApproxInt_TheZerImpFunc BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheZerImpFunc_hxx <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_ImpPrmSvSurfaces BRepApprox_TheImpPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_ImpPrmSvSurfaces_hxx <BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#include <ApproxInt_ImpPrmSvSurfaces.gxx>
|
||||
|
@@ -0,0 +1,142 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile
|
||||
#define _BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <IntSurf_PntOn2S.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
#include <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <IntImp_ConstIsoparametric.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_DomainError;
|
||||
class Standard_ConstructionError;
|
||||
class StdFail_UndefinedDerivative;
|
||||
class BRepAdaptor_Surface;
|
||||
class BRepApprox_SurfaceTool;
|
||||
class BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox;
|
||||
class math_FunctionSetRoot;
|
||||
class IntSurf_PntOn2S;
|
||||
class gp_Dir;
|
||||
class gp_Dir2d;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox();
|
||||
|
||||
Standard_EXPORT BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox(const TColStd_Array1OfReal& Param, const BRepAdaptor_Surface& S1, const BRepAdaptor_Surface& S2, const Standard_Real TolTangency);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& S1, const BRepAdaptor_Surface& S2, const Standard_Real TolTangency);
|
||||
|
||||
Standard_EXPORT IntImp_ConstIsoparametric Perform (const TColStd_Array1OfReal& Param, math_FunctionSetRoot& Rsnld);
|
||||
|
||||
Standard_EXPORT IntImp_ConstIsoparametric Perform (const TColStd_Array1OfReal& Param, math_FunctionSetRoot& Rsnld, const IntImp_ConstIsoparametric ChoixIso);
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_Boolean IsEmpty() const;
|
||||
|
||||
const IntSurf_PntOn2S& Point() const;
|
||||
|
||||
Standard_Boolean IsTangent() const;
|
||||
|
||||
const gp_Dir& Direction() const;
|
||||
|
||||
const gp_Dir2d& DirectionOnS1() const;
|
||||
|
||||
const gp_Dir2d& DirectionOnS2() const;
|
||||
|
||||
BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox& Function();
|
||||
|
||||
IntSurf_PntOn2S& ChangePoint();
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean empty;
|
||||
IntSurf_PntOn2S pint;
|
||||
Standard_Boolean tangent;
|
||||
gp_Dir d3d;
|
||||
gp_Dir2d d2d1;
|
||||
gp_Dir2d d2d2;
|
||||
BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox myZerParFunc;
|
||||
Standard_Real tol;
|
||||
Standard_Real ua0;
|
||||
Standard_Real va0;
|
||||
Standard_Real ua1;
|
||||
Standard_Real va1;
|
||||
Standard_Real ub0;
|
||||
Standard_Real vb0;
|
||||
Standard_Real ub1;
|
||||
Standard_Real vb1;
|
||||
Standard_Real ures1;
|
||||
Standard_Real ures2;
|
||||
Standard_Real vres1;
|
||||
Standard_Real vres2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define IntImp_TheFunction BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define IntImp_TheFunction_hxx <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#define IntImp_Int2S BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define IntImp_Int2S_hxx <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
|
||||
#include <IntImp_Int2S.lxx>
|
||||
|
||||
#undef ThePSurface
|
||||
#undef ThePSurface_hxx
|
||||
#undef ThePSurfaceTool
|
||||
#undef ThePSurfaceTool_hxx
|
||||
#undef IntImp_TheFunction
|
||||
#undef IntImp_TheFunction_hxx
|
||||
#undef IntImp_Int2S
|
||||
#undef IntImp_Int2S_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile
|
@@ -0,0 +1,41 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <StdFail_UndefinedDerivative.hxx>
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRepApprox_SurfaceTool.hxx>
|
||||
#include <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <math_FunctionSetRoot.hxx>
|
||||
#include <IntSurf_PntOn2S.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define IntImp_TheFunction BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define IntImp_TheFunction_hxx <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#define IntImp_Int2S BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define IntImp_Int2S_hxx <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <IntImp_Int2S.gxx>
|
||||
|
119
src/BRepApprox/BRepApprox_TheMultiLineOfApprox.hxx
Normal file
119
src/BRepApprox/BRepApprox_TheMultiLineOfApprox.hxx
Normal file
@@ -0,0 +1,119 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_TheMultiLineOfApprox_HeaderFile
|
||||
#define _BRepApprox_TheMultiLineOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Approx_Status.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
class BRepApprox_ApproxLine;
|
||||
class ApproxInt_SvSurfaces;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_TheMultiLineOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_TheMultiLineOfApprox(const Handle(BRepApprox_ApproxLine)& line, const Standard_Address PtrSvSurfaces, const Standard_Integer NbP3d, const Standard_Integer NbP2d, const Standard_Real xo, const Standard_Real ax, const Standard_Real yo, const Standard_Real ay, const Standard_Real zo, const Standard_Real az, const Standard_Real u1o, const Standard_Real a1u, const Standard_Real v1o, const Standard_Real a1v, const Standard_Real u2o, const Standard_Real a2u, const Standard_Real v2o, const Standard_Real a2v, const Standard_Boolean P2DOnFirst, const Standard_Integer IndMin = 0, const Standard_Integer IndMax = 0);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheMultiLineOfApprox(const Handle(BRepApprox_ApproxLine)& line, const Standard_Integer NbP3d, const Standard_Integer NbP2d, const Standard_Real xo, const Standard_Real ax, const Standard_Real yo, const Standard_Real ay, const Standard_Real zo, const Standard_Real az, const Standard_Real u1o, const Standard_Real a1u, const Standard_Real v1o, const Standard_Real a1v, const Standard_Real u2o, const Standard_Real a2u, const Standard_Real v2o, const Standard_Real a2v, const Standard_Boolean P2DOnFirst, const Standard_Integer IndMin = 0, const Standard_Integer IndMax = 0);
|
||||
|
||||
Standard_EXPORT Standard_Integer FirstPoint() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer LastPoint() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbP2d() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbP3d() const;
|
||||
|
||||
Standard_EXPORT Approx_Status WhatStatus() const;
|
||||
|
||||
Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt) const;
|
||||
|
||||
Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt2d& tabPt2d) const;
|
||||
|
||||
Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt, TColgp_Array1OfPnt2d& tabPt2d) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d) const;
|
||||
|
||||
Standard_EXPORT BRepApprox_TheMultiLineOfApprox MakeMLBetween (const Standard_Integer Low, const Standard_Integer High, const Standard_Integer NbPointsToInsert) const;
|
||||
|
||||
Standard_EXPORT void Dump() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Address PtrOnmySvSurfaces;
|
||||
Handle(BRepApprox_ApproxLine) myLine;
|
||||
Standard_Integer indicemin;
|
||||
Standard_Integer indicemax;
|
||||
Standard_Integer nbp3d;
|
||||
Standard_Integer nbp2d;
|
||||
Standard_Boolean p2donfirst;
|
||||
Standard_Real Xo;
|
||||
Standard_Real Ax;
|
||||
Standard_Real Yo;
|
||||
Standard_Real Ay;
|
||||
Standard_Real Zo;
|
||||
Standard_Real Az;
|
||||
Standard_Real U1o;
|
||||
Standard_Real A1u;
|
||||
Standard_Real V1o;
|
||||
Standard_Real A1v;
|
||||
Standard_Real U2o;
|
||||
Standard_Real A2u;
|
||||
Standard_Real V2o;
|
||||
Standard_Real A2v;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_TheMultiLineOfApprox_HeaderFile
|
31
src/BRepApprox/BRepApprox_TheMultiLineOfApprox_0.cxx
Normal file
31
src/BRepApprox/BRepApprox_TheMultiLineOfApprox_0.cxx
Normal file
@@ -0,0 +1,31 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_ApproxLine.hxx>
|
||||
#include <ApproxInt_SvSurfaces.hxx>
|
||||
|
||||
|
||||
#define Handle_TheLine Handle(BRepApprox_ApproxLine)
|
||||
#define TheLine BRepApprox_ApproxLine
|
||||
#define TheLine_hxx <BRepApprox_ApproxLine.hxx>
|
||||
#define TheSvSurfaces ApproxInt_SvSurfaces
|
||||
#define TheSvSurfaces_hxx <ApproxInt_SvSurfaces.hxx>
|
||||
#define ApproxInt_MultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define ApproxInt_MultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <ApproxInt_MultiLine.gxx>
|
||||
|
112
src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox.hxx
Normal file
112
src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox.hxx
Normal file
@@ -0,0 +1,112 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_TheMultiLineToolOfApprox_HeaderFile
|
||||
#define _BRepApprox_TheMultiLineToolOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <Approx_Status.hxx>
|
||||
class BRepApprox_TheMultiLineOfApprox;
|
||||
class ApproxInt_SvSurfaces;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_TheMultiLineToolOfApprox
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
static Standard_Integer FirstPoint (const BRepApprox_TheMultiLineOfApprox& ML);
|
||||
|
||||
static Standard_Integer LastPoint (const BRepApprox_TheMultiLineOfApprox& ML);
|
||||
|
||||
static Standard_Integer NbP2d (const BRepApprox_TheMultiLineOfApprox& ML);
|
||||
|
||||
static Standard_Integer NbP3d (const BRepApprox_TheMultiLineOfApprox& ML);
|
||||
|
||||
static void Value (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt);
|
||||
|
||||
static void Value (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt2d& tabPt2d);
|
||||
|
||||
static void Value (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt, TColgp_Array1OfPnt2d& tabPt2d);
|
||||
|
||||
static Standard_Boolean Tangency (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV);
|
||||
|
||||
static Standard_Boolean Tangency (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d);
|
||||
|
||||
static Standard_Boolean Tangency (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d);
|
||||
|
||||
static Standard_Boolean Curvature (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV);
|
||||
|
||||
static Standard_Boolean Curvature (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d);
|
||||
|
||||
static Standard_Boolean Curvature (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d);
|
||||
|
||||
static BRepApprox_TheMultiLineOfApprox MakeMLBetween (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer I1, const Standard_Integer I2, const Standard_Integer NbPMin);
|
||||
|
||||
static Approx_Status WhatStatus (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer I1, const Standard_Integer I2);
|
||||
|
||||
Standard_EXPORT static void Dump (const BRepApprox_TheMultiLineOfApprox& ML);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define TheMultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define TheMultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define TheMultiMPoint ApproxInt_SvSurfaces
|
||||
#define TheMultiMPoint_hxx <ApproxInt_SvSurfaces.hxx>
|
||||
#define ApproxInt_MultiLineTool BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ApproxInt_MultiLineTool_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
|
||||
#include <ApproxInt_MultiLineTool.lxx>
|
||||
|
||||
#undef TheMultiLine
|
||||
#undef TheMultiLine_hxx
|
||||
#undef TheMultiMPoint
|
||||
#undef TheMultiMPoint_hxx
|
||||
#undef ApproxInt_MultiLineTool
|
||||
#undef ApproxInt_MultiLineTool_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_TheMultiLineToolOfApprox_HeaderFile
|
30
src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox_0.cxx
Normal file
30
src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox_0.cxx
Normal file
@@ -0,0 +1,30 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
|
||||
#include <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#include <ApproxInt_SvSurfaces.hxx>
|
||||
|
||||
|
||||
#define TheMultiLine BRepApprox_TheMultiLineOfApprox
|
||||
#define TheMultiLine_hxx <BRepApprox_TheMultiLineOfApprox.hxx>
|
||||
#define TheMultiMPoint ApproxInt_SvSurfaces
|
||||
#define TheMultiMPoint_hxx <ApproxInt_SvSurfaces.hxx>
|
||||
#define ApproxInt_MultiLineTool BRepApprox_TheMultiLineToolOfApprox
|
||||
#define ApproxInt_MultiLineTool_hxx <BRepApprox_TheMultiLineToolOfApprox.hxx>
|
||||
#include <ApproxInt_MultiLineTool.gxx>
|
||||
|
102
src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx
Normal file
102
src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx
Normal file
@@ -0,0 +1,102 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_ThePrmPrmSvSurfacesOfApprox_HeaderFile
|
||||
#define _BRepApprox_ThePrmPrmSvSurfacesOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <ApproxInt_SvSurfaces.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class BRepAdaptor_Surface;
|
||||
class BRepApprox_SurfaceTool;
|
||||
class BRepApprox_ApproxLine;
|
||||
class BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox;
|
||||
class BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_ThePrmPrmSvSurfacesOfApprox : public ApproxInt_SvSurfaces
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_ThePrmPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& Surf1, const BRepAdaptor_Surface& Surf2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Compute (Standard_Real& u1, Standard_Real& v1, Standard_Real& u2, Standard_Real& v2, gp_Pnt& Pt, gp_Vec& Tg, gp_Vec2d& Tguv1, gp_Vec2d& Tguv2);
|
||||
|
||||
Standard_EXPORT void Pnt (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Pnt& P);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Tangency (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& Tg);
|
||||
|
||||
Standard_EXPORT Standard_Boolean TangencyOnSurf1 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
|
||||
|
||||
Standard_EXPORT Standard_Boolean TangencyOnSurf2 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
gp_Pnt2d MyParOnS1;
|
||||
gp_Pnt2d MyParOnS2;
|
||||
gp_Pnt MyPnt;
|
||||
gp_Vec2d MyTguv1;
|
||||
gp_Vec2d MyTguv2;
|
||||
gp_Vec MyTg;
|
||||
Standard_Boolean MyIsTangent;
|
||||
Standard_Boolean MyHasBeenComputed;
|
||||
gp_Pnt2d MyParOnS1bis;
|
||||
gp_Pnt2d MyParOnS2bis;
|
||||
gp_Pnt MyPntbis;
|
||||
gp_Vec2d MyTguv1bis;
|
||||
gp_Vec2d MyTguv2bis;
|
||||
gp_Vec MyTgbis;
|
||||
Standard_Boolean MyIsTangentbis;
|
||||
Standard_Boolean MyHasBeenComputedbis;
|
||||
BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox MyIntersectionOn2S;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_ThePrmPrmSvSurfacesOfApprox_HeaderFile
|
45
src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx
Normal file
45
src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx
Normal file
@@ -0,0 +1,45 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRepApprox_SurfaceTool.hxx>
|
||||
#include <BRepApprox_ApproxLine.hxx>
|
||||
#include <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define Handle_TheLine Handle(BRepApprox_ApproxLine)
|
||||
#define TheLine BRepApprox_ApproxLine
|
||||
#define TheLine_hxx <BRepApprox_ApproxLine.hxx>
|
||||
#define ApproxInt_TheInt2S BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheInt2S_hxx <BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_TheFunctionOfTheInt2S BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheFunctionOfTheInt2S_hxx <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_TheFunctionOfTheInt2S BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_TheFunctionOfTheInt2S_hxx <BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#define ApproxInt_PrmPrmSvSurfaces BRepApprox_ThePrmPrmSvSurfacesOfApprox
|
||||
#define ApproxInt_PrmPrmSvSurfaces_hxx <BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx>
|
||||
#include <ApproxInt_PrmPrmSvSurfaces.gxx>
|
||||
|
@@ -0,0 +1,151 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_HeaderFile
|
||||
#define _BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
#include <math_FunctionSetWithDerivatives.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class StdFail_UndefinedDerivative;
|
||||
class BRepAdaptor_Surface;
|
||||
class BRepApprox_SurfaceTool;
|
||||
class IntSurf_Quadric;
|
||||
class IntSurf_QuadricTool;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class gp_Dir2d;
|
||||
|
||||
|
||||
|
||||
class BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox : public math_FunctionSetWithDerivatives
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox();
|
||||
|
||||
Standard_EXPORT BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& PS, const IntSurf_Quadric& IS);
|
||||
|
||||
Standard_EXPORT BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox(const IntSurf_Quadric& IS);
|
||||
|
||||
void Set (const BRepAdaptor_Surface& PS);
|
||||
|
||||
void SetImplicitSurface (const IntSurf_Quadric& IS);
|
||||
|
||||
void Set (const Standard_Real Tolerance);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_Real Root() const;
|
||||
|
||||
Standard_Real Tolerance() const;
|
||||
|
||||
const gp_Pnt& Point() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsTangent();
|
||||
|
||||
const gp_Vec& Direction3d();
|
||||
|
||||
const gp_Dir2d& Direction2d();
|
||||
|
||||
const BRepAdaptor_Surface& PSurface() const;
|
||||
|
||||
const IntSurf_Quadric& ISurface() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Address surf;
|
||||
Standard_Address func;
|
||||
Standard_Real u;
|
||||
Standard_Real v;
|
||||
Standard_Real tol;
|
||||
gp_Pnt pntsol;
|
||||
Standard_Real valf;
|
||||
Standard_Boolean computed;
|
||||
Standard_Boolean tangent;
|
||||
Standard_Real tgdu;
|
||||
Standard_Real tgdv;
|
||||
gp_Vec gradient;
|
||||
Standard_Boolean derived;
|
||||
gp_Vec d1u;
|
||||
gp_Vec d1v;
|
||||
gp_Vec d3d;
|
||||
gp_Dir2d d2d;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define TheISurface IntSurf_Quadric
|
||||
#define TheISurface_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheISurfaceTool IntSurf_QuadricTool
|
||||
#define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
|
||||
#define IntImp_ZerImpFunc BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox
|
||||
#define IntImp_ZerImpFunc_hxx <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
|
||||
#include <IntImp_ZerImpFunc.lxx>
|
||||
|
||||
#undef ThePSurface
|
||||
#undef ThePSurface_hxx
|
||||
#undef ThePSurfaceTool
|
||||
#undef ThePSurfaceTool_hxx
|
||||
#undef TheISurface
|
||||
#undef TheISurface_hxx
|
||||
#undef TheISurfaceTool
|
||||
#undef TheISurfaceTool_hxx
|
||||
#undef IntImp_ZerImpFunc
|
||||
#undef IntImp_ZerImpFunc_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_HeaderFile
|
@@ -0,0 +1,41 @@
|
||||
// Created on: 1995-06-06
|
||||
// Created by: Jean Yves LEBEY
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
|
||||
#include <StdFail_UndefinedDerivative.hxx>
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRepApprox_SurfaceTool.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntSurf_QuadricTool.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
|
||||
|
||||
#define ThePSurface BRepAdaptor_Surface
|
||||
#define ThePSurface_hxx <BRepAdaptor_Surface.hxx>
|
||||
#define ThePSurfaceTool BRepApprox_SurfaceTool
|
||||
#define ThePSurfaceTool_hxx <BRepApprox_SurfaceTool.hxx>
|
||||
#define TheISurface IntSurf_Quadric
|
||||
#define TheISurface_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheISurfaceTool IntSurf_QuadricTool
|
||||
#define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
|
||||
#define IntImp_ZerImpFunc BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox
|
||||
#define IntImp_ZerImpFunc_hxx <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
|
||||
#include <IntImp_ZerImpFunc.gxx>
|
||||
|
53
src/BRepApprox/FILES
Normal file
53
src/BRepApprox/FILES
Normal file
@@ -0,0 +1,53 @@
|
||||
BRepApprox_Approx.hxx
|
||||
BRepApprox_Approx_0.cxx
|
||||
BRepApprox_ApproxLine.cxx
|
||||
BRepApprox_ApproxLine.hxx
|
||||
BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx
|
||||
BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx
|
||||
BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_MyGradientbisOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx
|
||||
BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_0.cxx
|
||||
BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx
|
||||
BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx
|
||||
BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx
|
||||
BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx
|
||||
BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx
|
||||
BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx
|
||||
BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx
|
||||
BRepApprox_SurfaceTool.cxx
|
||||
BRepApprox_SurfaceTool.hxx
|
||||
BRepApprox_SurfaceTool.lxx
|
||||
BRepApprox_TheComputeLineBezierOfApprox.hxx
|
||||
BRepApprox_TheComputeLineBezierOfApprox_0.cxx
|
||||
BRepApprox_TheComputeLineOfApprox.hxx
|
||||
BRepApprox_TheComputeLineOfApprox_0.cxx
|
||||
BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx
|
||||
BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx
|
||||
BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx
|
||||
BRepApprox_TheImpPrmSvSurfacesOfApprox_0.cxx
|
||||
BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx
|
||||
BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx
|
||||
BRepApprox_TheMultiLineOfApprox.hxx
|
||||
BRepApprox_TheMultiLineOfApprox_0.cxx
|
||||
BRepApprox_TheMultiLineToolOfApprox.hxx
|
||||
BRepApprox_TheMultiLineToolOfApprox_0.cxx
|
||||
BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx
|
||||
BRepApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx
|
||||
BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx
|
||||
BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_0.cxx
|
Reference in New Issue
Block a user