Back to index

salome-geom  6.5.0
GEOMImpl_IAdvancedOperations.hxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // This library is free software; you can redistribute it and/or
00004 // modify it under the terms of the GNU Lesser General Public
00005 // License as published by the Free Software Foundation; either
00006 // version 2.1 of the License.
00007 //
00008 // This library is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 // Lesser General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU Lesser General Public
00014 // License along with this library; if not, write to the Free Software
00015 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00016 //
00017 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00018 //
00019 //  File   : GEOMImpl_IAdvancedOperations.hxx
00020 //  Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
00021 
00022 #ifndef _GEOMImpl_IAdvancedOperations_HXX_
00023 #define _GEOMImpl_IAdvancedOperations_HXX_
00024 
00025 #include <Utils_SALOME_Exception.hxx>
00026 #include "GEOM_IOperations.hxx"
00027 #include "GEOM_Engine.hxx"
00028 #include "GEOM_Object.hxx"
00029 
00030 class GEOMImpl_IBasicOperations;
00031 class GEOMImpl_IBooleanOperations;
00032 class GEOMImpl_IShapesOperations;
00033 class GEOMImpl_ITransformOperations;
00034 class GEOMImpl_IBlocksOperations;
00035 class GEOMImpl_I3DPrimOperations;
00036 class GEOMImpl_ILocalOperations;
00037 class GEOMImpl_IHealingOperations;
00038 
00039 class GEOMImpl_IAdvancedOperations: public GEOM_IOperations {
00040 private:
00041   bool MakePipeTShapePartition(Handle(GEOM_Object) theShape,
00042                                double theR1, double theW1, double theL1,
00043                                double theR2, double theW2, double theL2,
00044                                double theH = 0, double theW = 0,
00045                                double theRF = 0, bool isNormal = true);
00046   bool MakePipeTShapeMirrorAndGlue(Handle(GEOM_Object) theShape,
00047                                    double theR1, double theW1, double theL1,
00048                                    double theR2, double theW2, double theL2);
00049   bool MakeGroups(Handle(GEOM_Object) theShape, int shapType,
00050                   double theR1, double theW1, double theL1,
00051                   double theR2, double theW2, double theL2,
00052                   Handle(TColStd_HSequenceOfTransient) theSeq,
00053                   gp_Trsf aTrsf);
00054   gp_Trsf GetPositionTrsf(double theL1, double theL2,
00055                           Handle(GEOM_Object) P1 = 0,
00056                           Handle(GEOM_Object) P2 = 0,
00057                           Handle(GEOM_Object) P3 = 0);
00058   bool CheckCompatiblePosition(double& theL1, double& theL2, 
00059                                Handle(GEOM_Object) theP1, 
00060                                Handle(GEOM_Object) theP2,
00061                                Handle(GEOM_Object) theP3,
00062                                double theTolerance);
00063 private:
00064   GEOMImpl_IBasicOperations*     myBasicOperations;
00065   GEOMImpl_IBooleanOperations*   myBooleanOperations;
00066   GEOMImpl_IShapesOperations*    myShapesOperations;
00067   GEOMImpl_ITransformOperations* myTransformOperations;
00068   GEOMImpl_IBlocksOperations*    myBlocksOperations;
00069   GEOMImpl_I3DPrimOperations*    my3DPrimOperations;
00070   GEOMImpl_ILocalOperations*     myLocalOperations;
00071   GEOMImpl_IHealingOperations*   myHealingOperations;
00072 
00073 public:
00074   Standard_EXPORT GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngine, int theDocID);
00075   Standard_EXPORT ~GEOMImpl_IAdvancedOperations();
00076 
00077   Standard_EXPORT Handle(TColStd_HSequenceOfTransient) 
00078                   MakePipeTShape(double theR1, double theW1, double theL1,
00079                                  double theR2, double theW2, double theL2,
00080                                  bool theHexMesh = true);
00081   Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
00082                   MakePipeTShapeWithPosition(double theR1, double theW1, double theL1,
00083                                              double theR2, double theW2, double theL2,
00084                                              bool theHexMesh = true,
00085                                              Handle(GEOM_Object) P1 = 0,
00086                                              Handle(GEOM_Object) P2 = 0,
00087                                              Handle(GEOM_Object) P3 = 0);
00088   Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
00089                   MakePipeTShapeChamfer(double theR1, double theW1, double theL1,
00090                                         double theR2, double theW2, double theL2,
00091                                         double theH,  double theW, 
00092                                         bool theHexMesh = true);
00093   Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
00094                   MakePipeTShapeChamferWithPosition(double theR1, double theW1, double theL1,
00095                                                     double theR2, double theW2, double theL2,
00096                                                     double theH, double theW,
00097                                                     bool theHexMesh = true,
00098                                                     Handle(GEOM_Object) P1 = 0,
00099                                                     Handle(GEOM_Object) P2 = 0,
00100                                                     Handle(GEOM_Object) P3 = 0);
00101   Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
00102                   MakePipeTShapeFillet(double theR1, double theW1, double theL1,
00103                                        double theR2, double theW2, double theL2,
00104                                        double theRF, bool theHexMesh = true);
00105   Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
00106                   MakePipeTShapeFilletWithPosition(double theR1, double theW1, double theL1,
00107                                                    double theR2, double theW2, double theL2,
00108                                                    double theRF, bool theHexMesh = true,
00109                                                    Handle(GEOM_Object) P1 = 0,
00110                                                    Handle(GEOM_Object) P2 = 0,
00111                                                    Handle(GEOM_Object) P3 = 0);
00112   /*@@ insert new functions before this line @@ do not remove this line @@*/
00113 };
00114 #endif