summaryrefslogtreecommitdiff
path: root/inc/IntPatch_GLine.hxx
blob: 4074a12893ee9fd60f890c3665cd6d4669d57948 (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
// 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_GLine_HeaderFile
#define _IntPatch_GLine_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_IntPatch_GLine_HeaderFile
#include <Handle_IntPatch_GLine.hxx>
#endif

#ifndef _gp_Ax2_HeaderFile
#include <gp_Ax2.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.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 _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
#ifndef _gp_Lin_HeaderFile
#include <gp_Lin.hxx>
#endif
#ifndef _gp_Circ_HeaderFile
#include <gp_Circ.hxx>
#endif
#ifndef _gp_Elips_HeaderFile
#include <gp_Elips.hxx>
#endif
#ifndef _gp_Parab_HeaderFile
#include <gp_Parab.hxx>
#endif
#ifndef _gp_Hypr_HeaderFile
#include <gp_Hypr.hxx>
#endif
class Standard_DomainError;
class Standard_OutOfRange;
class gp_Lin;
class gp_Circ;
class gp_Elips;
class gp_Parab;
class gp_Hypr;
class IntPatch_Point;


//! Implementation of an intersection line represented <br>
//!          by a conic. <br>
class IntPatch_GLine : public IntPatch_Line {

public:

  //! Creates a Line as intersection line <br>
//!          when the transitions are In or Out. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Lin& L,const Standard_Boolean Tang,const IntSurf_TypeTrans Trans1,const IntSurf_TypeTrans Trans2);
  //! Creates a Line as intersection line <br>
//!          when the transitions are Touch. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Lin& L,const Standard_Boolean Tang,const IntSurf_Situation Situ1,const IntSurf_Situation Situ2);
  //! Creates a Line as intersection line <br>
//!          when the transitions are Undecided. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Lin& L,const Standard_Boolean Tang);
  //! Creates a circle as intersection line <br>
//!          when the transitions are In or Out. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Circ& C,const Standard_Boolean Tang,const IntSurf_TypeTrans Trans1,const IntSurf_TypeTrans Trans2);
  //! Creates a circle as intersection line <br>
//!          when the transitions are Touch. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Circ& C,const Standard_Boolean Tang,const IntSurf_Situation Situ1,const IntSurf_Situation Situ2);
  //! Creates a circle as intersection line <br>
//!          when the transitions are Undecided. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Circ& C,const Standard_Boolean Tang);
  //! Creates an ellipse as intersection line <br>
//!          when the transitions are In or Out. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Elips& E,const Standard_Boolean Tang,const IntSurf_TypeTrans Trans1,const IntSurf_TypeTrans Trans2);
  //! Creates an ellispe as intersection line <br>
//!          when the transitions are Touch. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Elips& E,const Standard_Boolean Tang,const IntSurf_Situation Situ1,const IntSurf_Situation Situ2);
  //! Creates an ellipse as intersection line <br>
//!          when the transitions are Undecided. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Elips& E,const Standard_Boolean Tang);
  //! Creates a parabola as intersection line <br>
//!          when the transitions are In or Out. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Parab& P,const Standard_Boolean Tang,const IntSurf_TypeTrans Trans1,const IntSurf_TypeTrans Trans2);
  //! Creates a parabola as intersection line <br>
//!          when the transitions are Touch. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Parab& P,const Standard_Boolean Tang,const IntSurf_Situation Situ1,const IntSurf_Situation Situ2);
  //! Creates a parabola as intersection line <br>
//!          when the transitions are Undecided. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Parab& P,const Standard_Boolean Tang);
  //! Creates an hyperbola as intersection line <br>
//!          when the transitions are In or Out. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Hypr& H,const Standard_Boolean Tang,const IntSurf_TypeTrans Trans1,const IntSurf_TypeTrans Trans2);
  //! Creates an hyperbola as intersection line <br>
//!          when the transitions are Touch. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Hypr& H,const Standard_Boolean Tang,const IntSurf_Situation Situ1,const IntSurf_Situation Situ2);
  //! Creates an hyperbola as  intersection line <br>
//!          when the transitions are Undecided. <br>
  Standard_EXPORT   IntPatch_GLine(const gp_Hypr& H,const Standard_Boolean Tang);
  //! To add a vertex in the list. <br>
  Standard_EXPORT     void AddVertex(const IntPatch_Point& Pnt) ;
  //! To replace the element of range Index in the list <br>
//!          of points. <br>
  Standard_EXPORT     void Replace(const Standard_Integer Index,const IntPatch_Point& Pnt) ;
  
        void SetFirstPoint(const Standard_Integer IndFirst) ;
  
        void SetLastPoint(const Standard_Integer IndLast) ;
  //! Returns the Lin from gp corresponding to the intersection <br>
//!          when ArcType returns IntPatch_Line. <br>
        gp_Lin Line() const;
  //! Returns the Circ from gp corrsponding to the intersection <br>
//!          when ArcType returns IntPatch_Circle. <br>
        gp_Circ Circle() const;
  //! Returns the Elips from gp corrsponding to the intersection <br>
//!          when ArcType returns IntPatch_Ellipse. <br>
        gp_Elips Ellipse() const;
  //! Returns the Parab from gp corrsponding to the intersection <br>
//!          when ArcType returns IntPatch_Parabola. <br>
        gp_Parab Parabola() const;
  //! Returns the Hypr from gp corrsponding to the intersection <br>
//!          when ArcType returns IntPatch_Hyperbola. <br>
        gp_Hypr Hyperbola() 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 IntPoint corresponding to the FirstPoint. <br>
//!          An exception is raised when HasFirstPoint returns False. <br>
       const IntPatch_Point& FirstPoint() const;
  //! Returns the IntPoint corresponding to the LastPoint. <br>
//!          An exception is raised when HasLastPoint returns False. <br>
       const IntPatch_Point& LastPoint() 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) ;




  DEFINE_STANDARD_RTTI(IntPatch_GLine)

protected:




private: 


gp_Ax2 pos;
Standard_Real par1;
Standard_Real par2;
Standard_Boolean fipt;
Standard_Boolean lapt;
Standard_Integer indf;
Standard_Integer indl;
IntPatch_SequenceOfPoint svtx;


};


#include <IntPatch_GLine.lxx>



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


#endif