1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-29 14:00:49 +03:00

0027130: Visualization, Ray tracing - skip structures with transformation persistence flag

Objects with transform persistence are detected as non ray-tracable and redered using the rasterization approach.
The renderFiltered() method moved to the OpenGl_Group class.

v3d/raytrace/bug27130: test case added
This commit is contained in:
mzernova
2020-07-09 11:32:40 +03:00
committed by bugmaster
parent 21c7c45701
commit 4552cb8552
8 changed files with 67 additions and 29 deletions

View File

@@ -162,6 +162,10 @@ void OpenGl_Structure::SetTransformation (const Handle(TopLoc_Datum3D)& theTrsf)
// =======================================================================
void OpenGl_Structure::SetTransformPersistence (const Handle(Graphic3d_TransformPers)& theTrsfPers)
{
if ((myTrsfPers.IsNull() || theTrsfPers.IsNull()) && myTrsfPers != theTrsfPers)
{
++myModificationState;
}
myTrsfPers = theTrsfPers;
updateLayerTransformation();
}
@@ -226,7 +230,8 @@ void OpenGl_Structure::OnVisibilityChanged()
Standard_Boolean OpenGl_Structure::IsRaytracable() const
{
if (!myGroups.IsEmpty()
&& myIsRaytracable)
&& myIsRaytracable
&& myTrsfPers.IsNull())
{
return Standard_True;
}