X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=src%2FOpenGl%2FOpenGl_CappingPlaneResource.hxx;h=9547b82b3ec5a331a5a6cad87f8afc83757880a6;hp=b66c03937f380066bc90361dbc3574662e361e65;hb=0c33a0bf4d320a4afef435687477636a570100b3;hpb=4269bd1b11727b8b96277ac5dba823b46e5fec15 diff --git a/src/OpenGl/OpenGl_CappingPlaneResource.hxx b/src/OpenGl/OpenGl_CappingPlaneResource.hxx old mode 100644 new mode 100755 index b66c039..9547b82 --- a/src/OpenGl/OpenGl_CappingPlaneResource.hxx +++ b/src/OpenGl/OpenGl_CappingPlaneResource.hxx @@ -1,32 +1,28 @@ // Created on: 2013-08-15 // Created by: Anton POLETAEV -// Copyright (c) 2013 OPEN CASCADE SAS +// Copyright (c) 2013-2014 OPEN CASCADE SAS // -// The content of this file is subject to the Open CASCADE Technology Public -// License Version 6.5 (the "License"). You may not use the content of this file -// except in compliance with the License. Please obtain a copy of the License -// at http://www.opencascade.org and read it completely before using this file. +// This file is part of Open CASCADE Technology software library. // -// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. +// 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. // -// The Original Code and all software distributed under the License is -// distributed on an "AS IS" basis, without warranty of any kind, and the -// Initial Developer hereby disclaims all such warranties, including without -// limitation, any warranties of merchantability, fitness for a particular -// purpose or non-infringement. Please see the License for the specific terms -// and conditions governing the rights and limitations under the License. +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. #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 @@ -49,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 };