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();
}
}
}
--- /dev/null
+puts "==========="
+puts "OCC28093"
+puts "Visualization - access violation on removal of dynamic highlighting after device loss"
+puts "==========="
+puts ""
+
+pload MODELING VISUALIZATION
+box b 1 2 3
+vclear
+vinit View1
+vdisplay -dispMode 1 -highMode 1 b
+vfit
+
+vmoveto 250 250
+vraytrace 1
+vmoveto 400 400
+
+vdump $imagedir/${casename}.png