From: eap Date: Mon, 23 Jan 2012 16:12:32 +0000 (+0000) Subject: 0021338: EDF 1926 SMESH: New controls and filters X-Git-Tag: V6_5_0a1~190 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=c573d1fae4d91182b563fc308afc4e76f383cceb;p=modules%2Fsmesh.git 0021338: EDF 1926 SMESH: New controls and filters + eCoincidentNodes, eCoincidentElems1D, eCoincidentElems2D, eCoincidentElems3D }; --- diff --git a/src/OBJECT/SMESH_Actor.cxx b/src/OBJECT/SMESH_Actor.cxx index b4f703c2f..23a702774 100644 --- a/src/OBJECT/SMESH_Actor.cxx +++ b/src/OBJECT/SMESH_Actor.cxx @@ -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: diff --git a/src/OBJECT/SMESH_Actor.h b/src/OBJECT/SMESH_Actor.h index ac9ad973a..62b1f4766 100644 --- a/src/OBJECT/SMESH_Actor.h +++ b/src/OBJECT/SMESH_Actor.h @@ -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; diff --git a/src/OBJECT/SMESH_DeviceActor.cxx b/src/OBJECT/SMESH_DeviceActor.cxx index 6032c5734..41de5c531 100644 --- a/src/OBJECT/SMESH_DeviceActor.cxx +++ b/src/OBJECT/SMESH_DeviceActor.cxx @@ -489,6 +489,10 @@ SMESH_DeviceActor dynamic_cast(theFunctor.get()) || dynamic_cast(theFunctor.get()) || dynamic_cast(theFunctor.get()) || + dynamic_cast(theFunctor.get()) || + dynamic_cast(theFunctor.get()) || + dynamic_cast(theFunctor.get()) || + dynamic_cast(theFunctor.get()) || dynamic_cast(theFunctor.get())) { Predicate* aFreePredicate = dynamic_cast(theFunctor.get());