#include "SMESH_Actor.h"
#include "SMESH_Object.h"
+#include <vtkSmartPointer.h>
+
+template <class T>
+class TVTKSmartPtr: public vtkSmartPointer<T>
+{
+public:
+ TVTKSmartPtr() {}
+ TVTKSmartPtr(T* r, bool theIsOwner = false): vtkSmartPointer<T>(r) {
+ if(r && theIsOwner)
+ r->Delete();
+ }
+ TVTKSmartPtr& operator()(T* r, bool theIsOwner = false){
+ vtkSmartPointer<T>::operator=(r);
+ if(r && theIsOwner)
+ r->Delete();
+ return *this;
+ }
+ TVTKSmartPtr& operator=(T* r){ vtkSmartPointer<T>::operator=(r); return *this;}
+ T* Get() const { return this->GetPointer();}
+};
+
+
class vtkProperty;
class vtkShrinkFilter;
class vtkPolyDataMapper;
class SMESH_DeviceActor;
-class SMESH_ActorDef : public SMESH_Actor{
+class SMESH_ActorDef : public SMESH_Actor
+{
friend class SMESH_VisualObj;
friend class SMESH_Actor;
virtual bool IsInfinitive();
- virtual void SetOpacity(float theValue);
- virtual float GetOpacity();
+ virtual void SetOpacity(vtkFloatingPointType theValue);
+ virtual vtkFloatingPointType GetOpacity();
- virtual void SetSufaceColor(float r,float g,float b);
- virtual void GetSufaceColor(float& r,float& g,float& b);
+ virtual void SetSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetBackSufaceColor(float r,float g,float b);
- virtual void GetBackSufaceColor(float& r,float& g,float& b);
+ virtual void SetBackSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetBackSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetEdgeColor(float r,float g,float b);
- virtual void GetEdgeColor(float& r,float& g,float& b);
+ virtual void SetEdgeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetEdgeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetNodeColor(float r,float g,float b);
- virtual void GetNodeColor(float& r,float& g,float& b);
+ virtual void SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetNodeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetHighlightColor(float r,float g,float b);
- virtual void GetHighlightColor(float& r,float& g,float& b);
+ virtual void SetHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetPreHighlightColor(float r,float g,float b);
- virtual void GetPreHighlightColor(float& r,float& g,float& b);
+ virtual void SetPreHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetPreHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual float GetLineWidth();
- virtual void SetLineWidth(float theVal);
+ virtual vtkFloatingPointType GetLineWidth();
+ virtual void SetLineWidth(vtkFloatingPointType theVal);
- virtual void SetNodeSize(float size) ;
- virtual float GetNodeSize() ;
+ virtual void SetNodeSize(vtkFloatingPointType size) ;
+ virtual vtkFloatingPointType GetNodeSize() ;
virtual int GetNodeObjId(int theVtkID);
- virtual float* GetNodeCoord(int theObjID);
+ virtual vtkFloatingPointType* GetNodeCoord(int theObjID);
virtual int GetElemObjId(int theVtkID);
virtual vtkCell* GetElemCell(int theObjID);
virtual void SetPointRepresentation(bool theIsPointsVisible);
virtual bool GetPointRepresentation();
- virtual float* GetBounds();
- virtual void SetTransform(SALOME_Transform* theTransform);
+ virtual vtkFloatingPointType* GetBounds();
+ virtual void SetTransform(VTKViewer_Transform* theTransform);
virtual vtkUnstructuredGrid* GetUnstructuredGrid();
virtual vtkDataSet* GetInput();
virtual vtkMapper* GetMapper();
- virtual float GetShrinkFactor();
- virtual void SetShrinkFactor(float theValue);
+ virtual vtkFloatingPointType GetShrinkFactor();
+ virtual void SetShrinkFactor(vtkFloatingPointType theValue);
virtual bool IsShrunkable() { return myIsShrinkable;}
virtual bool IsShrunk() { return myIsShrunk;}
virtual vtkScalarBarActor* GetScalarBarActor(){ return myScalarBarActor;}
- virtual void SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane);
- virtual void GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane);
+ virtual void SetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType theDist, vtkPlane* thePlane);
+ virtual void GetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType& 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;}
virtual void SetControlsPrecision( const long p ) { myControlsPrecision = p; }
virtual long GetControlsPrecision() const { return myControlsPrecision; }
+ virtual void UpdateScalarBar();
+
protected:
+ void SetControlMode(eControl theMode, bool theCheckEntityMode);
+ void SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed);
+ bool IsImplicitFunctionUsed() const;
+
TVisualObjPtr myVisualObj;
vtkTimeStamp* myTimeStamp;
vtkProperty* myHighlightProp;
vtkProperty* myPreselectProp;
SMESH_DeviceActor* myHighlitableActor;
- SMESH_DeviceActor* myNodeHighlitableActor;
eControl myControlMode;
SMESH_DeviceActor* my2DActor;
SMESH_DeviceActor* my1DExtActor;
unsigned int myEntityMode;
+ unsigned int myEntityState;
bool myIsPointsVisible;
bool myIsShrinkable;
vtkSelectVisiblePoints* myClsSelectVisiblePoints;
vtkImplicitBoolean* myImplicitBoolean;
-
+ typedef TVTKSmartPtr<vtkPlane> TPlanePtr;
+ typedef std::vector<TPlanePtr> TCippingPlaneCont;
+ TCippingPlaneCont myCippingPlaneCont;
long myControlsPrecision;
SMESH_ActorDef();