00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
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
00113 };
00114 #endif