summaryrefslogtreecommitdiff
path: root/inc/BRepOffset_Analyse.hxx
blob: 1225a634ff6cad306bc0c1187937be6aed5b5bc5 (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
// 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 _BRepOffset_Analyse_HeaderFile
#define _BRepOffset_Analyse_HeaderFile

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

#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _BRepOffset_DataMapOfShapeListOfInterval_HeaderFile
#include <BRepOffset_DataMapOfShapeListOfInterval.hxx>
#endif
#ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _BRepOffset_Type_HeaderFile
#include <BRepOffset_Type.hxx>
#endif
class TopoDS_Shape;
class BRepOffset_ListOfInterval;
class TopoDS_Edge;
class TopoDS_Vertex;
class TopTools_ListOfShape;
class TopoDS_Face;
class TopoDS_Compound;
class TopTools_MapOfShape;


//! Analyse of a shape consit to <br>
//!          Find the part of edges convex concave tangent. <br>
class BRepOffset_Analyse  {
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   BRepOffset_Analyse();
  
  Standard_EXPORT   BRepOffset_Analyse(const TopoDS_Shape& S,const Standard_Real Angle);
  
  Standard_EXPORT     void Perform(const TopoDS_Shape& S,const Standard_Real Angle) ;
  
  Standard_EXPORT     Standard_Boolean IsDone() const;
  
  Standard_EXPORT     void Clear() ;
  
  Standard_EXPORT    const BRepOffset_ListOfInterval& Type(const TopoDS_Edge& E) const;
  //! Stores in <L> all the edges of Type <T> <br>
//!          on the vertex <V>. <br>
  Standard_EXPORT     void Edges(const TopoDS_Vertex& V,const BRepOffset_Type T,TopTools_ListOfShape& L) const;
  //! Stores in <L> all the edges of Type <T> <br>
//!          on the face <F>. <br>
  Standard_EXPORT     void Edges(const TopoDS_Face& F,const BRepOffset_Type T,TopTools_ListOfShape& L) const;
  //! set in <Edges> all  the Edges of <Shape> which are <br>
//!          tangent to <Edge> at the vertex <Vertex>. <br>
  Standard_EXPORT     void TangentEdges(const TopoDS_Edge& Edge,const TopoDS_Vertex& Vertex,TopTools_ListOfShape& Edges) const;
  
  Standard_EXPORT     Standard_Boolean HasAncestor(const TopoDS_Shape& S) const;
  
  Standard_EXPORT    const TopTools_ListOfShape& Ancestors(const TopoDS_Shape& S) const;
  //! Explode in compounds of faces where <br>
//!          all the connex edges are of type <Side> <br>
  Standard_EXPORT     void Explode(TopTools_ListOfShape& L,const BRepOffset_Type Type) const;
  //! Explode in compounds of faces where <br>
//!          all the connex edges are of type <Side1> or <Side2> <br>
  Standard_EXPORT     void Explode(TopTools_ListOfShape& L,const BRepOffset_Type Type1,const BRepOffset_Type Type2) const;
  //! Add in <CO> the faces of the shell containing <Face> <br>
//!          where all the connex edges are of type <Side>. <br>
  Standard_EXPORT     void AddFaces(const TopoDS_Face& Face,TopoDS_Compound& Co,TopTools_MapOfShape& Map,const BRepOffset_Type Type) const;
  //! Add in <CO> the faces of the shell containing <Face> <br>
//!          where all the connex edges are of type <Side1> or <Side2>. <br>
  Standard_EXPORT     void AddFaces(const TopoDS_Face& Face,TopoDS_Compound& Co,TopTools_MapOfShape& Map,const BRepOffset_Type Type1,const BRepOffset_Type Type2) const;





protected:





private:



Standard_Boolean myDone;
TopoDS_Shape myShape;
BRepOffset_DataMapOfShapeListOfInterval mapEdgeType;
TopTools_IndexedDataMapOfShapeListOfShape ancestors;
Standard_Real angle;


};





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


#endif