if (!isForChangePriority)
{
- if (theStruct->IsAlwaysRendered())
+ Standard_Boolean isAlwaysRend = theStruct->IsAlwaysRendered();
+ if (!isAlwaysRend)
{
- const Standard_Integer anIndex2 = myAlwaysRenderedMap.FindIndex (theStruct);
- if (anIndex2 != 0)
+ if (!myBVHPrimitives.Remove (theStruct))
{
- myAlwaysRenderedMap.Swap (myAlwaysRenderedMap.Size(), anIndex2);
- myAlwaysRenderedMap.RemoveLast();
+ if (!myBVHPrimitivesTrsfPers.Remove (theStruct))
+ {
+ isAlwaysRend = Standard_True;
+ }
}
}
- else
+ if (isAlwaysRend)
{
- if (!myBVHPrimitives.Remove (theStruct))
+ const Standard_Integer anIndex2 = myAlwaysRenderedMap.FindIndex (theStruct);
+ if (anIndex2 != 0)
{
- myBVHPrimitivesTrsfPers.Remove (theStruct);
+ myAlwaysRenderedMap.Swap (myAlwaysRenderedMap.Size(), anIndex2);
+ myAlwaysRenderedMap.RemoveLast();
}
}
}