SHAPER 9.16.0
ModuleBase_ResultPrs.h
1// Copyright (C) 2014-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef ModuleBase_ResultPrs_H
21#define ModuleBase_ResultPrs_H
22
23#include "ModuleBase.h"
24
25#include <ModelAPI_Result.h>
26#include <ModelAPI_ResultField.h>
27
28#include <BRep_Builder.hxx>
29#include <NCollection_List.hxx>
30#include <ViewerData_AISShape.hxx>
31#include <Standard_DefineHandle.hxx>
32#include <TopoDS_Compound.hxx>
33#include <Prs3d_IsoAspect.hxx>
34
35#include <QMap>
36
37class AIS_ColoredDrawer;
39
40DEFINE_STANDARD_HANDLE(ModuleBase_ResultPrs, ViewerData_AISShape)
41
42
48{
49public:
50 enum SelectionModes {
51 Sel_Result = TopAbs_SHAPE + 1
54 };
55
56public:
59 Standard_EXPORT ModuleBase_ResultPrs(ResultPtr theResult);
60
62 Standard_EXPORT virtual void HilightSelected(const Handle(PrsMgr_PresentationManager3d)& thePM,
63 const SelectMgr_SequenceOfOwner& theOwners);
64
67 Standard_EXPORT virtual void HilightOwnerWithColor(
68 const Handle(PrsMgr_PresentationManager3d)& thePM,
69 const Handle(Prs3d_Drawer)& theStyle,
70 const Handle(SelectMgr_EntityOwner)& theOwner);
71
73 Standard_EXPORT ResultPtr getResult() const { return myResult; }
74
77 Standard_EXPORT int getAdditionalSelectionPriority() const
78 { return myAdditionalSelectionPriority; }
79
83 Standard_EXPORT void setAdditionalSelectionPriority(const int thePriority);
84
86 Standard_EXPORT virtual void SetColor (const Quantity_Color& theColor);
87
95 Standard_EXPORT void setSubShapeHidden(const TopoDS_ListOfShape& theShapes);
96
100 Standard_EXPORT bool isSubShapeHidden(const TopoDS_Shape& theShape);
101
103 Standard_EXPORT const TopoDS_ListOfShape& hiddenSubShapes() const
104 { return myHiddenSubShapes; }
105
109 Standard_EXPORT bool hasSubShapeVisible(const TopoDS_ListOfShape& theShapesToSkip);
110
114 Standard_EXPORT bool setHiddenSubShapeTransparency(double theTransparency);
115
117 Standard_EXPORT TopoDS_Shape originalShape() const { return myOriginalShape; }
118
120 Standard_EXPORT bool isSubstituted() const { return myIsSubstituted; }
121
122 Standard_EXPORT void updateIsoLines();
123
124 DEFINE_STANDARD_RTTIEXT(ModuleBase_ResultPrs, ViewerData_AISShape)
125
126protected:
128 Standard_EXPORT virtual void Compute(
129 const Handle(PrsMgr_PresentationManager3d)& thePresentationManager,
130 const Handle(Prs3d_Presentation)& thePresentation, const Standard_Integer theMode = 0);
131
133 Standard_EXPORT virtual void ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,
134 const Standard_Integer theMode) ;
135
136private:
143 bool appendVertexSelection(const Handle(SelectMgr_Selection)& aSelection,
144 const Standard_Integer theMode);
145
154 void collectSubShapes(BRep_Builder& theBuilder, TopoDS_Shape& theCompound,
155 const TopoDS_Shape& theShape, const TopoDS_ListOfShape& theHiddenSubShapes);
156
157 void setEdgesDefaultColor();
158
159private:
161 ResultPtr myResult;
162
164 TopoDS_Shape myOriginalShape;
165
166 bool myIsSubstituted;
167
169 TopoDS_ListOfShape myHiddenSubShapes;
170 TopoDS_Compound myVisibleCompound;
171 TopoDS_Compound myHiddenCompound;
172 double myTransparency;
173 Handle(AIS_ColoredDrawer) myHiddenSubShapesDrawer;
174
177 int myAdditionalSelectionPriority;
178
179 Handle(Prs3d_IsoAspect) myUIsoAspect;
180 Handle(Prs3d_IsoAspect) myVIsoAspect;
181};
182
183
184#endif
A redefinition of standard AIS Interactive Object in order to provide specific behaviour for wire pre...
Definition: ModuleBase_ResultPrs.h:48
TopoDS_Shape originalShape() const
Returns the original shape of the presentation.
Definition: ModuleBase_ResultPrs.h:117
const TopoDS_ListOfShape & hiddenSubShapes() const
Returns hidden sub shapes list.
Definition: ModuleBase_ResultPrs.h:103
bool isSubstituted() const
Returns True if the original shape is substituted by a corresponded shell.
Definition: ModuleBase_ResultPrs.h:120
ResultPtr getResult() const
Returns result object.
Definition: ModuleBase_ResultPrs.h:73
int getAdditionalSelectionPriority() const
Returns selection priorities that will be added to created selection owner.
Definition: ModuleBase_ResultPrs.h:77