X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FModuleBase%2FModuleBase_ISelection.cpp;h=c7faa8ee00a3e079f10961ff36d9f8b32b08f1f0;hb=aba714fbb23139b15272ed816c9a30595165106c;hp=73999c6011f5549c3cdab609edfd8b749720be8c;hpb=97917d3698f5a2f7fc9596e7c755ff8f6751e373;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_ISelection.cpp b/src/ModuleBase/ModuleBase_ISelection.cpp index 73999c601..c7faa8ee0 100644 --- a/src/ModuleBase/ModuleBase_ISelection.cpp +++ b/src/ModuleBase/ModuleBase_ISelection.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2021 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -20,6 +20,7 @@ #include "ModuleBase_ISelection.h" #include "ModuleBase_ViewerPrs.h" +#include "ModelAPI_Feature.h" #include #include @@ -53,8 +54,10 @@ ResultPtr ModuleBase_ISelection::getResult(const ModuleBase_ViewerPrsPtr& thePrs { ResultPtr aResult; - if (thePrs->object().get()) - aResult = std::dynamic_pointer_cast(thePrs->object()); + if (thePrs->object().get()) { + ObjectPtr aObject = thePrs->object(); + aResult = std::dynamic_pointer_cast(aObject); + } else if (!thePrs->owner().IsNull()) { ObjectPtr anObject = getSelectableObject(thePrs->owner()); aResult = std::dynamic_pointer_cast(anObject); @@ -112,11 +115,11 @@ void ModuleBase_ISelection::filterSelectionOnEqualPoints std::shared_ptr aGeomPrsVertex = getPresentationVertex(aPrs); if (aGeomPrsVertex.get()) { const TopoDS_Vertex& aPrsVertex = aGeomPrsVertex->impl(); - std::set >::const_iterator anIt = aVerticesMap.begin(), - aLast = aVerticesMap.end(); + std::set >::const_iterator aVIt = aVerticesMap.begin(), + aVLast = aVerticesMap.end(); bool aFound = false; - for (; anIt != aLast && !aFound; anIt++) { - std::shared_ptr aGeomVertex = *anIt; + for (; aVIt != aVLast && !aFound; aVIt++) { + std::shared_ptr aGeomVertex = *aVIt; const TopoDS_Vertex& aVertex = aGeomVertex->impl(); gp_Pnt aPoint1 = BRep_Tool::Pnt(aVertex); gp_Pnt aPoint2 = BRep_Tool::Pnt(aPrsVertex);