summaryrefslogtreecommitdiff
path: root/inc/Prs3d_ShapeTool.hxx
blob: 9663580a1792433c32646b02888fe996805e7401 (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 _Prs3d_ShapeTool_HeaderFile
#define _Prs3d_ShapeTool_HeaderFile

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

#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _TopExp_Explorer_HeaderFile
#include <TopExp_Explorer.hxx>
#endif
#ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#endif
#ifndef _TopTools_IndexedMapOfShape_HeaderFile
#include <TopTools_IndexedMapOfShape.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_TopTools_HSequenceOfShape_HeaderFile
#include <Handle_TopTools_HSequenceOfShape.hxx>
#endif
#ifndef _Handle_Poly_Triangulation_HeaderFile
#include <Handle_Poly_Triangulation.hxx>
#endif
#ifndef _Handle_Poly_PolygonOnTriangulation_HeaderFile
#include <Handle_Poly_PolygonOnTriangulation.hxx>
#endif
#ifndef _Handle_Poly_Polygon3D_HeaderFile
#include <Handle_Poly_Polygon3D.hxx>
#endif
class TopoDS_Shape;
class TopoDS_Face;
class Bnd_Box;
class TopoDS_Edge;
class TopTools_HSequenceOfShape;
class TopoDS_Vertex;
class Poly_Triangulation;
class TopLoc_Location;
class Poly_PolygonOnTriangulation;
class Poly_Polygon3D;



class Prs3d_ShapeTool  {
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   Prs3d_ShapeTool(const TopoDS_Shape& TheShape);
  
  Standard_EXPORT     void InitFace() ;
  
  Standard_EXPORT     Standard_Boolean MoreFace() const;
  
  Standard_EXPORT     void NextFace() ;
  
  Standard_EXPORT    const TopoDS_Face& GetFace() const;
  
  Standard_EXPORT     Bnd_Box FaceBound() const;
  
  Standard_EXPORT     Standard_Boolean IsPlanarFace() const;
  
  Standard_EXPORT     void InitCurve() ;
  
  Standard_EXPORT     Standard_Boolean MoreCurve() const;
  
  Standard_EXPORT     void NextCurve() ;
  
  Standard_EXPORT    const TopoDS_Edge& GetCurve() const;
  
  Standard_EXPORT     Bnd_Box CurveBound() const;
  
  Standard_EXPORT     Standard_Integer Neighbours() const;
  
  Standard_EXPORT     Handle_TopTools_HSequenceOfShape FacesOfEdge() const;
  
  Standard_EXPORT     void InitVertex() ;
  
  Standard_EXPORT     Standard_Boolean MoreVertex() const;
  
  Standard_EXPORT     void NextVertex() ;
  
  Standard_EXPORT    const TopoDS_Vertex& GetVertex() const;
  
  Standard_EXPORT     Standard_Boolean HasSurface() const;
  
  Standard_EXPORT     Handle_Poly_Triangulation CurrentTriangulation(TopLoc_Location& l) const;
  
  Standard_EXPORT     Standard_Boolean HasCurve() const;
  
  Standard_EXPORT     void PolygonOnTriangulation(Handle(Poly_PolygonOnTriangulation)& Indices,Handle(Poly_Triangulation)& T,TopLoc_Location& l) const;
  
  Standard_EXPORT     Handle_Poly_Polygon3D Polygon3D(TopLoc_Location& l) const;





protected:





private:



TopoDS_Shape myShape;
TopExp_Explorer myFaceExplorer;
TopTools_IndexedDataMapOfShapeListOfShape myEdgeMap;
TopTools_IndexedMapOfShape myVertexMap;
Standard_Integer myEdge;
Standard_Integer myVertex;


};





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


#endif