Version: 9.16.0
SMESH_Actor.h
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// SMESH OBJECT : interactive object for SMESH visualization
24// File : SMESH_Actor.h
25// Author : Nicolas REJNERI
26// Module : SMESH
27//
28#ifndef SMESH_ACTOR_H
29#define SMESH_ACTOR_H
30
31#include <SALOMEconfig.h> // To fix some redefinition
32#include <SALOME_Actor.h>
33#include "SMESH_Object.h"
34#include "SMESH_ActorUtils.h"
35
36#include <vtkCommand.h>
37
39
42
43class vtkPlane;
44class vtkImplicitBoolean;
45
46#ifndef DISABLE_PLOT2DVIEWER
47class SPlot2d_Histogram;
48#endif
49
50namespace SMESH
51{
52 const vtkIdType DeleteActorEvent = vtkCommand::UserEvent + 100;
53}
54
56{
57 static SMESH_Actor* New() { return NULL;}
58
59 public:
61 static SMESH_Actor* New(TVisualObjPtr theVisualObj,
62 const char* theEntry,
63 const char* theName,
64 int theIsClear);
65
66 virtual void SetSufaceColor(double r,double g,double b, int delta ) = 0;
67 virtual void GetSufaceColor(double& r,double& g,double& b, int& delta ) = 0;
68
69 virtual void SetVolumeColor(double r,double g,double b, int delta ) = 0;
70 virtual void GetVolumeColor(double& r,double& g,double& b, int& delta) = 0;
71
72 virtual void SetEdgeColor(double r,double g,double b) = 0;
73 virtual void GetEdgeColor(double& r,double& g,double& b) = 0;
74
75 virtual void SetNodeColor(double r,double g,double b) = 0;
76 virtual void GetNodeColor(double& r,double& g,double& b) = 0;
77
78 virtual void SetOutlineColor(double r,double g,double b) = 0;
79 virtual void GetOutlineColor(double& r,double& g,double& b) = 0;
80
81 virtual void Set0DColor(double r,double g,double b) = 0;
82 virtual void Get0DColor(double& r,double& g,double& b) = 0;
83
84 virtual void SetBallColor(double r,double g,double b) = 0;
85 virtual void GetBallColor(double& r,double& g,double& b) = 0;
86
87 virtual void UpdateSelectionProps() = 0;
88
89 virtual double GetLineWidth() = 0;
90 virtual void SetLineWidth(double theVal) = 0;
91
92 virtual double GetOutlineWidth() = 0;
93 virtual void SetOutlineWidth(double theVal) = 0;
94
95 virtual void Set0DSize(double size) = 0;
96 virtual double Get0DSize() = 0;
97
98 virtual void SetBallSize(double size) = 0;
99 virtual double GetBallSize() = 0;
100
101 virtual void SetBallScale(double size) = 0;
102 virtual double GetBallScale() = 0;
103
104 enum EReperesent { ePoint, eEdge, eSurface};
105
106 enum EEntityMode { e0DElements = 0x01, eEdges = 0x02, eFaces = 0x04, eVolumes = 0x08, eBallElem = 0x10, eAllEntity = 0x1f};
107
108 enum EQuadratic2DRepresentation { eLines = 0x01, eArcs = 0x02 };
109
110 virtual void SetEntityMode(unsigned int theMode) = 0;
111 virtual unsigned int GetEntityMode() const = 0;
112
115
116 virtual void SetPointRepresentation(bool theIsPointsVisible) = 0;
117 virtual bool GetPointRepresentation() = 0;
118
120
121 virtual void SetShrinkFactor(double theValue) = 0;
122
123 virtual void SetPointsLabeled(bool theIsPointsLabeled) = 0;
124 virtual bool GetPointsLabeled() = 0;
125
126 virtual void SetCellsLabeled(bool theIsCellsLabeled) = 0;
127 virtual bool GetCellsLabeled() = 0;
128
129 virtual void SetFacesOriented(bool theIsFacesOriented) = 0;
130 virtual bool GetFacesOriented() = 0;
131
132 virtual void SetFacesOrientationColor(double r,double g,double b) = 0;
133 virtual void GetFacesOrientationColor(double& r,double& g,double& b) = 0;
134
135 virtual void SetFacesOrientationScale(double theScale) = 0;
136 virtual double GetFacesOrientationScale() = 0;
137
138 virtual void SetFacesOrientation3DVectors(bool theState) = 0;
140
141 enum eControl{eNone, eLength, eLength2D, eDeflection2D, eFreeBorders, eFreeEdges, eFreeNodes,
142 eFreeFaces, eMultiConnection, eArea, eTaper, eAspectRatio,
143 eMinimumAngle, eWarping, eSkew, eAspectRatio3D, eWarping3D, eMultiConnection2D, eVolume3D, eScaledJacobian,
144 eMaxElementLength2D, eMaxElementLength3D, eBareBorderFace, eBareBorderVolume,
145 eOverConstrainedFace, eOverConstrainedVolume, eCoincidentNodes,
146 eCoincidentElems1D, eCoincidentElems2D, eCoincidentElems3D, eNodeConnectivityNb,
147 eCustomControl };
148 virtual void SetControlMode(eControl theMode) = 0;
152 virtual smIdType GetNumberControlEntities() = 0;
153
155
156 virtual void RemoveAllClippingPlanes() = 0;
157 virtual vtkIdType GetNumberOfClippingPlanes() = 0;
158 virtual vtkPlane* GetClippingPlane(vtkIdType theID) = 0;
159 virtual vtkIdType AddClippingPlane(vtkPlane* thePlane) = 0;
160 virtual void AddOpenGLClippingPlane(vtkPlane* thePlane) = 0;
161 virtual void SetOpenGLClippingPlane() = 0;
162
164
165 virtual void SetControlsPrecision( const long ) = 0;
166 virtual long GetControlsPrecision() const = 0;
167
168 virtual void UpdateScalarBar() = 0;
169 virtual void UpdateDistribution() = 0;
170 virtual void ClipThreshold(bool isThresholdOn, double min = 0.0, double max = 0.0) = 0;
172 virtual bool IsClipThresholdOn() const = 0;
173 virtual void SetWireframeOff(bool isWireframeOff) = 0;
174 virtual bool IsWireframeOff() const = 0;
175
176 virtual void SetPointsFontProperties( SMESH::LabelFont family, int size,
177 bool bold, bool italic, bool shadow,
178 double r, double g, double b ) = 0;
179 virtual void SetCellsFontProperties( SMESH::LabelFont family, int size,
180 bool bold, bool italic, bool shadow,
181 double r, double g, double b ) = 0;
182
183 virtual void UpdateFilter() = 0;
184
185#ifndef DISABLE_PLOT2DVIEWER
186 virtual SPlot2d_Histogram* GetPlot2Histogram() = 0;
187 virtual SPlot2d_Histogram* UpdatePlot2Histogram() = 0;
188#endif
189};
190
191
192#endif //SMESH_ACTOR_H
boost::shared_ptr< SMESH_VisualObj > TVisualObjPtr
Definition: SMESH_Object.h:88
#define SMESHOBJECT_EXPORT
Definition: SMESH_Object.h:38
Definition: SMESH_Actor.h:56
virtual void SetControlMode(eControl theMode)=0
virtual void ClipThreshold(bool isThresholdOn, double min=0.0, double max=0.0)=0
virtual void Set0DColor(double r, double g, double b)=0
virtual void AddOpenGLClippingPlane(vtkPlane *thePlane)=0
EQuadratic2DRepresentation
Definition: SMESH_Actor.h:108
virtual void SetPointRepresentation(bool theIsPointsVisible)=0
virtual void UpdateSelectionProps()=0
virtual unsigned int GetEntityMode() const =0
virtual void UpdateFilter()=0
virtual void SetWireframeOff(bool isWireframeOff)=0
virtual void GetVolumeColor(double &r, double &g, double &b, int &delta)=0
virtual double GetFacesOrientationScale()=0
virtual void SetEdgeColor(double r, double g, double b)=0
virtual void SetOpenGLClippingPlane()=0
vtkTypeMacro(SMESH_Actor, SALOME_Actor) static SMESH_Actor *New(TVisualObjPtr theVisualObj
virtual TVisualObjPtr GetObject()=0
virtual void SetBallSize(double size)=0
virtual bool GetFacesOriented()=0
virtual SPlot2d_Histogram * UpdatePlot2Histogram()=0
virtual SMESH::Controls::FunctorPtr GetFunctor()=0
virtual void GetBallColor(double &r, double &g, double &b)=0
virtual long GetControlsPrecision() const =0
virtual void SetFacesOrientationScale(double theScale)=0
virtual vtkPlane * GetClippingPlane(vtkIdType theID)=0
virtual void SetCellsFontProperties(SMESH::LabelFont family, int size, bool bold, bool italic, bool shadow, double r, double g, double b)=0
virtual SMESH_ScalarBarActor * GetScalarBarActor()=0
EEntityMode
Definition: SMESH_Actor.h:106
virtual double Get0DSize()=0
virtual void SetQuadratic2DRepresentation(EQuadratic2DRepresentation)=0
virtual double GetBallSize()=0
eControl
Definition: SMESH_Actor.h:141
@ eArea
Definition: SMESH_Actor.h:142
@ eBareBorderFace
Definition: SMESH_Actor.h:144
@ eCoincidentNodes
Definition: SMESH_Actor.h:145
@ eAspectRatio3D
Definition: SMESH_Actor.h:143
@ eCoincidentElems1D
Definition: SMESH_Actor.h:146
EReperesent
Definition: SMESH_Actor.h:104
@ eEdge
Definition: SMESH_Actor.h:104
virtual void SetEntityMode(unsigned int theMode)=0
virtual vtkIdType GetNumberOfClippingPlanes()=0
virtual double GetBallScale()=0
virtual void SetLineWidth(double theVal)=0
virtual void SetControlsPrecision(const long)=0
virtual bool GetFacesOrientation3DVectors()=0
virtual void SetOutlineColor(double r, double g, double b)=0
virtual EQuadratic2DRepresentation GetQuadratic2DRepresentation()=0
virtual bool IsClipThresholdOn() const =0
virtual void SetFacesOrientationColor(double r, double g, double b)=0
virtual void SetShrinkFactor(double theValue)=0
virtual void GetNodeColor(double &r, double &g, double &b)=0
virtual bool IsWireframeOff() const =0
virtual SPlot2d_Histogram * GetPlot2Histogram()=0
virtual void GetFacesOrientationColor(double &r, double &g, double &b)=0
virtual void Set0DSize(double size)=0
virtual void SetNodeColor(double r, double g, double b)=0
virtual bool GetCellsLabeled()=0
virtual void SetBallScale(double size)=0
virtual void GetEdgeColor(double &r, double &g, double &b)=0
virtual void SetFacesOrientation3DVectors(bool theState)=0
virtual void SetPointsFontProperties(SMESH::LabelFont family, int size, bool bold, bool italic, bool shadow, double r, double g, double b)=0
virtual void SetVolumeColor(double r, double g, double b, int delta)=0
virtual void SetCellsLabeled(bool theIsCellsLabeled)=0
virtual void GetOutlineColor(double &r, double &g, double &b)=0
virtual void UpdateDistribution()=0
virtual double GetLineWidth()=0
virtual void SetFacesOriented(bool theIsFacesOriented)=0
virtual vtkIdType AddClippingPlane(vtkPlane *thePlane)=0
virtual void SetControl(SMESH::Controls::FunctorPtr)=0
virtual bool GetPointsLabeled()=0
virtual double GetOutlineWidth()=0
virtual void UpdateScalarBar()=0
virtual void RemoveAllClippingPlanes()=0
virtual void SetBallColor(double r, double g, double b)=0
virtual bool GetPointRepresentation()=0
static SMESH_Actor * New()
Definition: SMESH_Actor.h:57
virtual void SetOutlineWidth(double theVal)=0
virtual eControl GetControlMode()=0
virtual void SetSufaceColor(double r, double g, double b, int delta)=0
virtual void SetPointsLabeled(bool theIsPointsLabeled)=0
virtual SMESH_DeviceActor * GetActorForThreshold()=0
virtual void Get0DColor(double &r, double &g, double &b)=0
virtual void GetSufaceColor(double &r, double &g, double &b, int &delta)=0
virtual smIdType GetNumberControlEntities()=0
virtual vtkUnstructuredGrid * GetUnstructuredGrid()=0
Definition: SMESH_DeviceActor.h:61
Definition: SMESH_ScalarBarActor.h:90
@ eNone
Definition: MED_CoordUtils.cxx:28
boost::shared_ptr< Functor > FunctorPtr
Definition: SMESH_Controls.hxx:60
Definition: SMESH_ControlsClassifier.cxx:39
const vtkIdType DeleteActorEvent
Definition: SMESH_Actor.h:52
LabelFont
Label font family.
Definition: SMESH_ActorUtils.h:37