Salome HOME
Update of CheckDone
[modules/smesh.git] / src / OBJECT / SMESH_DeviceActor.h
index bcce5c974b4396db53ae1f35fba40cdf80d6875a..c8f17d254e3d42f13c881b6a7a1b4b8833e5254c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -44,7 +44,8 @@ class vtkShrinkFilter;
 class vtkUnstructuredGrid;
 class vtkLookupTable;
 class vtkImplicitBoolean;
-class vtkPassThroughFilter;
+class vtkPassThrough;
+class vtkPlaneCollection;
 
 class VTKViewer_Transform;
 class VTKViewer_TransformFilter;
@@ -60,21 +61,22 @@ class SMESHOBJECT_EXPORT SMESH_DeviceActor: public vtkLODActor{
   friend class SMESH_ActorDef;
 
  public:
-  vtkTypeMacro(SMESH_DeviceActor,vtkLODActor);
+  vtkTypeMacro(SMESH_DeviceActor,vtkLODActor)
   static SMESH_DeviceActor* New();
 
   void SetStoreClippingMapping(bool theStoreMapping);
   void SetStoreGemetryMapping(bool theStoreMapping);
   void SetStoreIDMapping(bool theStoreMapping);
 
-  virtual int GetNodeObjId(int theVtkID);
-  virtual double* GetNodeCoord(int theObjID);
+  virtual vtkIdType GetNodeObjId(vtkIdType theVtkID);
+  virtual double* GetNodeCoord(vtkIdType theObjID);
+  virtual vtkIdType GetNodeVtkId(vtkIdType theObjID);
 
-  virtual int GetElemObjId(int theVtkID);
-  virtual vtkCell* GetElemCell(int theObjID);
+  virtual vtkIdType GetElemObjId(vtkIdType theVtkID);
+  virtual vtkCell* GetElemCell(vtkIdType theObjID);
 
   virtual void SetTransform(VTKViewer_Transform* theTransform); 
-  virtual unsigned long int GetMTime();
+  virtual vtkMTimeType GetMTime();
 
   virtual void SetFacesOriented(bool theIsFacesOriented);
   virtual bool GetFacesOriented() { return myIsFacesOriented; }
@@ -106,7 +108,7 @@ class SMESHOBJECT_EXPORT SMESH_DeviceActor: public vtkLODActor{
   void SetShrink(); 
   void UnShrink(); 
 
-  enum EReperesent { ePoint, eWireframe, eSurface, eInsideframe};
+  enum EReperesent { ePoint, eWireframe, eSurface, eInsideframe, eNoneRepr=-1};
   EReperesent GetRepresentation(){ return myRepresentation;}
   void SetRepresentation(EReperesent theMode);
 
@@ -119,6 +121,8 @@ class SMESHOBJECT_EXPORT SMESH_DeviceActor: public vtkLODActor{
   VTKViewer_ExtractUnstructuredGrid* GetExtractUnstructuredGrid();
   vtkUnstructuredGrid* GetUnstructuredGrid();
 
+  void SetPlaneCollection( vtkPlaneCollection* theCollection );
+
   void SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
                       SMESH_ScalarBarActor* theScalarBarActor,
                       vtkLookupTable* theLookupTable);
@@ -144,11 +148,14 @@ class SMESHOBJECT_EXPORT SMESH_DeviceActor: public vtkLODActor{
   bool IsImplicitFunctionUsed() const{ return myIsImplicitFunctionUsed;}
 
   void SetMarkerEnabled( bool );
+  void SetBallEnabled( bool );
+  void SetBallScale( double );
   void SetMarkerStd( VTK::MarkerType, VTK::MarkerScale );
   void SetMarkerTexture( int, VTK::MarkerTexture );
   VTK::MarkerType GetMarkerType();
   VTK::MarkerScale GetMarkerScale();
   int GetMarkerTexture();
+  double GetBallScale();
 
  protected:
   void Init(TVisualObjPtr theVisualObj, vtkImplicitBoolean* theImplicitBoolean);
@@ -157,6 +164,8 @@ class SMESHOBJECT_EXPORT SMESH_DeviceActor: public vtkLODActor{
   VTKViewer_PolyDataMapper *myMapper;
   TVisualObjPtr myVisualObj;
 
+  vtkSmartPointer<vtkPlaneCollection> myPlaneCollection;
+  
   vtkProperty *myProperty;
   EReperesent myRepresentation;
 
@@ -174,7 +183,7 @@ class SMESHOBJECT_EXPORT SMESH_DeviceActor: public vtkLODActor{
   bool myStoreClippingMapping;
   VTKViewer_GeometryFilter *myGeomFilter;
   VTKViewer_TransformFilter *myTransformFilter;
-  std::vector<vtkPassThroughFilter*> myPassFilter;
+  std::vector<vtkPassThrough*> myPassFilter;
 
   vtkShrinkFilter* myShrinkFilter;
   bool myIsShrinkable;