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