X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FModuleBase%2FModuleBase_ResultPrs.h;h=aba95061e1c4ca66e0cb734c1871389a8fb2d8c5;hb=59610176acaef6df307f9a2ec24fe3a14bfaef0b;hp=f3c42bc9e43a007c9c16131cba51b3a8846e9b49;hpb=8ffc4361cab5e109ff95ef0f258a8a10670b7b21;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_ResultPrs.h b/src/ModuleBase/ModuleBase_ResultPrs.h index f3c42bc9e..aba95061e 100644 --- a/src/ModuleBase/ModuleBase_ResultPrs.h +++ b/src/ModuleBase/ModuleBase_ResultPrs.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2021 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 @@ -12,10 +12,9 @@ // // 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef ModuleBase_ResultPrs_H @@ -24,12 +23,14 @@ #include "ModuleBase.h" #include +#include #include #include #include #include #include +#include #include @@ -65,7 +66,7 @@ public: //! this selectable object ( for fast presentation draw ) Standard_EXPORT virtual void HilightOwnerWithColor( const Handle(PrsMgr_PresentationManager3d)& thePM, - const Handle(Graphic3d_HighlightStyle)& theStyle, + const Handle(Prs3d_Drawer)& theStyle, const Handle(SelectMgr_EntityOwner)& theOwner); /// Returns result object @@ -91,18 +92,35 @@ public: /// Visual state of the face is controlled by the second parameter /// \param theShapes a container of shape objects /// \returns true if the presentation is changed, or false (if for example it was hidden) - Standard_EXPORT bool setSubShapeHidden(const NCollection_List& theShapes); + Standard_EXPORT void setSubShapeHidden(const TopoDS_ListOfShape& theShapes); + + /// Returns true if parameter shape has been hidden + /// \param theShape sub-shape of the presentation shape + /// \return boolean value + Standard_EXPORT bool isSubShapeHidden(const TopoDS_Shape& theShape); + + /// Returns hidden sub shapes list + Standard_EXPORT const TopoDS_ListOfShape& hiddenSubShapes() const + { return myHiddenSubShapes; } /// Returns true if there are no hidden sub shapes or original shape has at least one not hidden /// \param theShapesToSkip container of shape to be hidden in the presentation (faces) /// \return boolean value - Standard_EXPORT bool hasSubShapeVisible(const NCollection_List& theShapesToSkip); + Standard_EXPORT bool hasSubShapeVisible(const TopoDS_ListOfShape& theShapesToSkip); /// Set transparency of hidden sub shapes: if value is 1, shapes are entirely hidden /// \param theTransparency transparency value /// \return false if parameter is out of [0, 1] Standard_EXPORT bool setHiddenSubShapeTransparency(double theTransparency); + /// Returns the original shape of the presentation + Standard_EXPORT TopoDS_Shape originalShape() const { return myOriginalShape; } + + /// Returns True if the original shape is substituted by a corresponded shell + Standard_EXPORT bool isSubstituted() const { return myIsSubstituted; } + + Standard_EXPORT void updateIsoLines(); + DEFINE_STANDARD_RTTIEXT(ModuleBase_ResultPrs, ViewerData_AISShape) protected: @@ -134,7 +152,9 @@ private: /// \param theShape the processed shape /// \param theHiddenSubShapes container of shapes to be skipped (faces) void collectSubShapes(BRep_Builder& theBuilder, TopoDS_Shape& theCompound, - const TopoDS_Shape& theShape, const NCollection_List& theHiddenSubShapes); + const TopoDS_Shape& theShape, const TopoDS_ListOfShape& theHiddenSubShapes); + + void setEdgesDefaultColor(); private: /// Reference to result object @@ -143,8 +163,11 @@ private: /// Original shape of the result object TopoDS_Shape myOriginalShape; + bool myIsSubstituted; + /// Container of original Shape sub shape to be hidden and not selectable - NCollection_List myHiddenSubShapes; + TopoDS_ListOfShape myHiddenSubShapes; + TopoDS_Compound myVisibleCompound; /// compound of hidden sub shapes TopoDS_Compound myHiddenCompound; /// compound of hidden sub shapes double myTransparency; ///< transparency of hidden shapes, where 0 - there is no transparency Handle(AIS_ColoredDrawer) myHiddenSubShapesDrawer; ///< drawer for hidden sub shapes @@ -152,6 +175,9 @@ private: /// selection priority that will be added to the standard /// selection priority of the selection entity int myAdditionalSelectionPriority; + + Handle(Prs3d_IsoAspect) myUIsoAspect; + Handle(Prs3d_IsoAspect) myVIsoAspect; };