const Handle(SelectMgr_Selection)& TheRefSel = myReference->Selection (theMode);
Handle(SelectMgr_EntityOwner) anOwner = new SelectMgr_EntityOwner (this);
- Handle(Select3D_SensitiveEntity) aSensitive, aNewSensitive;
TopLoc_Location aLocation (Transformation());
anOwner->SetLocation (aLocation);
for (NCollection_Vector<Handle(SelectMgr_SensitiveEntity)>::Iterator aSelEntIter (TheRefSel->Entities()); aSelEntIter.More(); aSelEntIter.Next())
{
- aSensitive = Handle(Select3D_SensitiveEntity)::DownCast (aSelEntIter.Value()->BaseSensitive());
- if (!aSensitive.IsNull())
+ if (Handle(Select3D_SensitiveEntity) aSensitive = Handle(Select3D_SensitiveEntity)::DownCast (aSelEntIter.Value()->BaseSensitive()))
{
// Get the copy of SE3D
- aNewSensitive = aSensitive->GetConnected();
-
- aNewSensitive->Set(anOwner);
-
- theSelection->Add (aNewSensitive);
+ if (Handle(Select3D_SensitiveEntity) aNewSensitive = aSensitive->GetConnected())
+ {
+ aNewSensitive->Set(anOwner);
+ theSelection->Add (aNewSensitive);
+ }
}
}
}
anOwner->SetLocation (Transformation());
for (SensitiveList::Iterator aListIt (aSEList); aListIt.More(); aListIt.Next())
{
- Handle(Select3D_SensitiveEntity) aSE = aListIt.Value();
- Handle(Select3D_SensitiveEntity) aNewSE = aSE->GetConnected();
- aNewSE->Set (anOwner);
- theSelection->Add (aNewSE);
+ if (Handle(Select3D_SensitiveEntity) aNewSE = aListIt.Value()->GetConnected())
+ {
+ aNewSE->Set (anOwner);
+ theSelection->Add (aNewSE);
+ }
}
}