X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FOBJECT%2FSMESH_ActorDef.h;h=1928f65185d363a497f36e8f32a1aa30ac85531e;hp=943fc5ee542ae5875c90f1f6d7bb3103f2b6b275;hb=78d606fbc61d6104a31e4fb2799e90a6b0a66f30;hpb=090aff07266d376ae028ae43434bdea7c0a0f9bb diff --git a/src/OBJECT/SMESH_ActorDef.h b/src/OBJECT/SMESH_ActorDef.h index 943fc5ee5..1928f6518 100644 --- a/src/OBJECT/SMESH_ActorDef.h +++ b/src/OBJECT/SMESH_ActorDef.h @@ -32,6 +32,28 @@ #include "SMESH_Actor.h" #include "SMESH_Object.h" +#include + +template +class TVTKSmartPtr: public vtkSmartPointer +{ +public: + TVTKSmartPtr() {} + TVTKSmartPtr(T* r, bool theIsOwner = false): vtkSmartPointer(r) { + if(r && theIsOwner) + r->Delete(); + } + TVTKSmartPtr& operator()(T* r, bool theIsOwner = false){ + vtkSmartPointer::operator=(r); + if(r && theIsOwner) + r->Delete(); + return *this; + } + TVTKSmartPtr& operator=(T* r){ vtkSmartPointer::operator=(r); return *this;} + T* Get() const { return this->GetPointer();} +}; + + class vtkProperty; class vtkShrinkFilter; class vtkPolyDataMapper; @@ -125,7 +147,7 @@ class SMESH_ActorDef : public SMESH_Actor{ virtual bool GetPointRepresentation(); virtual float* GetBounds(); - virtual void SetTransform(SALOME_Transform* theTransform); + virtual void SetTransform(VTKViewer_Transform* theTransform); virtual vtkUnstructuredGrid* GetUnstructuredGrid(); virtual vtkDataSet* GetInput(); @@ -153,7 +175,10 @@ class SMESH_ActorDef : public SMESH_Actor{ virtual void SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane); virtual void GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane); - virtual vtkImplicitBoolean* GetPlaneContainer(); + virtual void RemoveAllClippingPlanes(); + virtual vtkIdType GetNumberOfClippingPlanes(); + virtual vtkPlane* GetClippingPlane(vtkIdType theID); + virtual vtkIdType AddClippingPlane(vtkPlane* thePlane); virtual TVisualObjPtr GetObject() { return myVisualObj;} @@ -161,6 +186,10 @@ class SMESH_ActorDef : public SMESH_Actor{ virtual long GetControlsPrecision() const { return myControlsPrecision; } protected: + void SetControlMode(eControl theMode, bool theCheckEntityMode); + void SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed); + bool IsImplicitFunctionUsed() const; + TVisualObjPtr myVisualObj; vtkTimeStamp* myTimeStamp; @@ -179,7 +208,6 @@ class SMESH_ActorDef : public SMESH_Actor{ vtkProperty* myHighlightProp; vtkProperty* myPreselectProp; SMESH_DeviceActor* myHighlitableActor; - SMESH_DeviceActor* myNodeHighlitableActor; eControl myControlMode; SMESH_DeviceActor* my2DActor; @@ -192,6 +220,7 @@ class SMESH_ActorDef : public SMESH_Actor{ SMESH_DeviceActor* my1DExtActor; unsigned int myEntityMode; + unsigned int myEntityState; bool myIsPointsVisible; bool myIsShrinkable; @@ -213,7 +242,9 @@ class SMESH_ActorDef : public SMESH_Actor{ vtkSelectVisiblePoints* myClsSelectVisiblePoints; vtkImplicitBoolean* myImplicitBoolean; - + typedef TVTKSmartPtr TPlanePtr; + typedef std::vector TCippingPlaneCont; + TCippingPlaneCont myCippingPlaneCont; long myControlsPrecision; SMESH_ActorDef();