Salome HOME
NRI : Merge from V1_2.
[modules/geom.git] / PARTITION / Partition_Loop3d.hxx
1 //  GEOM PARTITION : partition algorithm
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : Partition_Loop3d.hxx
8 //  Module : GEOM
9
10 #ifndef _Partition_Loop3d_HeaderFile
11 #define _Partition_Loop3d_HeaderFile
12
13 #ifndef _TopTools_ListOfShape_HeaderFile
14 #include <TopTools_ListOfShape.hxx>
15 #endif
16 #ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
17 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
18 #endif
19 #ifndef _Standard_Boolean_HeaderFile
20 #include <Standard_Boolean.hxx>
21 #endif
22 #ifndef _Standard_Real_HeaderFile
23 #include <Standard_Real.hxx>
24 #endif
25 class TopoDS_Shape;
26 class TopTools_ListOfShape;
27 class TopTools_MapOfOrientedShape;
28 class TopoDS_Edge;
29 class TopoDS_Face;
30 class gp_Vec;
31
32
33 #ifndef _Standard_HeaderFile
34 #include <Standard.hxx>
35 #endif
36 #ifndef _Standard_Macro_HeaderFile
37 #include <Standard_Macro.hxx>
38 #endif
39
40 class Partition_Loop3d  {
41
42 public:
43
44     void* operator new(size_t,void* anAddress) 
45       {
46         return anAddress;
47       }
48     void* operator new(size_t size) 
49       { 
50         return Standard::Allocate(size); 
51       }
52     void  operator delete(void *anAddress) 
53       { 
54         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
55       }
56  // Methods PUBLIC
57  // 
58 Standard_EXPORT Partition_Loop3d();
59 Standard_EXPORT   void AddConstFaces(const TopoDS_Shape& S) ;
60 Standard_EXPORT   void AddSectionFaces(const TopoDS_Shape& S) ;
61 Standard_EXPORT  const TopTools_ListOfShape& MakeShells(const TopTools_MapOfOrientedShape& AvoidFacesMap) ;
62 Standard_EXPORT static  Standard_Boolean IsInside(const TopoDS_Edge& E,const TopoDS_Face& F1,const TopoDS_Face& F2,const Standard_Boolean CountDot,Standard_Real& Dot,Standard_Boolean& GoodOri) ;
63 Standard_EXPORT static  gp_Vec Normal(const TopoDS_Edge& E,const TopoDS_Face& F) ;
64
65
66
67
68
69 protected:
70
71  // Methods PROTECTED
72  // 
73
74
75  // Fields PROTECTED
76  //
77
78
79 private: 
80
81  // Methods PRIVATE
82  // 
83
84
85  // Fields PRIVATE
86  //
87 TopTools_ListOfShape myNewShells;
88 TopTools_ListOfShape myFaces;
89 TopTools_IndexedDataMapOfShapeListOfShape myEFMap;
90
91
92 };
93
94
95
96
97
98 // other Inline functions and methods (like "C++: function call" methods)
99 //
100
101
102 #endif