IMP 10199 (add Volume Control). Add Volume3D NumericalFunctor.

This commit is contained in:
eap 2005-10-10 14:43:58 +00:00
parent 2875648bdb
commit 4f27e7392a
2 changed files with 43 additions and 0 deletions

View File

@ -565,6 +565,21 @@ FunctorType Area_i::GetFunctorType()
return SMESH::FT_Area; return SMESH::FT_Area;
} }
/*
Class : Volume3D_i
Description : Functor for calculating volume of 3D element
*/
Volume3D_i::Volume3D_i()
{
myNumericalFunctorPtr.reset( new Controls::Volume() );
myFunctorPtr = myNumericalFunctorPtr;
}
FunctorType Volume3D_i::GetFunctorType()
{
return SMESH::FT_Volume3D;
}
/* /*
Class : Length_i Class : Length_i
Description : Functor for calculating length off edge Description : Functor for calculating length off edge
@ -1362,6 +1377,15 @@ Area_ptr FilterManager_i::CreateArea()
} }
Volume3D_ptr FilterManager_i::CreateVolume3D()
{
SMESH::Volume3D_i* aServant = new SMESH::Volume3D_i();
SMESH::Volume3D_var anObj = aServant->_this();
TPythonDump()<<aServant<<" = "<<this<<".CreateVolume3D()";
return anObj._retn();
}
Length_ptr FilterManager_i::CreateLength() Length_ptr FilterManager_i::CreateLength()
{ {
SMESH::Length_i* aServant = new SMESH::Length_i(); SMESH::Length_i* aServant = new SMESH::Length_i();
@ -1908,6 +1932,9 @@ CORBA::Boolean Filter_i::SetCriteria( const SMESH::Filter::Criteria& theCriteria
case SMESH::FT_Area: case SMESH::FT_Area:
aFunctor = aFilterMgr->CreateArea(); aFunctor = aFilterMgr->CreateArea();
break; break;
case SMESH::FT_Volume3D:
aFunctor = aFilterMgr->CreateVolume3D();
break;
// Predicates // Predicates
@ -2159,6 +2186,7 @@ static inline LDOMString toString( const long theType )
case FT_Taper : return "Taper"; case FT_Taper : return "Taper";
case FT_Skew : return "Skew"; case FT_Skew : return "Skew";
case FT_Area : return "Area"; case FT_Area : return "Area";
case FT_Volume3D : return "Volume3D";
case FT_BelongToGeom : return "Belong to Geom"; case FT_BelongToGeom : return "Belong to Geom";
case FT_BelongToPlane : return "Belong to Plane"; case FT_BelongToPlane : return "Belong to Plane";
case FT_BelongToCylinder: return "Belong to Cylinder"; case FT_BelongToCylinder: return "Belong to Cylinder";
@ -2194,6 +2222,7 @@ static inline SMESH::FunctorType toFunctorType( const LDOMString& theStr )
else if ( theStr.equals( "Taper" ) ) return FT_Taper; else if ( theStr.equals( "Taper" ) ) return FT_Taper;
else if ( theStr.equals( "Skew" ) ) return FT_Skew; else if ( theStr.equals( "Skew" ) ) return FT_Skew;
else if ( theStr.equals( "Area" ) ) return FT_Area; else if ( theStr.equals( "Area" ) ) return FT_Area;
else if ( theStr.equals( "Volume3D" ) ) return FT_Volume3D;
else if ( theStr.equals( "Belong to Geom" ) ) return FT_BelongToGeom; else if ( theStr.equals( "Belong to Geom" ) ) return FT_BelongToGeom;
else if ( theStr.equals( "Belong to Plane" ) ) return FT_BelongToPlane; else if ( theStr.equals( "Belong to Plane" ) ) return FT_BelongToPlane;
else if ( theStr.equals( "Belong to Cylinder" ) ) return FT_BelongToCylinder; else if ( theStr.equals( "Belong to Cylinder" ) ) return FT_BelongToCylinder;

View File

@ -239,6 +239,19 @@ namespace SMESH
}; };
/*
Class : Volume3D_i
Description : Functor for calculating volume of 3D element
*/
class Volume3D_i: public virtual POA_SMESH::Volume3D,
public virtual NumericalFunctor_i
{
public:
Volume3D_i();
FunctorType GetFunctorType();
};
/* /*
Class : Length_i Class : Length_i
Description : Functor for calculating length of edge Description : Functor for calculating length of edge
@ -739,6 +752,7 @@ namespace SMESH
Taper_ptr CreateTaper(); Taper_ptr CreateTaper();
Skew_ptr CreateSkew(); Skew_ptr CreateSkew();
Area_ptr CreateArea(); Area_ptr CreateArea();
Volume3D_ptr CreateVolume3D();
Length_ptr CreateLength(); Length_ptr CreateLength();
Length2D_ptr CreateLength2D(); Length2D_ptr CreateLength2D();
MultiConnection_ptr CreateMultiConnection(); MultiConnection_ptr CreateMultiConnection();