Salome HOME
Updated copyright comment
[modules/gui.git] / src / VTKViewer / VTKViewer_Trihedron.h
old mode 100755 (executable)
new mode 100644 (file)
index f1bf77d..ca5ce23
@@ -1,24 +1,25 @@
-//  Copyright (C) 2007-2008  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
+// 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
 //
+
 #ifndef VTKVIEWER_TRIHEDRON_H
 #define VTKVIEWER_TRIHEDRON_H
 
@@ -26,6 +27,7 @@
 
 #include <vtkObject.h>
 #include <vtkFollower.h>
+#include <vtkVersion.h>
 
 class vtkRenderer;
 class vtkActorCollection;
@@ -35,9 +37,22 @@ class vtkPolyDataMapper;
 class vtkLineSource;
 class vtkConeSource;
 class vtkVectorText;
+class vtkTextActor;
+class vtkTextMapper;
 
 class VTKViewer_Axis;
 
+#if !defined(VTK_XVERSION)
+#define VTK_XVERSION (VTK_MAJOR_VERSION<<16)+(VTK_MINOR_VERSION<<8)+(VTK_BUILD_VERSION)
+#endif
+
+// VTKViewer_UnScaledActor is temporarily replaced with simple vtkTextActor
+// This workaround caused by the bug with disappeared labels of the trihedron
+// reproduced after migration from qt-4.4.3 to qt-4.5.2
+#if (VTK_XVERSION < 0x050200)
+#define IPAL21440
+#endif
+
 /*! \class vtkFollower
  * See <a href="http://www.vtk.org/">vtk documentation</a>
  */
@@ -50,12 +65,12 @@ class VTKVIEWER_EXPORT VTKViewer_UnScaledActor: public vtkFollower
   
 public:
   
-  vtkTypeMacro(VTKViewer_UnScaledActor,vtkFollower);
+  vtkTypeMacro(VTKViewer_UnScaledActor,vtkFollower)
   
   /*!Create new instance of VTKViewer_UnScaledActor.*/
   static VTKViewer_UnScaledActor *New();
   
-  virtual vtkFloatingPointType* GetBounds();
+  virtual double* GetBounds();
   virtual void SetSize(int theSize);
   virtual void Render(vtkRenderer *theRenderer);
 
@@ -76,15 +91,22 @@ class VTKVIEWER_EXPORT VTKViewer_LineActor: public vtkFollower
   
 public:
   /*!vtk type macros.*/
-  vtkTypeMacro(VTKViewer_LineActor,vtkFollower);
+  vtkTypeMacro(VTKViewer_LineActor,vtkFollower)
   
   /*!Create new instance of VTKViewer_LineActor.*/
   static VTKViewer_LineActor *New();
   
-  /*! Sets Lable actor.
+#ifdef IPAL21440
+  /*! Sets Label actor.
+   * \param theLabelActor - vtkTextActor
+   */
+  void SetLabelActor(vtkTextActor* theLabelActor);
+#else
+  /*! Sets Label actor.
    * \param theLabelActor - VTKViewer_UnScaledActor
    */
   void SetLabelActor(VTKViewer_UnScaledActor* theLabelActor);
+#endif
   
   /*! Sets Arrow actor.
    * \param theLabelActor - VTKViewer_UnScaledActor
@@ -108,7 +130,11 @@ protected:
   }
 
   /*!Label actor pointer*/
+#ifdef IPAL21440
+  vtkTextActor* LabelActor;
+#else
   VTKViewer_UnScaledActor* LabelActor;
+#endif
 
   /*!Arrow actor pointer*/
   vtkFollower* ArrowActor;
@@ -129,20 +155,20 @@ protected:
 
 public:
   /*!vtk type macros.*/
-  vtkTypeMacro(VTKViewer_Trihedron,vtkObject);
+  vtkTypeMacro(VTKViewer_Trihedron,vtkObject)
   
   /*!Create new instance of VTKViewer_Trihedron.*/
   static VTKViewer_Trihedron *New();
   
   /*!Sets size of trihedron.
-   * \param theSize - vtkFloatingPointType value
+   * \param theSize - double value
    */
-  virtual void        SetSize(vtkFloatingPointType theSize);
+  virtual void        SetSize(double theSize);
 
   /*! Get size of trihedron.
-   * \retval mySize - vtkFloatingPointType value
+   * \retval mySize - double value
    */
-  virtual vtkFloatingPointType  GetSize() { return mySize;}
+  virtual double  GetSize() { return mySize;}
   
   enum TVisibility{eOff, eOn, eOnlyLineOn};
   
@@ -190,7 +216,7 @@ protected:
   VTKViewer_Axis*     myAxis[3];
   
   /*! Common size for trihedron, for each axis.*/
-  vtkFloatingPointType mySize;
+  double mySize;
 };
 
 /*!The base class for concreate Axis.
@@ -206,7 +232,7 @@ protected:
   
 public:
   /*!vtk type macros.*/
-  vtkTypeMacro(VTKViewer_Axis,vtkObject);
+  vtkTypeMacro(VTKViewer_Axis,vtkObject)
   
   /*! Add to \a theRenderer actors: myLineActor,myLabelActor,myArrowActor
    */
@@ -226,18 +252,25 @@ public:
    */
   virtual void SetCamera(vtkCamera* theCamera);
 
-  /*! Sets \a theProperty for actors: myLineActor,myLabelActor,myArrowActor
+  /*! Sets color for actors: myLineActor,myLabelActor,myArrowActor
+   * \param theRed - red component of the color
+   * \param theGreen - green component of the color
+   * \param theBlue - blue component of the color
    */
-  virtual void SetProperty(vtkProperty* theProperty);
+  virtual void SetColor(double theRed, double theGreen, double theBlue);
   
   /*! Set size of VTKViewer_Axis
    */
-  virtual void SetSize(vtkFloatingPointType theSize);
+  virtual void SetSize(double theSize);
   
   /*! Get label actor.
    * \retval Return myLabelActor.
    */
+#ifdef IPAL21440
+  virtual vtkTextActor* GetLabel() { return myLabelActor; }
+#else
   virtual VTKViewer_UnScaledActor* GetLabel() { return myLabelActor; }
+#endif
   
   /*! Get arrow actor.
    * \retval Return myArrowActor
@@ -261,7 +294,7 @@ protected:
   /*! \var myRot[3]
    * Orientation vector
    */
-  vtkFloatingPointType myDir[3], myRot[3];
+  double myDir[3], myRot[3];
   
   /*! VTKViewer_LineActor actor pointer
    */
@@ -273,7 +306,11 @@ protected:
 
   /*! VTKViewer_UnScaledActor actor pointer
    */
+#ifdef IPAL21440
+  vtkTextActor *myLabelActor;
+#else
   VTKViewer_UnScaledActor *myLabelActor;
+#endif
   
   /*! \li myMapper[0] - for the Line pipe-line representation
    *  \li myMapper[1] - for the Arrow pipe-line representation
@@ -289,9 +326,15 @@ protected:
    */
   vtkConeSource *myConeSource;
 
+#ifdef IPAL21440
+  /*! vtkTextMapper pointer (Label)
+   */
+  vtkTextMapper *myTextMapper;
+#else
   /*! VTKViewer_VectorText pointer (Label)
    */
   vtkVectorText* myVectorText;
+#endif
 };
 
 #endif