0021338: EDF 1926 SMESH: New controls and filters

+   eCoincidentNodes, eCoincidentElems1D, eCoincidentElems2D, eCoincidentElems3D };
This commit is contained in:
eap 2012-01-23 16:12:32 +00:00
parent 3ce7e67ad8
commit c573d1fae4
3 changed files with 26 additions and 1 deletions

View File

@ -691,6 +691,22 @@ SetControlMode(eControl theMode,
myFunctor.reset(new SMESH::Controls::FreeFaces());
myControlActor = my2DActor;
break;
case eCoincidentNodes:
myFunctor.reset(new SMESH::Controls::CoincidentNodes());
myControlActor = myNodeActor;
break;
case eCoincidentElems1D:
myFunctor.reset(new SMESH::Controls::CoincidentElements1D());
myControlActor = my1DActor;
break;
case eCoincidentElems2D:
myFunctor.reset(new SMESH::Controls::CoincidentElements2D());
myControlActor = my2DActor;
break;
case eCoincidentElems3D:
myFunctor.reset(new SMESH::Controls::CoincidentElements3D());
myControlActor = my3DActor;
break;
case eBareBorderFace:
myFunctor.reset(new SMESH::Controls::BareBorderFace());
myControlActor = my2DActor;
@ -809,19 +825,23 @@ SetControlMode(eControl theMode,
myControlMode = theMode;
switch(myControlMode){
case eFreeNodes:
case eCoincidentNodes:
myNodeExtActor->SetExtControlMode(myFunctor);
break;
case eFreeEdges:
case eFreeBorders:
case eCoincidentElems1D:
my1DExtActor->SetExtControlMode(myFunctor);
break;
case eFreeFaces:
case eBareBorderFace:
case eOverConstrainedFace:
case eCoincidentElems2D:
my2DExtActor->SetExtControlMode(myFunctor);
break;
case eBareBorderVolume:
case eOverConstrainedVolume:
case eCoincidentElems3D:
my3DExtActor->SetExtControlMode(myFunctor);
break;
case eLength2D:

View File

@ -129,7 +129,8 @@ class SMESHOBJECT_EXPORT SMESH_Actor: public SALOME_Actor
eFreeFaces, eMultiConnection, eArea, eTaper, eAspectRatio,
eMinimumAngle, eWarping, eSkew, eAspectRatio3D, eMultiConnection2D, eVolume3D,
eMaxElementLength2D, eMaxElementLength3D, eBareBorderFace, eBareBorderVolume,
eOverConstrainedFace, eOverConstrainedVolume};
eOverConstrainedFace, eOverConstrainedVolume, eCoincidentNodes,
eCoincidentElems1D, eCoincidentElems2D, eCoincidentElems3D };
virtual void SetControlMode(eControl theMode) = 0;
virtual eControl GetControlMode() = 0;
virtual SMESH::Controls::FunctorPtr GetFunctor() = 0;

View File

@ -489,6 +489,10 @@ SMESH_DeviceActor
dynamic_cast<BareBorderVolume *>(theFunctor.get()) ||
dynamic_cast<BareBorderFace *>(theFunctor.get()) ||
dynamic_cast<OverConstrainedVolume*>(theFunctor.get()) ||
dynamic_cast<CoincidentNodes *>(theFunctor.get()) ||
dynamic_cast<CoincidentElements1D *>(theFunctor.get()) ||
dynamic_cast<CoincidentElements2D *>(theFunctor.get()) ||
dynamic_cast<CoincidentElements3D *>(theFunctor.get()) ||
dynamic_cast<OverConstrainedFace *>(theFunctor.get()))
{
Predicate* aFreePredicate = dynamic_cast<Predicate*>(theFunctor.get());