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()); myFunctor.reset(new SMESH::Controls::FreeFaces());
myControlActor = my2DActor; myControlActor = my2DActor;
break; 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: case eBareBorderFace:
myFunctor.reset(new SMESH::Controls::BareBorderFace()); myFunctor.reset(new SMESH::Controls::BareBorderFace());
myControlActor = my2DActor; myControlActor = my2DActor;
@ -809,19 +825,23 @@ SetControlMode(eControl theMode,
myControlMode = theMode; myControlMode = theMode;
switch(myControlMode){ switch(myControlMode){
case eFreeNodes: case eFreeNodes:
case eCoincidentNodes:
myNodeExtActor->SetExtControlMode(myFunctor); myNodeExtActor->SetExtControlMode(myFunctor);
break; break;
case eFreeEdges: case eFreeEdges:
case eFreeBorders: case eFreeBorders:
case eCoincidentElems1D:
my1DExtActor->SetExtControlMode(myFunctor); my1DExtActor->SetExtControlMode(myFunctor);
break; break;
case eFreeFaces: case eFreeFaces:
case eBareBorderFace: case eBareBorderFace:
case eOverConstrainedFace: case eOverConstrainedFace:
case eCoincidentElems2D:
my2DExtActor->SetExtControlMode(myFunctor); my2DExtActor->SetExtControlMode(myFunctor);
break; break;
case eBareBorderVolume: case eBareBorderVolume:
case eOverConstrainedVolume: case eOverConstrainedVolume:
case eCoincidentElems3D:
my3DExtActor->SetExtControlMode(myFunctor); my3DExtActor->SetExtControlMode(myFunctor);
break; break;
case eLength2D: case eLength2D:

View File

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

View File

@ -489,6 +489,10 @@ SMESH_DeviceActor
dynamic_cast<BareBorderVolume *>(theFunctor.get()) || dynamic_cast<BareBorderVolume *>(theFunctor.get()) ||
dynamic_cast<BareBorderFace *>(theFunctor.get()) || dynamic_cast<BareBorderFace *>(theFunctor.get()) ||
dynamic_cast<OverConstrainedVolume*>(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())) dynamic_cast<OverConstrainedFace *>(theFunctor.get()))
{ {
Predicate* aFreePredicate = dynamic_cast<Predicate*>(theFunctor.get()); Predicate* aFreePredicate = dynamic_cast<Predicate*>(theFunctor.get());