X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=src%2FOpenGl%2FOpenGl_CappingPlaneResource.hxx;h=9547b82b3ec5a331a5a6cad87f8afc83757880a6;hp=3b336ce3295c10f9f5a13f64d666038b96d4b6ef;hb=0c33a0bf4d320a4afef435687477636a570100b3;hpb=973c2be1e1d7ccc09340d14d5174bb03c761d4a0 diff --git a/src/OpenGl/OpenGl_CappingPlaneResource.hxx b/src/OpenGl/OpenGl_CappingPlaneResource.hxx index 3b336ce..9547b82 100755 --- a/src/OpenGl/OpenGl_CappingPlaneResource.hxx +++ b/src/OpenGl/OpenGl_CappingPlaneResource.hxx @@ -1,11 +1,11 @@ // Created on: 2013-08-15 // Created by: Anton POLETAEV -// Copyright (c) 2013 OPEN CASCADE SAS +// Copyright (c) 2013-2014 OPEN CASCADE SAS // // This file is part of Open CASCADE Technology software library. // -// This library is free software; you can redistribute it and / or modify it -// under the terms of the GNU Lesser General Public version 2.1 as published +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published // by the Free Software Foundation, with special exception defined in the file // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT // distribution for complete text of the license and disclaimer of any warranty. @@ -16,13 +16,13 @@ #ifndef _OpenGl_CappingPlaneResource_H__ #define _OpenGl_CappingPlaneResource_H__ +#include #include -#include +#include #include #include -class Handle(OpenGl_Context); - +class OpenGl_CappingPlaneResource; DEFINE_STANDARD_HANDLE (OpenGl_CappingPlaneResource, OpenGl_Resource) //! Container of graphical resources for rendering capping plane @@ -45,39 +45,52 @@ public: 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 (const 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 };