Version: 9.16.0
GEOM_AISShape.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 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
41class TopoDS_Shape;
42
44{
45public:
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
122protected:
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
139private:
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
161public:
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