Salome HOME
0021338: EDF 1926 SMESH: New controls and filters
authoreap <eap@opencascade.com>
Mon, 23 Jan 2012 16:12:32 +0000 (16:12 +0000)
committereap <eap@opencascade.com>
Mon, 23 Jan 2012 16:12:32 +0000 (16:12 +0000)
+   eCoincidentNodes, eCoincidentElems1D, eCoincidentElems2D, eCoincidentElems3D };

src/OBJECT/SMESH_Actor.cxx
src/OBJECT/SMESH_Actor.h
src/OBJECT/SMESH_DeviceActor.cxx

index b4f703c2fdd65429cfb59f28e0f52bec21e1fdd3..23a702774ab678e8878f81f9aff1a640561cdcfb 100644 (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:
index ac9ad973a900b135b61f98ea963955fa52be8848..62b1f4766c6b2a76b6780811236f3e4e226197f1 100644 (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;
index 6032c57349ccdb1ae2393ddbe75637f1388b0858..41de5c531b566ced63b3daf5f6187c8243986457 100644 (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());