Mantis issue 0020998: EDF 1572 GEOM: Some limitations to the PipeTShape.

This commit is contained in:
jfa 2010-10-25 13:20:21 +00:00
parent a1c82891d9
commit a9b4c10985
2 changed files with 47 additions and 48 deletions

View File

@ -90,6 +90,7 @@ GEOMImpl_IAdvancedOperations::GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngin
myBlocksOperations = new GEOMImpl_IBlocksOperations(GetEngine(), GetDocID()); myBlocksOperations = new GEOMImpl_IBlocksOperations(GetEngine(), GetDocID());
my3DPrimOperations = new GEOMImpl_I3DPrimOperations(GetEngine(), GetDocID()); my3DPrimOperations = new GEOMImpl_I3DPrimOperations(GetEngine(), GetDocID());
myLocalOperations = new GEOMImpl_ILocalOperations(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 myBlocksOperations;
delete my3DPrimOperations; delete my3DPrimOperations;
delete myLocalOperations; delete myLocalOperations;
delete myHealingOperations;
} }
//============================================================================= //=============================================================================
@ -1884,9 +1886,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFillet(double theR1, double theW1, d
// END of fillet // END of fillet
// BEGIN: Limit tolerances (debug) // 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(); TopoDS_Shape aCorr1Shape = aCorr1->GetValue();
aShape->GetLastFunction()->SetValue(aCorr1Shape); aShape->GetLastFunction()->SetValue(aCorr1Shape);
aCorr1->GetLastFunction()->SetDescription(""); aCorr1->GetLastFunction()->SetDescription("");
@ -2086,9 +2086,7 @@ GEOMImpl_IAdvancedOperations::MakePipeTShapeFilletWithPosition(double theR1, dou
// END of fillet // END of fillet
// BEGIN: Limit tolerances (debug) // 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(); TopoDS_Shape aCorr1Shape = aCorr1->GetValue();
aShape->GetLastFunction()->SetValue(aCorr1Shape); aShape->GetLastFunction()->SetValue(aCorr1Shape);
aCorr1->GetLastFunction()->SetDescription(""); aCorr1->GetLastFunction()->SetDescription("");

View File

@ -16,10 +16,9 @@
// //
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
// //
// File : GEOMImpl_IAdvancedOperations.hxx // File : GEOMImpl_IAdvancedOperations.hxx
// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
//
#ifndef _GEOMImpl_IAdvancedOperations_HXX_ #ifndef _GEOMImpl_IAdvancedOperations_HXX_
#define _GEOMImpl_IAdvancedOperations_HXX_ #define _GEOMImpl_IAdvancedOperations_HXX_
@ -35,31 +34,32 @@ class GEOMImpl_ITransformOperations;
class GEOMImpl_IBlocksOperations; class GEOMImpl_IBlocksOperations;
class GEOMImpl_I3DPrimOperations; class GEOMImpl_I3DPrimOperations;
class GEOMImpl_ILocalOperations; class GEOMImpl_ILocalOperations;
class GEOMImpl_IHealingOperations;
class GEOMImpl_IAdvancedOperations: public GEOM_IOperations { class GEOMImpl_IAdvancedOperations: public GEOM_IOperations {
private: private:
bool MakePipeTShapePartition(Handle(GEOM_Object) theShape, bool MakePipeTShapePartition(Handle(GEOM_Object) theShape,
double theR1, double theW1, double theL1, double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2, double theR2, double theW2, double theL2,
double theH = 0, double theW = 0, double theH = 0, double theW = 0,
double theRF = 0, bool isNormal = true); double theRF = 0, bool isNormal = true);
bool MakePipeTShapeMirrorAndGlue(Handle(GEOM_Object) theShape, bool MakePipeTShapeMirrorAndGlue(Handle(GEOM_Object) theShape,
double theR1, double theW1, double theL1, double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2); double theR2, double theW2, double theL2);
bool MakeGroups(Handle(GEOM_Object) theShape, int shapType, bool MakeGroups(Handle(GEOM_Object) theShape, int shapType,
double theR1, double theW1, double theL1, double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2, double theR2, double theW2, double theL2,
Handle(TColStd_HSequenceOfTransient) theSeq, Handle(TColStd_HSequenceOfTransient) theSeq,
gp_Trsf aTrsf); gp_Trsf aTrsf);
gp_Trsf GetPositionTrsf(double theL1, double theL2, gp_Trsf GetPositionTrsf(double theL1, double theL2,
Handle(GEOM_Object) P1 = 0, Handle(GEOM_Object) P1 = 0,
Handle(GEOM_Object) P2 = 0, Handle(GEOM_Object) P2 = 0,
Handle(GEOM_Object) P3 = 0); Handle(GEOM_Object) P3 = 0);
bool CheckCompatiblePosition(double& theL1, double& theL2, bool CheckCompatiblePosition(double& theL1, double& theL2,
Handle(GEOM_Object) theP1, Handle(GEOM_Object) theP1,
Handle(GEOM_Object) theP2, Handle(GEOM_Object) theP2,
Handle(GEOM_Object) theP3, Handle(GEOM_Object) theP3,
double theTolerance); double theTolerance);
private: private:
GEOMImpl_IBasicOperations* myBasicOperations; GEOMImpl_IBasicOperations* myBasicOperations;
GEOMImpl_IBooleanOperations* myBooleanOperations; GEOMImpl_IBooleanOperations* myBooleanOperations;
@ -68,6 +68,7 @@ private:
GEOMImpl_IBlocksOperations* myBlocksOperations; GEOMImpl_IBlocksOperations* myBlocksOperations;
GEOMImpl_I3DPrimOperations* my3DPrimOperations; GEOMImpl_I3DPrimOperations* my3DPrimOperations;
GEOMImpl_ILocalOperations* myLocalOperations; GEOMImpl_ILocalOperations* myLocalOperations;
GEOMImpl_IHealingOperations* myHealingOperations;
public: public:
Standard_EXPORT GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngine, int theDocID); Standard_EXPORT GEOMImpl_IAdvancedOperations(GEOM_Engine* theEngine, int theDocID);
@ -75,39 +76,39 @@ public:
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
MakePipeTShape(double theR1, double theW1, double theL1, MakePipeTShape(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2, double theR2, double theW2, double theL2,
bool theHexMesh = true); bool theHexMesh = true);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeWithPosition(double theR1, double theW1, double theL1, MakePipeTShapeWithPosition(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2, double theR2, double theW2, double theL2,
bool theHexMesh = true, bool theHexMesh = true,
Handle(GEOM_Object) P1 = 0, Handle(GEOM_Object) P1 = 0,
Handle(GEOM_Object) P2 = 0, Handle(GEOM_Object) P2 = 0,
Handle(GEOM_Object) P3 = 0); Handle(GEOM_Object) P3 = 0);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeChamfer(double theR1, double theW1, double theL1, MakePipeTShapeChamfer(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2, double theR2, double theW2, double theL2,
double theH, double theW, double theH, double theW,
bool theHexMesh = true); bool theHexMesh = true);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeChamferWithPosition(double theR1, double theW1, double theL1, MakePipeTShapeChamferWithPosition(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2, double theR2, double theW2, double theL2,
double theH, double theW, double theH, double theW,
bool theHexMesh = true, bool theHexMesh = true,
Handle(GEOM_Object) P1 = 0, Handle(GEOM_Object) P1 = 0,
Handle(GEOM_Object) P2 = 0, Handle(GEOM_Object) P2 = 0,
Handle(GEOM_Object) P3 = 0); Handle(GEOM_Object) P3 = 0);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeFillet(double theR1, double theW1, double theL1, MakePipeTShapeFillet(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2, double theR2, double theW2, double theL2,
double theRF, bool theHexMesh = true); double theRF, bool theHexMesh = true);
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
MakePipeTShapeFilletWithPosition(double theR1, double theW1, double theL1, MakePipeTShapeFilletWithPosition(double theR1, double theW1, double theL1,
double theR2, double theW2, double theL2, double theR2, double theW2, double theL2,
double theRF, bool theHexMesh = true, double theRF, bool theHexMesh = true,
Handle(GEOM_Object) P1 = 0, Handle(GEOM_Object) P1 = 0,
Handle(GEOM_Object) P2 = 0, Handle(GEOM_Object) P2 = 0,
Handle(GEOM_Object) P3 = 0); Handle(GEOM_Object) P3 = 0);
/*@@ insert new functions before this line @@ do not remove this line @@*/ /*@@ insert new functions before this line @@ do not remove this line @@*/
}; };
#endif #endif