Salome HOME
Mantis issue 0021837: [CEA 654] Add new method to make any point inside a face.
[modules/geom.git] / src / GEOMImpl / GEOMImpl_ThruSectionsDriver.hxx
1 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 //  File   : GEOMImpl_ThruSectionsDriver.ixx
24 //  Module : GEOMImpl
25 //
26 #ifndef _GEOMImpl_ThruSectionsDriver_HeaderFile
27 #define _GEOMImpl_ThruSectionsDriver_HeaderFile
28
29 #ifndef _TColStd_SequenceOfExtendedString_HeaderFile
30 #include <TColStd_SequenceOfExtendedString.hxx>
31 #endif
32
33 #ifndef _Standard_TypeMismatch_HeaderFile
34 #include <Standard_TypeMismatch.hxx>
35 #endif
36
37 #ifndef _Standard_HeaderFile
38 #include <Standard.hxx>
39 #endif
40
41 #ifndef _Standard_Macro_HeaderFile
42 #include <Standard_Macro.hxx>
43 #endif
44
45 #ifndef _Standard_HeaderFile
46 #include <Standard.hxx>
47 #endif
48
49 #ifndef _Standard_GUID_HeaderFile
50 #include <Standard_GUID.hxx>
51 #endif 
52
53 #ifndef _Handle_TFunction_Driver_HeaderFile
54 #include <Handle_TFunction_Driver.hxx>
55 #endif
56
57 class Standard_Transient;
58 class Handle_Standard_Type;
59 class Handle(TFunction_Driver);
60 class GEOMImpl_ThruSectionsDriver;
61
62 Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOMImpl_ThruSectionsDriver);
63
64 class Handle(GEOMImpl_ThruSectionsDriver) : public Handle(TFunction_Driver) {
65   public:
66     inline void* operator new(size_t,void* anAddress) 
67       {
68         return anAddress;
69       }
70     inline void* operator new(size_t size) 
71       { 
72         return Standard::Allocate(size); 
73       }
74     inline void  operator delete(void *anAddress) 
75       { 
76         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
77       }
78
79     Handle(GEOMImpl_ThruSectionsDriver)():Handle(TFunction_Driver)() {} 
80     Handle(GEOMImpl_ThruSectionsDriver)(const Handle(GEOMImpl_ThruSectionsDriver)& aHandle) : Handle(TFunction_Driver)(aHandle) 
81      {
82      }
83
84     Handle(GEOMImpl_ThruSectionsDriver)(const GEOMImpl_ThruSectionsDriver* anItem) : Handle(TFunction_Driver)((TFunction_Driver *)anItem) 
85      {
86      }
87
88     Handle(GEOMImpl_ThruSectionsDriver)& operator=(const Handle(GEOMImpl_ThruSectionsDriver)& aHandle)
89      {
90       Assign(aHandle.Access());
91       return *this;
92      }
93
94     Handle(GEOMImpl_ThruSectionsDriver)& operator=(const GEOMImpl_ThruSectionsDriver* anItem)
95      {
96       Assign((Standard_Transient *)anItem);
97       return *this;
98      }
99
100     GEOMImpl_ThruSectionsDriver* operator->() 
101      {
102       return (GEOMImpl_ThruSectionsDriver *)ControlAccess();
103      }
104
105     GEOMImpl_ThruSectionsDriver* operator->() const 
106      {
107       return (GEOMImpl_ThruSectionsDriver *)ControlAccess();
108      }
109
110    Standard_EXPORT ~Handle(GEOMImpl_ThruSectionsDriver)() {};
111  
112    Standard_EXPORT static const Handle(GEOMImpl_ThruSectionsDriver) DownCast(const Handle(Standard_Transient)& AnObject);
113
114 };
115
116 #ifndef _TFunction_Driver_HeaderFile
117 #include <TFunction_Driver.hxx>
118 #endif
119 #ifndef _TFunction_Logbook_HeaderFile
120 #include <TFunction_Logbook.hxx>
121 #endif
122 #ifndef _Standard_CString_HeaderFile
123 #include <Standard_CString.hxx>
124 #endif
125
126 class TColStd_SequenceOfExtendedString;
127
128
129 class GEOMImpl_ThruSectionsDriver : public TFunction_Driver {
130
131 public:
132
133     inline void* operator new(size_t,void* anAddress) 
134       {
135         return anAddress;
136       }
137     inline void* operator new(size_t size) 
138       { 
139         return Standard::Allocate(size); 
140       }
141     inline void  operator delete(void *anAddress) 
142       { 
143         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
144       }
145
146  // Methods PUBLIC
147  // 
148 Standard_EXPORT GEOMImpl_ThruSectionsDriver();
149 Standard_EXPORT virtual  Standard_Integer Execute(TFunction_Logbook& log) const; 
150 Standard_EXPORT virtual void Validate(TFunction_Logbook&) const {}
151 Standard_EXPORT Standard_Boolean MustExecute(const TFunction_Logbook&) const { return Standard_True; }
152 Standard_EXPORT static const Standard_GUID& GetID();
153 Standard_EXPORT ~GEOMImpl_ThruSectionsDriver() {};
154
155
156  // Type management
157  //
158 Standard_EXPORT friend Handle_Standard_Type& GEOMImpl_ThruSectionsDriver_Type_();
159 Standard_EXPORT const Handle(Standard_Type)& DynamicType() const  { return STANDARD_TYPE(GEOMImpl_ThruSectionsDriver) ; }
160 Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const { return (STANDARD_TYPE(GEOMImpl_ThruSectionsDriver) == AType || TFunction_Driver::IsKind(AType)); } 
161
162
163 };
164
165 #endif