void OpenGl_View::DisplayImmediateStructure (const Handle(Graphic3d_Structure)& theStructure)
{
const OpenGl_Structure* aStruct = reinterpret_cast<const OpenGl_Structure*> (theStructure->CStructure().operator->());
- for (OpenGl_SequenceOfStructure::Iterator anIter (myImmediateList);
- anIter.More(); anIter.Next())
- {
- if (anIter.Value() == aStruct)
- {
- return;
- }
- }
-
- myImmediateList.Append (aStruct);
+ myImmediateList.Add (aStruct);
}
//=======================================================================
void OpenGl_View::EraseImmediateStructure (const OpenGl_Structure* theStructure)
{
- for (OpenGl_SequenceOfStructure::Iterator anIter (myImmediateList);
- anIter.More(); anIter.Next())
+ const Standard_Integer anIndex = myImmediateList.FindIndex (theStructure);
+
+ if (anIndex != 0)
{
- if (anIter.Value() == theStructure)
- {
- myImmediateList.Remove (anIter);
- return;
- }
+ myImmediateList.Swap (myImmediateList.Size(), anIndex);
+ myImmediateList.RemoveLast();
}
}