+ correctly handle toggle selection in BRep shape nodes

This commit is contained in:
wmayer 2015-11-28 16:21:20 +01:00
parent 19c840e1ab
commit 6111f55a89
4 changed files with 10 additions and 7 deletions

View File

@ -582,7 +582,7 @@ void View3DInventorViewer::initialize()
void View3DInventorViewer::OnChange(Gui::SelectionSingleton::SubjectType& rCaller, void View3DInventorViewer::OnChange(Gui::SelectionSingleton::SubjectType& rCaller,
Gui::SelectionSingleton::MessageType Reason) Gui::SelectionSingleton::MessageType Reason)
{ {
if(Reason.Type == SelectionChanges::AddSelection || if (Reason.Type == SelectionChanges::AddSelection ||
Reason.Type == SelectionChanges::RmvSelection || Reason.Type == SelectionChanges::RmvSelection ||
Reason.Type == SelectionChanges::SetSelection || Reason.Type == SelectionChanges::SetSelection ||
Reason.Type == SelectionChanges::ClrSelection) { Reason.Type == SelectionChanges::ClrSelection) {

View File

@ -321,6 +321,7 @@ void SoBrepEdgeSet::doAction(SoAction* action)
case Gui::SoSelectionElementAction::Remove: case Gui::SoSelectionElementAction::Remove:
{ {
int start = this->selectionIndex.find(index); int start = this->selectionIndex.find(index);
if (start >= 0)
this->selectionIndex.deleteValues(start,1); this->selectionIndex.deleteValues(start,1);
} }
break; break;

View File

@ -144,6 +144,7 @@ void SoBrepFaceSet::doAction(SoAction* action)
case Gui::SoSelectionElementAction::Remove: case Gui::SoSelectionElementAction::Remove:
{ {
int start = this->selectionIndex.find(index); int start = this->selectionIndex.find(index);
if (start >= 0)
this->selectionIndex.deleteValues(start,1); this->selectionIndex.deleteValues(start,1);
} }
break; break;

View File

@ -256,6 +256,7 @@ void SoBrepPointSet::doAction(SoAction* action)
case Gui::SoSelectionElementAction::Remove: case Gui::SoSelectionElementAction::Remove:
{ {
int start = this->selectionIndex.find(index); int start = this->selectionIndex.find(index);
if (start >= 0)
this->selectionIndex.deleteValues(start,1); this->selectionIndex.deleteValues(start,1);
} }
break; break;