X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSVTK%2FSVTK_Renderer.cxx;h=d5ccedbefe59f7690d755967d4b7c4002986c054;hb=02904c3728214667f919cfe06072a91e1687b12f;hp=fa09eb29f078fd9cd483af3f6cfaf8797b02988b;hpb=bb8609caf7881d966fbb88dec0a7822736da93f5;p=modules%2Fgui.git diff --git a/src/SVTK/SVTK_Renderer.cxx b/src/SVTK/SVTK_Renderer.cxx index fa09eb29f..d5ccedbef 100644 --- a/src/SVTK/SVTK_Renderer.cxx +++ b/src/SVTK/SVTK_Renderer.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -28,7 +28,7 @@ #include "SVTK_Trihedron.h" #include "SVTK_CubeAxesActor2D.h" -#include "SVTK_RectPicker.h" +#include "SVTK_AreaPicker.h" #include "SALOME_Actor.h" #include "VTKViewer_Actor.h" @@ -47,6 +47,7 @@ #include #include +#include // undefining min and max because CASCADE's defines them and // it clashes with std::min(), std::max() included in utilities.h @@ -67,8 +68,8 @@ SVTK_Renderer myEventCallbackCommand(vtkCallbackCommand::New()), myPointPicker(vtkPointPicker::New()), myCellPicker(vtkCellPicker::New()), - myPointRectPicker(SVTK_RectPicker::New()), - myCellRectPicker(SVTK_RectPicker::New()), + myPointAreaPicker(SVTK_AreaPicker::New()), + myCellAreaPicker(SVTK_AreaPicker::New()), myPreHighlightProperty(vtkProperty::New()), myHighlightProperty(vtkProperty::New()), myTransform(VTKViewer_Transform::New()), @@ -83,12 +84,12 @@ SVTK_Renderer myPointPicker->Delete(); myCellPicker->Delete(); - myPointRectPicker->Delete(); - myPointRectPicker->PickFromListOn(); + myPointAreaPicker->Delete(); + myPointAreaPicker->PickFromListOn(); - myCellRectPicker->Delete(); - myCellRectPicker->PickFromListOn(); - myCellRectPicker->PickPointsOff(); + myCellAreaPicker->Delete(); + myCellAreaPicker->PickFromListOn(); + myCellAreaPicker->PickPointsOff(); //SetPreselectionProp(); myPreHighlightProperty->Delete(); @@ -244,8 +245,8 @@ SVTK_Renderer anActor->SetPointPicker(myPointPicker.GetPointer()); anActor->SetCellPicker(myCellPicker.GetPointer()); - anActor->SetPointRectPicker(myPointRectPicker.GetPointer()); - anActor->SetCellRectPicker(myCellRectPicker.GetPointer()); + anActor->SetPointAreaPicker(myPointAreaPicker.GetPointer()); + anActor->SetCellAreaPicker(myCellAreaPicker.GetPointer()); anActor->SetPreHighlightProperty(myPreHighlightProperty.GetPointer()); anActor->SetHighlightProperty(myHighlightProperty.GetPointer()); @@ -275,14 +276,24 @@ SVTK_Renderer anActor->SetPointPicker(NULL); anActor->SetCellPicker(NULL); - anActor->SetPointRectPicker(NULL); - anActor->SetCellRectPicker(NULL); + anActor->SetPointAreaPicker(NULL); + anActor->SetCellAreaPicker(NULL); anActor->SetPreHighlightProperty(NULL); anActor->SetHighlightProperty(NULL); anActor->RemoveFromRender(GetDevice()); + while ( int i = myPointPicker->GetProp3Ds()->IsItemPresent( theActor )) + myPointPicker->GetProp3Ds()->RemoveItem( i-1 ); + while ( int i = myCellPicker->GetProp3Ds()->IsItemPresent( theActor )) + myCellPicker->GetProp3Ds()->RemoveItem( i-1 ); + + while ( int i = myPointPicker->GetActors()->IsItemPresent( theActor )) + myPointPicker->GetActors()->RemoveItem( i-1 ); + while ( int i = myCellPicker->GetActors()->IsItemPresent( theActor )) + myCellPicker->GetActors()->RemoveItem( i-1 ); + if(theIsAdjustActors) AdjustActors(); } @@ -369,8 +380,8 @@ SVTK_Renderer myPointPicker->SetTolerance( theTolNodes ); myCellPicker->SetTolerance( theTolCell ); - myPointRectPicker->SetTolerance( theTolNodes ); - myCellRectPicker->SetTolerance( theTolCell ); + myPointAreaPicker->SetTolerance( theTolNodes ); + myCellAreaPicker->SetTolerance( theTolCell ); mySelector->SetTolerance( theTolObjects ); } @@ -547,6 +558,18 @@ SVTK_Renderer myTrihedron->VisibilityOn(); } +/*! + Set trihedron visibility +*/ +void +SVTK_Renderer +::SetTrihedronVisibility( const bool show ) { + if(show) + myTrihedron->VisibilityOn(); + else + myTrihedron->VisibilityOff(); +} + /*! Adjust size of the trihedron to the bounding box of the scene */