X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FOBJECT%2FSMESH_DeviceActor.h;h=897a2e585b826f582ded70e424b3b1c8bf1deffc;hp=c166650d5a17d44c2a22f78c4316666d40d956ee;hb=1eea5485d119de1f044c0bb06c4bfd557a9572b1;hpb=c3bf92bd87b770fd81631a3853f7f5bb1ac6a4e8 diff --git a/src/OBJECT/SMESH_DeviceActor.h b/src/OBJECT/SMESH_DeviceActor.h index c166650d5..897a2e585 100644 --- a/src/OBJECT/SMESH_DeviceActor.h +++ b/src/OBJECT/SMESH_DeviceActor.h @@ -30,24 +30,32 @@ #define SMESH_DEVICE_ACTOR_H #include "SALOME_GeometryFilter.h" +#include "SMESH_Controls.hxx" #include "SMESH_Object.h" #include +#include +class vtkCell; class vtkProperty; class vtkMergeFilter; class vtkShrinkFilter; class vtkPolyDataMapper; class vtkUnstructuredGrid; +class vtkScalarBarActor; +class vtkLookupTable; +class vtkImplicitBoolean; class SALOME_Transform; class SALOME_TransformFilter; class SALOME_PassThroughFilter; class SALOME_ExtractUnstructuredGrid; +class SMESH_ExtractGeometry; + class SMESH_DeviceActor: public vtkLODActor{ - friend class SMESH_Actor; + friend class SMESH_ActorDef; public: vtkTypeMacro(SMESH_DeviceActor,vtkLODActor); @@ -56,17 +64,11 @@ class SMESH_DeviceActor: public vtkLODActor{ void SetStoreMapping(int theStoreMapping); int GetStoreMapping(){ return myStoreMapping;} - typedef SALOME_GeometryFilter::TVectorId TVectorId; - int GetObjId(int theVtkID); - TVectorId GetVtkId(int theObjID); - - int GetNodeObjId(int theVtkID); - TVectorId GetNodeVtkId(int theObjID); + virtual int GetNodeObjId(int theVtkID); + virtual float* GetNodeCoord(int theObjID); - int GetElemObjId(int theVtkID); - TVectorId GetElemVtkId(int theObjID); - - vtkPolyData* GetPolyDataInput(); + virtual int GetElemObjId(int theVtkID); + virtual vtkCell* GetElemCell(int theObjID); virtual void SetTransform(SALOME_Transform* theTransform); virtual unsigned long int GetMTime(); @@ -88,11 +90,27 @@ class SMESH_DeviceActor: public vtkLODActor{ SALOME_ExtractUnstructuredGrid* GetExtractUnstructuredGrid(); vtkUnstructuredGrid* GetUnstructuredGrid(); - vtkMergeFilter* GetMergeFilter(); + + void SetControlMode(SMESH::Controls::FunctorPtr theFunctor, + vtkScalarBarActor* theScalarBarActor, + vtkLookupTable* theLookupTable); + void SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor, + SMESH_DeviceActor* theDeviceActor, + vtkScalarBarActor* theScalarBarActor, + vtkLookupTable* theLookupTable); + void SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor, + SMESH_DeviceActor* theDeviceActor); + + bool IsHighlited() { return myIsHighlited;} + void SetHighlited(bool theIsHighlited); virtual void Render(vtkRenderer *, vtkMapper *); + void SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed); + bool IsImplicitFunctionUsed() const{ return myIsImplicitFunctionUsed;} + protected: + void Init(TVisualObjPtr theVisualObj, vtkImplicitBoolean* theImplicitBoolean); void SetUnstructuredGrid(vtkUnstructuredGrid* theGrid); vtkPolyDataMapper *myMapper; @@ -101,6 +119,9 @@ class SMESH_DeviceActor: public vtkLODActor{ vtkProperty *myProperty; EReperesent myRepresentation; + SMESH_ExtractGeometry* myExtractGeometry; + bool myIsImplicitFunctionUsed; + vtkMergeFilter* myMergeFilter; SALOME_ExtractUnstructuredGrid* myExtractUnstructuredGrid; @@ -113,6 +134,8 @@ class SMESH_DeviceActor: public vtkLODActor{ bool myIsShrinkable; bool myIsShrunk; + bool myIsHighlited; + float myPolygonOffsetFactor; float myPolygonOffsetUnits; @@ -124,8 +147,8 @@ class SMESH_DeviceActor: public vtkLODActor{ SMESH_DeviceActor(); ~SMESH_DeviceActor(); - SMESH_DeviceActor(const SMESH_DeviceActor&) {}; - void operator=(const SMESH_DeviceActor&) {}; + SMESH_DeviceActor(const SMESH_DeviceActor&); + void operator=(const SMESH_DeviceActor&); };