summaryrefslogtreecommitdiff
path: root/inc/TopOpeBRep_VPointInter.hxx
blob: 8b03271c0db8b06ea2ff82a04446edde6f2a5991 (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
// 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 _TopOpeBRep_VPointInter_HeaderFile
#define _TopOpeBRep_VPointInter_HeaderFile

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

#ifndef _TopOpeBRep_PThePointOfIntersection_HeaderFile
#include <TopOpeBRep_PThePointOfIntersection.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _TopAbs_State_HeaderFile
#include <TopAbs_State.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _IntSurf_Transition_HeaderFile
#include <IntSurf_Transition.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
class Standard_DomainError;
class IntPatch_Point;
class gp_Pnt;
class TopoDS_Shape;
class gp_Pnt2d;
class TopoDS_Edge;
class TopoDS_Face;



class TopOpeBRep_VPointInter  {
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); 
  }

  
      TopOpeBRep_VPointInter();
  
  Standard_EXPORT     void SetPoint(const IntPatch_Point& P) ;
  
        void SetShapes(const Standard_Integer I1,const Standard_Integer I2) ;
  
        void GetShapes(Standard_Integer& I1,Standard_Integer& I2) const;
  
        IntSurf_Transition TransitionOnS1() const;
  
        IntSurf_Transition TransitionOnS2() const;
  
        IntSurf_Transition TransitionLineArc1() const;
  
        IntSurf_Transition TransitionLineArc2() const;
  
        Standard_Boolean IsOnDomS1() const;
  
        Standard_Boolean IsOnDomS2() const;
  
        void ParametersOnS1(Standard_Real& u,Standard_Real& v) const;
  
        void ParametersOnS2(Standard_Real& u,Standard_Real& v) const;
  
       const gp_Pnt& Value() const;
  
        Standard_Real Tolerance() const;
  
  Standard_EXPORT    const TopoDS_Shape& ArcOnS1() const;
  
  Standard_EXPORT    const TopoDS_Shape& ArcOnS2() const;
  
        Standard_Real ParameterOnLine() const;
  
        Standard_Real ParameterOnArc1() const;
  //! Returns TRUE if the point is a vertex on the initial <br>
//!          restriction facet of the first surface. <br>
        Standard_Boolean IsVertexOnS1() const;
  //! Returns the information about the point when it is <br>
//!          on the domain of the first patch, i-e when the function <br>
//!          IsVertexOnS1 returns True. <br>
//!          Otherwise, an exception is raised. <br>
  Standard_EXPORT    const TopoDS_Shape& VertexOnS1() const;
  
        Standard_Real ParameterOnArc2() const;
  //! Returns TRUE if the point is a vertex on the initial <br>
//!          restriction facet of the second surface. <br>
        Standard_Boolean IsVertexOnS2() const;
  //! Returns the information about the point when it is <br>
//!          on the domain of the second patch, i-e when the function <br>
//!          IsVertexOnS2 returns True. <br>
//!          Otherwise, an exception is raised. <br>
  Standard_EXPORT    const TopoDS_Shape& VertexOnS2() const;
  
        Standard_Boolean IsInternal() const;
  //! Returns True if the point belongs to several intersection <br>
//!          lines. <br>
        Standard_Boolean IsMultiple() const;
  //! get state of VPoint within the domain of geometric shape <br>
//!          domain <I> (= 1 or 2). <br>
  Standard_EXPORT     TopAbs_State State(const Standard_Integer I) const;
  //! Set the state of VPoint within the  domain of <br>
//!          the geometric shape <I> (= 1 or 2). <br>
  Standard_EXPORT     void State(const TopAbs_State S,const Standard_Integer I) ;
  //! set the shape Eon of shape I (1,2) containing the point, <br>
//!          and parameter <Par> of point on <Eon>. <br>
  Standard_EXPORT     void EdgeON(const TopoDS_Shape& Eon,const Standard_Real Par,const Standard_Integer I) ;
  //! get the edge of shape I (1,2) containing the point. <br>
  Standard_EXPORT    const TopoDS_Shape& EdgeON(const Standard_Integer I) const;
  //! get the parameter on edge of shape I (1,2) containing the point. <br>
  Standard_EXPORT     Standard_Real EdgeONParameter(const Standard_Integer I) const;
  //! returns value of filed myShapeIndex = 0,1,2,3 <br>
//!          0 means the VPoint is on no restriction <br>
//!          1 means the VPoint is on the restriction 1 <br>
//!          2 means the VPoint is on the restriction 2 <br>
//!          3 means the VPoint is on the restrictions 1 and 2 <br>
        Standard_Integer ShapeIndex() const;
  //! set value of shape supporting me (0,1,2,3). <br>
        void ShapeIndex(const Standard_Integer I) ;
  //! get the edge of shape I (1,2) containing the point. <br>
//!          Returned shape is null if the VPoint is not on an edge <br>
//!          of shape I (1,2). <br>
  Standard_EXPORT    const TopoDS_Shape& Edge(const Standard_Integer I) const;
  //! get the parameter on edge of shape I (1,2) containing the point <br>
  Standard_EXPORT     Standard_Real EdgeParameter(const Standard_Integer I) const;
  //! get the parameter on surface of shape I (1,2) containing the point <br>
  Standard_EXPORT     gp_Pnt2d SurfaceParameters(const Standard_Integer I) const;
  
  Standard_EXPORT     Standard_Boolean IsVertex(const Standard_Integer I) const;
  
  Standard_EXPORT    const TopoDS_Shape& Vertex(const Standard_Integer I) const;
  //! set myKeep value according to current states. <br>
  Standard_EXPORT     void UpdateKeep() ;
  
//! Returns value of myKeep (does not evaluate states) <br>
//! False at creation of VPoint. <br>
//! Updated by State(State from TopAbs,Integer from Standard) <br>
        Standard_Boolean Keep() const;
  //! updates VPointInter flag "keep" with <keep>. <br>
        void ChangeKeep(const Standard_Boolean keep) ;
  //! returns <True> if the 3d points and the parameters of the <br>
//!          VPoints are same <br>
  Standard_EXPORT     Standard_Boolean EqualpP(const TopOpeBRep_VPointInter& VP) const;
  //! returns <false> if the vpoint is not given on arc <E>, <br>
//!          else returns <par> parameter on <E> <br>
  Standard_EXPORT     Standard_Boolean ParonE(const TopoDS_Edge& E,Standard_Real& par) const;
  
        void Index(const Standard_Integer I) ;
  
        Standard_Integer Index() const;
  
  Standard_EXPORT     Standard_OStream& Dump(const Standard_Integer I,const TopoDS_Face& F,Standard_OStream& OS) const;
  
  Standard_EXPORT     Standard_OStream& Dump(const TopoDS_Face& F1,const TopoDS_Face& F2,Standard_OStream& OS) const;
  
  Standard_EXPORT     TopOpeBRep_PThePointOfIntersection PThePointOfIntersectionDummy() const;





protected:





private:



TopOpeBRep_PThePointOfIntersection myPPOI;
Standard_Integer myShapeIndex;
TopAbs_State myState1;
TopAbs_State myState2;
Standard_Boolean myKeep;
TopoDS_Shape myEdgeON1;
TopoDS_Shape myEdgeON2;
Standard_Real myEdgeONPar1;
Standard_Real myEdgeONPar2;
Standard_Integer myIndex;
TopoDS_Shape myNullShape;
Standard_Integer myS1;
Standard_Integer myS2;


};


#include <TopOpeBRep_VPointInter.lxx>



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


#endif