From f1c62974f618942185e28f048da0920a26cfd4f9 Mon Sep 17 00:00:00 2001 From: eap Date: Thu, 23 Jun 2011 12:11:40 +0000 Subject: [PATCH] 0021014: EDF 1583 SMESH: Improvement of the Python Dump for the creation of groups SMESH_Group (int theID, const SMESH_Mesh* theMesh, const SMDSAbs_ElementType theType, const char* theName, const TopoDS_Shape& theShape = TopoDS_Shape(), + const SMESH_PredicatePtr& thePredicate = SMESH_PredicatePtr()); --- src/SMESH/SMESH_Group.cxx | 19 +++++++++++++------ src/SMESH/SMESH_Group.hxx | 4 +++- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/SMESH/SMESH_Group.cxx b/src/SMESH/SMESH_Group.cxx index 27ef1f3f7..1546940b7 100644 --- a/src/SMESH/SMESH_Group.cxx +++ b/src/SMESH/SMESH_Group.cxx @@ -30,6 +30,7 @@ #include "SMESH_Mesh.hxx" #include "SMESHDS_Group.hxx" #include "SMESHDS_GroupOnGeom.hxx" +#include "SMESHDS_GroupOnFilter.hxx" //============================================================================= /*! @@ -41,18 +42,24 @@ SMESH_Group::SMESH_Group (int theID, const SMESH_Mesh* theMesh, const SMDSAbs_ElementType theType, const char* theName, - const TopoDS_Shape& theShape) + const TopoDS_Shape& theShape, + const SMESH_PredicatePtr& thePredicate) : myName(theName) { - if ( theShape.IsNull() ) - myGroupDS = new SMESHDS_Group (theID, - const_cast(theMesh)->GetMeshDS(), - theType); - else + if ( !theShape.IsNull() ) myGroupDS = new SMESHDS_GroupOnGeom (theID, const_cast(theMesh)->GetMeshDS(), theType, theShape); + else if ( thePredicate ) + myGroupDS = new SMESHDS_GroupOnFilter (theID, + const_cast(theMesh)->GetMeshDS(), + theType, + thePredicate); + else + myGroupDS = new SMESHDS_Group (theID, + const_cast(theMesh)->GetMeshDS(), + theType); } //============================================================================= diff --git a/src/SMESH/SMESH_Group.hxx b/src/SMESH/SMESH_Group.hxx index 51c4ae796..3f460188b 100644 --- a/src/SMESH/SMESH_Group.hxx +++ b/src/SMESH/SMESH_Group.hxx @@ -31,6 +31,7 @@ #include "SMESH_SMESH.hxx" #include "SMDSAbs_ElementType.hxx" +#include "SMESH_Controls.hxx" #include #include @@ -46,7 +47,8 @@ class SMESH_EXPORT SMESH_Group const SMESH_Mesh* theMesh, const SMDSAbs_ElementType theType, const char* theName, - const TopoDS_Shape& theShape = TopoDS_Shape()); + const TopoDS_Shape& theShape = TopoDS_Shape(), + const SMESH_PredicatePtr& thePredicate = SMESH_PredicatePtr()); ~SMESH_Group (); void SetName (const char* theName) { myName = theName; } -- 2.39.2