+ eCoincidentNodes, eCoincidentElems1D, eCoincidentElems2D, eCoincidentElems3D };
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;
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:
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;
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());