]> SALOME platform Git repositories - modules/geom.git/blob - src/GEOMImpl/GEOMImpl_IAdvancedOperations.hxx
Salome HOME
Update copyright notes (for 2010)
[modules/geom.git] / src / GEOMImpl / GEOMImpl_IAdvancedOperations.hxx
1 //  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  This library is free software; you can redistribute it and/or
4 //  modify it under the terms of the GNU Lesser General Public
5 //  License as published by the Free Software Foundation; either
6 //  version 2.1 of the License.
7 //
8 //  This library is distributed in the hope that it will be useful,
9 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 //  Lesser General Public License for more details.
12 //
13 //  You should have received a copy of the GNU Lesser General Public
14 //  License along with this library; if not, write to the Free Software
15 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 //  File   : GEOMImpl_IAdvancedOperations.hxx
21 //  Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
22 //
23 #ifndef _GEOMImpl_IAdvancedOperations_HXX_
24 #define _GEOMImpl_IAdvancedOperations_HXX_
25
26 #include <Utils_SALOME_Exception.hxx>
27 #include "GEOM_IOperations.hxx"
28 #include "GEOM_Engine.hxx"
29 #include "GEOM_Object.hxx"
30
31 #define Handle_GEOM_Object Handle(GEOM_Object)
32 #define Handle_TColStd_HSequenceOfTransient Handle(TColStd_HSequenceOfTransient)
33 #define Handle_TColStd_HSequenceOfInteger Handle(TColStd_HSequenceOfInteger)
34
35 class GEOMImpl_IAdvancedOperations: public GEOM_IOperations {
36 private:
37         bool MakePipeTShapePartition(/*std::vector<GEOM_IOperations*> theOperations, */Handle_GEOM_Object theShape, double theR1, double theW1, double theL1, double theR2,
38                         double theW2, double theL2, double theH = 0, double theW = 0, double theRF = 0, bool isNormal = true);
39     bool MakePipeTShapeMirrorAndGlue(/*std::vector<GEOM_IOperations*> theOperations, */Handle_GEOM_Object theShape, double theR1, double theW1, double theL1, double theR2,
40             double theW2, double theL2);
41         bool MakeGroups(/*std::vector<GEOM_IOperations*> theOperations, */Handle_GEOM_Object theShape, int shapType, double theR1, double theW1, double theL1, double theR2,
42                         double theW2, double theL2, Handle_TColStd_HSequenceOfTransient theSeq, gp_Trsf aTrsf);
43         gp_Trsf GetPositionTrsf(double theL1, double theL2, Handle_GEOM_Object P1 = NULL, Handle_GEOM_Object P2 = NULL,
44                         Handle_GEOM_Object P3 = NULL);
45     bool CheckCompatiblePosition(double& theL1, double& theL2, Handle_GEOM_Object theP1, Handle_GEOM_Object theP2,
46             Handle_GEOM_Object theP3, double theTolerance);
47
48 public:
49         Standard_EXPORT
50         GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngine, int theDocID);Standard_EXPORT
51         ~GEOMImpl_IAdvancedOperations();
52
53         Standard_EXPORT Handle_TColStd_HSequenceOfTransient MakePipeTShape(double theR1, double theW1, double theL1,
54                         double theR2, double theW2, double theL2, bool theHexMesh = true);
55         Standard_EXPORT Handle_TColStd_HSequenceOfTransient
56         MakePipeTShapeWithPosition(double theR1, double theW1, double theL1, double theR2, double theW2, double theL2,
57                         bool theHexMesh = true, Handle_GEOM_Object P1 = NULL, Handle_GEOM_Object P2 = NULL, Handle_GEOM_Object P3 =
58                                         NULL);
59         Standard_EXPORT Handle_TColStd_HSequenceOfTransient MakePipeTShapeChamfer(double theR1, double theW1, double theL1,
60                         double theR2, double theW2, double theL2, double theH, double theW, bool theHexMesh = true);
61         Standard_EXPORT Handle_TColStd_HSequenceOfTransient
62         MakePipeTShapeChamferWithPosition(double theR1, double theW1, double theL1, double theR2, double theW2,
63                         double theL2, double theH, double theW, bool theHexMesh = true, Handle_GEOM_Object P1 = NULL,
64                         Handle_GEOM_Object P2 = NULL, Handle_GEOM_Object P3 = NULL);
65         Standard_EXPORT Handle_TColStd_HSequenceOfTransient MakePipeTShapeFillet(double theR1, double theW1, double theL1,
66                         double theR2, double theW2, double theL2, double theRF, bool theHexMesh = true);
67         Standard_EXPORT Handle_TColStd_HSequenceOfTransient
68         MakePipeTShapeFilletWithPosition(double theR1, double theW1, double theL1, double theR2, double theW2,
69                         double theL2, double theRF, bool theHexMesh = true, Handle_GEOM_Object P1 = NULL, Handle_GEOM_Object P2 =
70                                         NULL, Handle_GEOM_Object P3 = NULL);
71         /*@@ insert new functions before this line @@*/
72 };
73
74 #undef Handle_GEOM_Object
75 #undef Handle_TColStd_HSequenceOfTransient
76 #undef Handle_TColStd_HSequenceOfInteger
77
78 #endif