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:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user