Salome HOME
Some fixes to compile against ParaView master.
[modules/gui.git] / src / SVTK / SVTK_DeviceActor.h
index 95949133be2793a0bfeeb780f06ed60c6bc13135..a2749d030b96c755a8a3458f6c0cafc3c38c772e 100644 (file)
@@ -1,35 +1,36 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-//  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.
+// 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, 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
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 //  SVTK OBJECT : interactive object for SVTK visualization
 //  File   : SVTK_DeviceActor.h
 //  Author : 
-//  Module : 
-//  $Header$
-//
+
 #ifndef SVTK_DEVICE_ACTOR_H
 #define SVTK_DEVICE_ACTOR_H
 
 #include "SVTK.h"
 #include "VTKViewer.h"
+#include "VTKViewer_Actor.h"
+#include "VTKViewer_MarkerDef.h"
 
 #include <vector>
 
@@ -44,20 +45,9 @@ class vtkCell;
 class vtkDataSet;
 class vtkShrinkFilter;
 class vtkFeatureEdges;
-class vtkDataSetMapper;
-class vtkPassThroughFilter;
-
-namespace SVTK
-{
-  namespace Representation
-  {
-    typedef int Type;
-    const Type Points = VTK_POINTS;
-    const Type Wireframe = VTK_WIREFRAME;
-    const Type Surface = VTK_SURFACE;
-    const Type Insideframe = Surface + 1;
-  }
-}
+class VTKViewer_DataSetMapper;
+class vtkPassThrough;
+class vtkAlgorithmOutput;
 
 #ifdef WIN32
 #pragma warning ( disable:4251 )
@@ -66,7 +56,7 @@ namespace SVTK
 class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
 {
  public:
-  vtkTypeMacro(SVTK_DeviceActor,vtkLODActor);
+  vtkTypeMacro(SVTK_DeviceActor,vtkLODActor)
 
   static
   SVTK_DeviceActor* 
@@ -90,25 +80,30 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
   //! Allows to set initial #vtkDataSet
   virtual
   void
-  SetInput(vtkDataSet* theDataSet); 
+  SetInputData(vtkDataSet* theDataSet); 
+
+  //! Allows to set initial #vtkAlgorithmOutput
+  virtual
+  void
+  SetInputConnection(vtkAlgorithmOutput* theAlgorithmOutput); 
 
   /** @name For selection mapping purpose */
   //@{
   virtual
-  int
-  GetNodeObjId(int theVtkID);
+  vtkIdType
+  GetNodeObjId(vtkIdType theVtkID);
 
   virtual
-  vtkFloatingPointType* 
-  GetNodeCoord(int theObjID);
+  double* 
+  GetNodeCoord(vtkIdType theObjID);
 
   virtual
-  int
-  GetElemObjId(int theVtkID);
+  vtkIdType
+  GetElemObjId(vtkIdType theVtkID);
 
   virtual
   vtkCell* 
-  GetElemCell(int theObjID);
+  GetElemCell(vtkIdType theObjID);
 
   //! To provide VTK to Object and backward mapping
   virtual 
@@ -117,17 +112,17 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
   //@}
 
   virtual 
-  unsigned long int 
+  vtkMTimeType
   GetMTime();
 
   /** @name For shrink mamnagement purpose */
   //@{
-  vtkFloatingPointType
+  double
   GetShrinkFactor();
 
   virtual 
   void  
-  SetShrinkFactor(vtkFloatingPointType value);
+  SetShrinkFactor(double value);
 
   virtual
   void
@@ -167,25 +162,25 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
   SetFeatureEdgesEnabled(bool theIsFeatureEdgesEnabled);
 
   virtual
-  vtkFloatingPointType
+  double
   GetFeatureEdgesAngle();
 
   virtual
   void
-  SetFeatureEdgesAngle(vtkFloatingPointType theAngle); 
+  SetFeatureEdgesAngle(double theAngle); 
 
   virtual
   void
   GetFeatureEdgesFlags(bool& theIsFeatureEdges,
-                      bool& theIsBoundaryEdges,
-                      bool& theIsManifoldEdges,
-                      bool& theIsNonManifoldEdges);
+                       bool& theIsBoundaryEdges,
+                       bool& theIsManifoldEdges,
+                       bool& theIsNonManifoldEdges);
   virtual
   void
   SetFeatureEdgesFlags(bool theIsFeatureEdges,
-                      bool theIsBoundaryEdges,
-                      bool theIsManifoldEdges,
-                      bool theIsNonManifoldEdges);
+                       bool theIsBoundaryEdges,
+                       bool theIsManifoldEdges,
+                       bool theIsNonManifoldEdges);
 
   virtual
   bool
@@ -199,17 +194,17 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
   /** @name For representation mamnagement purpose */
   virtual
   void 
-  SetRepresentation(SVTK::Representation::Type theMode);
+    SetRepresentation(VTKViewer::Representation::Type theMode);
 
-  SVTK::Representation::Type 
+  VTKViewer::Representation::Type 
   GetRepresentation();
 
   virtual
-  vtkFloatingPointType
+  double
   GetDefaultPointSize();
 
   virtual
-  vtkFloatingPointType
+  double
   GetDefaultLineWidth();
 
   bool
@@ -219,14 +214,62 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
   SetShaded(bool theShaded);
   //@}
 
+  /** @name For ball marker management purpose */
+  void 
+  SetBallEnabled( bool );
+
+  /** @name For marker management purpose */
+  void
+  SetMarkerEnabled( bool );
+
+  void
+  SetBallScale( double );
+
+  void
+  SetMarkerStd( VTK::MarkerType, VTK::MarkerScale );
+
+  void
+  SetMarkerTexture( int, VTK::MarkerTexture );
+
+  VTK::MarkerType
+  GetMarkerType();
+
+  VTK::MarkerScale
+  GetMarkerScale();
+
+  int
+  GetMarkerTexture();
+  //@}
+
   virtual
   void
   Render(vtkRenderer *, vtkMapper *);
 
-  vtkDataSetMapper* GetDataSetMapper();
+  VTKViewer_DataSetMapper* GetDataSetMapper();
+
+  //----------------------------------------------------------------------------
+  //! Setting for displaying quadratic elements
+  virtual void SetQuadraticArcMode(bool theFlag);
+  virtual bool GetQuadraticArcMode();
+
+  virtual void SetQuadraticArcAngle(double theMaxAngle);
+  virtual double GetQuadraticArcAngle();
+
+  virtual
+  void
+  SetCoincident3DAllowed(bool theIsFeatureEdgesAllowed);
+
+  virtual
+  bool 
+  IsCoincident3DAllowed() const;
+  
+  void
+  SetResolveCoincidentTopology(bool theIsResolve);
+    
+
 
  protected:
-  SVTK::Representation::Type myRepresentation;
+  VTKViewer::Representation::Type myRepresentation;
   vtkProperty *myProperty;
   bool myIsShaded;
 
@@ -236,10 +279,10 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
 
   VTKViewer_GeometryFilter *myGeomFilter;
   VTKViewer_TransformFilter *myTransformFilter;
-  std::vector<vtkPassThroughFilter*> myPassFilter;
+  std::vector<vtkPassThrough*> myPassFilter;
   vtkShrinkFilter* myShrinkFilter;
   vtkFeatureEdges* myFeatureEdges;
-  vtkDataSetMapper* myMapper;
+  VTKViewer_DataSetMapper* myMapper;
 
   bool myIsShrinkable;
   bool myIsShrunk;
@@ -248,13 +291,13 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
   bool myIsFeatureEdgesEnabled;
 
   bool myIsResolveCoincidentTopology;
-  vtkFloatingPointType myPolygonOffsetFactor;
-  vtkFloatingPointType myPolygonOffsetUnits;
+  double myPolygonOffsetFactor;
+  double myPolygonOffsetUnits;
 
-  void SetPolygonOffsetParameters(vtkFloatingPointType factor, 
-                                 vtkFloatingPointType units);
-  void GetPolygonOffsetParameters(vtkFloatingPointType& factor, 
-                                 vtkFloatingPointType& units);
+  void SetPolygonOffsetParameters(double factor, 
+                                  double units);
+  void GetPolygonOffsetParameters(double& factor, 
+                                  double& units);
 
   SVTK_DeviceActor();
   ~SVTK_DeviceActor();