summaryrefslogtreecommitdiff
path: root/inc/IntPatch_TheIWalking.hxx
blob: 23e7b464ee60213baaaacfa8340c4aea19a97d6e (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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
// 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 _IntPatch_TheIWalking_HeaderFile
#define _IntPatch_TheIWalking_HeaderFile

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

#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _IntSurf_SequenceOfPathPoint_HeaderFile
#include <IntSurf_SequenceOfPathPoint.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _math_Vector_HeaderFile
#include <math_Vector.hxx>
#endif
#ifndef _TColStd_SequenceOfReal_HeaderFile
#include <TColStd_SequenceOfReal.hxx>
#endif
#ifndef _TColStd_SequenceOfInteger_HeaderFile
#include <TColStd_SequenceOfInteger.hxx>
#endif
#ifndef _IntSurf_PntOn2S_HeaderFile
#include <IntSurf_PntOn2S.hxx>
#endif
#ifndef _gp_Vec_HeaderFile
#include <gp_Vec.hxx>
#endif
#ifndef _gp_Dir2d_HeaderFile
#include <gp_Dir2d.hxx>
#endif
#ifndef _IntPatch_SequenceOfIWLineOfTheIWalking_HeaderFile
#include <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#endif
#ifndef _Handle_Adaptor3d_HSurface_HeaderFile
#include <Handle_Adaptor3d_HSurface.hxx>
#endif
#ifndef _Handle_IntPatch_TheIWLineOfTheIWalking_HeaderFile
#include <Handle_IntPatch_TheIWLineOfTheIWalking.hxx>
#endif
#ifndef _Handle_IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking_HeaderFile
#include <Handle_IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _IntWalk_StatusDeflection_HeaderFile
#include <IntWalk_StatusDeflection.hxx>
#endif
class StdFail_NotDone;
class Standard_OutOfRange;
class IntSurf_PathPoint;
class IntSurf_PathPointTool;
class IntSurf_SequenceOfPathPoint;
class IntSurf_InteriorPoint;
class IntSurf_InteriorPointTool;
class IntSurf_SequenceOfInteriorPoint;
class Adaptor3d_HSurface;
class Adaptor3d_HSurfaceTool;
class IntPatch_TheSurfFunction;
class IntPatch_TheIWLineOfTheIWalking;
class IntPatch_SequenceOfIWLineOfTheIWalking;
class IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking;
class math_Vector;
class TColStd_SequenceOfReal;
class IntSurf_PntOn2S;



class IntPatch_TheIWalking  {
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   IntPatch_TheIWalking();
  
  Standard_EXPORT   IntPatch_TheIWalking(const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Step);
  
        void SetTolerance(const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Step) ;
  
  Standard_EXPORT     void Perform(const IntSurf_SequenceOfPathPoint& Pnts1,const IntSurf_SequenceOfInteriorPoint& Pnts2,IntPatch_TheSurfFunction& Func,const Handle(Adaptor3d_HSurface)& S,const Standard_Boolean Reversed = Standard_False) ;
  
  Standard_EXPORT     void Perform(const IntSurf_SequenceOfPathPoint& Pnts1,IntPatch_TheSurfFunction& Func,const Handle(Adaptor3d_HSurface)& S,const Standard_Boolean Reversed = Standard_False) ;
  
        Standard_Boolean IsDone() const;
  
        Standard_Integer NbLines() const;
  
       const Handle_IntPatch_TheIWLineOfTheIWalking& Value(const Standard_Integer Index) const;
  
        Standard_Integer NbSinglePnts() const;
  
       const IntSurf_PathPoint& SinglePnt(const Standard_Integer Index) const;





protected:

  
  Standard_EXPORT     Standard_Boolean Cadrage(math_Vector& BornInf,math_Vector& BornSup,math_Vector& UVap,Standard_Real& Step,const Standard_Integer StepSign) const;
  
  Standard_EXPORT     Standard_Boolean TestArretPassage(const TColStd_SequenceOfReal& Umult,const TColStd_SequenceOfReal& Vmult,IntPatch_TheSurfFunction& Section,math_Vector& UV,Standard_Integer& Irang) ;
  
  Standard_EXPORT     Standard_Boolean TestArretPassage(const TColStd_SequenceOfReal& Umult,const TColStd_SequenceOfReal& Vmult,const math_Vector& UV,const Standard_Integer Index,Standard_Integer& Irang) ;
  
  Standard_EXPORT     Standard_Boolean TestArretAjout(IntPatch_TheSurfFunction& Section,math_Vector& UV,Standard_Integer& Irang,IntSurf_PntOn2S& PSol) ;
  
  Standard_EXPORT     void TestArretCadre(const TColStd_SequenceOfReal& Umult,const TColStd_SequenceOfReal& Vmult,const Handle(IntPatch_TheIWLineOfTheIWalking)& Line,IntPatch_TheSurfFunction& Section,math_Vector& UV,Standard_Integer& Irang) ;
  
  Standard_EXPORT     IntWalk_StatusDeflection TestDeflection(IntPatch_TheSurfFunction& Section,const Standard_Boolean Finished,const math_Vector& UV,const IntWalk_StatusDeflection StatusPrecedent,Standard_Integer& NbDivision,Standard_Real& Step,const Standard_Integer StepSign) ;
  
  Standard_EXPORT     void ComputeOpenLine(const TColStd_SequenceOfReal& Umult,const TColStd_SequenceOfReal& Vmult,const IntSurf_SequenceOfPathPoint& Pnts1,IntPatch_TheSurfFunction& Section,Standard_Boolean& Rajout) ;
  
  Standard_EXPORT     void OpenLine(const Standard_Integer N,const IntSurf_PntOn2S& Psol,const IntSurf_SequenceOfPathPoint& Pnts1,IntPatch_TheSurfFunction& Section,const Handle(IntPatch_TheIWLineOfTheIWalking)& Line) ;
  
  Standard_EXPORT     void ComputeCloseLine(const TColStd_SequenceOfReal& Umult,const TColStd_SequenceOfReal& Vmult,const IntSurf_SequenceOfPathPoint& Pnts1,const IntSurf_SequenceOfInteriorPoint& Pnts2,IntPatch_TheSurfFunction& Section,Standard_Boolean& Rajout) ;
  
  Standard_EXPORT     void AddPointInCurrentLine(const Standard_Integer N,const IntSurf_PathPoint& PathPnt,const Handle(IntPatch_TheIWLineOfTheIWalking)& CurrentLine) const;
  
  Standard_EXPORT     void MakeWalkingPoint(const Standard_Integer Case,const Standard_Real U,const Standard_Real V,IntPatch_TheSurfFunction& Section,IntSurf_PntOn2S& Psol) ;




private:



Standard_Boolean done;
IntSurf_SequenceOfPathPoint seqSingle;
Standard_Real fleche;
Standard_Real pas;
math_Vector tolerance;
Standard_Real epsilon;
Standard_Boolean reversed;
TColStd_SequenceOfReal ustart1;
TColStd_SequenceOfReal vstart1;
TColStd_SequenceOfInteger nbMultiplicities;
TColStd_SequenceOfInteger etat1;
TColStd_SequenceOfReal ustart2;
TColStd_SequenceOfReal vstart2;
TColStd_SequenceOfInteger etat2;
Standard_Real Um;
Standard_Real UM;
Standard_Real Vm;
Standard_Real VM;
IntSurf_PntOn2S previousPoint;
Standard_Boolean prevtg;
gp_Vec previousd3d;
gp_Dir2d previousd2d;
TColStd_SequenceOfInteger seqAjout;
IntPatch_SequenceOfIWLineOfTheIWalking lines;


};

#define ThePointOfPath IntSurf_PathPoint
#define ThePointOfPath_hxx <IntSurf_PathPoint.hxx>
#define ThePointOfPathTool IntSurf_PathPointTool
#define ThePointOfPathTool_hxx <IntSurf_PathPointTool.hxx>
#define ThePOPIterator IntSurf_SequenceOfPathPoint
#define ThePOPIterator_hxx <IntSurf_SequenceOfPathPoint.hxx>
#define ThePointOfLoop IntSurf_InteriorPoint
#define ThePointOfLoop_hxx <IntSurf_InteriorPoint.hxx>
#define ThePointOfLoopTool IntSurf_InteriorPointTool
#define ThePointOfLoopTool_hxx <IntSurf_InteriorPointTool.hxx>
#define ThePOLIterator IntSurf_SequenceOfInteriorPoint
#define ThePOLIterator_hxx <IntSurf_SequenceOfInteriorPoint.hxx>
#define ThePSurface Handle_Adaptor3d_HSurface
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define TheIWFunction IntPatch_TheSurfFunction
#define TheIWFunction_hxx <IntPatch_TheSurfFunction.hxx>
#define IntWalk_TheIWLine IntPatch_TheIWLineOfTheIWalking
#define IntWalk_TheIWLine_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceOfIWLine IntPatch_SequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceOfIWLine_hxx <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceNodeOfSequenceOfIWLine IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceNodeOfSequenceOfIWLine_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceNodeOfSequenceOfIWLine IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceNodeOfSequenceOfIWLine_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define Handle_IntWalk_TheIWLine Handle_IntPatch_TheIWLineOfTheIWalking
#define IntWalk_TheIWLine_Type_() IntPatch_TheIWLineOfTheIWalking_Type_()
#define Handle_IntWalk_SequenceNodeOfSequenceOfIWLine Handle_IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceNodeOfSequenceOfIWLine_Type_() IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking_Type_()
#define Handle_IntWalk_SequenceNodeOfSequenceOfIWLine Handle_IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceNodeOfSequenceOfIWLine_Type_() IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking_Type_()
#define IntWalk_IWalking IntPatch_TheIWalking
#define IntWalk_IWalking_hxx <IntPatch_TheIWalking.hxx>

#include <IntWalk_IWalking.lxx>

#undef ThePointOfPath
#undef ThePointOfPath_hxx
#undef ThePointOfPathTool
#undef ThePointOfPathTool_hxx
#undef ThePOPIterator
#undef ThePOPIterator_hxx
#undef ThePointOfLoop
#undef ThePointOfLoop_hxx
#undef ThePointOfLoopTool
#undef ThePointOfLoopTool_hxx
#undef ThePOLIterator
#undef ThePOLIterator_hxx
#undef ThePSurface
#undef ThePSurface_hxx
#undef ThePSurfaceTool
#undef ThePSurfaceTool_hxx
#undef TheIWFunction
#undef TheIWFunction_hxx
#undef IntWalk_TheIWLine
#undef IntWalk_TheIWLine_hxx
#undef IntWalk_SequenceOfIWLine
#undef IntWalk_SequenceOfIWLine_hxx
#undef IntWalk_SequenceNodeOfSequenceOfIWLine
#undef IntWalk_SequenceNodeOfSequenceOfIWLine_hxx
#undef IntWalk_SequenceNodeOfSequenceOfIWLine
#undef IntWalk_SequenceNodeOfSequenceOfIWLine_hxx
#undef Handle_IntWalk_TheIWLine
#undef IntWalk_TheIWLine_Type_
#undef Handle_IntWalk_SequenceNodeOfSequenceOfIWLine
#undef IntWalk_SequenceNodeOfSequenceOfIWLine_Type_
#undef Handle_IntWalk_SequenceNodeOfSequenceOfIWLine
#undef IntWalk_SequenceNodeOfSequenceOfIWLine_Type_
#undef IntWalk_IWalking
#undef IntWalk_IWalking_hxx


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


#endif