X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FOBJECT%2FSMESH_Actor.cxx;h=46bff48d4cc935aeec4fb914019569ad138382d0;hp=b3527bc88d5b57f8da011b3492b7735068fcdec8;hb=560f8b2d0c2a7fdb4047f981cfac56ed3629bc1a;hpb=7c11ba611592a1cad22dd603cbf07935d0068699;ds=sidebyside diff --git a/src/OBJECT/SMESH_Actor.cxx b/src/OBJECT/SMESH_Actor.cxx index b3527bc88..46bff48d4 100644 --- a/src/OBJECT/SMESH_Actor.cxx +++ b/src/OBJECT/SMESH_Actor.cxx @@ -804,12 +804,20 @@ bool SMESH_ActorDef::GetFacesOrientation3DVectors() } +void SMESH_ActorDef::SetControl(SMESH::Controls::FunctorPtr theFunctor) +{ + myFunctor = theFunctor; + if ( !theFunctor ) + SetControlMode( eNone, true ); + else + SetControlMode( eCustomControl, true ); +} + void SMESH_ActorDef::SetControlMode(eControl theMode) { SetControlMode(theMode,true); } - void SMESH_ActorDef::SetControlMode( eControl theMode, bool theCheckEntityMode ) { vtkLookupTable* lookupTable = static_cast(myScalarBarActor->GetLookupTable()); @@ -1006,6 +1014,19 @@ void SMESH_ActorDef::SetControlMode( eControl theMode, bool theCheckEntityMode ) myControlActor = myNodeActor; break; } + case eCustomControl: + { + if ( !myFunctor ) + return; + switch ( myFunctor->GetType() ) { + case SMDSAbs_Node : myControlActor = myNodeActor; break; + case SMDSAbs_Edge : myControlActor = my1DActor; break; + case SMDSAbs_Face : myControlActor = my2DActor; break; + case SMDSAbs_Volume : myControlActor = my3DActor; break; + default : return; + } + break; + } default: return; }