0029331: Visualization, TKOpenGl - make OpenGl_PrimitiveArray::IsFillDrawMode() as...
authorkgv <kgv@opencascade.com>
Thu, 16 Nov 2017 19:57:48 +0000 (22:57 +0300)
committerkgv <kgv@opencascade.com>
Thu, 30 Nov 2017 20:09:22 +0000 (23:09 +0300)
src/OpenGl/OpenGl_CappingAlgo.cxx
src/OpenGl/OpenGl_Element.hxx
src/OpenGl/OpenGl_LayerList.cxx
src/OpenGl/OpenGl_PrimitiveArray.hxx

index 61206dd..a729da3 100755 (executable)
@@ -228,7 +228,5 @@ Standard_Boolean OpenGl_CappingAlgoFilter::ShouldRender (const Handle(OpenGl_Wor
     return Standard_False;
   }
 
-  const OpenGl_PrimitiveArray* aPArray = dynamic_cast<const OpenGl_PrimitiveArray*> (theGlElement);
-  return aPArray != NULL
-      && aPArray->IsFillDrawMode();
+  return theGlElement->IsFillDrawMode();
 }
index 74890ee..1df5afe 100644 (file)
@@ -56,6 +56,11 @@ public:
 
 public:
 
+  //! Return TRUE if primitive type generates shaded triangulation (to be used in filters).
+  virtual Standard_Boolean IsFillDrawMode() const { return false; }
+
+public:
+
   //! Render element if it passes the filtering procedure. This method should
   //! be used for elements which can be used in scope of rendering algorithms.
   //! E.g. elements of groups during recursive rendering.
index eddee5b..51dbc60 100644 (file)
@@ -825,9 +825,7 @@ Standard_Boolean OpenGl_LayerList::OpenGl_OpaqueFilter::ShouldRender (const Hand
     return Standard_False;
   }
 
-  const OpenGl_PrimitiveArray* aPArray = dynamic_cast<const OpenGl_PrimitiveArray*> (theGlElement);
-  if (aPArray == NULL
-  || !aPArray->IsFillDrawMode())
+  if (!theGlElement->IsFillDrawMode())
   {
     return Standard_True;
   }
@@ -856,9 +854,7 @@ Standard_Boolean OpenGl_LayerList::OpenGl_TransparentFilter::ShouldRender (const
     return Standard_False;
   }
 
-  const OpenGl_PrimitiveArray* aPArray = dynamic_cast<const OpenGl_PrimitiveArray*> (theGlElement);
-  if (aPArray == NULL
-  || !aPArray->IsFillDrawMode())
+  if (!theGlElement->IsFillDrawMode())
   {
     return dynamic_cast<const OpenGl_AspectFace*> (theGlElement) != NULL;
   }
index 5f1fa93..ddeff49 100644 (file)
@@ -53,10 +53,10 @@ public:
   Standard_EXPORT virtual ~OpenGl_PrimitiveArray();
 
   //! Render primitives to the window
-  Standard_EXPORT virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
+  Standard_EXPORT virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const Standard_OVERRIDE;
 
   //! Release OpenGL resources (VBOs)
-  Standard_EXPORT virtual void Release (OpenGl_Context* theContext);
+  Standard_EXPORT virtual void Release (OpenGl_Context* theContext) Standard_OVERRIDE;
 
   //! Return true if VBOs initialization has been performed.
   //! VBO initialization is performed during first Render() call.
@@ -70,7 +70,7 @@ public:
   GLint DrawMode() const { return myDrawMode; }
 
   //! Return TRUE if primitive type generates shaded triangulation.
-  Standard_Boolean IsFillDrawMode() const { return myIsFillType; }
+  virtual Standard_Boolean IsFillDrawMode() const Standard_OVERRIDE { return myIsFillType; }
 
   //! @return indices array
   const Handle(Graphic3d_IndexBuffer)& Indices() const { return myIndices; }