0030748: Visualization - Marker displayed in immediate layer ruins QT Quick view...
[occt.git] / src / OpenGl / OpenGl_StructureShadow.cxx
index 0025e64..6467201 100644 (file)
@@ -16,6 +16,9 @@
 #include <OpenGl_StructureShadow.hxx>
 
 #include <Graphic3d_GraphicDriver.hxx>
+#include <Standard_ProgramError.hxx>
+
+IMPLEMENT_STANDARD_RTTIEXT(OpenGl_StructureShadow,OpenGl_Structure)
 
 //=======================================================================
 //function : OpenGl_StructureShadow
@@ -28,19 +31,32 @@ OpenGl_StructureShadow::OpenGl_StructureShadow (const Handle(Graphic3d_Structure
   Handle(OpenGl_StructureShadow) aShadow = Handle(OpenGl_StructureShadow)::DownCast (theStructure);
   myParent = aShadow.IsNull() ? theStructure : aShadow->myParent;
 
-
-  Composition   = myParent->Composition;
   ContainsFacet = myParent->ContainsFacet;
   IsInfinite    = myParent->IsInfinite;
-  for (Standard_Integer i = 0; i <= 3; ++i)
-  {
-    for (Standard_Integer j = 0; j <= 3; ++j)
-    {
-      Graphic3d_CStructure::Transformation[i][j] = myParent->Graphic3d_CStructure::Transformation[i][j];
-    }
-  }
-
-  TransformPersistence.IsSet = myParent->TransformPersistence.IsSet;
-  TransformPersistence.Flag  = myParent->TransformPersistence.Flag;
-  TransformPersistence.Point = myParent->TransformPersistence.Point;
+  myBndBox      = myParent->BoundingBox();
+
+  OpenGl_Structure::SetTransformation (myParent->Transformation());
+  myInstancedStructure = const_cast<OpenGl_Structure*> (myParent->InstancedStructure());
+  myTrsfPers = myParent->TransformPersistence();
+
+  // reuse instanced structure API
+  myInstancedStructure = myParent.operator->();
+}
+
+// =======================================================================
+// function : Connect
+// purpose  :
+// =======================================================================
+void OpenGl_StructureShadow::Connect (Graphic3d_CStructure& )
+{
+  throw Standard_ProgramError("Error! OpenGl_StructureShadow::Connect() should not be called!");
+}
+
+// =======================================================================
+// function : Disconnect
+// purpose  :
+// =======================================================================
+void OpenGl_StructureShadow::Disconnect (Graphic3d_CStructure& )
+{
+  throw Standard_ProgramError("Error! OpenGl_StructureShadow::Disconnect() should not be called!");
 }