Version: 9.12.0
GEOM_AISShape.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 #ifndef _GEOM_AISShape_HeaderFile
24 #define _GEOM_AISShape_HeaderFile
25 
26 #include <SALOME_AISShape.hxx>
27 #include <SALOME_InteractiveObject.hxx>
28 
29 #include <Standard.hxx>
30 #include <Standard_DefineHandle.hxx>
31 #include <PrsMgr_PresentationManager.hxx>
32 #include <TCollection_AsciiString.hxx>
33 #include <AIS_DisplayMode.hxx>
34 
35 #include <QList>
36 #include <QVariant>
37 
38 #include <SALOMEconfig.h>
39 #include CORBA_SERVER_HEADER(GEOM_Gen)
40 
41 class TopoDS_Shape;
42 
44 {
45 public:
47  typedef enum {
48  Wireframe = AIS_WireFrame,
49  Shading = AIS_Shaded,
54 
56  typedef enum {
63 
64  Standard_EXPORT GEOM_AISShape(const TopoDS_Shape& shape, const Standard_CString aName);
65  Standard_EXPORT ~GEOM_AISShape();
66 
67  Standard_EXPORT Standard_Boolean hasIO();
68  Standard_EXPORT void setIO(const Handle(SALOME_InteractiveObject)& name);
69  Standard_EXPORT Handle(SALOME_InteractiveObject) getIO();
70 
71  Standard_EXPORT void setName(const Standard_CString aName);
72  Standard_EXPORT Standard_CString getName();
73 
74  Standard_EXPORT Standard_Boolean isTopLevel();
75  Standard_EXPORT void setTopLevel(Standard_Boolean);
76 
77  Standard_EXPORT void highlightSubShapes(const TColStd_IndexedMapOfInteger& aIndexMap, const Standard_Boolean aHighlight );
78 
79  Standard_Boolean AcceptDisplayMode(const Standard_Integer theMode) const;
80 
81  Standard_EXPORT void SetShadingColor(const Quantity_Color &aCol);
82  Standard_EXPORT void SetEdgesInShadingColor(const Quantity_Color &aCol);
83  Standard_EXPORT void SetLabelColor(const Quantity_Color &aCol);
84  Standard_EXPORT void SetDisplayVectors(bool isShow);
85  Standard_EXPORT void SetDisplayVertices(bool isShow);
86  Standard_EXPORT void SetDisplayName(bool isShow);
87 
88  Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
89  const Handle(Prs3d_Presentation)& aPresentation,
90  const Standard_Integer aMode = 0);
91 
92  Standard_EXPORT virtual bool isShowVectors() { return myDisplayVectors; }
93  Standard_EXPORT virtual bool isShowVertices() { return myDisplayVertices; }
94  Standard_EXPORT virtual bool isShowName() { return myDisplayName; }
95 
96  Standard_EXPORT virtual Standard_Boolean switchTopLevel();
97  Standard_EXPORT virtual Standard_Boolean toActivate();
98 
99  Standard_EXPORT static Quantity_Color topLevelColor();
100  Standard_EXPORT static void setTopLevelColor(const Quantity_Color c);
101 
102  Standard_EXPORT static TopLevelDispMode topLevelDisplayMode();
103  Standard_EXPORT static void setTopLevelDisplayMode(const TopLevelDispMode dm);
104 
105  Standard_EXPORT void setPrevDisplayMode(const Standard_Integer mode);
106  Standard_EXPORT Standard_Integer prevDisplayMode() const {return myPrevDisplayMode;}
107 
108  // Field step information
109  Standard_EXPORT void setFieldStepInfo( const GEOM::field_data_type theFieldDataType,
110  const int theFieldDimension,
111  const QList<QVariant>& theFieldStepData,
112  const TCollection_AsciiString& theFieldStepName,
113  const double theFieldStepRangeMin,
114  const double theFieldStepRangeMax );
115  Standard_EXPORT void getFieldStepInfo( GEOM::field_data_type& theFieldDataType,
116  int& theFieldDimension,
117  QList<QVariant>& theFieldStepData,
118  TCollection_AsciiString& theFieldStepName,
119  double& theFieldStepRangeMin,
120  double& theFieldStepRangeMax ) const;
121 
122 protected:
123  Standard_EXPORT void shadingMode(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
124  const Handle(Prs3d_Presentation)& aPrs,
125  const Standard_Integer aMode);
126 
127  // Displaying the field data
128  Standard_EXPORT void drawField( const Handle(Prs3d_Presentation)& thePrs,
129  const bool theIsText = false,
130  const bool theIsHighlight = false );
131 
132  // Displaying the name of shape
133  Standard_EXPORT void drawName( const Handle(Prs3d_Presentation)& thePrs );
134 
135  // Auxiliary method to compute a center of mass for the specified shape
136  Standard_EXPORT static Standard_Boolean computeMassCenter( const TopoDS_Shape& theShape,
137  gp_Pnt& theCenter );
138 
139 private:
140  Quantity_Color myShadingColor;
141  Quantity_Color myEdgesInShadingColor;
142  Quantity_Color myLabelColor;
143 
144  TCollection_AsciiString myName;
148  Standard_Boolean myTopLevel;
149  Standard_Integer myPrevDisplayMode;
150 
153  QList<QVariant> myFieldStepData;
154  TCollection_AsciiString myFieldStepName;
157 
159  static Quantity_Color myTopLevelColor;
160 
161 public:
162  DEFINE_STANDARD_RTTIEXT(GEOM_AISShape, SALOME_AISShape)
163 };
164 
166 
167 #endif
DEFINE_STANDARD_HANDLE(GEOM_Field, GEOM_BaseObject) DEFINE_STANDARD_HANDLE(GEOM_FieldStep
....
Definition: GEOM_AISShape.hxx:44
Standard_Integer myPrevDisplayMode
Definition: GEOM_AISShape.hxx:149
Standard_Boolean myTopLevel
Definition: GEOM_AISShape.hxx:148
Standard_EXPORT void SetShadingColor(const Quantity_Color &aCol)
Definition: GEOM_AISShape.cxx:355
Standard_EXPORT void drawName(const Handle(Prs3d_Presentation)&thePrs)
Definition: GEOM_AISShape.cxx:664
Standard_EXPORT Standard_CString getName()
Definition: GEOM_AISShape.cxx:216
int myFieldDimension
Definition: GEOM_AISShape.hxx:152
Standard_EXPORT ~GEOM_AISShape()
Definition: GEOM_AISShape.cxx:185
virtual Standard_EXPORT bool isShowVectors()
Definition: GEOM_AISShape.hxx:92
Standard_EXPORT Standard_Boolean isTopLevel()
Definition: GEOM_AISShape.cxx:451
Standard_EXPORT void setName(const Standard_CString aName)
Definition: GEOM_AISShape.cxx:207
bool myDisplayVertices
Definition: GEOM_AISShape.hxx:146
Standard_EXPORT Standard_Integer prevDisplayMode() const
Definition: GEOM_AISShape.hxx:106
static Standard_EXPORT void setTopLevelDisplayMode(const TopLevelDispMode dm)
Definition: GEOM_AISShape.cxx:496
Standard_EXPORT void drawField(const Handle(Prs3d_Presentation)&thePrs, const bool theIsText=false, const bool theIsHighlight=false)
Definition: GEOM_AISShape.cxx:541
Standard_EXPORT void highlightSubShapes(const TColStd_IndexedMapOfInteger &aIndexMap, const Standard_Boolean aHighlight)
Definition: GEOM_AISShape.cxx:370
static Quantity_Color myTopLevelColor
Definition: GEOM_AISShape.hxx:159
static Standard_EXPORT void setTopLevelColor(const Quantity_Color c)
Definition: GEOM_AISShape.cxx:486
virtual Standard_EXPORT Standard_Boolean toActivate()
Definition: GEOM_AISShape.cxx:506
Standard_EXPORT void SetLabelColor(const Quantity_Color &aCol)
Definition: GEOM_AISShape.cxx:365
QList< QVariant > myFieldStepData
Definition: GEOM_AISShape.hxx:153
virtual Standard_EXPORT bool isShowName()
Definition: GEOM_AISShape.hxx:94
Standard_EXPORT void SetEdgesInShadingColor(const Quantity_Color &aCol)
Definition: GEOM_AISShape.cxx:360
Quantity_Color myShadingColor
Definition: GEOM_AISShape.hxx:140
Standard_EXPORT void setTopLevel(Standard_Boolean)
Definition: GEOM_AISShape.cxx:456
Standard_EXPORT void SetDisplayVertices(bool isShow)
Definition: GEOM_AISShape.cxx:406
Quantity_Color myEdgesInShadingColor
Definition: GEOM_AISShape.hxx:141
static TopLevelDispMode myTopLevelDm
Definition: GEOM_AISShape.hxx:158
Quantity_Color myLabelColor
Definition: GEOM_AISShape.hxx:142
Standard_EXPORT GEOM_AISShape(const TopoDS_Shape &shape, const Standard_CString aName)
Definition: GEOM_AISShape.cxx:146
Standard_EXPORT void getFieldStepInfo(GEOM::field_data_type &theFieldDataType, int &theFieldDimension, QList< QVariant > &theFieldStepData, TCollection_AsciiString &theFieldStepName, double &theFieldStepRangeMin, double &theFieldStepRangeMax) const
Definition: GEOM_AISShape.cxx:526
Standard_EXPORT void setFieldStepInfo(const GEOM::field_data_type theFieldDataType, const int theFieldDimension, const QList< QVariant > &theFieldStepData, const TCollection_AsciiString &theFieldStepName, const double theFieldStepRangeMin, const double theFieldStepRangeMax)
Definition: GEOM_AISShape.cxx:511
DispMode
Enumeration of display modes.
Definition: GEOM_AISShape.hxx:47
@ Shading
shadin
Definition: GEOM_AISShape.hxx:49
@ CustomHighlight
fields
Definition: GEOM_AISShape.hxx:52
@ ShadingWithEdges
shading with edges
Definition: GEOM_AISShape.hxx:50
@ TexturedShape
texture
Definition: GEOM_AISShape.hxx:51
@ Wireframe
wireframe
Definition: GEOM_AISShape.hxx:48
TCollection_AsciiString myFieldStepName
Definition: GEOM_AISShape.hxx:154
GEOM::field_data_type myFieldDataType
Definition: GEOM_AISShape.hxx:151
TopLevelDispMode
Enumeration of top level display modes.
Definition: GEOM_AISShape.hxx:56
@ TopShowAdditionalWActor
Definition: GEOM_AISShape.hxx:57
@ TopKeepCurrent
Keep current display mode.
Definition: GEOM_AISShape.hxx:58
@ TopShadingWithEdges
Definition: GEOM_AISShape.hxx:61
@ TopShading
Definition: GEOM_AISShape.hxx:60
@ TopWireFrame
Definition: GEOM_AISShape.hxx:59
Standard_EXPORT Handle(SALOME_InteractiveObject) getIO()
Standard_EXPORT void shadingMode(const Handle(PrsMgr_PresentationManager3d)&aPresentationManager, const Handle(Prs3d_Presentation)&aPrs, const Standard_Integer aMode)
Definition: GEOM_AISShape.cxx:416
static Standard_EXPORT Quantity_Color topLevelColor()
Definition: GEOM_AISShape.cxx:481
Standard_EXPORT Standard_Boolean hasIO()
Definition: GEOM_AISShape.cxx:202
double myFieldStepRangeMax
Definition: GEOM_AISShape.hxx:156
Standard_Boolean AcceptDisplayMode(const Standard_Integer theMode) const
Definition: GEOM_AISShape.cxx:221
bool myDisplayVectors
Definition: GEOM_AISShape.hxx:145
virtual Standard_EXPORT bool isShowVertices()
Definition: GEOM_AISShape.hxx:93
double myFieldStepRangeMin
Definition: GEOM_AISShape.hxx:155
static Standard_EXPORT Standard_Boolean computeMassCenter(const TopoDS_Shape &theShape, gp_Pnt &theCenter)
Definition: GEOM_AISShape.cxx:688
bool myDisplayName
Definition: GEOM_AISShape.hxx:147
Standard_EXPORT void setIO(const Handle(SALOME_InteractiveObject)&name)
Definition: GEOM_AISShape.cxx:189
static Standard_EXPORT TopLevelDispMode topLevelDisplayMode()
Definition: GEOM_AISShape.cxx:491
virtual Standard_EXPORT Standard_Boolean switchTopLevel()
Definition: GEOM_AISShape.cxx:501
Standard_EXPORT void setPrevDisplayMode(const Standard_Integer mode)
Definition: GEOM_AISShape.cxx:476
Standard_EXPORT void SetDisplayVectors(bool isShow)
Definition: GEOM_AISShape.cxx:401
Standard_EXPORT void SetDisplayName(bool isShow)
Definition: GEOM_AISShape.cxx:411
virtual Standard_EXPORT void Compute(const Handle(PrsMgr_PresentationManager3d)&aPresentationManager, const Handle(Prs3d_Presentation)&aPresentation, const Standard_Integer aMode=0)
Definition: GEOM_AISShape.cxx:226
TCollection_AsciiString myName
Definition: GEOM_AISShape.hxx:144
field_data_type
Type of field data.
Definition: GEOM_Gen.idl:191