X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSVTK%2FSALOME_Actor.cxx;h=74c57f9e9ee5f8d95d026c9323a8681c1e3ee134;hb=8c5294030a4c11ca0a18be48fc0165466861adad;hp=ad20490b22ba51da80df7cf4dd6ac145f25d7a07;hpb=731e47a1cac1c7dd304f090953285077010accb7;p=modules%2Fgui.git diff --git a/src/SVTK/SALOME_Actor.cxx b/src/SVTK/SALOME_Actor.cxx index ad20490b2..74c57f9e9 100644 --- a/src/SVTK/SALOME_Actor.cxx +++ b/src/SVTK/SALOME_Actor.cxx @@ -108,7 +108,7 @@ namespace SALOME_Actor *theActor, vtkIdType theObjId) { - switch(theMode){ + switch(theMode) { case CellSelection: return true; case EdgeSelection: @@ -117,6 +117,15 @@ namespace return ( theActor->GetObjDimension( theObjId ) == 2 ); case VolumeSelection: return ( theActor->GetObjDimension( theObjId ) == 3 ); + case Elem0DSelection: + return ((theActor->GetObjDimension( theObjId ) == 0) && + theActor->GetElemCell(theObjId) && + (theActor->GetElemCell(theObjId)->GetCellType() == VTK_VERTEX)); + case BallSelection: + return ((theActor->GetObjDimension( theObjId ) == 0) && + theActor->GetElemCell(theObjId) && + (theActor->GetElemCell(theObjId)->GetCellType() == VTK_POLY_VERTEX)); + }; return false; } @@ -273,8 +282,8 @@ SALOME_Actor myRenderer = theRenderer; - theRenderer->AddActor( myPreHighlightActor.GetPointer() ); - theRenderer->AddActor( myHighlightActor.GetPointer() ); + myHighlightActor->AddToRender(theRenderer); + myPreHighlightActor->AddToRender(theRenderer); theRenderer->AddActor( myOutlineActor.GetPointer() ); theRenderer->AddActor( myNameActor.GetPointer() ); } @@ -288,6 +297,9 @@ SALOME_Actor { Superclass::RemoveFromRender(theRenderer); + myHighlightActor->RemoveFromRender(theRenderer); + myPreHighlightActor->RemoveFromRender(theRenderer); + theRenderer->RemoveActor( myPreHighlightActor.GetPointer() ); theRenderer->RemoveActor( myHighlightActor.GetPointer() ); theRenderer->RemoveActor( myOutlineActor.GetPointer() ); @@ -439,6 +451,8 @@ SALOME_Actor case EdgeSelection: case FaceSelection: case VolumeSelection: + case Elem0DSelection: + case BallSelection: myHighlightActor->GetProperty()->SetRepresentationToSurface(); myHighlightActor->MapCells( this, aMapIndex ); break; @@ -535,6 +549,8 @@ SALOME_Actor case EdgeSelection: case FaceSelection: case VolumeSelection: + case Elem0DSelection: + case BallSelection: { SVTK::TPickLimiter aPickLimiter( myCellPicker, this ); myCellPicker->Pick( x, y, z, aRenderer ); @@ -672,6 +688,8 @@ SALOME_Actor case EdgeSelection: case FaceSelection: case VolumeSelection: + case Elem0DSelection: + case BallSelection: { SVTK::TPickLimiter aPickLimiter( myCellPicker, this ); myCellPicker->Pick( x, y, z, aRenderer ); @@ -795,6 +813,8 @@ SALOME_Actor case EdgeSelection: case FaceSelection: case VolumeSelection: + case Elem0DSelection: + case BallSelection: { SVTK::TPickLimiter aPickLimiter( myCellRectPicker, this ); myCellRectPicker->Pick( x1, y1, z1, x2, y2, z2, aRenderer );