summaryrefslogtreecommitdiff
path: root/inc/AppDef_Compute.hxx
blob: 760e00aadd3bd6d6fc7bdcf607b5e90c891d1387 (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
// 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 _AppDef_Compute_HeaderFile
#define _AppDef_Compute_HeaderFile

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

#ifndef _AppParCurves_SequenceOfMultiCurve_HeaderFile
#include <AppParCurves_SequenceOfMultiCurve.hxx>
#endif
#ifndef _AppParCurves_MultiCurve_HeaderFile
#include <AppParCurves_MultiCurve.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 _Approx_SequenceOfHArray1OfReal_HeaderFile
#include <Approx_SequenceOfHArray1OfReal.hxx>
#endif
#ifndef _TColStd_SequenceOfReal_HeaderFile
#include <TColStd_SequenceOfReal.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 AppParCurves_HArray1OfConstraintCouple;
class AppDef_MultiLine;
class AppDef_MyLineTool;
class AppDef_MyGradientOfCompute;
class AppDef_ParLeastSquareOfMyGradientOfCompute;
class AppDef_ResConstraintOfMyGradientOfCompute;
class AppDef_ParFunctionOfMyGradientOfCompute;
class AppDef_Gradient_BFGSOfMyGradientOfCompute;
class math_Vector;
class AppParCurves_MultiCurve;
class AppParCurves_MultiBSpCurve;
class TColStd_Array1OfReal;



class AppDef_Compute  {
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   AppDef_Compute(const AppDef_MultiLine& 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   AppDef_Compute(const AppDef_MultiLine& 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   AppDef_Compute(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   AppDef_Compute(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 AppDef_MultiLine& 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 AppDef_MultiLine& Line,const Standard_Integer fpt,const Standard_Integer lpt,math_Vector& Para,Standard_Real& TheTol3d,Standard_Real& TheTol2d) ;
  
  Standard_EXPORT     Standard_Boolean ComputeCurve(const AppDef_MultiLine& Line,const Standard_Integer firspt,const Standard_Integer lastpt) ;
  
  Standard_EXPORT     void Parameters(const AppDef_MultiLine& Line,const Standard_Integer firstP,const Standard_Integer LastP,math_Vector& TheParameters) const;
  
  Standard_EXPORT     Standard_Real SearchFirstLambda(const AppDef_MultiLine& Line,const math_Vector& Para,const math_Vector& V,const Standard_Integer index) const;
  
  Standard_EXPORT     Standard_Real SearchLastLambda(const AppDef_MultiLine& Line,const math_Vector& Para,const math_Vector& V,const Standard_Integer index) const;
  
  Standard_EXPORT     void FirstTangencyVector(const AppDef_MultiLine& Line,const Standard_Integer index,math_Vector& V) const;
  
  Standard_EXPORT     void LastTangencyVector(const AppDef_MultiLine& 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;


};





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


#endif