summaryrefslogtreecommitdiff
path: root/inc/BRepApprox_TheComputeLineOfApprox.hxx
blob: fdf067e82fc087f9d1ee085cd69acb2376beffe8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _BRepApprox_TheComputeLineOfApprox_HeaderFile
#define _BRepApprox_TheComputeLineOfApprox_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _AppParCurves_MultiBSpCurve_HeaderFile
#include <AppParCurves_MultiBSpCurve.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Approx_ParametrizationType_HeaderFile
#include <Approx_ParametrizationType.hxx>
#endif
#ifndef _Handle_TColStd_HArray1OfReal_HeaderFile
#include <Handle_TColStd_HArray1OfReal.hxx>
#endif
#ifndef _Handle_TColStd_HArray1OfInteger_HeaderFile
#include <Handle_TColStd_HArray1OfInteger.hxx>
#endif
#ifndef _Handle_AppParCurves_HArray1OfConstraintCouple_HeaderFile
#include <Handle_AppParCurves_HArray1OfConstraintCouple.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _AppParCurves_Constraint_HeaderFile
#include <AppParCurves_Constraint.hxx>
#endif
class TColStd_HArray1OfReal;
class TColStd_HArray1OfInteger;
class AppParCurves_HArray1OfConstraintCouple;
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 math_Vector;
class TColStd_Array1OfReal;
class TColStd_Array1OfInteger;
class AppParCurves_MultiBSpCurve;
class AppParCurves_MultiCurve;



class BRepApprox_TheComputeLineOfApprox  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  
  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;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif