// Created on: 2017-06-16 // Created by: Natalia ERMOLAEVA // Copyright (c) 2017 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 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. // // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. #ifndef VInspector_ItemBase_H #define VInspector_ItemBase_H #include #include #include #include #include class VInspector_ItemBase; typedef QExplicitlySharedDataPointer VInspector_ItemBasePtr; //! \class VInspector_ItemBase //! Parent item for all ShapeView items class VInspector_ItemBase : public TreeModel_ItemBase { public: //! Resets cached values Standard_EXPORT virtual void Reset() Standard_OVERRIDE; //! Sets the context //! \param theLabel an object where the child items structure is found void SetContext(const Handle(AIS_InteractiveContext)& theContext) { myContext = theContext; } //! Returns true if the current context is not null //! \return a boolean value bool HasContext() const { return !GetContext().IsNull(); } //! Returns the current context. It iterates up by list of parents to found context item and //! return context \return a context Standard_EXPORT Handle(AIS_InteractiveContext) GetContext() const; //! Returns item information for the given role. Fills internal container if it was not filled yet //! \param theItemRole a value role //! \return the value Standard_EXPORT virtual QVariant initValue(const int theItemRole) const Standard_OVERRIDE; //! Returns transform persistent of the item or NULL Handle(Graphic3d_TransformPers) TransformPersistence() const { return myTransformPersistence; } //! Returns shape of the item parameters //! \return generated shape of the item parameters Standard_EXPORT virtual TopoDS_Shape GetPresentationShape() const; //! Rebuild presentation shape if the item use it //! \return generated shape of the item parameters void UpdatePresentationShape() { myPresentationShape = buildPresentationShape(); } protected: //! Build presentation shape //! \return generated shape of the item parameters virtual TopoDS_Shape buildPresentationShape() { return TopoDS_Shape(); } protected: //! Constructor //! \param theParent a parent item //! \param theRow the item row position in the parent item //! \param theColumn the item column position in the parent item VInspector_ItemBase(TreeModel_ItemBasePtr theParent, const int theRow, const int theColumn) : TreeModel_ItemBase(theParent, theRow, theColumn), myContext(0) { } protected: Handle(AIS_InteractiveContext) myContext; //!< the current context TopoDS_Shape myPresentationShape; //!< item presentation shape Handle(Graphic3d_TransformPers) myTransformPersistence; //!< item cached persistent }; #endif