#ifndef _OpenGl_CappingPlaneResource_H__
#define _OpenGl_CappingPlaneResource_H__
+#include <OpenGl_PrimitiveArray.hxx>
#include <OpenGl_Resource.hxx>
-#include <OpenGl_AspectFace.hxx>
+#include <OpenGl_Aspects.hxx>
#include <OpenGl_Matrix.hxx>
#include <Graphic3d_ClipPlane.hxx>
-class Handle(OpenGl_Context);
-
+class OpenGl_CappingPlaneResource;
DEFINE_STANDARD_HANDLE (OpenGl_CappingPlaneResource, OpenGl_Resource)
//! Container of graphical resources for rendering capping plane
Standard_EXPORT virtual ~OpenGl_CappingPlaneResource();
//! Update resource data in the passed context.
- //! @param theContext [in] the context.
- Standard_EXPORT void Update (const Handle(OpenGl_Context)& theContext);
+ //! @param theContext [in] the context
+ //! @param theObjAspect [in] object aspect
+ Standard_EXPORT void Update (const Handle(OpenGl_Context)& theContext,
+ const Handle(Graphic3d_Aspects)& theObjAspect);
//! Release associated OpenGl resources.
//! @param theContext [in] the resource context.
- Standard_EXPORT void Release (OpenGl_Context* theContext);
+ Standard_EXPORT virtual void Release (OpenGl_Context* theContext) Standard_OVERRIDE;
+
+ //! Returns estimated GPU memory usage - not implemented.
+ virtual Standard_Size EstimatedDataSize() const Standard_OVERRIDE { return 0; }
+
+ //! Return parent clipping plane structure.
+ const Handle(Graphic3d_ClipPlane)& Plane() const { return myPlaneRoot; }
//! @return aspect face for rendering capping surface.
- inline const OpenGl_AspectFace* AspectFace() const { return myAspect; }
+ inline const OpenGl_Aspects* AspectFace() const { return myAspect; }
//! @return evaluated orientation matrix to transform infinite plane.
inline const OpenGl_Matrix* Orientation() const { return &myOrientation; }
+ //! @return primitive array of vertices to render infinite plane.
+ inline const OpenGl_PrimitiveArray& Primitives() const { return myPrimitives; }
+
private:
//! Update precomputed plane orientation matrix.
- void UpdateTransform();
+ void updateTransform (const Handle(OpenGl_Context)& theCtx);
//! Update resources.
- //! @param theContext [in] the context.
- void UpdateAspect (const Handle(OpenGl_Context)& theContext);
+ void updateAspect (const Handle(Graphic3d_Aspects)& theObjAspect);
private:
+ OpenGl_PrimitiveArray myPrimitives; //!< vertices and texture coordinates for rendering
OpenGl_Matrix myOrientation; //!< plane transformation matrix.
- OpenGl_AspectFace* myAspect; //!< capping face aspect.
+ OpenGl_Aspects* myAspect; //!< capping face aspect.
Handle(Graphic3d_ClipPlane) myPlaneRoot; //!< parent clipping plane structure.
+ Handle(Graphic3d_Aspects) myFillAreaAspect;//!< own capping aspect
+ gp_XYZ myLocalOrigin; //!< layer origin
unsigned int myEquationMod; //!< modification counter for plane equation.
unsigned int myAspectMod; //!< modification counter for aspect.
public:
- DEFINE_STANDARD_RTTI(OpenGl_CappingPlaneResource) // Type definition
+ DEFINE_STANDARD_RTTIEXT(OpenGl_CappingPlaneResource,OpenGl_Resource) // Type definition
};