X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Displayer.cpp;h=7e5deb50ed54333a332d96c841dd1b68a05a78d0;hb=4ee6972a725f02500c2c543abeef2909180e09c1;hp=4073b30b435838c86319ab4286eb1c3e558488b9;hpb=ad247cf594a7a560b656c70c96e1b1a360b8c1c3;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Displayer.cpp b/src/XGUI/XGUI_Displayer.cpp index 4073b30b4..7e5deb50e 100644 --- a/src/XGUI/XGUI_Displayer.cpp +++ b/src/XGUI/XGUI_Displayer.cpp @@ -20,6 +20,8 @@ #include +const int MOUSE_SENSITIVITY_IN_PIXEL = 10; ///< defines the local context mouse selection sensitivity + XGUI_Displayer::XGUI_Displayer(XGUI_Workshop* theWorkshop) { myWorkshop = theWorkshop; @@ -53,7 +55,7 @@ void XGUI_Displayer::Display(boost::shared_ptr theFeature, }*/ -std::list XGUI_Displayer::GetSelected() +std::list XGUI_Displayer::GetSelected(const int theShapeTypeToSkip) { std::set > aPrsFeatures; std::list aPresentations; @@ -62,6 +64,8 @@ std::list XGUI_Displayer::GetSelected() for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected()) { Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive(); TopoDS_Shape aShape = aContext->SelectedShape(); + if (theShapeTypeToSkip >= 0 && !aShape.IsNull() && aShape.ShapeType() == theShapeTypeToSkip) + continue; boost::shared_ptr aFeature = GetFeature(anIO); if (aPrsFeatures.find(aFeature) != aPrsFeatures.end()) @@ -72,7 +76,7 @@ std::list XGUI_Displayer::GetSelected() return aPresentations; } -std::list XGUI_Displayer::GetHighlighted() +std::list XGUI_Displayer::GetHighlighted(const int theShapeTypeToSkip) { std::set > aPrsFeatures; std::list aPresentations; @@ -81,6 +85,8 @@ std::list XGUI_Displayer::GetHighlighted() for (aContext->InitDetected(); aContext->MoreDetected(); aContext->NextDetected()) { Handle(AIS_InteractiveObject) anIO = aContext->DetectedInteractive(); TopoDS_Shape aShape = aContext->DetectedShape(); + if (theShapeTypeToSkip >= 0 && !aShape.IsNull() && aShape.ShapeType() == theShapeTypeToSkip) + continue; boost::shared_ptr aFeature = GetFeature(anIO); if (aPrsFeatures.find(aFeature) != aPrsFeatures.end()) @@ -119,6 +125,9 @@ void XGUI_Displayer::Redisplay(boost::shared_ptr theFeature, if (!aContext->HasOpenedContext()) { aContext->ClearCurrents(false); aContext->OpenLocalContext(false/*use displayed objects*/, true/*allow shape decomposition*/); + // set mouse sensitivity + //aContext->SetSensitivityMode(StdSelect_SM_WINDOW); + //aContext->SetPixelTolerance(MOUSE_SENSITIVITY_IN_PIXEL); } // display or redisplay presentation Handle(AIS_Shape) anAIS;