summaryrefslogtreecommitdiff
path: root/inc/IntPatch_WLine.hxx
blob: 2734e44db841462e8b181f4b75871d61da93936d (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
// 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_WLine_HeaderFile
#define _IntPatch_WLine_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_IntPatch_WLine_HeaderFile
#include <Handle_IntPatch_WLine.hxx>
#endif

#ifndef _Handle_IntSurf_LineOn2S_HeaderFile
#include <Handle_IntSurf_LineOn2S.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _IntPatch_SequenceOfPoint_HeaderFile
#include <IntPatch_SequenceOfPoint.hxx>
#endif
#ifndef _Bnd_Box2d_HeaderFile
#include <Bnd_Box2d.hxx>
#endif
#ifndef _Bnd_Box_HeaderFile
#include <Bnd_Box.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_Adaptor2d_HCurve2d_HeaderFile
#include <Handle_Adaptor2d_HCurve2d.hxx>
#endif
#ifndef _IntPatch_Line_HeaderFile
#include <IntPatch_Line.hxx>
#endif
#ifndef _IntSurf_TypeTrans_HeaderFile
#include <IntSurf_TypeTrans.hxx>
#endif
#ifndef _IntSurf_Situation_HeaderFile
#include <IntSurf_Situation.hxx>
#endif
class IntSurf_LineOn2S;
class Adaptor2d_HCurve2d;
class Standard_OutOfRange;
class Standard_DomainError;
class IntPatch_Point;
class IntSurf_PntOn2S;
class gp_Pnt2d;
class gp_Pnt;


//! Definition of set of points as a result of the intersection <br>
//!          between 2 parametrised patches. <br>
class IntPatch_WLine : public IntPatch_Line {

public:

  //! Creates a WLine as an intersection when the <br>
//!          transitions are In or Out. <br>
  Standard_EXPORT   IntPatch_WLine(const Handle(IntSurf_LineOn2S)& Line,const Standard_Boolean Tang,const IntSurf_TypeTrans Trans1,const IntSurf_TypeTrans Trans2);
  //! Creates a WLine as an intersection when the <br>
//!          transitions are Touch. <br>
  Standard_EXPORT   IntPatch_WLine(const Handle(IntSurf_LineOn2S)& Line,const Standard_Boolean Tang,const IntSurf_Situation Situ1,const IntSurf_Situation Situ2);
  //! Creates a WLine as an intersection when the <br>
//!          transitions are Undecided. <br>
  Standard_EXPORT   IntPatch_WLine(const Handle(IntSurf_LineOn2S)& Line,const Standard_Boolean Tang);
  //! Adds a vertex in the list. <br>
        void AddVertex(const IntPatch_Point& Pnt) ;
  //! Set the Point of index <Index> in the LineOn2S <br>
  Standard_EXPORT     void SetPoint(const Standard_Integer Index,const IntPatch_Point& Pnt) ;
  //! Replaces the element of range Index in the list <br>
//!          of points. <br>
//!          The exception OutOfRange is raised when <br>
//!          Index <= 0 or Index > NbVertex. <br>
        void Replace(const Standard_Integer Index,const IntPatch_Point& Pnt) ;
  
        void SetFirstPoint(const Standard_Integer IndFirst) ;
  
        void SetLastPoint(const Standard_Integer IndLast) ;
  //! Returns the number of intersection points. <br>
        Standard_Integer NbPnts() const;
  //! Returns the intersection point of range Index. <br>
       const IntSurf_PntOn2S& Point(const Standard_Integer Index) const;
  //! Returns True if the line has a known First point. <br>
//!          This point is given by the method FirstPoint(). <br>
        Standard_Boolean HasFirstPoint() const;
  //! Returns True if the line has a known Last point. <br>
//!          This point is given by the method LastPoint(). <br>
        Standard_Boolean HasLastPoint() const;
  //! Returns the Point corresponding to the FirstPoint. <br>
       const IntPatch_Point& FirstPoint() const;
  //! Returns the Point corresponding to the LastPoint. <br>
       const IntPatch_Point& LastPoint() const;
  //! Returns the Point corresponding to the FirstPoint. <br>
//!          Indfirst is the index of the first in the list <br>
//!          of vertices. <br>
       const IntPatch_Point& FirstPoint(Standard_Integer& Indfirst) const;
  //! Returns the Point corresponding to the LastPoint. <br>
//!          Indlast is the index of the last in the list <br>
//!          of vertices. <br>
       const IntPatch_Point& LastPoint(Standard_Integer& Indlast) const;
  
        Standard_Integer NbVertex() const;
  //! Returns the vertex of range Index on the line. <br>
       const IntPatch_Point& Vertex(const Standard_Integer Index) const;
  //! Set the parameters of all the vertex on the line. <br>
//!          if a vertex is already in the line, <br>
//!             its parameter is modified <br>
//!          else a new point in the line is inserted. <br>
  Standard_EXPORT     void ComputeVertexParameters(const Standard_Real Tol) ;
  
  Standard_EXPORT     Handle_IntSurf_LineOn2S Curve() const;
  
  Standard_EXPORT     Standard_Boolean IsOutSurf1Box(const gp_Pnt2d& P1) ;
  
  Standard_EXPORT     Standard_Boolean IsOutSurf2Box(const gp_Pnt2d& P1) ;
  
  Standard_EXPORT     Standard_Boolean IsOutBox(const gp_Pnt& P) ;
  
  Standard_EXPORT     void SetPeriod(const Standard_Real pu1,const Standard_Real pv1,const Standard_Real pu2,const Standard_Real pv2) ;
  
  Standard_EXPORT     Standard_Real U1Period() const;
  
  Standard_EXPORT     Standard_Real V1Period() const;
  
  Standard_EXPORT     Standard_Real U2Period() const;
  
  Standard_EXPORT     Standard_Real V2Period() const;
  
  Standard_EXPORT     void SetArcOnS1(const Handle(Adaptor2d_HCurve2d)& A) ;
  
  Standard_EXPORT     Standard_Boolean HasArcOnS1() const;
  
  Standard_EXPORT    const Handle_Adaptor2d_HCurve2d& GetArcOnS1() const;
  
  Standard_EXPORT     void SetArcOnS2(const Handle(Adaptor2d_HCurve2d)& A) ;
  
  Standard_EXPORT     Standard_Boolean HasArcOnS2() const;
  
  Standard_EXPORT    const Handle_Adaptor2d_HCurve2d& GetArcOnS2() const;
  
  Standard_EXPORT     void Dump() const;




  DEFINE_STANDARD_RTTI(IntPatch_WLine)

protected:




private: 


Handle_IntSurf_LineOn2S curv;
Standard_Boolean fipt;
Standard_Boolean lapt;
Standard_Integer indf;
Standard_Integer indl;
IntPatch_SequenceOfPoint svtx;
Bnd_Box2d Buv1;
Bnd_Box2d Buv2;
Bnd_Box Bxyz;
Standard_Real u1period;
Standard_Real v1period;
Standard_Real u2period;
Standard_Real v2period;
Standard_Boolean hasArcOnS1;
Handle_Adaptor2d_HCurve2d theArcOnS1;
Standard_Boolean hasArcOnS2;
Handle_Adaptor2d_HCurve2d theArcOnS2;


};


#include <IntPatch_WLine.lxx>



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


#endif