PythonDump for SMESH Controls / Filter

This commit is contained in:
apo 2005-03-30 10:18:40 +00:00
parent e5c454adf0
commit d77ffa61b6
3 changed files with 92 additions and 32 deletions

View File

@ -278,7 +278,7 @@ module SMESH
/*! /*!
* Filter * Filter
*/ */
interface Filter: SALOME::GenericObj interface Filter: SALOME::GenericObj, SMESH_IDSource
{ {
/*! /*!
* Structure containing information about one criterion * Structure containing information about one criterion
@ -312,6 +312,8 @@ module SMESH
typedef sequence<Criterion> Criteria; typedef sequence<Criterion> Criteria;
void SetPredicate( in Predicate thePredicate ); void SetPredicate( in Predicate thePredicate );
void SetMesh( in SMESH_Mesh theMesh );
long_array GetElementsId( in SMESH_Mesh theMesh ); long_array GetElementsId( in SMESH_Mesh theMesh );
ElementType GetElementType(); ElementType GetElementType();
Predicate GetPredicate(); Predicate GetPredicate();

View File

@ -411,6 +411,11 @@ Functor_i::Functor_i():
SMESH_Gen_i::GetPOA()->activate_object( this ); SMESH_Gen_i::GetPOA()->activate_object( this );
} }
Functor_i::~Functor_i()
{
TPythonDump()<<this<<".Destroy()";
}
void Functor_i::SetMesh( SMESH_Mesh_ptr theMesh ) void Functor_i::SetMesh( SMESH_Mesh_ptr theMesh )
{ {
myFunctorPtr->SetMesh( MeshPtr2SMDSMesh( theMesh ) ); myFunctorPtr->SetMesh( MeshPtr2SMDSMesh( theMesh ) );
@ -1287,6 +1292,13 @@ FilterManager_i::FilterManager_i()
SMESH_Gen_i::GetPOA()->activate_object( this ); SMESH_Gen_i::GetPOA()->activate_object( this );
} }
FilterManager_i::~FilterManager_i()
{
TPythonDump()<<this<<".Destroy()";
}
MinimumAngle_ptr FilterManager_i::CreateMinimumAngle() MinimumAngle_ptr FilterManager_i::CreateMinimumAngle()
{ {
SMESH::MinimumAngle_i* aServant = new SMESH::MinimumAngle_i(); SMESH::MinimumAngle_i* aServant = new SMESH::MinimumAngle_i();
@ -1565,6 +1577,11 @@ Filter_i::~Filter_i()
{ {
if ( myPredicate ) if ( myPredicate )
myPredicate->Destroy(); myPredicate->Destroy();
if(!CORBA::is_nil(myMesh))
myMesh->Destroy();
TPythonDump()<<this<<".Destroy()";
} }
//======================================================================= //=======================================================================
@ -1599,12 +1616,25 @@ SMESH::ElementType Filter_i::GetElementType()
// name : Filter_i::SetMesh // name : Filter_i::SetMesh
// Purpose : Set mesh // Purpose : Set mesh
//======================================================================= //=======================================================================
void Filter_i::SetMesh( SMESH_Mesh_ptr theMesh ) void
Filter_i::
SetMesh( SMESH_Mesh_ptr theMesh )
{ {
if(myPredicate){ if(!CORBA::is_nil(theMesh))
myPredicate->SetMesh( theMesh ); theMesh->Register();
TPythonDump()<<this<<".SetMesh("<<theMesh<<")";
} if(!CORBA::is_nil(myMesh))
myMesh->Destroy();
myMesh = theMesh;
TPythonDump()<<this<<".SetMesh("<<theMesh<<")";
}
SMESH::long_array*
Filter_i::
GetIDs()
{
return GetElementsId(myMesh);
} }
//======================================================================= //=======================================================================
@ -1634,16 +1664,15 @@ SMESH::long_array*
Filter_i:: Filter_i::
GetElementsId( SMESH_Mesh_ptr theMesh ) GetElementsId( SMESH_Mesh_ptr theMesh )
{ {
Controls::Filter::TIdSequence aSequence;
GetElementsId(myPredicate,theMesh,aSequence);
SMESH::long_array_var anArray = new SMESH::long_array; SMESH::long_array_var anArray = new SMESH::long_array;
long i = 0, iEnd = aSequence.size(); if(!CORBA::is_nil(theMesh)){
Controls::Filter::TIdSequence aSequence;
anArray->length( iEnd ); GetElementsId(myPredicate,theMesh,aSequence);
for ( ; i < iEnd; i++ ) long i = 0, iEnd = aSequence.size();
anArray[ i ] = aSequence[i]; anArray->length( iEnd );
for ( ; i < iEnd; i++ )
anArray[ i ] = aSequence[i];
}
return anArray._retn(); return anArray._retn();
} }
@ -2399,6 +2428,7 @@ FilterLibrary_i::FilterLibrary_i()
FilterLibrary_i::~FilterLibrary_i() FilterLibrary_i::~FilterLibrary_i()
{ {
delete myFileName; delete myFileName;
TPythonDump()<<this<<".Destroy()";
} }
//======================================================================= //=======================================================================

View File

@ -125,6 +125,7 @@ namespace SMESH
protected: protected:
Functor_i(); Functor_i();
~Functor_i();
protected: protected:
Controls::FunctorPtr myFunctorPtr; Controls::FunctorPtr myFunctorPtr;
}; };
@ -629,32 +630,57 @@ namespace SMESH
{ {
public: public:
Filter_i(); Filter_i();
virtual ~Filter_i(); ~Filter_i();
void SetPredicate( Predicate_ptr ); virtual
void SetMesh( SMESH_Mesh_ptr ); void
SetPredicate( Predicate_ptr );
static
void GetElementsId( Predicate_i*,
const SMDS_Mesh*,
Controls::Filter::TIdSequence& );
static
void GetElementsId( Predicate_i*,
SMESH_Mesh_ptr,
Controls::Filter::TIdSequence& );
long_array* GetElementsId( SMESH_Mesh_ptr ); virtual
ElementType GetElementType(); void
SetMesh( SMESH_Mesh_ptr );
virtual
SMESH::long_array*
GetIDs();
CORBA::Boolean GetCriteria( SMESH::Filter::Criteria_out theCriteria ); static
CORBA::Boolean SetCriteria( const SMESH::Filter::Criteria& theCriteria ); void
GetElementsId( Predicate_i*,
const SMDS_Mesh*,
Controls::Filter::TIdSequence& );
static
void
GetElementsId( Predicate_i*,
SMESH_Mesh_ptr,
Controls::Filter::TIdSequence& );
Predicate_ptr GetPredicate(); virtual
long_array*
GetElementsId( SMESH_Mesh_ptr );
virtual
ElementType
GetElementType();
virtual
CORBA::Boolean
GetCriteria( SMESH::Filter::Criteria_out theCriteria );
virtual
CORBA::Boolean
SetCriteria( const SMESH::Filter::Criteria& theCriteria );
virtual
Predicate_ptr
GetPredicate();
Predicate_i* GetPredicate_i(); Predicate_i* GetPredicate_i();
private: private:
Controls::Filter myFilter; Controls::Filter myFilter;
Predicate_i* myPredicate; Predicate_i* myPredicate;
SMESH_Mesh_var myMesh;
}; };
@ -704,6 +730,8 @@ namespace SMESH
{ {
public: public:
FilterManager_i(); FilterManager_i();
~FilterManager_i();
MinimumAngle_ptr CreateMinimumAngle(); MinimumAngle_ptr CreateMinimumAngle();
AspectRatio_ptr CreateAspectRatio(); AspectRatio_ptr CreateAspectRatio();
AspectRatio3D_ptr CreateAspectRatio3D(); AspectRatio3D_ptr CreateAspectRatio3D();