summaryrefslogtreecommitdiff
path: root/inc/TopOpeBRepBuild_FaceBuilder.hxx
blob: 86d1ba89021c7612964cee5c60de1f7fff4d7a9c (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
// 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 _TopOpeBRepBuild_FaceBuilder_HeaderFile
#define _TopOpeBRepBuild_FaceBuilder_HeaderFile

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

#ifndef _TopoDS_Face_HeaderFile
#include <TopoDS_Face.hxx>
#endif
#ifndef _TopOpeBRepBuild_LoopSet_HeaderFile
#include <TopOpeBRepBuild_LoopSet.hxx>
#endif
#ifndef _TopOpeBRepBuild_BlockIterator_HeaderFile
#include <TopOpeBRepBuild_BlockIterator.hxx>
#endif
#ifndef _TopOpeBRepBuild_BlockBuilder_HeaderFile
#include <TopOpeBRepBuild_BlockBuilder.hxx>
#endif
#ifndef _TopOpeBRepBuild_FaceAreaBuilder_HeaderFile
#include <TopOpeBRepBuild_FaceAreaBuilder.hxx>
#endif
#ifndef _TopTools_DataMapOfShapeInteger_HeaderFile
#include <TopTools_DataMapOfShapeInteger.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class TopOpeBRepBuild_WireEdgeSet;
class TopoDS_Shape;
class TopTools_IndexedDataMapOfShapeShape;
class TopTools_IndexedMapOfShape;
class TopOpeBRepBuild_ShapeSet;



class TopOpeBRepBuild_FaceBuilder  {
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   TopOpeBRepBuild_FaceBuilder();
  //! Create a FaceBuilder to build the faces on <br>
//! the shapes (wires, blocks of edge) described by <LS>. <br>
  Standard_EXPORT   TopOpeBRepBuild_FaceBuilder(TopOpeBRepBuild_WireEdgeSet& ES,const TopoDS_Shape& F,const Standard_Boolean ForceClass = Standard_False);
  
  Standard_EXPORT     void InitFaceBuilder(TopOpeBRepBuild_WireEdgeSet& ES,const TopoDS_Shape& F,const Standard_Boolean ForceClass) ;
  //! Removes   are  non 3d-closed  wires. <br>
//!          Fills  up maps <mapVVsameG> and  <mapVon1Edge>,  in order to <br>
//!          correct 3d-closed but unclosed (topologic connexity) wires. <br>
//! modifies myBlockBuilder <br>
  Standard_EXPORT     void DetectUnclosedWire(TopTools_IndexedDataMapOfShapeShape& mapVVsameG,TopTools_IndexedDataMapOfShapeShape& mapVon1Edge) ;
  //! Using the given maps, change the topology of the 3d-closed <br>
//!          wires, in order to get closed wires. <br>
  Standard_EXPORT     void CorrectGclosedWire(const TopTools_IndexedDataMapOfShapeShape& mapVVref,const TopTools_IndexedDataMapOfShapeShape& mapVon1Edge) ;
  //! Removes edges appearing twice (FORWARD,REVERSED) with a bounding <br>
//!          vertex not connected to any other edge. <br>
//!          mapE contains edges found. <br>
//! modifies myBlockBuilder. <br>
  Standard_EXPORT     void DetectPseudoInternalEdge(TopTools_IndexedMapOfShape& mapE) ;
  //! return myFace <br>
  Standard_EXPORT    const TopoDS_Shape& Face() const;
  
  Standard_EXPORT     Standard_Integer InitFace() ;
  
  Standard_EXPORT     Standard_Boolean MoreFace() const;
  
  Standard_EXPORT     void NextFace() ;
  
  Standard_EXPORT     Standard_Integer InitWire() ;
  
  Standard_EXPORT     Standard_Boolean MoreWire() const;
  
  Standard_EXPORT     void NextWire() ;
  
  Standard_EXPORT     Standard_Boolean IsOldWire() const;
  //! Returns current wire <br>
//! This wire may be : <br>
//! * an old wire OldWire(), which has not been reconstructed; <br>
//! * a new wire made of edges described by ...NewEdge() methods. <br>
  Standard_EXPORT    const TopoDS_Shape& OldWire() const;
  //! Iterates on myBlockIterator until finding a valid element <br>
  Standard_EXPORT     void FindNextValidElement() ;
  
  Standard_EXPORT     Standard_Integer InitEdge() ;
  
  Standard_EXPORT     Standard_Boolean MoreEdge() const;
  
  Standard_EXPORT     void NextEdge() ;
  //! Returns current new edge of current new wire. <br>
  Standard_EXPORT    const TopoDS_Shape& Edge() const;
  
  Standard_EXPORT     Standard_Integer EdgeConnexity(const TopoDS_Shape& E) const;
  
  Standard_EXPORT     Standard_Integer AddEdgeWire(const TopoDS_Shape& E,TopoDS_Shape& W) const;





protected:





private:

  
  Standard_EXPORT     void MakeLoops(TopOpeBRepBuild_ShapeSet& SS) ;


TopoDS_Face myFace;
TopOpeBRepBuild_LoopSet myLoopSet;
TopOpeBRepBuild_BlockIterator myBlockIterator;
TopOpeBRepBuild_BlockBuilder myBlockBuilder;
TopOpeBRepBuild_FaceAreaBuilder myFaceAreaBuilder;
TopTools_DataMapOfShapeInteger myMOSI;


};





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


#endif