X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_ViewerPrs.h;h=b2fec4bfb56218b9508a4e1544cc76312480a334;hb=6a23207a9154dac27c710190281aa5bfcf2bd498;hp=ebc274981b54077b325eb8bf2da61d533b97140d;hpb=6f31859c9897eacec13d3912e76f28b8b824ecf4;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_ViewerPrs.h b/src/ModuleBase/ModuleBase_ViewerPrs.h index ebc274981..b2fec4bfb 100644 --- a/src/ModuleBase/ModuleBase_ViewerPrs.h +++ b/src/ModuleBase/ModuleBase_ViewerPrs.h @@ -1,8 +1,21 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D - -// File: ModuleBase_ViewerPrs.h -// Created: 20 Apr 2014 -// Author: Natalia ERMOLAEVA +// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef ModuleBase_ViewerPrs_H #define ModuleBase_ViewerPrs_H @@ -10,11 +23,11 @@ #include "ModuleBase.h" #include -#include #include #include #include +#include /**\class ModuleBase_ViewerPrs * \ingroup GUI @@ -23,107 +36,95 @@ class ModuleBase_ViewerPrs { public: - /// Constructor - ModuleBase_ViewerPrs() - { - } - /// Constructor /// \param theResult an object /// \param theShape a viewer shape /// \param theOwner a selection owner - ModuleBase_ViewerPrs(ObjectPtr theResult, const TopoDS_Shape& theShape, - Handle_SelectMgr_EntityOwner theOwner) - : myResult(theResult), - myShape(theShape), - myOwner(theOwner) - { - } + MODULEBASE_EXPORT ModuleBase_ViewerPrs(ObjectPtr theResult = ObjectPtr(), + const GeomShapePtr& theShape = GeomShapePtr(), + Handle(SelectMgr_EntityOwner) theOwner = NULL); /// Destructor - virtual ~ModuleBase_ViewerPrs() - { - } + MODULEBASE_EXPORT virtual ~ModuleBase_ViewerPrs(); /// Sets the object. /// \param theResult an object instance - void setObject(ObjectPtr theResult) + MODULEBASE_EXPORT void setObject(ObjectPtr theResult) { myResult = theResult; } /// Returns the feature. /// \return a feature instance - ObjectPtr object() const + MODULEBASE_EXPORT ObjectPtr object() const { return myResult; } /// Set the presentation owner /// \param theOwner an owner to set - void setOwner(Handle_SelectMgr_EntityOwner theOwner) + MODULEBASE_EXPORT void setOwner(Handle_SelectMgr_EntityOwner theOwner) { myOwner = theOwner; } /// Returns the presentation owner /// \return an owner - Handle_SelectMgr_EntityOwner owner() const + MODULEBASE_EXPORT Handle_SelectMgr_EntityOwner owner() const { return myOwner; } /// Sets the shape /// \param theShape a shape instance - void setShape(const TopoDS_Shape& theShape) + MODULEBASE_EXPORT void setShape(const GeomShapePtr& theShape) { myShape = theShape; } /// Returns the shape /// \return a shape instance - const TopoDS_Shape& shape() const + MODULEBASE_EXPORT const GeomShapePtr& shape() const { return myShape; } /// Set interactive object /// \param theIO an interactive object - void setInteractive(const Handle(AIS_InteractiveObject)& theIO) + MODULEBASE_EXPORT void setInteractive(const Handle(AIS_InteractiveObject)& theIO) { myInteractive = theIO; } /// Returns interactive object if it is installed - Handle(AIS_InteractiveObject) interactive() const + MODULEBASE_EXPORT Handle(AIS_InteractiveObject) interactive() const { return myInteractive; } /// Returns true if all presentation fields are empty /// \return boolean value - bool isEmpty() const + MODULEBASE_EXPORT bool isEmpty() const { - return myShape.IsNull() && + return (!myShape.get() || myShape->isNull()) && myOwner.IsNull() && !myResult.get(); } + /// Returns true if all presentation fields are empty + /// \return boolean value + MODULEBASE_EXPORT bool isEqual(ModuleBase_ViewerPrs* thePrs) const; + /// Returns True if the current object is equal to the given one /// \param thePrs an object to compare - bool operator==(const ModuleBase_ViewerPrs& thePrs) - { - bool aResult = (myResult.get() == thePrs.object().get()); - bool aOwner = (myOwner.Access() == thePrs.owner().Access()); - bool aShape = myShape.IsEqual(thePrs.shape()) == Standard_True; - bool aIO = (myInteractive == thePrs.interactive()) == Standard_True; - return aResult && aOwner && aShape && aIO; - } + MODULEBASE_EXPORT bool operator==(const ModuleBase_ViewerPrs& thePrs); private: ObjectPtr myResult; /// the feature Handle(SelectMgr_EntityOwner) myOwner; /// the selection owner - TopoDS_Shape myShape; /// the shape + GeomShapePtr myShape; /// the shape Handle(AIS_InteractiveObject) myInteractive; /// interactive object }; +typedef std::shared_ptr ModuleBase_ViewerPrsPtr; + #endif