summaryrefslogtreecommitdiff
path: root/inc/HLRTopoBRep_Data.hxx
blob: 696f35f2165b8881d59961c417125e9409886e34 (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
// 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 _HLRTopoBRep_Data_HeaderFile
#define _HLRTopoBRep_Data_HeaderFile

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

#ifndef _TopTools_DataMapOfShapeShape_HeaderFile
#include <TopTools_DataMapOfShapeShape.hxx>
#endif
#ifndef _TopTools_DataMapOfShapeListOfShape_HeaderFile
#include <TopTools_DataMapOfShapeListOfShape.hxx>
#endif
#ifndef _HLRTopoBRep_DataMapOfShapeFaceData_HeaderFile
#include <HLRTopoBRep_DataMapOfShapeFaceData.hxx>
#endif
#ifndef _TopTools_MapOfShape_HeaderFile
#include <TopTools_MapOfShape.hxx>
#endif
#ifndef _HLRTopoBRep_MapOfShapeListOfVData_HeaderFile
#include <HLRTopoBRep_MapOfShapeListOfVData.hxx>
#endif
#ifndef _HLRTopoBRep_DataMapIteratorOfMapOfShapeListOfVData_HeaderFile
#include <HLRTopoBRep_DataMapIteratorOfMapOfShapeListOfVData.hxx>
#endif
#ifndef _HLRTopoBRep_ListIteratorOfListOfVData_HeaderFile
#include <HLRTopoBRep_ListIteratorOfListOfVData.hxx>
#endif
#ifndef _Standard_Address_HeaderFile
#include <Standard_Address.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
class TopoDS_Edge;
class TopoDS_Face;
class TopoDS_Shape;
class TopTools_ListOfShape;
class TopoDS_Vertex;


//! Stores  the results  of  the  OutLine and  IsoLine <br>
//!          processes. <br>
class HLRTopoBRep_Data  {
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   HLRTopoBRep_Data();
  //! Clear of all the maps. <br>
  Standard_EXPORT     void Clear() ;
  //! Clear of all the data  not needed during and after <br>
//!          the hiding process. <br>
  Standard_EXPORT     void Clean() ;
  //! Returns True if the Edge is split. <br>
  Standard_EXPORT     Standard_Boolean EdgeHasSplE(const TopoDS_Edge& E) const;
  //! Returns True if the Face has internal outline. <br>
  Standard_EXPORT     Standard_Boolean FaceHasIntL(const TopoDS_Face& F) const;
  //! Returns True if the Face has outlines on restriction. <br>
  Standard_EXPORT     Standard_Boolean FaceHasOutL(const TopoDS_Face& F) const;
  //! Returns True if the Face has isolines. <br>
  Standard_EXPORT     Standard_Boolean FaceHasIsoL(const TopoDS_Face& F) const;
  
  Standard_EXPORT     Standard_Boolean IsSplEEdgeEdge(const TopoDS_Edge& E1,const TopoDS_Edge& E2) const;
  
  Standard_EXPORT     Standard_Boolean IsIntLFaceEdge(const TopoDS_Face& F,const TopoDS_Edge& E) const;
  
  Standard_EXPORT     Standard_Boolean IsOutLFaceEdge(const TopoDS_Face& F,const TopoDS_Edge& E) const;
  
  Standard_EXPORT     Standard_Boolean IsIsoLFaceEdge(const TopoDS_Face& F,const TopoDS_Edge& E) const;
  
  Standard_EXPORT     TopoDS_Shape NewSOldS(const TopoDS_Shape& New) const;
  //! Returns the list of the edges. <br>
       const TopTools_ListOfShape& EdgeSplE(const TopoDS_Edge& E) const;
  //! Returns the list of the internal OutLines. <br>
       const TopTools_ListOfShape& FaceIntL(const TopoDS_Face& F) const;
  //! Returns the list of the OutLines on restriction. <br>
       const TopTools_ListOfShape& FaceOutL(const TopoDS_Face& F) const;
  //! Returns the list of the IsoLines. <br>
       const TopTools_ListOfShape& FaceIsoL(const TopoDS_Face& F) const;
  //! Returns  True   if V is  an   outline vertex  on a <br>
//!          restriction. <br>
        Standard_Boolean IsOutV(const TopoDS_Vertex& V) const;
  //! Returns True if V is an internal outline vertex. <br>
        Standard_Boolean IsIntV(const TopoDS_Vertex& V) const;
  
  Standard_EXPORT     void AddOldS(const TopoDS_Shape& NewS,const TopoDS_Shape& OldS) ;
  
  Standard_EXPORT     TopTools_ListOfShape& AddSplE(const TopoDS_Edge& E) ;
  
  Standard_EXPORT     TopTools_ListOfShape& AddIntL(const TopoDS_Face& F) ;
  
  Standard_EXPORT     TopTools_ListOfShape& AddOutL(const TopoDS_Face& F) ;
  
  Standard_EXPORT     TopTools_ListOfShape& AddIsoL(const TopoDS_Face& F) ;
  
        void AddOutV(const TopoDS_Vertex& V) ;
  
        void AddIntV(const TopoDS_Vertex& V) ;
  
  Standard_EXPORT     void InitEdge() ;
  
        Standard_Boolean MoreEdge() const;
  
  Standard_EXPORT     void NextEdge() ;
  
       const TopoDS_Edge& Edge() const;
  //! Start an iteration on the vertices of E. <br>
  Standard_EXPORT     void InitVertex(const TopoDS_Edge& E) ;
  
        Standard_Boolean MoreVertex() const;
  
        void NextVertex() ;
  
  Standard_EXPORT    const TopoDS_Vertex& Vertex() const;
  
  Standard_EXPORT     Standard_Real Parameter() const;
  //! Insert before the current position. <br>
  Standard_EXPORT     void InsertBefore(const TopoDS_Vertex& V,const Standard_Real P) ;
  
  Standard_EXPORT     void Append(const TopoDS_Vertex& V,const Standard_Real P) ;





protected:





private:



TopTools_DataMapOfShapeShape myOldS;
TopTools_DataMapOfShapeListOfShape mySplE;
HLRTopoBRep_DataMapOfShapeFaceData myData;
TopTools_MapOfShape myOutV;
TopTools_MapOfShape myIntV;
HLRTopoBRep_MapOfShapeListOfVData myEdgesVertices;
HLRTopoBRep_DataMapIteratorOfMapOfShapeListOfVData myEIterator;
HLRTopoBRep_ListIteratorOfListOfVData myVIterator;
Standard_Address myVList;


};


#include <HLRTopoBRep_Data.lxx>



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


#endif