X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FOBJECT%2FSMESH_ActorDef.h;h=ea3f8d02963f86c0f3517e12a551d10002b99dd3;hp=943fc5ee542ae5875c90f1f6d7bb3103f2b6b275;hb=1eea5485d119de1f044c0bb06c4bfd557a9572b1;hpb=090aff07266d376ae028ae43434bdea7c0a0f9bb diff --git a/src/OBJECT/SMESH_ActorDef.h b/src/OBJECT/SMESH_ActorDef.h index 943fc5ee5..ea3f8d029 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 GetPointer();} +}; + + class vtkProperty; class vtkShrinkFilter; class vtkPolyDataMapper; @@ -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,9 @@ class SMESH_ActorDef : public SMESH_Actor{ virtual long GetControlsPrecision() const { return myControlsPrecision; } protected: + void SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed); + bool IsImplicitFunctionUsed() const; + TVisualObjPtr myVisualObj; vtkTimeStamp* myTimeStamp; @@ -213,7 +241,9 @@ class SMESH_ActorDef : public SMESH_Actor{ vtkSelectVisiblePoints* myClsSelectVisiblePoints; vtkImplicitBoolean* myImplicitBoolean; - + typedef TVTKSmartPtr TPlanePtr; + typedef std::vector TCippingPlaneCont; + TCippingPlaneCont myCippingPlaneCont; long myControlsPrecision; SMESH_ActorDef();