From a9b4c10985607dc4abbf2114556eb7c3b290fceb Mon Sep 17 00:00:00 2001 From: jfa Date: Mon, 25 Oct 2010 13:20:21 +0000 Subject: [PATCH] Mantis issue 0020998: EDF 1572 GEOM: Some limitations to the PipeTShape. --- src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx | 10 +-- src/GEOMImpl/GEOMImpl_IAdvancedOperations.hxx | 85 ++++++++++--------- 2 files changed, 47 insertions(+), 48 deletions(-) diff --git a/src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx b/src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx index 82a56be6a..9a86c59fe 100644 --- a/src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IAdvancedOperations.cxx @@ -90,6 +90,7 @@ GEOMImpl_IAdvancedOperations::GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngin myBlocksOperations = new GEOMImpl_IBlocksOperations(GetEngine(), GetDocID()); my3DPrimOperations = new GEOMImpl_I3DPrimOperations(GetEngine(), GetDocID()); myLocalOperations = new GEOMImpl_ILocalOperations(GetEngine(), GetDocID()); + myHealingOperations = new GEOMImpl_IHealingOperations(GetEngine(), GetDocID()); } //============================================================================= @@ -107,6 +108,7 @@ GEOMImpl_IAdvancedOperations::~GEOMImpl_IAdvancedOperations() delete myBlocksOperations; delete my3DPrimOperations; delete myLocalOperations; + delete myHealingOperations; } //============================================================================= @@ -1884,9 +1886,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFillet(double theR1, double theW1, d // END of fillet // BEGIN: Limit tolerances (debug) - GEOMImpl_IHealingOperations myHealingOperations (GetEngine(), GetDocID()); - - Handle(GEOM_Object) aCorr1 = myHealingOperations.LimitTolerance(aShape, 1e-07); + Handle(GEOM_Object) aCorr1 = myHealingOperations->LimitTolerance(aShape, 1e-07); TopoDS_Shape aCorr1Shape = aCorr1->GetValue(); aShape->GetLastFunction()->SetValue(aCorr1Shape); aCorr1->GetLastFunction()->SetDescription(""); @@ -2086,9 +2086,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFilletWithPosition(double theR1, dou // END of fillet // BEGIN: Limit tolerances (debug) - GEOMImpl_IHealingOperations myHealingOperations (GetEngine(), GetDocID()); - - Handle(GEOM_Object) aCorr1 = myHealingOperations.LimitTolerance(aShape, 1e-07); + Handle(GEOM_Object) aCorr1 = myHealingOperations->LimitTolerance(aShape, 1e-07); TopoDS_Shape aCorr1Shape = aCorr1->GetValue(); aShape->GetLastFunction()->SetValue(aCorr1Shape); aCorr1->GetLastFunction()->SetDescription(""); diff --git a/src/GEOMImpl/GEOMImpl_IAdvancedOperations.hxx b/src/GEOMImpl/GEOMImpl_IAdvancedOperations.hxx index 2b7b91892..ee5e5347d 100644 --- a/src/GEOMImpl/GEOMImpl_IAdvancedOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IAdvancedOperations.hxx @@ -16,10 +16,9 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - // File : GEOMImpl_IAdvancedOperations.hxx // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) -// + #ifndef _GEOMImpl_IAdvancedOperations_HXX_ #define _GEOMImpl_IAdvancedOperations_HXX_ @@ -35,31 +34,32 @@ class GEOMImpl_ITransformOperations; class GEOMImpl_IBlocksOperations; class GEOMImpl_I3DPrimOperations; class GEOMImpl_ILocalOperations; +class GEOMImpl_IHealingOperations; class GEOMImpl_IAdvancedOperations: public GEOM_IOperations { private: bool MakePipeTShapePartition(Handle(GEOM_Object) theShape, - double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2, - double theH = 0, double theW = 0, - double theRF = 0, bool isNormal = true); + double theR1, double theW1, double theL1, + double theR2, double theW2, double theL2, + double theH = 0, double theW = 0, + double theRF = 0, bool isNormal = true); bool MakePipeTShapeMirrorAndGlue(Handle(GEOM_Object) theShape, - double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2); + double theR1, double theW1, double theL1, + double theR2, double theW2, double theL2); bool MakeGroups(Handle(GEOM_Object) theShape, int shapType, - double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2, - Handle(TColStd_HSequenceOfTransient) theSeq, - gp_Trsf aTrsf); + double theR1, double theW1, double theL1, + double theR2, double theW2, double theL2, + Handle(TColStd_HSequenceOfTransient) theSeq, + gp_Trsf aTrsf); gp_Trsf GetPositionTrsf(double theL1, double theL2, - Handle(GEOM_Object) P1 = 0, - Handle(GEOM_Object) P2 = 0, - Handle(GEOM_Object) P3 = 0); + Handle(GEOM_Object) P1 = 0, + Handle(GEOM_Object) P2 = 0, + Handle(GEOM_Object) P3 = 0); bool CheckCompatiblePosition(double& theL1, double& theL2, - Handle(GEOM_Object) theP1, - Handle(GEOM_Object) theP2, - Handle(GEOM_Object) theP3, - double theTolerance); + Handle(GEOM_Object) theP1, + Handle(GEOM_Object) theP2, + Handle(GEOM_Object) theP3, + double theTolerance); private: GEOMImpl_IBasicOperations* myBasicOperations; GEOMImpl_IBooleanOperations* myBooleanOperations; @@ -68,6 +68,7 @@ private: GEOMImpl_IBlocksOperations* myBlocksOperations; GEOMImpl_I3DPrimOperations* my3DPrimOperations; GEOMImpl_ILocalOperations* myLocalOperations; + GEOMImpl_IHealingOperations* myHealingOperations; public: Standard_EXPORT GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngine, int theDocID); @@ -75,39 +76,39 @@ public: Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeTShape(double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2, - bool theHexMesh = true); + double theR2, double theW2, double theL2, + bool theHexMesh = true); Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeTShapeWithPosition(double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2, - bool theHexMesh = true, - Handle(GEOM_Object) P1 = 0, - Handle(GEOM_Object) P2 = 0, - Handle(GEOM_Object) P3 = 0); + double theR2, double theW2, double theL2, + bool theHexMesh = true, + Handle(GEOM_Object) P1 = 0, + Handle(GEOM_Object) P2 = 0, + Handle(GEOM_Object) P3 = 0); Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeTShapeChamfer(double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2, - double theH, double theW, - bool theHexMesh = true); + double theR2, double theW2, double theL2, + double theH, double theW, + bool theHexMesh = true); Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeTShapeChamferWithPosition(double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2, - double theH, double theW, - bool theHexMesh = true, - Handle(GEOM_Object) P1 = 0, - Handle(GEOM_Object) P2 = 0, - Handle(GEOM_Object) P3 = 0); + double theR2, double theW2, double theL2, + double theH, double theW, + bool theHexMesh = true, + Handle(GEOM_Object) P1 = 0, + Handle(GEOM_Object) P2 = 0, + Handle(GEOM_Object) P3 = 0); Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeTShapeFillet(double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2, - double theRF, bool theHexMesh = true); + double theR2, double theW2, double theL2, + double theRF, bool theHexMesh = true); Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeTShapeFilletWithPosition(double theR1, double theW1, double theL1, - double theR2, double theW2, double theL2, - double theRF, bool theHexMesh = true, - Handle(GEOM_Object) P1 = 0, - Handle(GEOM_Object) P2 = 0, - Handle(GEOM_Object) P3 = 0); + double theR2, double theW2, double theL2, + double theRF, bool theHexMesh = true, + Handle(GEOM_Object) P1 = 0, + Handle(GEOM_Object) P2 = 0, + Handle(GEOM_Object) P3 = 0); /*@@ insert new functions before this line @@ do not remove this line @@*/ }; #endif -- 2.39.2