Salome HOME
0022813: [CEA 1336] Regression : sigsegv at the med file openning
authorvsr <vsr@opencascade.com>
Wed, 3 Dec 2014 08:15:20 +0000 (11:15 +0300)
committervsr <vsr@opencascade.com>
Wed, 3 Dec 2014 08:15:20 +0000 (11:15 +0300)
src/SVTK/CMakeLists.txt
src/SVTK/SVTK_ViewWindow.cxx
src/SVTK/SVTK_ViewWindow.h
src/SVTK/salomevtkPVAxesActor.cxx [new file with mode: 0644]
src/SVTK/salomevtkPVAxesActor.h [new file with mode: 0644]
src/SVTK/salomevtkPVAxesWidget.cxx [new file with mode: 0644]
src/SVTK/salomevtkPVAxesWidget.h [new file with mode: 0644]
src/SVTK/vtkPVAxesActor.cxx [deleted file]
src/SVTK/vtkPVAxesActor.h [deleted file]
src/SVTK/vtkPVAxesWidget.cxx [deleted file]
src/SVTK/vtkPVAxesWidget.h [deleted file]

index 22a93e45d6ffd428f40a3dbd7fc9624726f4b5bc..955302b269b91a19cb49a94fb8f412712d0db5ba 100755 (executable)
@@ -105,8 +105,8 @@ SET(_other_HEADERS
 SET(_internal_HEADERS
   SVTK_SelectorDef.h
   SVTK_Trihedron.h
-  vtkPVAxesActor.h
-  vtkPVAxesWidget.h
+  salomevtkPVAxesActor.h
+  salomevtkPVAxesWidget.h
 )
 
 # header files / to install
@@ -181,8 +181,8 @@ SET(_other_SOURCES
   SVTK_ViewModel.cxx
   SVTK_ViewParameterDlg.cxx
   SVTK_ViewWindow.cxx
-  vtkPVAxesActor.cxx
-  vtkPVAxesWidget.cxx
+  salomevtkPVAxesActor.cxx
+  salomevtkPVAxesWidget.cxx
 )
 
 # sources / to compile
index 49b496192e1a58b1e1393383a0dae7826f3524c0..19f9249666c5011572cd0c56a5b17df30de265f4 100755 (executable)
@@ -93,8 +93,8 @@
 #include "SVTK_Recorder.h"
 #include "SVTK_RecorderDlg.h"
 
-#include "vtkPVAxesWidget.h"
-#include "vtkPVAxesActor.h"
+#include "salomevtkPVAxesWidget.h"
+#include "salomevtkPVAxesActor.h"
 
 #include "SALOME_ListIO.hxx"
 
@@ -213,14 +213,14 @@ void SVTK_ViewWindow::Initialize(SVTK_ViewModelBase* theModel)
   
   setCentralWidget(myInteractor);
   
-  myAxesWidget = vtkPVAxesWidget::New();
+  myAxesWidget = salomevtk::vtkPVAxesWidget::New();
   myAxesWidget->SetParentRenderer(aRenderer->GetDevice());
   myAxesWidget->SetViewport(0, 0, 0.25, 0.25);
   myAxesWidget->SetInteractor(myInteractor->GetDevice());
   myAxesWidget->SetEnabled(1);
   myAxesWidget->SetInteractive(0);
 
-  vtkPVAxesActor* anAxesActor = myAxesWidget->GetAxesActor();
+  salomevtk::vtkPVAxesActor* anAxesActor = myAxesWidget->GetAxesActor();
   anAxesActor->GetXAxisTipProperty()->SetColor(   1.0, 0.0, 0.0 );
   anAxesActor->GetXAxisShaftProperty()->SetColor( 1.0, 0.0, 0.0 );
   anAxesActor->GetXAxisLabelProperty()->SetColor( 1.0, 0.0, 0.0 );
index ef6eb8a55bb196ec57e382afe6af95cb6fe9bb11..ea6f672369d9060d1c926d6c81af21f520ab047b 100755 (executable)
@@ -66,7 +66,10 @@ class SVTK_KeyFreeInteractorStyle;
 class SVTK_ViewParameterDlg;
 class SVTK_Recorder;
 
-class vtkPVAxesWidget;
+namespace salomevtk
+{
+  class vtkPVAxesWidget;
+}
 
 class vtkObject;
 class QtxAction;
@@ -453,7 +456,7 @@ protected:
   int myToolBar;
   int myRecordingToolBar;
 
-  vtkPVAxesWidget* myAxesWidget;
+  salomevtk::vtkPVAxesWidget* myAxesWidget;
   Qtx::BackgroundData myBackground;
 
 private:
diff --git a/src/SVTK/salomevtkPVAxesActor.cxx b/src/SVTK/salomevtkPVAxesActor.cxx
new file mode 100644 (file)
index 0000000..da12e35
--- /dev/null
@@ -0,0 +1,820 @@
+/*=========================================================================
+
+   Program: ParaView
+   Module:    $RCSfile$
+
+   Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
+   All rights reserved.
+
+   ParaView is a free software; you can redistribute it and/or modify it
+   under the terms of the ParaView license version 1.2. 
+
+   See License_v1.2.txt for the full ParaView license.
+   A copy of this license can be obtained by contacting
+   Kitware Inc.
+   28 Corporate Drive
+   Clifton Park, NY 12065
+   USA
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=========================================================================*/
+//
+// VSR 03/12/2014: the original file vtkPVAxesActor.cxx has been renamed to salomevtkPVAxesActor.cxx
+// to avoid collisions with native VTK/ParaView classes
+
+#include "salomevtkPVAxesActor.h" // changed by SALOME
+#include "vtkObject.h"
+#include "vtkObjectFactory.h"
+
+#include "vtkActor.h"
+#include "vtkPropCollection.h"
+#include "vtkProperty.h"
+#include "vtkRenderWindow.h"
+#include "vtkTransform.h"
+#include "vtkCylinderSource.h"
+#include "vtkPolyDataMapper.h"
+#include "vtkLineSource.h"
+#include "vtkPolyData.h"
+#include "vtkConeSource.h"
+#include "vtkSphereSource.h"
+#include "vtkVectorText.h"
+#include "vtkFollower.h"
+#include "vtkRenderer.h"
+
+#include <math.h>
+
+// VSR 03/12/2014: we put classes copied from VTK/ParaView to the specific namespace
+// to avoid collisions with native VTK/ParaView classes
+namespace salomevtk
+{
+
+vtkStandardNewMacro(vtkPVAxesActor);
+
+vtkCxxSetObjectMacro( vtkPVAxesActor, UserDefinedTip, vtkPolyData );
+vtkCxxSetObjectMacro( vtkPVAxesActor, UserDefinedShaft, vtkPolyData );
+
+//-----------------------------------------------------------------------------
+vtkPVAxesActor::vtkPVAxesActor()
+{
+  this->XAxisLabelText = NULL;
+  this->YAxisLabelText = NULL;
+  this->ZAxisLabelText = NULL;
+    
+  this->SetXAxisLabelText("X");
+  this->SetYAxisLabelText("Y");
+  this->SetZAxisLabelText("Z");
+  
+  //colors chosen to match the output of vtkAxes.cxx's LUT.
+  this->XAxisShaft = vtkActor::New();
+  this->XAxisShaft->GetProperty()->SetColor(1, 0, 0);
+  this->YAxisShaft = vtkActor::New();
+  this->YAxisShaft->GetProperty()->SetColor(1, 1, 0);
+  this->ZAxisShaft = vtkActor::New();
+  this->ZAxisShaft->GetProperty()->SetColor(0, 1, 0);
+
+  this->XAxisTip = vtkActor::New();
+  this->XAxisTip->GetProperty()->SetColor(1, 0, 0);
+  this->YAxisTip = vtkActor::New();
+  this->YAxisTip->GetProperty()->SetColor(1, 1, 0);
+  this->ZAxisTip = vtkActor::New();
+  this->ZAxisTip->GetProperty()->SetColor(0, 1, 0);
+
+  this->CylinderSource = vtkCylinderSource::New();
+  this->CylinderSource->SetHeight(1.0);
+  
+  this->LineSource = vtkLineSource::New();
+  this->LineSource->SetPoint1( 0.0, 0.0, 0.0 );
+  this->LineSource->SetPoint2( 0.0, 1.0, 0.0 );
+
+  this->ConeSource = vtkConeSource::New();
+  this->ConeSource->SetDirection( 0, 1, 0 );
+  this->ConeSource->SetHeight( 1.0 );
+   
+  this->SphereSource = vtkSphereSource::New();
+  
+  vtkPolyDataMapper *shaftMapper = vtkPolyDataMapper::New();
+  
+  this->XAxisShaft->SetMapper( shaftMapper );
+  this->YAxisShaft->SetMapper( shaftMapper );
+  this->ZAxisShaft->SetMapper( shaftMapper );
+  
+  shaftMapper->Delete();
+
+  vtkPolyDataMapper *tipMapper = vtkPolyDataMapper::New();
+  
+  this->XAxisTip->SetMapper( tipMapper );
+  this->YAxisTip->SetMapper( tipMapper );
+  this->ZAxisTip->SetMapper( tipMapper );
+  
+  tipMapper->Delete();
+
+  this->TotalLength[0] = 1.0;
+  this->TotalLength[1] = 1.0;
+  this->TotalLength[2] = 1.0;
+  this->NormalizedShaftLength[0] = 0.8;
+  this->NormalizedShaftLength[1] = 0.8;
+  this->NormalizedShaftLength[2] = 0.8;
+
+  this->NormalizedTipLength[0] = 0.2;
+  this->NormalizedTipLength[1] = 0.2;
+  this->NormalizedTipLength[2] = 0.2;
+
+  this->ConeResolution = 16;
+  this->SphereResolution = 16;
+  this->CylinderResolution = 16;
+  
+  this->ConeRadius = 0.4;
+  this->SphereRadius = 0.5;
+  this->CylinderRadius = 0.05;
+  
+  this->XAxisLabelPosition = 1;
+  this->YAxisLabelPosition = 1;
+  this->ZAxisLabelPosition = 1;
+  
+  this->ShaftType = vtkPVAxesActor::LINE_SHAFT;
+  this->TipType   = vtkPVAxesActor::CONE_TIP;
+
+  this->UserDefinedTip = NULL;
+  this->UserDefinedShaft = NULL;
+
+  this->XAxisVectorText = vtkVectorText::New();
+  this->YAxisVectorText = vtkVectorText::New();
+  this->ZAxisVectorText = vtkVectorText::New();
+  
+  this->XAxisLabel = vtkFollower::New();
+  this->YAxisLabel = vtkFollower::New();
+  this->ZAxisLabel = vtkFollower::New();
+  
+  vtkPolyDataMapper *xmapper = vtkPolyDataMapper::New();
+  vtkPolyDataMapper *ymapper = vtkPolyDataMapper::New();
+  vtkPolyDataMapper *zmapper = vtkPolyDataMapper::New();
+  
+  xmapper->SetInputConnection( this->XAxisVectorText->GetOutputPort() );
+  ymapper->SetInputConnection( this->YAxisVectorText->GetOutputPort() );
+  zmapper->SetInputConnection( this->ZAxisVectorText->GetOutputPort() );
+  
+  this->XAxisLabel->SetMapper( xmapper );
+  this->YAxisLabel->SetMapper( ymapper );
+  this->ZAxisLabel->SetMapper( zmapper );
+  
+  xmapper->Delete();
+  ymapper->Delete();
+  zmapper->Delete();
+  
+  this->UpdateProps();
+}
+
+//-----------------------------------------------------------------------------
+vtkPVAxesActor::~vtkPVAxesActor()
+{
+  this->CylinderSource->Delete();
+  this->LineSource->Delete();
+  this->ConeSource->Delete();
+  this->SphereSource->Delete();  
+  
+  this->XAxisShaft->Delete();
+  this->YAxisShaft->Delete();
+  this->ZAxisShaft->Delete();  
+
+  this->XAxisTip->Delete();
+  this->YAxisTip->Delete();
+  this->ZAxisTip->Delete();  
+  
+  this->SetUserDefinedTip( NULL );
+  this->SetUserDefinedShaft( NULL );
+  
+  this->SetXAxisLabelText( NULL );
+  this->SetYAxisLabelText( NULL );
+  this->SetZAxisLabelText( NULL );
+  
+  this->XAxisVectorText->Delete();
+  this->YAxisVectorText->Delete();
+  this->ZAxisVectorText->Delete();
+
+  this->XAxisLabel->Delete();
+  this->YAxisLabel->Delete();
+  this->ZAxisLabel->Delete();
+}
+
+//-----------------------------------------------------------------------------
+// Shallow copy of an actor.
+void vtkPVAxesActor::ShallowCopy(vtkProp *prop)
+{
+  vtkPVAxesActor *a = vtkPVAxesActor::SafeDownCast(prop);
+  if ( a != NULL )
+    {
+    }
+
+  // Now do superclass
+  this->vtkProp3D::ShallowCopy(prop);
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::GetActors(vtkPropCollection *ac)
+{
+  ac->AddItem(this->XAxisShaft);
+  ac->AddItem(this->YAxisShaft);
+  ac->AddItem(this->ZAxisShaft);
+  ac->AddItem(this->XAxisTip);
+  ac->AddItem(this->YAxisTip);
+  ac->AddItem(this->ZAxisTip);
+  ac->AddItem(this->XAxisLabel);
+  ac->AddItem(this->YAxisLabel);
+  ac->AddItem(this->ZAxisLabel);
+
+}
+
+//-----------------------------------------------------------------------------
+int vtkPVAxesActor::RenderOpaqueGeometry(vtkViewport *vp)
+{
+  int          renderedSomething = 0; 
+
+  vtkRenderer *ren = vtkRenderer::SafeDownCast( vp );
+
+  this->UpdateProps();
+  
+  this->XAxisLabel->SetCamera( ren->GetActiveCamera() );
+  this->YAxisLabel->SetCamera( ren->GetActiveCamera() );
+  this->ZAxisLabel->SetCamera( ren->GetActiveCamera() );
+  
+  this->XAxisShaft->RenderOpaqueGeometry(vp);
+  this->YAxisShaft->RenderOpaqueGeometry(vp);
+  this->ZAxisShaft->RenderOpaqueGeometry(vp);
+
+  this->XAxisTip->RenderOpaqueGeometry(vp);
+  this->YAxisTip->RenderOpaqueGeometry(vp);
+  this->ZAxisTip->RenderOpaqueGeometry(vp);
+
+  this->XAxisLabel->RenderOpaqueGeometry(vp);
+  this->YAxisLabel->RenderOpaqueGeometry(vp);
+  this->ZAxisLabel->RenderOpaqueGeometry(vp);
+  
+  return renderedSomething;
+}
+
+//-----------------------------------------------------------------------------
+#if (VTK_MAJOR_VERSION>5 || VTK_MINOR_VERSION>=2)
+// porting to VTK 5.0.x
+int vtkPVAxesActor::RenderTranslucentPolygonalGeometry(vtkViewport *vp)
+{
+  int renderedSomething=0; 
+
+  this->UpdateProps();
+  
+  renderedSomething += this->XAxisShaft->RenderTranslucentPolygonalGeometry(vp);
+  renderedSomething += this->YAxisShaft->RenderTranslucentPolygonalGeometry(vp);
+  renderedSomething += this->ZAxisShaft->RenderTranslucentPolygonalGeometry(vp);
+
+  renderedSomething += this->XAxisTip->RenderTranslucentPolygonalGeometry(vp);
+  renderedSomething += this->YAxisTip->RenderTranslucentPolygonalGeometry(vp);
+  renderedSomething += this->ZAxisTip->RenderTranslucentPolygonalGeometry(vp);
+  
+  renderedSomething += this->XAxisLabel->RenderTranslucentPolygonalGeometry(vp);
+  renderedSomething += this->YAxisLabel->RenderTranslucentPolygonalGeometry(vp);
+  renderedSomething += this->ZAxisLabel->RenderTranslucentPolygonalGeometry(vp);
+  
+  return renderedSomething;
+}
+
+//-----------------------------------------------------------------------------
+// porting to VTK 5.0.x
+int vtkPVAxesActor::HasTranslucentPolygonalGeometry()
+{
+  int result = 0; 
+
+  this->UpdateProps();
+  
+  result |= this->XAxisShaft->HasTranslucentPolygonalGeometry();
+  result |= this->YAxisShaft->HasTranslucentPolygonalGeometry();
+  result |= this->ZAxisShaft->HasTranslucentPolygonalGeometry();
+
+  result |= this->XAxisTip->HasTranslucentPolygonalGeometry();
+  result |= this->YAxisTip->HasTranslucentPolygonalGeometry();
+  result |= this->ZAxisTip->HasTranslucentPolygonalGeometry();
+  
+  result |= this->XAxisLabel->HasTranslucentPolygonalGeometry();
+  result |= this->YAxisLabel->HasTranslucentPolygonalGeometry();
+  result |= this->ZAxisLabel->HasTranslucentPolygonalGeometry();
+  
+  return result;
+}
+
+#else
+//-----------------------------------------------------------------------------
+// porting to VTK 5.0.x
+int vtkPVAxesActor::RenderTranslucentGeometry(vtkViewport *vp)
+{
+  int renderedSomething=0; 
+
+  this->UpdateProps();
+  
+  renderedSomething += this->XAxisShaft->RenderTranslucentGeometry(vp);
+  renderedSomething += this->YAxisShaft->RenderTranslucentGeometry(vp);
+  renderedSomething += this->ZAxisShaft->RenderTranslucentGeometry(vp);
+
+  renderedSomething += this->XAxisTip->RenderTranslucentGeometry(vp);
+  renderedSomething += this->YAxisTip->RenderTranslucentGeometry(vp);
+  renderedSomething += this->ZAxisTip->RenderTranslucentGeometry(vp);
+  
+  renderedSomething += this->XAxisLabel->RenderTranslucentGeometry(vp);
+  renderedSomething += this->YAxisLabel->RenderTranslucentGeometry(vp);
+  renderedSomething += this->ZAxisLabel->RenderTranslucentGeometry(vp);
+  
+  return renderedSomething;
+}
+#endif
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::ReleaseGraphicsResources(vtkWindow *win)
+{
+  this->XAxisShaft->ReleaseGraphicsResources( win );
+  this->YAxisShaft->ReleaseGraphicsResources( win );
+  this->ZAxisShaft->ReleaseGraphicsResources( win );
+
+  this->XAxisTip->ReleaseGraphicsResources( win );
+  this->YAxisTip->ReleaseGraphicsResources( win );
+  this->ZAxisTip->ReleaseGraphicsResources( win );
+    
+  this->XAxisLabel->ReleaseGraphicsResources( win );
+  this->YAxisLabel->ReleaseGraphicsResources( win );
+  this->ZAxisLabel->ReleaseGraphicsResources( win );
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::GetBounds(double bounds[6])
+{
+  double *bds = this->GetBounds();
+  bounds[0] = bds[0];
+  bounds[1] = bds[1];
+  bounds[2] = bds[2];
+  bounds[3] = bds[3];
+  bounds[4] = bds[4];
+  bounds[5] = bds[5];
+}
+
+//-----------------------------------------------------------------------------
+// Get the bounds for this Actor as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
+double *vtkPVAxesActor::GetBounds()
+{
+  double bounds[6];
+  int i;
+  
+  this->XAxisShaft->GetBounds(this->Bounds);
+
+  this->YAxisShaft->GetBounds(bounds);
+  for (i=0; i<3; i++)
+    {
+    this->Bounds[2*i+1] = 
+      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
+    }
+
+  this->ZAxisShaft->GetBounds(bounds);
+  for (i=0; i<3; i++)
+    {
+    this->Bounds[2*i+1] = 
+      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
+    }
+
+  this->XAxisTip->GetBounds(bounds);
+  for (i=0; i<3; i++)
+    {
+    this->Bounds[2*i+1] = 
+      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
+    }
+
+  this->YAxisTip->GetBounds(bounds);
+  for (i=0; i<3; i++)
+    {
+    this->Bounds[2*i+1] = 
+      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
+    }
+
+  this->ZAxisTip->GetBounds(bounds);
+  for (i=0; i<3; i++)
+    {
+    this->Bounds[2*i+1] = 
+      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
+    }
+
+  double dbounds[6];
+  (vtkPolyDataMapper::SafeDownCast(this->YAxisShaft->GetMapper()))->
+    GetInput()->GetBounds( dbounds );
+  
+  for (i=0; i<3; i++)
+    {
+    this->Bounds[2*i+1] = 
+      (dbounds[2*i+1]>this->Bounds[2*i+1])?(dbounds[2*i+1]):(this->Bounds[2*i+1]);    
+    }
+
+  // We want this actor to rotate / re-center about the origin, so give it
+  // the bounds it would have if the axes were symmetrical.
+  for (i = 0; i < 3; i++)
+    {
+    this->Bounds[2*i] = -this->Bounds[2*i+1];
+    }
+
+  return this->Bounds;
+}
+
+//-----------------------------------------------------------------------------
+unsigned long int vtkPVAxesActor::GetMTime()
+{
+  unsigned long mTime=this->Superclass::GetMTime();
+
+
+  return mTime;
+}
+
+//-----------------------------------------------------------------------------
+unsigned long int vtkPVAxesActor::GetRedrawMTime()
+{
+  unsigned long mTime=this->GetMTime();
+
+  return mTime;
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetXAxisTipProperty()
+{
+  return this->XAxisTip->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetYAxisTipProperty()
+{
+  return this->YAxisTip->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetZAxisTipProperty()
+{
+  return this->ZAxisTip->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetXAxisShaftProperty()
+{
+  return this->XAxisShaft->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetYAxisShaftProperty()
+{
+  return this->YAxisShaft->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetZAxisShaftProperty()
+{
+  return this->ZAxisShaft->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetXAxisLabelProperty()
+{
+  return this->XAxisLabel->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetYAxisLabelProperty()
+{
+  return this->YAxisLabel->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+vtkProperty *vtkPVAxesActor::GetZAxisLabelProperty()
+{
+  return this->ZAxisLabel->GetProperty();
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::SetTotalLength( float x, float y, float z )
+{
+  if ( this->TotalLength[0] != x ||
+       this->TotalLength[1] != y ||
+       this->TotalLength[2] != z )
+    {
+    this->TotalLength[0] = x;
+    this->TotalLength[1] = y;
+    this->TotalLength[2] = z;
+  
+    this->Modified();
+    
+    this->UpdateProps();
+    }
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::SetNormalizedShaftLength( float x, float y, float z )
+{
+  if ( this->NormalizedShaftLength[0] != x ||
+       this->NormalizedShaftLength[1] != y ||
+       this->NormalizedShaftLength[2] != z )
+    {
+    this->NormalizedShaftLength[0] = x;
+    this->NormalizedShaftLength[1] = y;
+    this->NormalizedShaftLength[2] = z;
+  
+    this->Modified();
+    
+    this->UpdateProps();
+    }
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::SetNormalizedTipLength( float x, float y, float z )
+{
+  if ( this->NormalizedTipLength[0] != x ||
+       this->NormalizedTipLength[1] != y ||
+       this->NormalizedTipLength[2] != z )
+    {
+    this->NormalizedTipLength[0] = x;
+    this->NormalizedTipLength[1] = y;
+    this->NormalizedTipLength[2] = z;
+  
+    this->Modified();
+    
+    this->UpdateProps();
+    }
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::SetShaftType( int type )
+{
+  if ( this->ShaftType != type )
+    {
+    this->ShaftType = type;
+  
+    this->Modified();
+    
+    this->UpdateProps();
+    }
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::SetTipType( int type )
+{
+  if ( this->TipType != type )
+    {
+    this->TipType = type;
+  
+    this->Modified();
+    
+    this->UpdateProps();
+    }
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::UpdateProps()
+{
+  this->CylinderSource->SetRadius(this->CylinderRadius);
+  this->CylinderSource->SetResolution(this->CylinderResolution);
+  
+  
+  this->ConeSource->SetResolution(this->ConeResolution);
+  this->ConeSource->SetRadius(this->ConeRadius);
+  this->SphereSource->SetThetaResolution( this->SphereResolution );
+  this->SphereSource->SetPhiResolution( this->SphereResolution );
+  this->SphereSource->SetRadius(this->SphereRadius);
+  
+  switch ( this->ShaftType )
+    {
+    case vtkPVAxesActor::CYLINDER_SHAFT:
+      (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->
+        SetInputConnection( this->CylinderSource->GetOutputPort() );
+      break;
+    case vtkPVAxesActor::LINE_SHAFT:
+      (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->
+        SetInputConnection( this->LineSource->GetOutputPort() );
+      break;
+    case vtkPVAxesActor::USER_DEFINED_SHAFT:
+      (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->
+        SetInputData( this->UserDefinedShaft );
+    }
+  
+  switch ( this->TipType )
+    {
+    case vtkPVAxesActor::CONE_TIP:
+      (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->
+        SetInputConnection( this->ConeSource->GetOutputPort() );
+      break;      
+    case vtkPVAxesActor::SPHERE_TIP:
+      (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->
+        SetInputConnection( this->SphereSource->GetOutputPort() );
+      break;      
+    case vtkPVAxesActor::USER_DEFINED_TIP:
+      (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->
+        SetInputData( this->UserDefinedTip );
+    }
+  
+  (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->Update();
+  (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->Update();
+      
+  
+  
+  float scale[3];
+  double bounds[6];
+
+  (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->
+    GetInput()->GetBounds( bounds );
+  
+  int i;
+  for ( i = 0; i < 3; i++ )
+    {
+    scale[i] = 
+      this->NormalizedShaftLength[i]*this->TotalLength[i] / 
+      (bounds[3] - bounds[2]);
+    }
+  
+  vtkTransform *xTransform = vtkTransform::New();
+  vtkTransform *yTransform = vtkTransform::New();
+  vtkTransform *zTransform = vtkTransform::New();
+  
+  xTransform->RotateZ( -90 );
+  zTransform->RotateX( 90 );
+  
+  xTransform->Scale( scale[0], scale[0], scale[0] );
+  yTransform->Scale( scale[1], scale[1], scale[1] );
+  zTransform->Scale( scale[2], scale[2], scale[2] );
+
+  xTransform->Translate( -(bounds[0]+bounds[1])/2,
+                         -bounds[2],
+                         -(bounds[4]+bounds[5])/2 );
+  yTransform->Translate( -(bounds[0]+bounds[1])/2,
+                         -bounds[2],
+                         -(bounds[4]+bounds[5])/2 );
+  zTransform->Translate( -(bounds[0]+bounds[1])/2,
+                         -bounds[2],
+                         -(bounds[4]+bounds[5])/2 );
+  
+  
+
+  this->XAxisShaft->SetUserTransform( xTransform );
+  this->YAxisShaft->SetUserTransform( yTransform );
+  this->ZAxisShaft->SetUserTransform( zTransform );
+
+  xTransform->Delete();
+  yTransform->Delete();
+  zTransform->Delete();
+  
+  (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->
+    GetInput()->GetBounds( bounds );
+  
+  xTransform = vtkTransform::New();
+  yTransform = vtkTransform::New();
+  zTransform = vtkTransform::New();
+  
+  xTransform->RotateZ( -90 );
+  zTransform->RotateX( 90 );
+  
+  xTransform->Scale( this->TotalLength[0], this->TotalLength[0], this->TotalLength[0] );
+  yTransform->Scale( this->TotalLength[1], this->TotalLength[1], this->TotalLength[1] );
+  zTransform->Scale( this->TotalLength[2], this->TotalLength[2], this->TotalLength[2] );
+  
+  xTransform->Translate( 0, (1.0 - this->NormalizedTipLength[0]), 0 );
+  yTransform->Translate( 0, (1.0 - this->NormalizedTipLength[1]), 0 );
+  zTransform->Translate( 0, (1.0 - this->NormalizedTipLength[2]), 0 );
+  
+  xTransform->Scale( this->NormalizedTipLength[0], 
+                     this->NormalizedTipLength[0], 
+                     this->NormalizedTipLength[0] );
+
+  yTransform->Scale( this->NormalizedTipLength[1], 
+                     this->NormalizedTipLength[1], 
+                     this->NormalizedTipLength[1] );
+  
+  zTransform->Scale( this->NormalizedTipLength[2], 
+                     this->NormalizedTipLength[2], 
+                     this->NormalizedTipLength[2] );
+  
+  xTransform->Translate( -(bounds[0]+bounds[1])/2,
+                         -bounds[2],
+                         -(bounds[4]+bounds[5])/2 );
+  yTransform->Translate( -(bounds[0]+bounds[1])/2,
+                         -bounds[2],
+                         -(bounds[4]+bounds[5])/2 );
+  zTransform->Translate( -(bounds[0]+bounds[1])/2,
+                         -bounds[2],
+                         -(bounds[4]+bounds[5])/2 );
+
+  
+  this->XAxisTip->SetUserTransform( xTransform );
+  this->YAxisTip->SetUserTransform( yTransform );
+  this->ZAxisTip->SetUserTransform( zTransform );
+
+  xTransform->Delete();
+  yTransform->Delete();
+  zTransform->Delete();
+
+  this->XAxisVectorText->SetText( this->XAxisLabelText );
+  this->YAxisVectorText->SetText( this->YAxisLabelText );
+  this->ZAxisVectorText->SetText( this->ZAxisLabelText );
+  
+  
+  float avgScale = 
+    (this->TotalLength[0] + this->TotalLength[1] + this->TotalLength[2])/15;
+  
+  this->XAxisShaft->GetBounds(bounds);
+  this->XAxisLabel->SetScale( avgScale, avgScale, avgScale );
+  this->XAxisLabel->SetPosition( bounds[0] + this->XAxisLabelPosition *
+                                 (bounds[1]-bounds[0]),
+                                 bounds[2] - (bounds[3]-bounds[2])*2.0,
+                                 bounds[5] + (bounds[5]-bounds[4])/2.0 );
+
+  this->YAxisShaft->GetBounds(bounds);
+  this->YAxisLabel->SetScale( avgScale, avgScale, avgScale );
+  this->YAxisLabel->SetPosition( (bounds[0]+bounds[1])/2, 
+                                 bounds[2] + this->YAxisLabelPosition *
+                                 (bounds[3]-bounds[2]),
+                                 bounds[5] + (bounds[5]-bounds[4])/2.0 );
+
+  this->ZAxisShaft->GetBounds(bounds);
+  this->ZAxisLabel->SetScale( avgScale, avgScale, avgScale );
+  this->ZAxisLabel->SetPosition( bounds[0], 
+                                 bounds[2] - (bounds[3]-bounds[2])*2.0,
+                                 bounds[4] + this->ZAxisLabelPosition *
+                                 (bounds[5]-bounds[4]) );
+}
+
+//-----------------------------------------------------------------------------
+void vtkPVAxesActor::PrintSelf(ostream& os, vtkIndent indent)
+{
+  this->Superclass::PrintSelf(os,indent);
+  
+  os << indent << "UserDefinedShaft: ";
+  if (this->UserDefinedShaft)
+    {
+    os << this->UserDefinedShaft << endl;
+    }
+  else
+    {
+    os << "(none)" << endl;
+    }
+  
+  os << indent << "UserDefinedTip: ";
+  if (this->UserDefinedTip)
+    {
+    os << this->UserDefinedTip << endl;
+    }
+  else
+    {
+    os << "(none)" << endl;
+    }
+  
+  os << indent << "XAxisLabelText: " << (this->XAxisLabelText ?
+                                         this->XAxisLabelText : "(none)")
+     << endl;
+  os << indent << "YAxisLabelText: " << (this->YAxisLabelText ?
+                                         this->YAxisLabelText : "(none)")
+     << endl;
+  os << indent << "ZAxisLabelText: " << (this->ZAxisLabelText ?
+                                         this->ZAxisLabelText : "(none)")
+     << endl;
+  os << indent << "XAxisLabelPosition: " << this->XAxisLabelPosition << endl;
+  os << indent << "YAxisLabelPosition: " << this->YAxisLabelPosition << endl;
+  os << indent << "ZAxisLabelPosition: " << this->ZAxisLabelPosition << endl;
+  
+  os << indent << "SphereRadius: " << this->SphereRadius << endl;
+  os << indent << "SphereResolution: " << this->SphereResolution << endl;
+  os << indent << "CylinderRadius: " << this->CylinderRadius << endl;
+  os << indent << "CylinderResolution: " << this->CylinderResolution << endl;
+  os << indent << "ConeRadius: " << this->ConeRadius << endl;
+  os << indent << "ConeResolution: " << this->ConeResolution << endl;
+  
+  os << indent << "NormalizedShaftLength: " 
+     << this->NormalizedShaftLength[0] << ","
+     << this->NormalizedShaftLength[1] << ","
+     << this->NormalizedShaftLength[2] << endl;
+  os << indent << "NormalizedTipLength: " 
+     << this->NormalizedTipLength[0] << ","
+     << this->NormalizedTipLength[1] << ","
+     << this->NormalizedTipLength[2] << endl;
+  os << indent << "TotalLength: " 
+     << this->TotalLength[0] << ","
+     << this->TotalLength[1] << ","
+     << this->TotalLength[2] << endl;
+}
+
+//-----------------------------------------------------------------------------
+// porting to VTK 5.0.x
+void vtkPVAxesActor::AddToRender( vtkRenderer* theRenderer )
+{
+  theRenderer->AddActor(this->XAxisLabel);
+  theRenderer->AddActor(this->YAxisLabel);
+  theRenderer->AddActor(this->ZAxisLabel);
+}
+
+} // end of salomevtk namespace
diff --git a/src/SVTK/salomevtkPVAxesActor.h b/src/SVTK/salomevtkPVAxesActor.h
new file mode 100644 (file)
index 0000000..6ab2edb
--- /dev/null
@@ -0,0 +1,304 @@
+/*=========================================================================
+
+   Program: ParaView
+   Module:    $RCSfile$
+
+   Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
+   All rights reserved.
+
+   ParaView is a free software; you can redistribute it and/or modify it
+   under the terms of the ParaView license version 1.2. 
+
+   See License_v1.2.txt for the full ParaView license.
+   A copy of this license can be obtained by contacting
+   Kitware Inc.
+   28 Corporate Drive
+   Clifton Park, NY 12065
+   USA
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=========================================================================*/
+// .NAME vtkPVAxesActor - a 3D axes representation
+// .SECTION Description
+// 
+// vtkPVAxesActor is used to represent 3D axes in the scene. The user can
+// define the geometry to use for the shaft and the tip, and the user can
+// set the text for the three axes. The text will follow the camera.
+//
+// VSR 03/12/2014: the original file vtkPVAxesActor.h has been renamed to salomevtkPVAxesActor.h
+// to avoid collisions with native VTK/ParaView classes
+
+#ifndef __salomevtkPVAxesActor_h
+#define __salomevtkPVAxesActor_h
+
+#include "SVTK.h"               // added by SALOME
+#include "vtkProp3D.h"
+
+#include <vtkVersion.h>
+
+class vtkRenderer;
+class vtkPropCollection;
+class vtkMapper;
+class vtkProperty;
+class vtkActor;
+class vtkFollower;
+class vtkCylinderSource;
+class vtkLineSource;
+class vtkConeSource;
+class vtkSphereSource;
+class vtkPolyData;
+class vtkVectorText;
+
+// VSR 03/12/2014: we put classes copied from VTK/ParaView to the specific namespace
+// to avoid collisions with native VTK/ParaView classes
+namespace salomevtk
+{
+
+class SVTK_EXPORT vtkPVAxesActor : public vtkProp3D
+{
+public:
+  static vtkPVAxesActor *New();
+  vtkTypeMacro(vtkPVAxesActor,vtkProp3D);
+  void PrintSelf(ostream& os, vtkIndent indent);
+
+
+  // Description: 
+  // For some exporters and other other operations we must be
+  // able to collect all the actors or volumes. These methods
+  // are used in that process.
+  virtual void GetActors(vtkPropCollection *);
+
+  // Description:
+  // Support the standard render methods.
+  virtual int RenderOpaqueGeometry(vtkViewport *viewport);
+#if (VTK_MAJOR_VERSION>5 || VTK_MINOR_VERSION>=2)
+  virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport); // porting to VTK 5.0.x
+  virtual int HasTranslucentPolygonalGeometry();                         // porting to VTK 5.0.x
+#else
+  virtual int RenderTranslucentGeometry(vtkViewport *viewport);            // porting to VTK 5.0.x
+#endif
+
+  // Description:
+  // Shallow copy of an axes actor. Overloads the virtual vtkProp method.
+  void ShallowCopy(vtkProp *prop);
+
+  // Description:
+  // Release any graphics resources that are being consumed by this actor.
+  // The parameter window could be used to determine which graphic
+  // resources to release.
+  void ReleaseGraphicsResources(vtkWindow *);
+
+  // Description:
+  // Get the bounds for this Actor as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax). (The
+  // method GetBounds(double bounds[6]) is available from the superclass.)
+  void GetBounds(double bounds[6]);
+  double *GetBounds();
+
+  // Description:
+  // Get the actors mtime plus consider its properties and texture if set.
+  unsigned long int GetMTime();
+  
+  // Description:
+  // Return the mtime of anything that would cause the rendered image to 
+  // appear differently. Usually this involves checking the mtime of the 
+  // prop plus anything else it depends on such as properties, textures
+  // etc.
+  virtual unsigned long GetRedrawMTime();
+
+  // Description:
+  // Set the total length of the axes in 3 dimensions.
+  void SetTotalLength( float v[3] ) 
+    { this->SetTotalLength( v[0], v[1], v[2] ); }
+  void SetTotalLength( float x, float y, float z );
+  vtkGetVectorMacro( TotalLength, float, 3 );
+  
+  // Description:
+  // Set the normalized (0-1) length of the shaft.
+  void SetNormalizedShaftLength( float v[3] ) 
+    { this->SetNormalizedShaftLength( v[0], v[1], v[2] ); }
+  void SetNormalizedShaftLength( float x, float y, float z );
+  vtkGetVectorMacro( NormalizedShaftLength, float, 3 );
+  
+  // Description:
+  // Set the normalized (0-1) length of the tip.
+  void SetNormalizedTipLength( float v[3] ) 
+    { this->SetNormalizedTipLength( v[0], v[1], v[2] ); }
+  void SetNormalizedTipLength( float x, float y, float z );
+  vtkGetVectorMacro( NormalizedTipLength, float, 3 );
+
+  // Description:
+  // Set/get the resolution of the pieces of the axes actor
+  vtkSetClampMacro(ConeResolution, int, 3, 128);
+  vtkGetMacro(ConeResolution, int);
+  vtkSetClampMacro(SphereResolution, int, 3, 128);
+  vtkGetMacro(SphereResolution, int);
+  vtkSetClampMacro(CylinderResolution, int, 3, 128);
+  vtkGetMacro(CylinderResolution, int);
+  
+  // Description:
+  // Set/get the radius of the pieces of the axes actor
+  vtkSetClampMacro(ConeRadius, float, 0, VTK_LARGE_FLOAT);
+  vtkGetMacro(ConeRadius, float);
+  vtkSetClampMacro(SphereRadius, float, 0, VTK_LARGE_FLOAT);
+  vtkGetMacro(SphereRadius, float);
+  vtkSetClampMacro(CylinderRadius, float, 0, VTK_LARGE_FLOAT);
+  vtkGetMacro(CylinderRadius, float);
+  
+  // Description:
+  // Set/get the positions of the axis labels
+  vtkSetClampMacro(XAxisLabelPosition, float, 0, 1);
+  vtkGetMacro(XAxisLabelPosition, float);
+  vtkSetClampMacro(YAxisLabelPosition, float, 0, 1);
+  vtkGetMacro(YAxisLabelPosition, float);
+  vtkSetClampMacro(ZAxisLabelPosition, float, 0, 1);
+  vtkGetMacro(ZAxisLabelPosition, float);
+  
+  // Description:
+  // Set the type of the shaft to a cylinder, line, or user defined geometry.
+  void SetShaftType( int type );
+  void SetShaftTypeToCylinder()
+    { this->SetShaftType( vtkPVAxesActor::CYLINDER_SHAFT ); }
+  void SetShaftTypeToLine()
+    { this->SetShaftType( vtkPVAxesActor::LINE_SHAFT ); }
+  void SetShaftTypeToUserDefined()
+    { this->SetShaftType( vtkPVAxesActor::USER_DEFINED_SHAFT ); }
+
+  // Description:
+  // Set the type of the tip to a cone, sphere, or user defined geometry.
+  void SetTipType( int type );
+  void SetTipTypeToCone()
+    { this->SetTipType( vtkPVAxesActor::CONE_TIP ); }
+  void SetTipTypeToSphere()
+    { this->SetTipType( vtkPVAxesActor::SPHERE_TIP ); }
+  void SetTipTypeToUserDefined()
+    { this->SetTipType( vtkPVAxesActor::USER_DEFINED_TIP ); }
+
+  //BTX
+  // Description:
+  // Set the user defined tip polydata.
+  void SetUserDefinedTip( vtkPolyData * );
+  vtkGetObjectMacro( UserDefinedTip, vtkPolyData );
+  
+  // Description:
+  // Set the user defined shaft polydata.
+  void SetUserDefinedShaft( vtkPolyData * );
+  vtkGetObjectMacro( UserDefinedShaft, vtkPolyData );
+
+  // Description:
+  // Get the tip properties.
+  vtkProperty *GetXAxisTipProperty();
+  vtkProperty *GetYAxisTipProperty();
+  vtkProperty *GetZAxisTipProperty();
+  
+  // Description:
+  // Get the shaft properties.
+  vtkProperty *GetXAxisShaftProperty();
+  vtkProperty *GetYAxisShaftProperty();
+  vtkProperty *GetZAxisShaftProperty();
+
+  // Description:
+  // Get the label properties.
+  vtkProperty *GetXAxisLabelProperty();
+  vtkProperty *GetYAxisLabelProperty();
+  vtkProperty *GetZAxisLabelProperty();
+  //ETX
+  //
+  // Description:
+  // Set the label text.
+  vtkSetStringMacro( XAxisLabelText );
+  vtkSetStringMacro( YAxisLabelText );
+  vtkSetStringMacro( ZAxisLabelText );
+  
+//BTX
+  enum
+  {
+    CYLINDER_SHAFT,
+    LINE_SHAFT,
+    USER_DEFINED_SHAFT
+  };
+  
+  
+  enum
+  {
+    CONE_TIP,
+    SPHERE_TIP,
+    USER_DEFINED_TIP
+  };
+  
+//ETX
+
+  void AddToRender( vtkRenderer* theRenderer ); // porting to VTK 5.0.x
+  
+protected:
+  vtkPVAxesActor();
+  ~vtkPVAxesActor();
+
+  vtkCylinderSource *CylinderSource;
+  vtkLineSource     *LineSource;
+  vtkConeSource     *ConeSource;
+  vtkSphereSource   *SphereSource;
+  
+  vtkActor          *XAxisShaft;
+  vtkActor          *YAxisShaft;
+  vtkActor          *ZAxisShaft;
+
+  vtkActor          *XAxisTip;
+  vtkActor          *YAxisTip;
+  vtkActor          *ZAxisTip;
+
+  void              UpdateProps();
+
+  float             TotalLength[3];
+  float             NormalizedShaftLength[3];
+  float             NormalizedTipLength[3];
+  
+  int               ShaftType;
+  int               TipType;
+  
+  vtkPolyData      *UserDefinedTip;
+  vtkPolyData      *UserDefinedShaft;
+  
+  char             *XAxisLabelText;
+  char             *YAxisLabelText;
+  char             *ZAxisLabelText;
+  
+  vtkVectorText    *XAxisVectorText;
+  vtkVectorText    *YAxisVectorText;
+  vtkVectorText    *ZAxisVectorText;
+  
+  vtkFollower      *XAxisLabel;
+  vtkFollower      *YAxisLabel;
+  vtkFollower      *ZAxisLabel;
+  
+  int              ConeResolution;
+  int              SphereResolution;
+  int              CylinderResolution;
+  
+  float            ConeRadius;
+  float            SphereRadius;
+  float            CylinderRadius;
+
+  float            XAxisLabelPosition;
+  float            YAxisLabelPosition;
+  float            ZAxisLabelPosition;
+  
+private:
+  vtkPVAxesActor(const vtkPVAxesActor&);  // Not implemented.
+  void operator=(const vtkPVAxesActor&);  // Not implemented.
+};
+
+} // end of salomevtk namespace
+
+#endif
+
diff --git a/src/SVTK/salomevtkPVAxesWidget.cxx b/src/SVTK/salomevtkPVAxesWidget.cxx
new file mode 100644 (file)
index 0000000..c73d473
--- /dev/null
@@ -0,0 +1,878 @@
+/*=========================================================================
+
+   Program: ParaView
+   Module:    $RCSfile$
+
+   Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
+   All rights reserved.
+
+   ParaView is a free software; you can redistribute it and/or modify it
+   under the terms of the ParaView license version 1.2. 
+
+   See License_v1.2.txt for the full ParaView license.
+   A copy of this license can be obtained by contacting
+   Kitware Inc.
+   28 Corporate Drive
+   Clifton Park, NY 12065
+   USA
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=========================================================================*/
+// VSR 03/12/2014: the original file vtkPVAxesWidget.cxx has been renamed to salomevtkPVAxesWidget.cxx
+// to avoid collisions with native VTK/ParaView classes
+
+#include "salomevtkPVAxesWidget.h"   // changed by SALOME
+#include "salomevtkPVAxesActor.h"    // changed by SALOME
+
+#include "vtkActor2D.h"
+#include "vtkCallbackCommand.h"
+#include "vtkCamera.h"
+#include "vtkCoordinate.h"
+#include "vtkObjectFactory.h"
+#include "vtkPoints.h"
+#include "vtkPolyData.h"
+#include "vtkPolyDataMapper2D.h"
+#include "vtkProperty.h"
+#include "vtkProperty2D.h"
+#include "vtkRenderer.h"
+#include "vtkRenderWindow.h"
+#include "vtkRenderWindowInteractor.h"
+
+// VSR 03/12/2014: we put classes copied from VTK/ParaView to the specific namespace
+// to avoid collisions with native VTK/ParaView classes
+namespace salomevtk
+{
+
+vtkStandardNewMacro(vtkPVAxesWidget);
+
+vtkCxxSetObjectMacro(vtkPVAxesWidget, AxesActor, vtkPVAxesActor);
+vtkCxxSetObjectMacro(vtkPVAxesWidget, ParentRenderer, vtkRenderer);
+
+//----------------------------------------------------------------------------
+class vtkPVAxesWidgetObserver : public vtkCommand
+{
+public:
+  static vtkPVAxesWidgetObserver *New()
+    {return new vtkPVAxesWidgetObserver;};
+  
+  vtkPVAxesWidgetObserver()
+    {
+      this->AxesWidget = 0;
+    }
+  
+  virtual void Execute(vtkObject* wdg, unsigned long event, void *calldata)
+    {
+      if (this->AxesWidget)
+        {
+        this->AxesWidget->ExecuteEvent(wdg, event, calldata);
+        }
+    }
+  
+  vtkPVAxesWidget *AxesWidget;
+};
+
+//----------------------------------------------------------------------------
+vtkPVAxesWidget::vtkPVAxesWidget()
+{
+  this->StartEventObserverId = 0;
+
+  this->EventCallbackCommand->SetCallback(vtkPVAxesWidget::ProcessEvents);
+  
+  this->Observer = vtkPVAxesWidgetObserver::New();
+  this->Observer->AxesWidget = this;
+  this->Renderer = vtkRenderer::New();
+  this->Renderer->SetViewport(0.0, 0.0, 0.2, 0.2);
+  this->Renderer->SetLayer(1);
+  this->Renderer->InteractiveOff();
+  this->Priority = 0.55;
+  this->AxesActor = vtkPVAxesActor::New();
+  this->Renderer->AddActor(this->AxesActor);
+  this->AxesActor->AddToRender(this->Renderer); // tmp
+  
+  this->ParentRenderer = NULL;
+  
+  this->Moving = 0;
+  this->MouseCursorState = vtkPVAxesWidget::Outside;
+
+  this->StartTag = 0;
+  
+  this->Interactive = 1;
+  
+  this->Outline = vtkPolyData::New();
+  this->Outline->Allocate();
+  vtkPoints *points = vtkPoints::New();
+  vtkIdType ptIds[5];
+  ptIds[4] = ptIds[0] = points->InsertNextPoint(1, 1, 0);
+  ptIds[1] = points->InsertNextPoint(2, 1, 0);
+  ptIds[2] = points->InsertNextPoint(2, 2, 0);
+  ptIds[3] = points->InsertNextPoint(1, 2, 0);
+  this->Outline->SetPoints(points);
+  this->Outline->InsertNextCell(VTK_POLY_LINE, 5, ptIds);
+  vtkCoordinate *tcoord = vtkCoordinate::New();
+  tcoord->SetCoordinateSystemToDisplay();
+  vtkPolyDataMapper2D *mapper = vtkPolyDataMapper2D::New();
+  mapper->SetInputData(this->Outline);
+  mapper->SetTransformCoordinate(tcoord);
+  this->OutlineActor = vtkActor2D::New();
+  this->OutlineActor->SetMapper(mapper);
+  this->OutlineActor->SetPosition(0, 0);
+  this->OutlineActor->SetPosition2(1, 1);
+  
+  points->Delete();
+  mapper->Delete();
+  tcoord->Delete();
+}
+
+//----------------------------------------------------------------------------
+vtkPVAxesWidget::~vtkPVAxesWidget()
+{
+  this->Observer->Delete();
+  this->AxesActor->Delete();
+  this->OutlineActor->Delete();
+  this->Outline->Delete();
+  this->SetParentRenderer(NULL);
+  this->Renderer->Delete();
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::SetEnabled(int enabling)
+{
+  if (!this->Interactor)
+    {
+    vtkErrorMacro("The interactor must be set prior to enabling/disabling widget");
+    }
+  
+  if (enabling)
+    {
+    if (this->Enabled)
+      {
+      return;
+      }
+    if (!this->ParentRenderer)
+      {
+      vtkErrorMacro("The parent renderer must be set prior to enabling this widget");
+      return;
+      }
+
+    this->Enabled = 1;
+    
+    if ( this->EventCallbackCommand )
+      {
+      vtkRenderWindowInteractor *i = this->Interactor;
+      i->AddObserver(vtkCommand::MouseMoveEvent,
+        this->EventCallbackCommand, this->Priority);
+      i->AddObserver(vtkCommand::LeftButtonPressEvent,
+        this->EventCallbackCommand, this->Priority);
+      i->AddObserver(vtkCommand::LeftButtonReleaseEvent,
+        this->EventCallbackCommand, this->Priority);
+      }
+    
+    this->ParentRenderer->GetRenderWindow()->AddRenderer(this->Renderer);
+    if (this->ParentRenderer->GetRenderWindow()->GetNumberOfLayers() < 2)
+      {
+      this->ParentRenderer->GetRenderWindow()->SetNumberOfLayers(2);
+      }
+    this->AxesActor->SetVisibility(1);
+    // We need to copy the camera before the compositing observer is called.
+    // Compositing temporarily changes the camera to display an image.
+    this->StartEventObserverId = 
+      this->ParentRenderer->AddObserver(vtkCommand::StartEvent,this->Observer,1);
+    this->InvokeEvent(vtkCommand::EnableEvent, NULL);
+    }
+  else
+    {
+    if (!this->Enabled)
+      {
+      return;
+      }
+    
+    this->Enabled = 0;
+    this->Interactor->RemoveObserver(this->EventCallbackCommand);
+    
+    this->AxesActor->SetVisibility(0);
+    if (this->ParentRenderer)
+      {
+      if (this->ParentRenderer->GetRenderWindow())
+        {
+        this->ParentRenderer->GetRenderWindow()->RemoveRenderer(this->Renderer);
+        this->AxesActor->ReleaseGraphicsResources(this->ParentRenderer->GetRenderWindow());
+        }
+      if (this->StartEventObserverId != 0)
+        {
+        this->ParentRenderer->RemoveObserver(this->StartEventObserverId);
+        }
+      }
+    
+    this->InvokeEvent(vtkCommand::DisableEvent, NULL);
+    }
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::ExecuteEvent(vtkObject *vtkNotUsed(o),
+                                   unsigned long vtkNotUsed(event),
+                                   void *vtkNotUsed(calldata))
+{
+  if (!this->ParentRenderer)
+    {
+    return;
+    }
+  
+  vtkCamera *cam = this->ParentRenderer->GetActiveCamera();
+  double pos[3], fp[3], viewup[3];
+  cam->GetPosition(pos);
+  cam->GetFocalPoint(fp);
+  cam->GetViewUp(viewup);
+  
+  cam = this->Renderer->GetActiveCamera();
+  cam->SetPosition(pos);
+  cam->SetFocalPoint(fp);
+  cam->SetViewUp(viewup);
+  this->Renderer->ResetCamera();
+  
+  this->SquareRenderer();
+}
+
+void vtkPVAxesWidget::UpdateCursorIcon()
+{
+  if (!this->Enabled)
+    {
+    this->SetMouseCursor(vtkPVAxesWidget::Outside);
+    return;
+    }
+  
+  if (this->Moving)
+    {
+    return;
+    }
+  
+  int *parentSize = this->ParentRenderer->GetSize();
+  
+  int x = this->Interactor->GetEventPosition()[0];
+  int y = this->Interactor->GetEventPosition()[1];
+  double xNorm = x / (double)parentSize[0];
+  double yNorm = y / (double)parentSize[1];
+  
+  double pos[4];
+  this->Renderer->GetViewport(pos);
+  
+  int pState = this->MouseCursorState;
+  
+  if (xNorm > pos[0] && xNorm < pos[2] && yNorm > pos[1] && yNorm < pos[3])
+    {
+    this->MouseCursorState = vtkPVAxesWidget::Inside;
+    }
+  else if (fabs(xNorm-pos[0]) < .02 && fabs(yNorm-pos[3]) < .02)
+    {
+    this->MouseCursorState = vtkPVAxesWidget::TopLeft;
+    }
+  else if (fabs(xNorm-pos[2]) < .02 && fabs(yNorm-pos[3]) < .02)
+    {
+    this->MouseCursorState = vtkPVAxesWidget::TopRight;
+    }
+  else if (fabs(xNorm-pos[0]) < .02 && fabs(yNorm-pos[1]) < .02)
+    {
+    this->MouseCursorState = vtkPVAxesWidget::BottomLeft;
+    }
+  else if (fabs(xNorm-pos[2]) < .02 && fabs(yNorm-pos[1]) < .02)
+    {
+    this->MouseCursorState = vtkPVAxesWidget::BottomRight;
+    }
+  else
+    {
+    this->MouseCursorState = vtkPVAxesWidget::Outside;
+    }
+
+  if (pState == this->MouseCursorState)
+    {
+    return;
+    }
+  
+  if (this->MouseCursorState == vtkPVAxesWidget::Outside)
+    {
+    this->Renderer->RemoveActor(this->OutlineActor);
+    }
+  else
+    {
+    this->Renderer->AddActor(this->OutlineActor);
+    }
+  this->Interactor->Render();
+  
+  this->SetMouseCursor(this->MouseCursorState);
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::SetMouseCursor(int cursorState)
+{
+  switch (cursorState)
+    {
+    case vtkPVAxesWidget::Outside:
+      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_DEFAULT);
+      break;
+    case vtkPVAxesWidget::Inside:
+      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZEALL);
+      break;
+    case vtkPVAxesWidget::TopLeft:
+      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZENW);
+      break;
+    case vtkPVAxesWidget::TopRight:
+      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZENE);
+      break;
+    case vtkPVAxesWidget::BottomLeft:
+      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZESW);
+      break;
+    case vtkPVAxesWidget::BottomRight:
+      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZESE);
+      break;
+    }
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::ProcessEvents(vtkObject* vtkNotUsed(object),
+                                    unsigned long event,
+                                    void *clientdata,
+                                    void* vtkNotUsed(calldata))
+{
+  vtkPVAxesWidget *self =
+    reinterpret_cast<vtkPVAxesWidget*>(clientdata);
+
+  if (!self->GetInteractive())
+    {
+    return;
+    }
+  
+  switch (event)
+    {
+    case vtkCommand::LeftButtonPressEvent:
+      self->OnButtonPress();
+      break;
+    case vtkCommand::MouseMoveEvent:
+      self->OnMouseMove();
+      break;
+    case vtkCommand::LeftButtonReleaseEvent:
+      self->OnButtonRelease();
+      break;
+    }
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::OnButtonPress()
+{
+  if (this->MouseCursorState == vtkPVAxesWidget::Outside)
+    {
+    return;
+    }
+  
+  this->SetMouseCursor(this->MouseCursorState);
+
+  this->StartPosition[0] = this->Interactor->GetEventPosition()[0];
+  this->StartPosition[1] = this->Interactor->GetEventPosition()[1];
+  
+  this->Moving = 1;
+  this->EventCallbackCommand->SetAbortFlag(1);
+  this->StartInteraction();
+  this->InvokeEvent(vtkCommand::StartInteractionEvent, NULL);
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::OnButtonRelease()
+{
+  if (this->MouseCursorState == vtkPVAxesWidget::Outside)
+    {
+    return;
+    }
+  
+  this->Moving = 0;
+  this->EndInteraction();
+  this->InvokeEvent(vtkCommand::EndInteractionEvent, NULL);
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::OnMouseMove()
+{
+  if (this->Moving)
+    {
+    switch (this->MouseCursorState)
+      {
+      case vtkPVAxesWidget::Inside:
+        this->MoveWidget();
+        break;
+      case vtkPVAxesWidget::TopLeft:
+        this->ResizeTopLeft();
+        break;
+      case vtkPVAxesWidget::TopRight:
+        this->ResizeTopRight();
+        break;
+      case vtkPVAxesWidget::BottomLeft:
+        this->ResizeBottomLeft();
+        break;
+      case vtkPVAxesWidget::BottomRight:
+        this->ResizeBottomRight();
+        break;
+      }
+    
+    this->UpdateCursorIcon();
+    this->EventCallbackCommand->SetAbortFlag(1);
+    this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
+    }
+  else
+    {
+    this->UpdateCursorIcon();
+    }
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::MoveWidget()
+{
+  int x = this->Interactor->GetEventPosition()[0];
+  int y = this->Interactor->GetEventPosition()[1];
+  
+  int dx = x - this->StartPosition[0];
+  int dy = y - this->StartPosition[1];
+
+  this->StartPosition[0] = x;
+  this->StartPosition[1] = y;
+
+  int *size = this->ParentRenderer->GetSize();
+  double dxNorm = dx / (double)size[0];
+  double dyNorm = dy / (double)size[1];
+  
+  double *vp = this->Renderer->GetViewport();
+  
+  double newPos[4];
+  newPos[0] = vp[0] + dxNorm;
+  newPos[1] = vp[1] + dyNorm;
+  newPos[2] = vp[2] + dxNorm;
+  newPos[3] = vp[3] + dyNorm;
+
+  if (newPos[0] < 0)
+    {
+    this->StartPosition[0] = 0;
+    newPos[0] = 0;
+    newPos[2] = vp[2] - vp[0];
+    }
+  if (newPos[1] < 0)
+    {
+    this->StartPosition[1] = 0;
+    newPos[1] = 0;
+    newPos[3] = vp[3] - vp[1];
+    }
+  if (newPos[2] > 1)
+    {
+    this->StartPosition[0] = (int)(size[0] - size[0] * (vp[2]-vp[0]));
+    newPos[0] = 1 - (vp[2]-vp[0]);
+    newPos[2] = 1;
+    }
+  if (newPos[3] > 1)
+    {
+    this->StartPosition[1] = (int)(size[1] - size[1]*(vp[3]-vp[1]));
+    newPos[1] = 1 - (vp[3]-vp[1]);
+    newPos[3] = 1;
+    }
+
+  this->Renderer->SetViewport(newPos);
+  this->Interactor->Render();
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::ResizeTopLeft()
+{
+  int x = this->Interactor->GetEventPosition()[0];
+  int y = this->Interactor->GetEventPosition()[1];
+  
+  int dx = x - this->StartPosition[0];
+  int dy = y - this->StartPosition[1];
+  
+  int *size = this->ParentRenderer->GetSize();
+  double dxNorm = dx / (double)size[0];
+  double dyNorm = dy / (double)size[1];
+  
+  int useX;
+  double change;
+  double absDx = fabs(dxNorm);
+  double absDy = fabs(dyNorm);
+  
+  if (absDx > absDy)
+    {
+    change = dxNorm;
+    useX = 1;
+    }
+  else
+    {
+    change = dyNorm;
+    useX = 0;
+    }
+  
+  double *vp = this->Renderer->GetViewport();
+  
+  this->StartPosition[0] = x;
+  this->StartPosition[1] = y;
+  
+  double newPos[4];
+  newPos[0] = useX ? vp[0] + change : vp[0] - change;
+  newPos[1] = vp[1];
+  newPos[2] = vp[2];
+  newPos[3] = useX ? vp[3] - change : vp[3] + change;
+  
+  if (newPos[0] < 0)
+    {
+    this->StartPosition[0] = 0;
+    newPos[0] = 0;
+    }
+  if (newPos[0] >= newPos[2]-0.01)
+    {
+    newPos[0] = newPos[2] - 0.01;
+    }
+  if (newPos[3] > 1)
+    {
+    this->StartPosition[1] = size[1];
+    newPos[3] = 1;
+    }
+  if (newPos[3] <= newPos[1]+0.01)
+    {
+    newPos[3] = newPos[1] + 0.01;
+    }
+  
+  this->Renderer->SetViewport(newPos);
+  this->Interactor->Render();
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::ResizeTopRight()
+{
+  int x = this->Interactor->GetEventPosition()[0];
+  int y = this->Interactor->GetEventPosition()[1];
+  
+  int dx = x - this->StartPosition[0];
+  int dy = y - this->StartPosition[1];
+  
+  int *size = this->ParentRenderer->GetSize();
+  double dxNorm = dx / (double)size[0];
+  double dyNorm = dy / (double)size[1];
+
+  double change;
+  double absDx = fabs(dxNorm);
+  double absDy = fabs(dyNorm);
+  
+  if (absDx > absDy)
+    {
+    change = dxNorm;
+    }
+  else
+    {
+    change = dyNorm;
+    }
+  
+  double *vp = this->Renderer->GetViewport();
+  
+  this->StartPosition[0] = x;
+  this->StartPosition[1] = y;
+  
+  double newPos[4];
+  newPos[0] = vp[0];
+  newPos[1] = vp[1];
+  newPos[2] = vp[2] + change;
+  newPos[3] = vp[3] + change;
+  
+  if (newPos[2] > 1)
+    {
+    this->StartPosition[0] = size[0];
+    newPos[2] = 1;
+    }
+  if (newPos[2] <= newPos[0]+0.01)
+    {
+    newPos[2] = newPos[0] + 0.01;
+    }
+  if (newPos[3] > 1)
+    {
+    this->StartPosition[1] = size[1];
+    newPos[3] = 1;
+    }
+  if (newPos[3] <= newPos[1]+0.01)
+    {
+    newPos[3] = newPos[1] + 0.01;
+    }
+  
+  this->Renderer->SetViewport(newPos);
+  this->Interactor->Render();
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::ResizeBottomLeft()
+{
+  int x = this->Interactor->GetEventPosition()[0];
+  int y = this->Interactor->GetEventPosition()[1];
+  
+  int dx = x - this->StartPosition[0];
+  int dy = y - this->StartPosition[1];
+  
+  int *size = this->ParentRenderer->GetSize();
+  double dxNorm = dx / (double)size[0];
+  double dyNorm = dy / (double)size[1];
+  double *vp = this->Renderer->GetViewport();
+  
+  double change;
+  double absDx = fabs(dxNorm);
+  double absDy = fabs(dyNorm);
+  
+  if (absDx > absDy)
+    {
+    change = dxNorm;
+    }
+  else
+    {
+    change = dyNorm;
+    }
+  
+  this->StartPosition[0] = x;
+  this->StartPosition[1] = y;
+  
+  double newPos[4];
+  newPos[0] = vp[0] + change;
+  newPos[1] = vp[1] + change;
+  newPos[2] = vp[2];
+  newPos[3] = vp[3];
+  
+  if (newPos[0] < 0)
+    {
+    this->StartPosition[0] = 0;
+    newPos[0] = 0;
+    }
+  if (newPos[0] >= newPos[2]-0.01)
+    {
+    newPos[0] = newPos[2] - 0.01;
+    }
+  if (newPos[1] < 0)
+    {
+    this->StartPosition[1] = 0;
+    newPos[1] = 0;
+    }
+  if (newPos[1] >= newPos[3]-0.01)
+    {
+    newPos[1] = newPos[3] - 0.01;
+    }
+  
+  this->Renderer->SetViewport(newPos);
+  this->Interactor->Render();
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::ResizeBottomRight()
+{
+  int x = this->Interactor->GetEventPosition()[0];
+  int y = this->Interactor->GetEventPosition()[1];
+  
+  int dx = x - this->StartPosition[0];
+  int dy = y - this->StartPosition[1];
+  
+  int *size = this->ParentRenderer->GetSize();
+  double dxNorm = dx / (double)size[0];
+  double dyNorm = dy / (double)size[1];
+  
+  double *vp = this->Renderer->GetViewport();
+  
+  int useX;
+  double change;
+  double absDx = fabs(dxNorm);
+  double absDy = fabs(dyNorm);
+  
+  if (absDx > absDy)
+    {
+    change = dxNorm;
+    useX = 1;
+    }
+  else
+    {
+    change = dyNorm;
+    useX = 0;
+    }
+  
+  this->StartPosition[0] = x;
+  this->StartPosition[1] = y;
+  
+  double newPos[4];
+  newPos[0] = vp[0];
+  newPos[1] = useX ? vp[1] - change : vp[1] + change;
+  newPos[2] = useX ? vp[2] + change : vp[2] - change;
+  newPos[3] = vp[3];
+  
+  if (newPos[2] > 1)
+    {
+    this->StartPosition[0] = size[0];
+    newPos[2] = 1;
+    }
+  if (newPos[2] <= newPos[0]+0.01)
+    {
+    newPos[2] = newPos[0] + 0.01;
+    }
+  if (newPos[1] < 0)
+    {
+    this->StartPosition[1] = 0;
+    newPos[1] = 0;
+    }
+  if (newPos[1] >= newPos[3]-0.01)
+    {
+    newPos[1] = newPos[3]-0.01;
+    }
+  
+  this->Renderer->SetViewport(newPos);
+  this->Interactor->Render();
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::SquareRenderer()
+{
+  int *size = this->Renderer->GetSize();
+  if (size[0] == 0 || size[1] == 0)
+    {
+    return;
+    }
+  
+  double vp[4];
+  this->Renderer->GetViewport(vp);
+  
+  double deltaX = vp[2] - vp[0];
+  double newDeltaX = size[1] * deltaX / (double)size[0];
+  double deltaY = vp[3] - vp[1];
+  double newDeltaY = size[0] * deltaY / (double)size[1];
+
+  if (newDeltaX > 1)
+    {
+    if (newDeltaY > 1)
+      {
+      if (size[0] > size[1])
+        {
+        newDeltaX = size[1] / (double)size[0];
+        newDeltaY = 1;
+        }
+      else
+        {
+        newDeltaX = 1;
+        newDeltaY = size[0] / (double)size[1];
+        }
+      vp[0] = vp[1] = 0;
+      vp[2] = newDeltaX;
+      vp[3] = newDeltaY;
+      }
+    else
+      {
+      vp[3] = vp[1] + newDeltaY;
+      if (vp[3] > 1)
+        {
+        vp[3] = 1;
+        vp[1] = vp[3] - newDeltaY;
+        }
+      }
+    }
+  else
+    {
+    vp[2] = vp[0] + newDeltaX;
+    if (vp[2] > 1)
+      {
+      vp[2] = 1;
+      vp[0] = vp[2] - newDeltaX;
+      }
+    }
+  
+  this->Renderer->SetViewport(vp);
+  
+  this->Renderer->NormalizedDisplayToDisplay(vp[0], vp[1]);
+  this->Renderer->NormalizedDisplayToDisplay(vp[2], vp[3]);
+  
+  vtkPoints *points = this->Outline->GetPoints();
+  points->SetPoint(0, vp[0]+1, vp[1]+1, 0);
+  points->SetPoint(1, vp[2]-1, vp[1]+1, 0);
+  points->SetPoint(2, vp[2]-1, vp[3]-1, 0);
+  points->SetPoint(3, vp[0]+1, vp[3]-1, 0);
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::SetInteractive(int state)
+{
+  if (this->Interactive != state)
+    {
+    this->Interactive = state;
+    }
+  
+  if (!state)
+    {
+    this->OnButtonRelease();
+    this->MouseCursorState = vtkPVAxesWidget::Outside;
+    this->Renderer->RemoveActor(this->OutlineActor);
+    if (this->Interactor)
+      {
+      this->SetMouseCursor(this->MouseCursorState);
+      // this->Interactor->Render();
+      }
+    }
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::SetOutlineColor(double r, double g, double b)
+{
+  this->OutlineActor->GetProperty()->SetColor(r, g, b);
+  if (this->Interactor)
+    {
+//    this->Interactor->Render();
+    }
+}
+
+//----------------------------------------------------------------------------
+double* vtkPVAxesWidget::GetOutlineColor()
+{
+  return this->OutlineActor->GetProperty()->GetColor();
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::SetAxisLabelColor(double r, double g, double b)
+{
+  this->AxesActor->GetXAxisLabelProperty()->SetColor(r, g, b);
+  this->AxesActor->GetYAxisLabelProperty()->SetColor(r, g, b);
+  this->AxesActor->GetZAxisLabelProperty()->SetColor(r, g, b);
+}
+
+//----------------------------------------------------------------------------
+double* vtkPVAxesWidget::GetAxisLabelColor()
+{
+  return this->AxesActor->GetXAxisLabelProperty()->GetColor();
+}
+
+//----------------------------------------------------------------------------
+vtkRenderer* vtkPVAxesWidget::GetParentRenderer()
+{
+  return this->ParentRenderer;
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::SetViewport(double minX, double minY,
+                                  double maxX, double maxY)
+{
+  this->Renderer->SetViewport(minX, minY, maxX, maxY);
+}
+
+//----------------------------------------------------------------------------
+double* vtkPVAxesWidget::GetViewport()
+{
+  return this->Renderer->GetViewport();
+}
+
+//----------------------------------------------------------------------------
+void vtkPVAxesWidget::PrintSelf(ostream& os, vtkIndent indent)
+{
+  this->Superclass::PrintSelf(os, indent);
+  
+  os << indent << "AxesActor: " << this->AxesActor << endl;
+  os << indent << "Interactive: " << this->Interactive << endl;
+}
+
+} // end of salomevtk namespace
diff --git a/src/SVTK/salomevtkPVAxesWidget.h b/src/SVTK/salomevtkPVAxesWidget.h
new file mode 100644 (file)
index 0000000..bb68fa5
--- /dev/null
@@ -0,0 +1,169 @@
+/*=========================================================================
+
+   Program: ParaView
+   Module:    $RCSfile$
+
+   Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
+   All rights reserved.
+
+   ParaView is a free software; you can redistribute it and/or modify it
+   under the terms of the ParaView license version 1.2. 
+
+   See License_v1.2.txt for the full ParaView license.
+   A copy of this license can be obtained by contacting
+   Kitware Inc.
+   28 Corporate Drive
+   Clifton Park, NY 12065
+   USA
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=========================================================================*/
+// .NAME vtkPVAxesWidget - A widget to manipulate an axe
+//
+// .SECTION Description
+// This widget creates and manages its own vtkPVAxesActor.
+// VSR 03/12/2014: the original file vtkPVAxesWidget.h has been renamed to salomevtkPVAxesWidget.h
+// to avoid collisions with native VTK/ParaView classes
+
+
+#ifndef __salomevtkPVAxesWidget_h
+#define __salomevtkPVAxesWidget_h
+
+#include "SVTK.h"                            // added by SALOME
+#include "vtkInteractorObserver.h"
+
+class vtkActor2D;
+class vtkKWApplication;
+class vtkPolyData;
+class vtkRenderer;
+
+// VSR 03/12/2014: we put classes copied from VTK/ParaView to the specific namespace
+// to avoid collisions with native VTK/ParaView classes
+namespace salomevtk
+{
+
+class vtkPVAxesWidgetObserver;
+class vtkPVAxesActor;
+
+class SVTK_EXPORT vtkPVAxesWidget : public vtkInteractorObserver
+{
+public:
+  static vtkPVAxesWidget* New();
+  vtkTypeMacro(vtkPVAxesWidget, vtkInteractorObserver);
+  void PrintSelf(ostream& os, vtkIndent indent);
+
+  // Description:
+  // Set/get the axes actor to be displayed in this 3D widget.
+  void SetAxesActor(vtkPVAxesActor *actor);
+  vtkGetObjectMacro(AxesActor, vtkPVAxesActor);
+
+  // Description:
+  // Enable the 3D widget.
+  virtual void SetEnabled(int);
+
+  //BTX
+  // Description:
+  // Set the renderer this 3D widget will be contained in.
+  void SetParentRenderer(vtkRenderer *ren);
+  vtkRenderer* GetParentRenderer();
+  //ETX
+  
+  // Description:
+  // Callback to keep the camera for the axes actor up to date with the
+  // camera in the parent renderer
+  void ExecuteEvent(vtkObject *o, unsigned long event, void *calldata);
+
+  // Description:
+  // Set/get whether to allow this 3D widget to be interactively moved/scaled.
+  void SetInteractive(int state);
+  vtkGetMacro(Interactive, int);
+  vtkBooleanMacro(Interactive, int);
+  
+  // Description:
+  // Set/get the color of the outline of this widget.  The outline is visible
+  // when (in interactive mode) the cursor is over this 3D widget.
+  void SetOutlineColor(double r, double g, double b);
+  double *GetOutlineColor();
+  
+  // Description:
+  // Set/get the color of the axis labels of this widget.
+  void SetAxisLabelColor(double r, double g, double b);
+  double *GetAxisLabelColor();
+  
+  // Description:
+  // Set/get the viewport to position/size this 3D widget.
+  void SetViewport(double minX, double minY, double maxX, double maxY);
+  double* GetViewport();
+  
+protected:
+  vtkPVAxesWidget();
+  ~vtkPVAxesWidget();
+  
+  vtkRenderer *Renderer;
+  vtkRenderer *ParentRenderer;
+  
+  vtkPVAxesActor *AxesActor;
+  vtkPolyData *Outline;
+  vtkActor2D *OutlineActor;
+  
+  static void ProcessEvents(vtkObject *object, unsigned long event,
+                            void *clientdata, void *calldata);
+
+  vtkPVAxesWidgetObserver *Observer;
+  int StartTag;
+  
+  int MouseCursorState;
+  int Moving;
+  int StartPosition[2];
+
+  int Interactive;
+  
+  void UpdateCursorIcon();
+  void SetMouseCursor(int cursorState);
+  
+//BTX
+  int State;
+  
+  enum AxesWidgetState
+  {
+    Outside = 0,
+    Inside,
+    TopLeft,
+    TopRight,
+    BottomLeft,
+    BottomRight
+  };
+//ETX
+  
+  void OnButtonPress();
+  void OnMouseMove();
+  void OnButtonRelease();
+
+  void MoveWidget();
+  void ResizeTopLeft();
+  void ResizeTopRight();
+  void ResizeBottomLeft();
+  void ResizeBottomRight();
+  
+  void SquareRenderer();
+
+  unsigned long StartEventObserverId;  
+private:
+  vtkPVAxesWidget(const vtkPVAxesWidget&);  // Not implemented
+  void operator=(const vtkPVAxesWidget&);  // Not implemented
+};
+
+} // end of salomevtk namespace
+
+#endif
diff --git a/src/SVTK/vtkPVAxesActor.cxx b/src/SVTK/vtkPVAxesActor.cxx
deleted file mode 100644 (file)
index 4431e3e..0000000
+++ /dev/null
@@ -1,809 +0,0 @@
-/*=========================================================================
-
-   Program: ParaView
-   Module:    $RCSfile$
-
-   Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
-   All rights reserved.
-
-   ParaView is a free software; you can redistribute it and/or modify it
-   under the terms of the ParaView license version 1.2. 
-
-   See License_v1.2.txt for the full ParaView license.
-   A copy of this license can be obtained by contacting
-   Kitware Inc.
-   28 Corporate Drive
-   Clifton Park, NY 12065
-   USA
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=========================================================================*/
-#include "vtkPVAxesActor.h"
-#include "vtkObject.h"
-#include "vtkObjectFactory.h"
-
-#include "vtkActor.h"
-#include "vtkPropCollection.h"
-#include "vtkProperty.h"
-#include "vtkRenderWindow.h"
-#include "vtkTransform.h"
-#include "vtkCylinderSource.h"
-#include "vtkPolyDataMapper.h"
-#include "vtkLineSource.h"
-#include "vtkPolyData.h"
-#include "vtkConeSource.h"
-#include "vtkSphereSource.h"
-#include "vtkVectorText.h"
-#include "vtkFollower.h"
-#include "vtkRenderer.h"
-
-#include <math.h>
-
-vtkStandardNewMacro(vtkPVAxesActor);
-
-vtkCxxSetObjectMacro( vtkPVAxesActor, UserDefinedTip, vtkPolyData );
-vtkCxxSetObjectMacro( vtkPVAxesActor, UserDefinedShaft, vtkPolyData );
-
-//-----------------------------------------------------------------------------
-vtkPVAxesActor::vtkPVAxesActor()
-{
-  this->XAxisLabelText = NULL;
-  this->YAxisLabelText = NULL;
-  this->ZAxisLabelText = NULL;
-    
-  this->SetXAxisLabelText("X");
-  this->SetYAxisLabelText("Y");
-  this->SetZAxisLabelText("Z");
-  
-  //colors chosen to match the output of vtkAxes.cxx's LUT.
-  this->XAxisShaft = vtkActor::New();
-  this->XAxisShaft->GetProperty()->SetColor(1, 0, 0);
-  this->YAxisShaft = vtkActor::New();
-  this->YAxisShaft->GetProperty()->SetColor(1, 1, 0);
-  this->ZAxisShaft = vtkActor::New();
-  this->ZAxisShaft->GetProperty()->SetColor(0, 1, 0);
-
-  this->XAxisTip = vtkActor::New();
-  this->XAxisTip->GetProperty()->SetColor(1, 0, 0);
-  this->YAxisTip = vtkActor::New();
-  this->YAxisTip->GetProperty()->SetColor(1, 1, 0);
-  this->ZAxisTip = vtkActor::New();
-  this->ZAxisTip->GetProperty()->SetColor(0, 1, 0);
-
-  this->CylinderSource = vtkCylinderSource::New();
-  this->CylinderSource->SetHeight(1.0);
-  
-  this->LineSource = vtkLineSource::New();
-  this->LineSource->SetPoint1( 0.0, 0.0, 0.0 );
-  this->LineSource->SetPoint2( 0.0, 1.0, 0.0 );
-
-  this->ConeSource = vtkConeSource::New();
-  this->ConeSource->SetDirection( 0, 1, 0 );
-  this->ConeSource->SetHeight( 1.0 );
-   
-  this->SphereSource = vtkSphereSource::New();
-  
-  vtkPolyDataMapper *shaftMapper = vtkPolyDataMapper::New();
-  
-  this->XAxisShaft->SetMapper( shaftMapper );
-  this->YAxisShaft->SetMapper( shaftMapper );
-  this->ZAxisShaft->SetMapper( shaftMapper );
-  
-  shaftMapper->Delete();
-
-  vtkPolyDataMapper *tipMapper = vtkPolyDataMapper::New();
-  
-  this->XAxisTip->SetMapper( tipMapper );
-  this->YAxisTip->SetMapper( tipMapper );
-  this->ZAxisTip->SetMapper( tipMapper );
-  
-  tipMapper->Delete();
-
-  this->TotalLength[0] = 1.0;
-  this->TotalLength[1] = 1.0;
-  this->TotalLength[2] = 1.0;
-  this->NormalizedShaftLength[0] = 0.8;
-  this->NormalizedShaftLength[1] = 0.8;
-  this->NormalizedShaftLength[2] = 0.8;
-
-  this->NormalizedTipLength[0] = 0.2;
-  this->NormalizedTipLength[1] = 0.2;
-  this->NormalizedTipLength[2] = 0.2;
-
-  this->ConeResolution = 16;
-  this->SphereResolution = 16;
-  this->CylinderResolution = 16;
-  
-  this->ConeRadius = 0.4;
-  this->SphereRadius = 0.5;
-  this->CylinderRadius = 0.05;
-  
-  this->XAxisLabelPosition = 1;
-  this->YAxisLabelPosition = 1;
-  this->ZAxisLabelPosition = 1;
-  
-  this->ShaftType = vtkPVAxesActor::LINE_SHAFT;
-  this->TipType   = vtkPVAxesActor::CONE_TIP;
-
-  this->UserDefinedTip = NULL;
-  this->UserDefinedShaft = NULL;
-
-  this->XAxisVectorText = vtkVectorText::New();
-  this->YAxisVectorText = vtkVectorText::New();
-  this->ZAxisVectorText = vtkVectorText::New();
-  
-  this->XAxisLabel = vtkFollower::New();
-  this->YAxisLabel = vtkFollower::New();
-  this->ZAxisLabel = vtkFollower::New();
-  
-  vtkPolyDataMapper *xmapper = vtkPolyDataMapper::New();
-  vtkPolyDataMapper *ymapper = vtkPolyDataMapper::New();
-  vtkPolyDataMapper *zmapper = vtkPolyDataMapper::New();
-  
-  xmapper->SetInputConnection( this->XAxisVectorText->GetOutputPort() );
-  ymapper->SetInputConnection( this->YAxisVectorText->GetOutputPort() );
-  zmapper->SetInputConnection( this->ZAxisVectorText->GetOutputPort() );
-  
-  this->XAxisLabel->SetMapper( xmapper );
-  this->YAxisLabel->SetMapper( ymapper );
-  this->ZAxisLabel->SetMapper( zmapper );
-  
-  xmapper->Delete();
-  ymapper->Delete();
-  zmapper->Delete();
-  
-  this->UpdateProps();
-}
-
-//-----------------------------------------------------------------------------
-vtkPVAxesActor::~vtkPVAxesActor()
-{
-  this->CylinderSource->Delete();
-  this->LineSource->Delete();
-  this->ConeSource->Delete();
-  this->SphereSource->Delete();  
-  
-  this->XAxisShaft->Delete();
-  this->YAxisShaft->Delete();
-  this->ZAxisShaft->Delete();  
-
-  this->XAxisTip->Delete();
-  this->YAxisTip->Delete();
-  this->ZAxisTip->Delete();  
-  
-  this->SetUserDefinedTip( NULL );
-  this->SetUserDefinedShaft( NULL );
-  
-  this->SetXAxisLabelText( NULL );
-  this->SetYAxisLabelText( NULL );
-  this->SetZAxisLabelText( NULL );
-  
-  this->XAxisVectorText->Delete();
-  this->YAxisVectorText->Delete();
-  this->ZAxisVectorText->Delete();
-
-  this->XAxisLabel->Delete();
-  this->YAxisLabel->Delete();
-  this->ZAxisLabel->Delete();
-}
-
-//-----------------------------------------------------------------------------
-// Shallow copy of an actor.
-void vtkPVAxesActor::ShallowCopy(vtkProp *prop)
-{
-  vtkPVAxesActor *a = vtkPVAxesActor::SafeDownCast(prop);
-  if ( a != NULL )
-    {
-    }
-
-  // Now do superclass
-  this->vtkProp3D::ShallowCopy(prop);
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::GetActors(vtkPropCollection *ac)
-{
-  ac->AddItem(this->XAxisShaft);
-  ac->AddItem(this->YAxisShaft);
-  ac->AddItem(this->ZAxisShaft);
-  ac->AddItem(this->XAxisTip);
-  ac->AddItem(this->YAxisTip);
-  ac->AddItem(this->ZAxisTip);
-  ac->AddItem(this->XAxisLabel);
-  ac->AddItem(this->YAxisLabel);
-  ac->AddItem(this->ZAxisLabel);
-
-}
-
-//-----------------------------------------------------------------------------
-int vtkPVAxesActor::RenderOpaqueGeometry(vtkViewport *vp)
-{
-  int          renderedSomething = 0; 
-
-  vtkRenderer *ren = vtkRenderer::SafeDownCast( vp );
-
-  this->UpdateProps();
-  
-  this->XAxisLabel->SetCamera( ren->GetActiveCamera() );
-  this->YAxisLabel->SetCamera( ren->GetActiveCamera() );
-  this->ZAxisLabel->SetCamera( ren->GetActiveCamera() );
-  
-  this->XAxisShaft->RenderOpaqueGeometry(vp);
-  this->YAxisShaft->RenderOpaqueGeometry(vp);
-  this->ZAxisShaft->RenderOpaqueGeometry(vp);
-
-  this->XAxisTip->RenderOpaqueGeometry(vp);
-  this->YAxisTip->RenderOpaqueGeometry(vp);
-  this->ZAxisTip->RenderOpaqueGeometry(vp);
-
-  this->XAxisLabel->RenderOpaqueGeometry(vp);
-  this->YAxisLabel->RenderOpaqueGeometry(vp);
-  this->ZAxisLabel->RenderOpaqueGeometry(vp);
-  
-  return renderedSomething;
-}
-
-//-----------------------------------------------------------------------------
-#if (VTK_MAJOR_VERSION>5 || VTK_MINOR_VERSION>=2)
-// porting to VTK 5.0.x
-int vtkPVAxesActor::RenderTranslucentPolygonalGeometry(vtkViewport *vp)
-{
-  int renderedSomething=0; 
-
-  this->UpdateProps();
-  
-  renderedSomething += this->XAxisShaft->RenderTranslucentPolygonalGeometry(vp);
-  renderedSomething += this->YAxisShaft->RenderTranslucentPolygonalGeometry(vp);
-  renderedSomething += this->ZAxisShaft->RenderTranslucentPolygonalGeometry(vp);
-
-  renderedSomething += this->XAxisTip->RenderTranslucentPolygonalGeometry(vp);
-  renderedSomething += this->YAxisTip->RenderTranslucentPolygonalGeometry(vp);
-  renderedSomething += this->ZAxisTip->RenderTranslucentPolygonalGeometry(vp);
-  
-  renderedSomething += this->XAxisLabel->RenderTranslucentPolygonalGeometry(vp);
-  renderedSomething += this->YAxisLabel->RenderTranslucentPolygonalGeometry(vp);
-  renderedSomething += this->ZAxisLabel->RenderTranslucentPolygonalGeometry(vp);
-  
-  return renderedSomething;
-}
-
-//-----------------------------------------------------------------------------
-// porting to VTK 5.0.x
-int vtkPVAxesActor::HasTranslucentPolygonalGeometry()
-{
-  int result = 0; 
-
-  this->UpdateProps();
-  
-  result |= this->XAxisShaft->HasTranslucentPolygonalGeometry();
-  result |= this->YAxisShaft->HasTranslucentPolygonalGeometry();
-  result |= this->ZAxisShaft->HasTranslucentPolygonalGeometry();
-
-  result |= this->XAxisTip->HasTranslucentPolygonalGeometry();
-  result |= this->YAxisTip->HasTranslucentPolygonalGeometry();
-  result |= this->ZAxisTip->HasTranslucentPolygonalGeometry();
-  
-  result |= this->XAxisLabel->HasTranslucentPolygonalGeometry();
-  result |= this->YAxisLabel->HasTranslucentPolygonalGeometry();
-  result |= this->ZAxisLabel->HasTranslucentPolygonalGeometry();
-  
-  return result;
-}
-
-#else
-//-----------------------------------------------------------------------------
-// porting to VTK 5.0.x
-int vtkPVAxesActor::RenderTranslucentGeometry(vtkViewport *vp)
-{
-  int renderedSomething=0; 
-
-  this->UpdateProps();
-  
-  renderedSomething += this->XAxisShaft->RenderTranslucentGeometry(vp);
-  renderedSomething += this->YAxisShaft->RenderTranslucentGeometry(vp);
-  renderedSomething += this->ZAxisShaft->RenderTranslucentGeometry(vp);
-
-  renderedSomething += this->XAxisTip->RenderTranslucentGeometry(vp);
-  renderedSomething += this->YAxisTip->RenderTranslucentGeometry(vp);
-  renderedSomething += this->ZAxisTip->RenderTranslucentGeometry(vp);
-  
-  renderedSomething += this->XAxisLabel->RenderTranslucentGeometry(vp);
-  renderedSomething += this->YAxisLabel->RenderTranslucentGeometry(vp);
-  renderedSomething += this->ZAxisLabel->RenderTranslucentGeometry(vp);
-  
-  return renderedSomething;
-}
-#endif
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::ReleaseGraphicsResources(vtkWindow *win)
-{
-  this->XAxisShaft->ReleaseGraphicsResources( win );
-  this->YAxisShaft->ReleaseGraphicsResources( win );
-  this->ZAxisShaft->ReleaseGraphicsResources( win );
-
-  this->XAxisTip->ReleaseGraphicsResources( win );
-  this->YAxisTip->ReleaseGraphicsResources( win );
-  this->ZAxisTip->ReleaseGraphicsResources( win );
-    
-  this->XAxisLabel->ReleaseGraphicsResources( win );
-  this->YAxisLabel->ReleaseGraphicsResources( win );
-  this->ZAxisLabel->ReleaseGraphicsResources( win );
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::GetBounds(double bounds[6])
-{
-  double *bds = this->GetBounds();
-  bounds[0] = bds[0];
-  bounds[1] = bds[1];
-  bounds[2] = bds[2];
-  bounds[3] = bds[3];
-  bounds[4] = bds[4];
-  bounds[5] = bds[5];
-}
-
-//-----------------------------------------------------------------------------
-// Get the bounds for this Actor as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
-double *vtkPVAxesActor::GetBounds()
-{
-  double bounds[6];
-  int i;
-  
-  this->XAxisShaft->GetBounds(this->Bounds);
-
-  this->YAxisShaft->GetBounds(bounds);
-  for (i=0; i<3; i++)
-    {
-    this->Bounds[2*i+1] = 
-      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
-    }
-
-  this->ZAxisShaft->GetBounds(bounds);
-  for (i=0; i<3; i++)
-    {
-    this->Bounds[2*i+1] = 
-      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
-    }
-
-  this->XAxisTip->GetBounds(bounds);
-  for (i=0; i<3; i++)
-    {
-    this->Bounds[2*i+1] = 
-      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
-    }
-
-  this->YAxisTip->GetBounds(bounds);
-  for (i=0; i<3; i++)
-    {
-    this->Bounds[2*i+1] = 
-      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
-    }
-
-  this->ZAxisTip->GetBounds(bounds);
-  for (i=0; i<3; i++)
-    {
-    this->Bounds[2*i+1] = 
-      (bounds[2*i+1]>this->Bounds[2*i+1])?(bounds[2*i+1]):(this->Bounds[2*i+1]);    
-    }
-
-  double dbounds[6];
-  (vtkPolyDataMapper::SafeDownCast(this->YAxisShaft->GetMapper()))->
-    GetInput()->GetBounds( dbounds );
-  
-  for (i=0; i<3; i++)
-    {
-    this->Bounds[2*i+1] = 
-      (dbounds[2*i+1]>this->Bounds[2*i+1])?(dbounds[2*i+1]):(this->Bounds[2*i+1]);    
-    }
-
-  // We want this actor to rotate / re-center about the origin, so give it
-  // the bounds it would have if the axes were symmetrical.
-  for (i = 0; i < 3; i++)
-    {
-    this->Bounds[2*i] = -this->Bounds[2*i+1];
-    }
-
-  return this->Bounds;
-}
-
-//-----------------------------------------------------------------------------
-unsigned long int vtkPVAxesActor::GetMTime()
-{
-  unsigned long mTime=this->Superclass::GetMTime();
-
-
-  return mTime;
-}
-
-//-----------------------------------------------------------------------------
-unsigned long int vtkPVAxesActor::GetRedrawMTime()
-{
-  unsigned long mTime=this->GetMTime();
-
-  return mTime;
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetXAxisTipProperty()
-{
-  return this->XAxisTip->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetYAxisTipProperty()
-{
-  return this->YAxisTip->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetZAxisTipProperty()
-{
-  return this->ZAxisTip->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetXAxisShaftProperty()
-{
-  return this->XAxisShaft->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetYAxisShaftProperty()
-{
-  return this->YAxisShaft->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetZAxisShaftProperty()
-{
-  return this->ZAxisShaft->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetXAxisLabelProperty()
-{
-  return this->XAxisLabel->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetYAxisLabelProperty()
-{
-  return this->YAxisLabel->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-vtkProperty *vtkPVAxesActor::GetZAxisLabelProperty()
-{
-  return this->ZAxisLabel->GetProperty();
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::SetTotalLength( float x, float y, float z )
-{
-  if ( this->TotalLength[0] != x ||
-       this->TotalLength[1] != y ||
-       this->TotalLength[2] != z )
-    {
-    this->TotalLength[0] = x;
-    this->TotalLength[1] = y;
-    this->TotalLength[2] = z;
-  
-    this->Modified();
-    
-    this->UpdateProps();
-    }
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::SetNormalizedShaftLength( float x, float y, float z )
-{
-  if ( this->NormalizedShaftLength[0] != x ||
-       this->NormalizedShaftLength[1] != y ||
-       this->NormalizedShaftLength[2] != z )
-    {
-    this->NormalizedShaftLength[0] = x;
-    this->NormalizedShaftLength[1] = y;
-    this->NormalizedShaftLength[2] = z;
-  
-    this->Modified();
-    
-    this->UpdateProps();
-    }
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::SetNormalizedTipLength( float x, float y, float z )
-{
-  if ( this->NormalizedTipLength[0] != x ||
-       this->NormalizedTipLength[1] != y ||
-       this->NormalizedTipLength[2] != z )
-    {
-    this->NormalizedTipLength[0] = x;
-    this->NormalizedTipLength[1] = y;
-    this->NormalizedTipLength[2] = z;
-  
-    this->Modified();
-    
-    this->UpdateProps();
-    }
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::SetShaftType( int type )
-{
-  if ( this->ShaftType != type )
-    {
-    this->ShaftType = type;
-  
-    this->Modified();
-    
-    this->UpdateProps();
-    }
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::SetTipType( int type )
-{
-  if ( this->TipType != type )
-    {
-    this->TipType = type;
-  
-    this->Modified();
-    
-    this->UpdateProps();
-    }
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::UpdateProps()
-{
-  this->CylinderSource->SetRadius(this->CylinderRadius);
-  this->CylinderSource->SetResolution(this->CylinderResolution);
-  
-  
-  this->ConeSource->SetResolution(this->ConeResolution);
-  this->ConeSource->SetRadius(this->ConeRadius);
-  this->SphereSource->SetThetaResolution( this->SphereResolution );
-  this->SphereSource->SetPhiResolution( this->SphereResolution );
-  this->SphereSource->SetRadius(this->SphereRadius);
-  
-  switch ( this->ShaftType )
-    {
-    case vtkPVAxesActor::CYLINDER_SHAFT:
-      (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->
-        SetInputConnection( this->CylinderSource->GetOutputPort() );
-      break;
-    case vtkPVAxesActor::LINE_SHAFT:
-      (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->
-        SetInputConnection( this->LineSource->GetOutputPort() );
-      break;
-    case vtkPVAxesActor::USER_DEFINED_SHAFT:
-      (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->
-        SetInputData( this->UserDefinedShaft );
-    }
-  
-  switch ( this->TipType )
-    {
-    case vtkPVAxesActor::CONE_TIP:
-      (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->
-        SetInputConnection( this->ConeSource->GetOutputPort() );
-      break;      
-    case vtkPVAxesActor::SPHERE_TIP:
-      (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->
-        SetInputConnection( this->SphereSource->GetOutputPort() );
-      break;      
-    case vtkPVAxesActor::USER_DEFINED_TIP:
-      (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->
-        SetInputData( this->UserDefinedTip );
-    }
-  
-  (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->Update();
-  (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->Update();
-      
-  
-  
-  float scale[3];
-  double bounds[6];
-
-  (vtkPolyDataMapper::SafeDownCast(this->XAxisShaft->GetMapper()))->
-    GetInput()->GetBounds( bounds );
-  
-  int i;
-  for ( i = 0; i < 3; i++ )
-    {
-    scale[i] = 
-      this->NormalizedShaftLength[i]*this->TotalLength[i] / 
-      (bounds[3] - bounds[2]);
-    }
-  
-  vtkTransform *xTransform = vtkTransform::New();
-  vtkTransform *yTransform = vtkTransform::New();
-  vtkTransform *zTransform = vtkTransform::New();
-  
-  xTransform->RotateZ( -90 );
-  zTransform->RotateX( 90 );
-  
-  xTransform->Scale( scale[0], scale[0], scale[0] );
-  yTransform->Scale( scale[1], scale[1], scale[1] );
-  zTransform->Scale( scale[2], scale[2], scale[2] );
-
-  xTransform->Translate( -(bounds[0]+bounds[1])/2,
-                         -bounds[2],
-                         -(bounds[4]+bounds[5])/2 );
-  yTransform->Translate( -(bounds[0]+bounds[1])/2,
-                         -bounds[2],
-                         -(bounds[4]+bounds[5])/2 );
-  zTransform->Translate( -(bounds[0]+bounds[1])/2,
-                         -bounds[2],
-                         -(bounds[4]+bounds[5])/2 );
-  
-  
-
-  this->XAxisShaft->SetUserTransform( xTransform );
-  this->YAxisShaft->SetUserTransform( yTransform );
-  this->ZAxisShaft->SetUserTransform( zTransform );
-
-  xTransform->Delete();
-  yTransform->Delete();
-  zTransform->Delete();
-  
-  (vtkPolyDataMapper::SafeDownCast(this->XAxisTip->GetMapper()))->
-    GetInput()->GetBounds( bounds );
-  
-  xTransform = vtkTransform::New();
-  yTransform = vtkTransform::New();
-  zTransform = vtkTransform::New();
-  
-  xTransform->RotateZ( -90 );
-  zTransform->RotateX( 90 );
-  
-  xTransform->Scale( this->TotalLength[0], this->TotalLength[0], this->TotalLength[0] );
-  yTransform->Scale( this->TotalLength[1], this->TotalLength[1], this->TotalLength[1] );
-  zTransform->Scale( this->TotalLength[2], this->TotalLength[2], this->TotalLength[2] );
-  
-  xTransform->Translate( 0, (1.0 - this->NormalizedTipLength[0]), 0 );
-  yTransform->Translate( 0, (1.0 - this->NormalizedTipLength[1]), 0 );
-  zTransform->Translate( 0, (1.0 - this->NormalizedTipLength[2]), 0 );
-  
-  xTransform->Scale( this->NormalizedTipLength[0], 
-                     this->NormalizedTipLength[0], 
-                     this->NormalizedTipLength[0] );
-
-  yTransform->Scale( this->NormalizedTipLength[1], 
-                     this->NormalizedTipLength[1], 
-                     this->NormalizedTipLength[1] );
-  
-  zTransform->Scale( this->NormalizedTipLength[2], 
-                     this->NormalizedTipLength[2], 
-                     this->NormalizedTipLength[2] );
-  
-  xTransform->Translate( -(bounds[0]+bounds[1])/2,
-                         -bounds[2],
-                         -(bounds[4]+bounds[5])/2 );
-  yTransform->Translate( -(bounds[0]+bounds[1])/2,
-                         -bounds[2],
-                         -(bounds[4]+bounds[5])/2 );
-  zTransform->Translate( -(bounds[0]+bounds[1])/2,
-                         -bounds[2],
-                         -(bounds[4]+bounds[5])/2 );
-
-  
-  this->XAxisTip->SetUserTransform( xTransform );
-  this->YAxisTip->SetUserTransform( yTransform );
-  this->ZAxisTip->SetUserTransform( zTransform );
-
-  xTransform->Delete();
-  yTransform->Delete();
-  zTransform->Delete();
-
-  this->XAxisVectorText->SetText( this->XAxisLabelText );
-  this->YAxisVectorText->SetText( this->YAxisLabelText );
-  this->ZAxisVectorText->SetText( this->ZAxisLabelText );
-  
-  
-  float avgScale = 
-    (this->TotalLength[0] + this->TotalLength[1] + this->TotalLength[2])/15;
-  
-  this->XAxisShaft->GetBounds(bounds);
-  this->XAxisLabel->SetScale( avgScale, avgScale, avgScale );
-  this->XAxisLabel->SetPosition( bounds[0] + this->XAxisLabelPosition *
-                                 (bounds[1]-bounds[0]),
-                                 bounds[2] - (bounds[3]-bounds[2])*2.0,
-                                 bounds[5] + (bounds[5]-bounds[4])/2.0 );
-
-  this->YAxisShaft->GetBounds(bounds);
-  this->YAxisLabel->SetScale( avgScale, avgScale, avgScale );
-  this->YAxisLabel->SetPosition( (bounds[0]+bounds[1])/2, 
-                                 bounds[2] + this->YAxisLabelPosition *
-                                 (bounds[3]-bounds[2]),
-                                 bounds[5] + (bounds[5]-bounds[4])/2.0 );
-
-  this->ZAxisShaft->GetBounds(bounds);
-  this->ZAxisLabel->SetScale( avgScale, avgScale, avgScale );
-  this->ZAxisLabel->SetPosition( bounds[0], 
-                                 bounds[2] - (bounds[3]-bounds[2])*2.0,
-                                 bounds[4] + this->ZAxisLabelPosition *
-                                 (bounds[5]-bounds[4]) );
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVAxesActor::PrintSelf(ostream& os, vtkIndent indent)
-{
-  this->Superclass::PrintSelf(os,indent);
-  
-  os << indent << "UserDefinedShaft: ";
-  if (this->UserDefinedShaft)
-    {
-    os << this->UserDefinedShaft << endl;
-    }
-  else
-    {
-    os << "(none)" << endl;
-    }
-  
-  os << indent << "UserDefinedTip: ";
-  if (this->UserDefinedTip)
-    {
-    os << this->UserDefinedTip << endl;
-    }
-  else
-    {
-    os << "(none)" << endl;
-    }
-  
-  os << indent << "XAxisLabelText: " << (this->XAxisLabelText ?
-                                         this->XAxisLabelText : "(none)")
-     << endl;
-  os << indent << "YAxisLabelText: " << (this->YAxisLabelText ?
-                                         this->YAxisLabelText : "(none)")
-     << endl;
-  os << indent << "ZAxisLabelText: " << (this->ZAxisLabelText ?
-                                         this->ZAxisLabelText : "(none)")
-     << endl;
-  os << indent << "XAxisLabelPosition: " << this->XAxisLabelPosition << endl;
-  os << indent << "YAxisLabelPosition: " << this->YAxisLabelPosition << endl;
-  os << indent << "ZAxisLabelPosition: " << this->ZAxisLabelPosition << endl;
-  
-  os << indent << "SphereRadius: " << this->SphereRadius << endl;
-  os << indent << "SphereResolution: " << this->SphereResolution << endl;
-  os << indent << "CylinderRadius: " << this->CylinderRadius << endl;
-  os << indent << "CylinderResolution: " << this->CylinderResolution << endl;
-  os << indent << "ConeRadius: " << this->ConeRadius << endl;
-  os << indent << "ConeResolution: " << this->ConeResolution << endl;
-  
-  os << indent << "NormalizedShaftLength: " 
-     << this->NormalizedShaftLength[0] << ","
-     << this->NormalizedShaftLength[1] << ","
-     << this->NormalizedShaftLength[2] << endl;
-  os << indent << "NormalizedTipLength: " 
-     << this->NormalizedTipLength[0] << ","
-     << this->NormalizedTipLength[1] << ","
-     << this->NormalizedTipLength[2] << endl;
-  os << indent << "TotalLength: " 
-     << this->TotalLength[0] << ","
-     << this->TotalLength[1] << ","
-     << this->TotalLength[2] << endl;
-}
-
-//-----------------------------------------------------------------------------
-// porting to VTK 5.0.x
-void vtkPVAxesActor::AddToRender( vtkRenderer* theRenderer )
-{
-  theRenderer->AddActor(this->XAxisLabel);
-  theRenderer->AddActor(this->YAxisLabel);
-  theRenderer->AddActor(this->ZAxisLabel);
-}
diff --git a/src/SVTK/vtkPVAxesActor.h b/src/SVTK/vtkPVAxesActor.h
deleted file mode 100644 (file)
index b76f59f..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*=========================================================================
-
-   Program: ParaView
-   Module:    $RCSfile$
-
-   Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
-   All rights reserved.
-
-   ParaView is a free software; you can redistribute it and/or modify it
-   under the terms of the ParaView license version 1.2. 
-
-   See License_v1.2.txt for the full ParaView license.
-   A copy of this license can be obtained by contacting
-   Kitware Inc.
-   28 Corporate Drive
-   Clifton Park, NY 12065
-   USA
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=========================================================================*/
-// .NAME vtkPVAxesActor - a 3D axes representation
-// .SECTION Description
-// 
-// vtkPVAxesActor is used to represent 3D axes in the scene. The user can
-// define the geometry to use for the shaft and the tip, and the user can
-// set the text for the three axes. The text will follow the camera.
-
-
-#ifndef __vtkPVAxesActor_h
-#define __vtkPVAxesActor_h
-
-#include "SVTK.h"
-#include "vtkProp3D.h"
-
-#include <vtkVersion.h>
-
-class vtkRenderer;
-class vtkPropCollection;
-class vtkMapper;
-class vtkProperty;
-class vtkActor;
-class vtkFollower;
-class vtkCylinderSource;
-class vtkLineSource;
-class vtkConeSource;
-class vtkSphereSource;
-class vtkPolyData;
-class vtkVectorText;
-
-class SVTK_EXPORT vtkPVAxesActor : public vtkProp3D
-{
-public:
-  static vtkPVAxesActor *New();
-  vtkTypeMacro(vtkPVAxesActor,vtkProp3D);
-  void PrintSelf(ostream& os, vtkIndent indent);
-
-
-  // Description: 
-  // For some exporters and other other operations we must be
-  // able to collect all the actors or volumes. These methods
-  // are used in that process.
-  virtual void GetActors(vtkPropCollection *);
-
-  // Description:
-  // Support the standard render methods.
-  virtual int RenderOpaqueGeometry(vtkViewport *viewport);
-#if (VTK_MAJOR_VERSION>5 || VTK_MINOR_VERSION>=2)
-  virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport); // porting to VTK 5.0.x
-  virtual int HasTranslucentPolygonalGeometry();                         // porting to VTK 5.0.x
-#else
-  virtual int RenderTranslucentGeometry(vtkViewport *viewport);            // porting to VTK 5.0.x
-#endif
-
-  // Description:
-  // Shallow copy of an axes actor. Overloads the virtual vtkProp method.
-  void ShallowCopy(vtkProp *prop);
-
-  // Description:
-  // Release any graphics resources that are being consumed by this actor.
-  // The parameter window could be used to determine which graphic
-  // resources to release.
-  void ReleaseGraphicsResources(vtkWindow *);
-
-  // Description:
-  // Get the bounds for this Actor as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax). (The
-  // method GetBounds(double bounds[6]) is available from the superclass.)
-  void GetBounds(double bounds[6]);
-  double *GetBounds();
-
-  // Description:
-  // Get the actors mtime plus consider its properties and texture if set.
-  unsigned long int GetMTime();
-  
-  // Description:
-  // Return the mtime of anything that would cause the rendered image to 
-  // appear differently. Usually this involves checking the mtime of the 
-  // prop plus anything else it depends on such as properties, textures
-  // etc.
-  virtual unsigned long GetRedrawMTime();
-
-  // Description:
-  // Set the total length of the axes in 3 dimensions.
-  void SetTotalLength( float v[3] ) 
-    { this->SetTotalLength( v[0], v[1], v[2] ); }
-  void SetTotalLength( float x, float y, float z );
-  vtkGetVectorMacro( TotalLength, float, 3 );
-  
-  // Description:
-  // Set the normalized (0-1) length of the shaft.
-  void SetNormalizedShaftLength( float v[3] ) 
-    { this->SetNormalizedShaftLength( v[0], v[1], v[2] ); }
-  void SetNormalizedShaftLength( float x, float y, float z );
-  vtkGetVectorMacro( NormalizedShaftLength, float, 3 );
-  
-  // Description:
-  // Set the normalized (0-1) length of the tip.
-  void SetNormalizedTipLength( float v[3] ) 
-    { this->SetNormalizedTipLength( v[0], v[1], v[2] ); }
-  void SetNormalizedTipLength( float x, float y, float z );
-  vtkGetVectorMacro( NormalizedTipLength, float, 3 );
-
-  // Description:
-  // Set/get the resolution of the pieces of the axes actor
-  vtkSetClampMacro(ConeResolution, int, 3, 128);
-  vtkGetMacro(ConeResolution, int);
-  vtkSetClampMacro(SphereResolution, int, 3, 128);
-  vtkGetMacro(SphereResolution, int);
-  vtkSetClampMacro(CylinderResolution, int, 3, 128);
-  vtkGetMacro(CylinderResolution, int);
-  
-  // Description:
-  // Set/get the radius of the pieces of the axes actor
-  vtkSetClampMacro(ConeRadius, float, 0, VTK_LARGE_FLOAT);
-  vtkGetMacro(ConeRadius, float);
-  vtkSetClampMacro(SphereRadius, float, 0, VTK_LARGE_FLOAT);
-  vtkGetMacro(SphereRadius, float);
-  vtkSetClampMacro(CylinderRadius, float, 0, VTK_LARGE_FLOAT);
-  vtkGetMacro(CylinderRadius, float);
-  
-  // Description:
-  // Set/get the positions of the axis labels
-  vtkSetClampMacro(XAxisLabelPosition, float, 0, 1);
-  vtkGetMacro(XAxisLabelPosition, float);
-  vtkSetClampMacro(YAxisLabelPosition, float, 0, 1);
-  vtkGetMacro(YAxisLabelPosition, float);
-  vtkSetClampMacro(ZAxisLabelPosition, float, 0, 1);
-  vtkGetMacro(ZAxisLabelPosition, float);
-  
-  // Description:
-  // Set the type of the shaft to a cylinder, line, or user defined geometry.
-  void SetShaftType( int type );
-  void SetShaftTypeToCylinder()
-    { this->SetShaftType( vtkPVAxesActor::CYLINDER_SHAFT ); }
-  void SetShaftTypeToLine()
-    { this->SetShaftType( vtkPVAxesActor::LINE_SHAFT ); }
-  void SetShaftTypeToUserDefined()
-    { this->SetShaftType( vtkPVAxesActor::USER_DEFINED_SHAFT ); }
-
-  // Description:
-  // Set the type of the tip to a cone, sphere, or user defined geometry.
-  void SetTipType( int type );
-  void SetTipTypeToCone()
-    { this->SetTipType( vtkPVAxesActor::CONE_TIP ); }
-  void SetTipTypeToSphere()
-    { this->SetTipType( vtkPVAxesActor::SPHERE_TIP ); }
-  void SetTipTypeToUserDefined()
-    { this->SetTipType( vtkPVAxesActor::USER_DEFINED_TIP ); }
-
-  //BTX
-  // Description:
-  // Set the user defined tip polydata.
-  void SetUserDefinedTip( vtkPolyData * );
-  vtkGetObjectMacro( UserDefinedTip, vtkPolyData );
-  
-  // Description:
-  // Set the user defined shaft polydata.
-  void SetUserDefinedShaft( vtkPolyData * );
-  vtkGetObjectMacro( UserDefinedShaft, vtkPolyData );
-
-  // Description:
-  // Get the tip properties.
-  vtkProperty *GetXAxisTipProperty();
-  vtkProperty *GetYAxisTipProperty();
-  vtkProperty *GetZAxisTipProperty();
-  
-  // Description:
-  // Get the shaft properties.
-  vtkProperty *GetXAxisShaftProperty();
-  vtkProperty *GetYAxisShaftProperty();
-  vtkProperty *GetZAxisShaftProperty();
-
-  // Description:
-  // Get the label properties.
-  vtkProperty *GetXAxisLabelProperty();
-  vtkProperty *GetYAxisLabelProperty();
-  vtkProperty *GetZAxisLabelProperty();
-  //ETX
-  //
-  // Description:
-  // Set the label text.
-  vtkSetStringMacro( XAxisLabelText );
-  vtkSetStringMacro( YAxisLabelText );
-  vtkSetStringMacro( ZAxisLabelText );
-  
-//BTX
-  enum
-  {
-    CYLINDER_SHAFT,
-    LINE_SHAFT,
-    USER_DEFINED_SHAFT
-  };
-  
-  
-  enum
-  {
-    CONE_TIP,
-    SPHERE_TIP,
-    USER_DEFINED_TIP
-  };
-  
-//ETX
-
-  void AddToRender( vtkRenderer* theRenderer ); // porting to VTK 5.0.x
-  
-protected:
-  vtkPVAxesActor();
-  ~vtkPVAxesActor();
-
-  vtkCylinderSource *CylinderSource;
-  vtkLineSource     *LineSource;
-  vtkConeSource     *ConeSource;
-  vtkSphereSource   *SphereSource;
-  
-  vtkActor          *XAxisShaft;
-  vtkActor          *YAxisShaft;
-  vtkActor          *ZAxisShaft;
-
-  vtkActor          *XAxisTip;
-  vtkActor          *YAxisTip;
-  vtkActor          *ZAxisTip;
-
-  void              UpdateProps();
-
-  float             TotalLength[3];
-  float             NormalizedShaftLength[3];
-  float             NormalizedTipLength[3];
-  
-  int               ShaftType;
-  int               TipType;
-  
-  vtkPolyData      *UserDefinedTip;
-  vtkPolyData      *UserDefinedShaft;
-  
-  char             *XAxisLabelText;
-  char             *YAxisLabelText;
-  char             *ZAxisLabelText;
-  
-  vtkVectorText    *XAxisVectorText;
-  vtkVectorText    *YAxisVectorText;
-  vtkVectorText    *ZAxisVectorText;
-  
-  vtkFollower      *XAxisLabel;
-  vtkFollower      *YAxisLabel;
-  vtkFollower      *ZAxisLabel;
-  
-  int              ConeResolution;
-  int              SphereResolution;
-  int              CylinderResolution;
-  
-  float            ConeRadius;
-  float            SphereRadius;
-  float            CylinderRadius;
-
-  float            XAxisLabelPosition;
-  float            YAxisLabelPosition;
-  float            ZAxisLabelPosition;
-  
-private:
-  vtkPVAxesActor(const vtkPVAxesActor&);  // Not implemented.
-  void operator=(const vtkPVAxesActor&);  // Not implemented.
-};
-
-#endif
-
diff --git a/src/SVTK/vtkPVAxesWidget.cxx b/src/SVTK/vtkPVAxesWidget.cxx
deleted file mode 100644 (file)
index b83b1de..0000000
+++ /dev/null
@@ -1,868 +0,0 @@
-/*=========================================================================
-
-   Program: ParaView
-   Module:    $RCSfile$
-
-   Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
-   All rights reserved.
-
-   ParaView is a free software; you can redistribute it and/or modify it
-   under the terms of the ParaView license version 1.2. 
-
-   See License_v1.2.txt for the full ParaView license.
-   A copy of this license can be obtained by contacting
-   Kitware Inc.
-   28 Corporate Drive
-   Clifton Park, NY 12065
-   USA
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=========================================================================*/
-#include "vtkPVAxesWidget.h"
-
-#include "vtkActor2D.h"
-#include "vtkCallbackCommand.h"
-#include "vtkCamera.h"
-#include "vtkCoordinate.h"
-#include "vtkObjectFactory.h"
-#include "vtkPoints.h"
-#include "vtkPolyData.h"
-#include "vtkPolyDataMapper2D.h"
-#include "vtkProperty.h"
-#include "vtkProperty2D.h"
-#include "vtkPVAxesActor.h"
-#include "vtkRenderer.h"
-#include "vtkRenderWindow.h"
-#include "vtkRenderWindowInteractor.h"
-
-vtkStandardNewMacro(vtkPVAxesWidget);
-
-vtkCxxSetObjectMacro(vtkPVAxesWidget, AxesActor, vtkPVAxesActor);
-vtkCxxSetObjectMacro(vtkPVAxesWidget, ParentRenderer, vtkRenderer);
-
-//----------------------------------------------------------------------------
-class vtkPVAxesWidgetObserver : public vtkCommand
-{
-public:
-  static vtkPVAxesWidgetObserver *New()
-    {return new vtkPVAxesWidgetObserver;};
-  
-  vtkPVAxesWidgetObserver()
-    {
-      this->AxesWidget = 0;
-    }
-  
-  virtual void Execute(vtkObject* wdg, unsigned long event, void *calldata)
-    {
-      if (this->AxesWidget)
-        {
-        this->AxesWidget->ExecuteEvent(wdg, event, calldata);
-        }
-    }
-  
-  vtkPVAxesWidget *AxesWidget;
-};
-
-//----------------------------------------------------------------------------
-vtkPVAxesWidget::vtkPVAxesWidget()
-{
-  this->StartEventObserverId = 0;
-
-  this->EventCallbackCommand->SetCallback(vtkPVAxesWidget::ProcessEvents);
-  
-  this->Observer = vtkPVAxesWidgetObserver::New();
-  this->Observer->AxesWidget = this;
-  this->Renderer = vtkRenderer::New();
-  this->Renderer->SetViewport(0.0, 0.0, 0.2, 0.2);
-  this->Renderer->SetLayer(1);
-  this->Renderer->InteractiveOff();
-  this->Priority = 0.55;
-  this->AxesActor = vtkPVAxesActor::New();
-  this->Renderer->AddActor(this->AxesActor);
-  this->AxesActor->AddToRender(this->Renderer); // tmp
-  
-  this->ParentRenderer = NULL;
-  
-  this->Moving = 0;
-  this->MouseCursorState = vtkPVAxesWidget::Outside;
-
-  this->StartTag = 0;
-  
-  this->Interactive = 1;
-  
-  this->Outline = vtkPolyData::New();
-  this->Outline->Allocate();
-  vtkPoints *points = vtkPoints::New();
-  vtkIdType ptIds[5];
-  ptIds[4] = ptIds[0] = points->InsertNextPoint(1, 1, 0);
-  ptIds[1] = points->InsertNextPoint(2, 1, 0);
-  ptIds[2] = points->InsertNextPoint(2, 2, 0);
-  ptIds[3] = points->InsertNextPoint(1, 2, 0);
-  this->Outline->SetPoints(points);
-  this->Outline->InsertNextCell(VTK_POLY_LINE, 5, ptIds);
-  vtkCoordinate *tcoord = vtkCoordinate::New();
-  tcoord->SetCoordinateSystemToDisplay();
-  vtkPolyDataMapper2D *mapper = vtkPolyDataMapper2D::New();
-  mapper->SetInputData(this->Outline);
-  mapper->SetTransformCoordinate(tcoord);
-  this->OutlineActor = vtkActor2D::New();
-  this->OutlineActor->SetMapper(mapper);
-  this->OutlineActor->SetPosition(0, 0);
-  this->OutlineActor->SetPosition2(1, 1);
-  
-  points->Delete();
-  mapper->Delete();
-  tcoord->Delete();
-}
-
-//----------------------------------------------------------------------------
-vtkPVAxesWidget::~vtkPVAxesWidget()
-{
-  this->Observer->Delete();
-  this->AxesActor->Delete();
-  this->OutlineActor->Delete();
-  this->Outline->Delete();
-  this->SetParentRenderer(NULL);
-  this->Renderer->Delete();
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::SetEnabled(int enabling)
-{
-  if (!this->Interactor)
-    {
-    vtkErrorMacro("The interactor must be set prior to enabling/disabling widget");
-    }
-  
-  if (enabling)
-    {
-    if (this->Enabled)
-      {
-      return;
-      }
-    if (!this->ParentRenderer)
-      {
-      vtkErrorMacro("The parent renderer must be set prior to enabling this widget");
-      return;
-      }
-
-    this->Enabled = 1;
-    
-    if ( this->EventCallbackCommand )
-      {
-      vtkRenderWindowInteractor *i = this->Interactor;
-      i->AddObserver(vtkCommand::MouseMoveEvent,
-        this->EventCallbackCommand, this->Priority);
-      i->AddObserver(vtkCommand::LeftButtonPressEvent,
-        this->EventCallbackCommand, this->Priority);
-      i->AddObserver(vtkCommand::LeftButtonReleaseEvent,
-        this->EventCallbackCommand, this->Priority);
-      }
-    
-    this->ParentRenderer->GetRenderWindow()->AddRenderer(this->Renderer);
-    if (this->ParentRenderer->GetRenderWindow()->GetNumberOfLayers() < 2)
-      {
-      this->ParentRenderer->GetRenderWindow()->SetNumberOfLayers(2);
-      }
-    this->AxesActor->SetVisibility(1);
-    // We need to copy the camera before the compositing observer is called.
-    // Compositing temporarily changes the camera to display an image.
-    this->StartEventObserverId = 
-      this->ParentRenderer->AddObserver(vtkCommand::StartEvent,this->Observer,1);
-    this->InvokeEvent(vtkCommand::EnableEvent, NULL);
-    }
-  else
-    {
-    if (!this->Enabled)
-      {
-      return;
-      }
-    
-    this->Enabled = 0;
-    this->Interactor->RemoveObserver(this->EventCallbackCommand);
-    
-    this->AxesActor->SetVisibility(0);
-    if (this->ParentRenderer)
-      {
-      if (this->ParentRenderer->GetRenderWindow())
-        {
-        this->ParentRenderer->GetRenderWindow()->RemoveRenderer(this->Renderer);
-        this->AxesActor->ReleaseGraphicsResources(this->ParentRenderer->GetRenderWindow());
-        }
-      if (this->StartEventObserverId != 0)
-        {
-        this->ParentRenderer->RemoveObserver(this->StartEventObserverId);
-        }
-      }
-    
-    this->InvokeEvent(vtkCommand::DisableEvent, NULL);
-    }
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::ExecuteEvent(vtkObject *vtkNotUsed(o),
-                                   unsigned long vtkNotUsed(event),
-                                   void *vtkNotUsed(calldata))
-{
-  if (!this->ParentRenderer)
-    {
-    return;
-    }
-  
-  vtkCamera *cam = this->ParentRenderer->GetActiveCamera();
-  double pos[3], fp[3], viewup[3];
-  cam->GetPosition(pos);
-  cam->GetFocalPoint(fp);
-  cam->GetViewUp(viewup);
-  
-  cam = this->Renderer->GetActiveCamera();
-  cam->SetPosition(pos);
-  cam->SetFocalPoint(fp);
-  cam->SetViewUp(viewup);
-  this->Renderer->ResetCamera();
-  
-  this->SquareRenderer();
-}
-
-void vtkPVAxesWidget::UpdateCursorIcon()
-{
-  if (!this->Enabled)
-    {
-    this->SetMouseCursor(vtkPVAxesWidget::Outside);
-    return;
-    }
-  
-  if (this->Moving)
-    {
-    return;
-    }
-  
-  int *parentSize = this->ParentRenderer->GetSize();
-  
-  int x = this->Interactor->GetEventPosition()[0];
-  int y = this->Interactor->GetEventPosition()[1];
-  double xNorm = x / (double)parentSize[0];
-  double yNorm = y / (double)parentSize[1];
-  
-  double pos[4];
-  this->Renderer->GetViewport(pos);
-  
-  int pState = this->MouseCursorState;
-  
-  if (xNorm > pos[0] && xNorm < pos[2] && yNorm > pos[1] && yNorm < pos[3])
-    {
-    this->MouseCursorState = vtkPVAxesWidget::Inside;
-    }
-  else if (fabs(xNorm-pos[0]) < .02 && fabs(yNorm-pos[3]) < .02)
-    {
-    this->MouseCursorState = vtkPVAxesWidget::TopLeft;
-    }
-  else if (fabs(xNorm-pos[2]) < .02 && fabs(yNorm-pos[3]) < .02)
-    {
-    this->MouseCursorState = vtkPVAxesWidget::TopRight;
-    }
-  else if (fabs(xNorm-pos[0]) < .02 && fabs(yNorm-pos[1]) < .02)
-    {
-    this->MouseCursorState = vtkPVAxesWidget::BottomLeft;
-    }
-  else if (fabs(xNorm-pos[2]) < .02 && fabs(yNorm-pos[1]) < .02)
-    {
-    this->MouseCursorState = vtkPVAxesWidget::BottomRight;
-    }
-  else
-    {
-    this->MouseCursorState = vtkPVAxesWidget::Outside;
-    }
-
-  if (pState == this->MouseCursorState)
-    {
-    return;
-    }
-  
-  if (this->MouseCursorState == vtkPVAxesWidget::Outside)
-    {
-    this->Renderer->RemoveActor(this->OutlineActor);
-    }
-  else
-    {
-    this->Renderer->AddActor(this->OutlineActor);
-    }
-  this->Interactor->Render();
-  
-  this->SetMouseCursor(this->MouseCursorState);
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::SetMouseCursor(int cursorState)
-{
-  switch (cursorState)
-    {
-    case vtkPVAxesWidget::Outside:
-      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_DEFAULT);
-      break;
-    case vtkPVAxesWidget::Inside:
-      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZEALL);
-      break;
-    case vtkPVAxesWidget::TopLeft:
-      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZENW);
-      break;
-    case vtkPVAxesWidget::TopRight:
-      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZENE);
-      break;
-    case vtkPVAxesWidget::BottomLeft:
-      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZESW);
-      break;
-    case vtkPVAxesWidget::BottomRight:
-      this->Interactor->GetRenderWindow()->SetCurrentCursor(VTK_CURSOR_SIZESE);
-      break;
-    }
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::ProcessEvents(vtkObject* vtkNotUsed(object),
-                                    unsigned long event,
-                                    void *clientdata,
-                                    void* vtkNotUsed(calldata))
-{
-  vtkPVAxesWidget *self =
-    reinterpret_cast<vtkPVAxesWidget*>(clientdata);
-
-  if (!self->GetInteractive())
-    {
-    return;
-    }
-  
-  switch (event)
-    {
-    case vtkCommand::LeftButtonPressEvent:
-      self->OnButtonPress();
-      break;
-    case vtkCommand::MouseMoveEvent:
-      self->OnMouseMove();
-      break;
-    case vtkCommand::LeftButtonReleaseEvent:
-      self->OnButtonRelease();
-      break;
-    }
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::OnButtonPress()
-{
-  if (this->MouseCursorState == vtkPVAxesWidget::Outside)
-    {
-    return;
-    }
-  
-  this->SetMouseCursor(this->MouseCursorState);
-
-  this->StartPosition[0] = this->Interactor->GetEventPosition()[0];
-  this->StartPosition[1] = this->Interactor->GetEventPosition()[1];
-  
-  this->Moving = 1;
-  this->EventCallbackCommand->SetAbortFlag(1);
-  this->StartInteraction();
-  this->InvokeEvent(vtkCommand::StartInteractionEvent, NULL);
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::OnButtonRelease()
-{
-  if (this->MouseCursorState == vtkPVAxesWidget::Outside)
-    {
-    return;
-    }
-  
-  this->Moving = 0;
-  this->EndInteraction();
-  this->InvokeEvent(vtkCommand::EndInteractionEvent, NULL);
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::OnMouseMove()
-{
-  if (this->Moving)
-    {
-    switch (this->MouseCursorState)
-      {
-      case vtkPVAxesWidget::Inside:
-        this->MoveWidget();
-        break;
-      case vtkPVAxesWidget::TopLeft:
-        this->ResizeTopLeft();
-        break;
-      case vtkPVAxesWidget::TopRight:
-        this->ResizeTopRight();
-        break;
-      case vtkPVAxesWidget::BottomLeft:
-        this->ResizeBottomLeft();
-        break;
-      case vtkPVAxesWidget::BottomRight:
-        this->ResizeBottomRight();
-        break;
-      }
-    
-    this->UpdateCursorIcon();
-    this->EventCallbackCommand->SetAbortFlag(1);
-    this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
-    }
-  else
-    {
-    this->UpdateCursorIcon();
-    }
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::MoveWidget()
-{
-  int x = this->Interactor->GetEventPosition()[0];
-  int y = this->Interactor->GetEventPosition()[1];
-  
-  int dx = x - this->StartPosition[0];
-  int dy = y - this->StartPosition[1];
-
-  this->StartPosition[0] = x;
-  this->StartPosition[1] = y;
-
-  int *size = this->ParentRenderer->GetSize();
-  double dxNorm = dx / (double)size[0];
-  double dyNorm = dy / (double)size[1];
-  
-  double *vp = this->Renderer->GetViewport();
-  
-  double newPos[4];
-  newPos[0] = vp[0] + dxNorm;
-  newPos[1] = vp[1] + dyNorm;
-  newPos[2] = vp[2] + dxNorm;
-  newPos[3] = vp[3] + dyNorm;
-
-  if (newPos[0] < 0)
-    {
-    this->StartPosition[0] = 0;
-    newPos[0] = 0;
-    newPos[2] = vp[2] - vp[0];
-    }
-  if (newPos[1] < 0)
-    {
-    this->StartPosition[1] = 0;
-    newPos[1] = 0;
-    newPos[3] = vp[3] - vp[1];
-    }
-  if (newPos[2] > 1)
-    {
-    this->StartPosition[0] = (int)(size[0] - size[0] * (vp[2]-vp[0]));
-    newPos[0] = 1 - (vp[2]-vp[0]);
-    newPos[2] = 1;
-    }
-  if (newPos[3] > 1)
-    {
-    this->StartPosition[1] = (int)(size[1] - size[1]*(vp[3]-vp[1]));
-    newPos[1] = 1 - (vp[3]-vp[1]);
-    newPos[3] = 1;
-    }
-
-  this->Renderer->SetViewport(newPos);
-  this->Interactor->Render();
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::ResizeTopLeft()
-{
-  int x = this->Interactor->GetEventPosition()[0];
-  int y = this->Interactor->GetEventPosition()[1];
-  
-  int dx = x - this->StartPosition[0];
-  int dy = y - this->StartPosition[1];
-  
-  int *size = this->ParentRenderer->GetSize();
-  double dxNorm = dx / (double)size[0];
-  double dyNorm = dy / (double)size[1];
-  
-  int useX;
-  double change;
-  double absDx = fabs(dxNorm);
-  double absDy = fabs(dyNorm);
-  
-  if (absDx > absDy)
-    {
-    change = dxNorm;
-    useX = 1;
-    }
-  else
-    {
-    change = dyNorm;
-    useX = 0;
-    }
-  
-  double *vp = this->Renderer->GetViewport();
-  
-  this->StartPosition[0] = x;
-  this->StartPosition[1] = y;
-  
-  double newPos[4];
-  newPos[0] = useX ? vp[0] + change : vp[0] - change;
-  newPos[1] = vp[1];
-  newPos[2] = vp[2];
-  newPos[3] = useX ? vp[3] - change : vp[3] + change;
-  
-  if (newPos[0] < 0)
-    {
-    this->StartPosition[0] = 0;
-    newPos[0] = 0;
-    }
-  if (newPos[0] >= newPos[2]-0.01)
-    {
-    newPos[0] = newPos[2] - 0.01;
-    }
-  if (newPos[3] > 1)
-    {
-    this->StartPosition[1] = size[1];
-    newPos[3] = 1;
-    }
-  if (newPos[3] <= newPos[1]+0.01)
-    {
-    newPos[3] = newPos[1] + 0.01;
-    }
-  
-  this->Renderer->SetViewport(newPos);
-  this->Interactor->Render();
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::ResizeTopRight()
-{
-  int x = this->Interactor->GetEventPosition()[0];
-  int y = this->Interactor->GetEventPosition()[1];
-  
-  int dx = x - this->StartPosition[0];
-  int dy = y - this->StartPosition[1];
-  
-  int *size = this->ParentRenderer->GetSize();
-  double dxNorm = dx / (double)size[0];
-  double dyNorm = dy / (double)size[1];
-
-  double change;
-  double absDx = fabs(dxNorm);
-  double absDy = fabs(dyNorm);
-  
-  if (absDx > absDy)
-    {
-    change = dxNorm;
-    }
-  else
-    {
-    change = dyNorm;
-    }
-  
-  double *vp = this->Renderer->GetViewport();
-  
-  this->StartPosition[0] = x;
-  this->StartPosition[1] = y;
-  
-  double newPos[4];
-  newPos[0] = vp[0];
-  newPos[1] = vp[1];
-  newPos[2] = vp[2] + change;
-  newPos[3] = vp[3] + change;
-  
-  if (newPos[2] > 1)
-    {
-    this->StartPosition[0] = size[0];
-    newPos[2] = 1;
-    }
-  if (newPos[2] <= newPos[0]+0.01)
-    {
-    newPos[2] = newPos[0] + 0.01;
-    }
-  if (newPos[3] > 1)
-    {
-    this->StartPosition[1] = size[1];
-    newPos[3] = 1;
-    }
-  if (newPos[3] <= newPos[1]+0.01)
-    {
-    newPos[3] = newPos[1] + 0.01;
-    }
-  
-  this->Renderer->SetViewport(newPos);
-  this->Interactor->Render();
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::ResizeBottomLeft()
-{
-  int x = this->Interactor->GetEventPosition()[0];
-  int y = this->Interactor->GetEventPosition()[1];
-  
-  int dx = x - this->StartPosition[0];
-  int dy = y - this->StartPosition[1];
-  
-  int *size = this->ParentRenderer->GetSize();
-  double dxNorm = dx / (double)size[0];
-  double dyNorm = dy / (double)size[1];
-  double *vp = this->Renderer->GetViewport();
-  
-  double change;
-  double absDx = fabs(dxNorm);
-  double absDy = fabs(dyNorm);
-  
-  if (absDx > absDy)
-    {
-    change = dxNorm;
-    }
-  else
-    {
-    change = dyNorm;
-    }
-  
-  this->StartPosition[0] = x;
-  this->StartPosition[1] = y;
-  
-  double newPos[4];
-  newPos[0] = vp[0] + change;
-  newPos[1] = vp[1] + change;
-  newPos[2] = vp[2];
-  newPos[3] = vp[3];
-  
-  if (newPos[0] < 0)
-    {
-    this->StartPosition[0] = 0;
-    newPos[0] = 0;
-    }
-  if (newPos[0] >= newPos[2]-0.01)
-    {
-    newPos[0] = newPos[2] - 0.01;
-    }
-  if (newPos[1] < 0)
-    {
-    this->StartPosition[1] = 0;
-    newPos[1] = 0;
-    }
-  if (newPos[1] >= newPos[3]-0.01)
-    {
-    newPos[1] = newPos[3] - 0.01;
-    }
-  
-  this->Renderer->SetViewport(newPos);
-  this->Interactor->Render();
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::ResizeBottomRight()
-{
-  int x = this->Interactor->GetEventPosition()[0];
-  int y = this->Interactor->GetEventPosition()[1];
-  
-  int dx = x - this->StartPosition[0];
-  int dy = y - this->StartPosition[1];
-  
-  int *size = this->ParentRenderer->GetSize();
-  double dxNorm = dx / (double)size[0];
-  double dyNorm = dy / (double)size[1];
-  
-  double *vp = this->Renderer->GetViewport();
-  
-  int useX;
-  double change;
-  double absDx = fabs(dxNorm);
-  double absDy = fabs(dyNorm);
-  
-  if (absDx > absDy)
-    {
-    change = dxNorm;
-    useX = 1;
-    }
-  else
-    {
-    change = dyNorm;
-    useX = 0;
-    }
-  
-  this->StartPosition[0] = x;
-  this->StartPosition[1] = y;
-  
-  double newPos[4];
-  newPos[0] = vp[0];
-  newPos[1] = useX ? vp[1] - change : vp[1] + change;
-  newPos[2] = useX ? vp[2] + change : vp[2] - change;
-  newPos[3] = vp[3];
-  
-  if (newPos[2] > 1)
-    {
-    this->StartPosition[0] = size[0];
-    newPos[2] = 1;
-    }
-  if (newPos[2] <= newPos[0]+0.01)
-    {
-    newPos[2] = newPos[0] + 0.01;
-    }
-  if (newPos[1] < 0)
-    {
-    this->StartPosition[1] = 0;
-    newPos[1] = 0;
-    }
-  if (newPos[1] >= newPos[3]-0.01)
-    {
-    newPos[1] = newPos[3]-0.01;
-    }
-  
-  this->Renderer->SetViewport(newPos);
-  this->Interactor->Render();
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::SquareRenderer()
-{
-  int *size = this->Renderer->GetSize();
-  if (size[0] == 0 || size[1] == 0)
-    {
-    return;
-    }
-  
-  double vp[4];
-  this->Renderer->GetViewport(vp);
-  
-  double deltaX = vp[2] - vp[0];
-  double newDeltaX = size[1] * deltaX / (double)size[0];
-  double deltaY = vp[3] - vp[1];
-  double newDeltaY = size[0] * deltaY / (double)size[1];
-
-  if (newDeltaX > 1)
-    {
-    if (newDeltaY > 1)
-      {
-      if (size[0] > size[1])
-        {
-        newDeltaX = size[1] / (double)size[0];
-        newDeltaY = 1;
-        }
-      else
-        {
-        newDeltaX = 1;
-        newDeltaY = size[0] / (double)size[1];
-        }
-      vp[0] = vp[1] = 0;
-      vp[2] = newDeltaX;
-      vp[3] = newDeltaY;
-      }
-    else
-      {
-      vp[3] = vp[1] + newDeltaY;
-      if (vp[3] > 1)
-        {
-        vp[3] = 1;
-        vp[1] = vp[3] - newDeltaY;
-        }
-      }
-    }
-  else
-    {
-    vp[2] = vp[0] + newDeltaX;
-    if (vp[2] > 1)
-      {
-      vp[2] = 1;
-      vp[0] = vp[2] - newDeltaX;
-      }
-    }
-  
-  this->Renderer->SetViewport(vp);
-  
-  this->Renderer->NormalizedDisplayToDisplay(vp[0], vp[1]);
-  this->Renderer->NormalizedDisplayToDisplay(vp[2], vp[3]);
-  
-  vtkPoints *points = this->Outline->GetPoints();
-  points->SetPoint(0, vp[0]+1, vp[1]+1, 0);
-  points->SetPoint(1, vp[2]-1, vp[1]+1, 0);
-  points->SetPoint(2, vp[2]-1, vp[3]-1, 0);
-  points->SetPoint(3, vp[0]+1, vp[3]-1, 0);
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::SetInteractive(int state)
-{
-  if (this->Interactive != state)
-    {
-    this->Interactive = state;
-    }
-  
-  if (!state)
-    {
-    this->OnButtonRelease();
-    this->MouseCursorState = vtkPVAxesWidget::Outside;
-    this->Renderer->RemoveActor(this->OutlineActor);
-    if (this->Interactor)
-      {
-      this->SetMouseCursor(this->MouseCursorState);
-      // this->Interactor->Render();
-      }
-    }
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::SetOutlineColor(double r, double g, double b)
-{
-  this->OutlineActor->GetProperty()->SetColor(r, g, b);
-  if (this->Interactor)
-    {
-//    this->Interactor->Render();
-    }
-}
-
-//----------------------------------------------------------------------------
-double* vtkPVAxesWidget::GetOutlineColor()
-{
-  return this->OutlineActor->GetProperty()->GetColor();
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::SetAxisLabelColor(double r, double g, double b)
-{
-  this->AxesActor->GetXAxisLabelProperty()->SetColor(r, g, b);
-  this->AxesActor->GetYAxisLabelProperty()->SetColor(r, g, b);
-  this->AxesActor->GetZAxisLabelProperty()->SetColor(r, g, b);
-}
-
-//----------------------------------------------------------------------------
-double* vtkPVAxesWidget::GetAxisLabelColor()
-{
-  return this->AxesActor->GetXAxisLabelProperty()->GetColor();
-}
-
-//----------------------------------------------------------------------------
-vtkRenderer* vtkPVAxesWidget::GetParentRenderer()
-{
-  return this->ParentRenderer;
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::SetViewport(double minX, double minY,
-                                  double maxX, double maxY)
-{
-  this->Renderer->SetViewport(minX, minY, maxX, maxY);
-}
-
-//----------------------------------------------------------------------------
-double* vtkPVAxesWidget::GetViewport()
-{
-  return this->Renderer->GetViewport();
-}
-
-//----------------------------------------------------------------------------
-void vtkPVAxesWidget::PrintSelf(ostream& os, vtkIndent indent)
-{
-  this->Superclass::PrintSelf(os, indent);
-  
-  os << indent << "AxesActor: " << this->AxesActor << endl;
-  os << indent << "Interactive: " << this->Interactive << endl;
-}
diff --git a/src/SVTK/vtkPVAxesWidget.h b/src/SVTK/vtkPVAxesWidget.h
deleted file mode 100644 (file)
index cc2bba8..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*=========================================================================
-
-   Program: ParaView
-   Module:    $RCSfile$
-
-   Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
-   All rights reserved.
-
-   ParaView is a free software; you can redistribute it and/or modify it
-   under the terms of the ParaView license version 1.2. 
-
-   See License_v1.2.txt for the full ParaView license.
-   A copy of this license can be obtained by contacting
-   Kitware Inc.
-   28 Corporate Drive
-   Clifton Park, NY 12065
-   USA
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-=========================================================================*/
-// .NAME vtkPVAxesWidget - A widget to manipulate an axe
-//
-// .SECTION Description
-// This widget creates and manages its own vtkPVAxesActor.
-
-
-#ifndef __vtkPVAxesWidget_h
-#define __vtkPVAxesWidget_h
-
-#include "SVTK.h"
-#include "vtkInteractorObserver.h"
-
-class vtkActor2D;
-class vtkKWApplication;
-class vtkPolyData;
-class vtkPVAxesActor;
-class vtkPVAxesWidgetObserver;
-class vtkRenderer;
-
-class SVTK_EXPORT vtkPVAxesWidget : public vtkInteractorObserver
-{
-public:
-  static vtkPVAxesWidget* New();
-  vtkTypeMacro(vtkPVAxesWidget, vtkInteractorObserver);
-  void PrintSelf(ostream& os, vtkIndent indent);
-
-  // Description:
-  // Set/get the axes actor to be displayed in this 3D widget.
-  void SetAxesActor(vtkPVAxesActor *actor);
-  vtkGetObjectMacro(AxesActor, vtkPVAxesActor);
-
-  // Description:
-  // Enable the 3D widget.
-  virtual void SetEnabled(int);
-
-  //BTX
-  // Description:
-  // Set the renderer this 3D widget will be contained in.
-  void SetParentRenderer(vtkRenderer *ren);
-  vtkRenderer* GetParentRenderer();
-  //ETX
-  
-  // Description:
-  // Callback to keep the camera for the axes actor up to date with the
-  // camera in the parent renderer
-  void ExecuteEvent(vtkObject *o, unsigned long event, void *calldata);
-
-  // Description:
-  // Set/get whether to allow this 3D widget to be interactively moved/scaled.
-  void SetInteractive(int state);
-  vtkGetMacro(Interactive, int);
-  vtkBooleanMacro(Interactive, int);
-  
-  // Description:
-  // Set/get the color of the outline of this widget.  The outline is visible
-  // when (in interactive mode) the cursor is over this 3D widget.
-  void SetOutlineColor(double r, double g, double b);
-  double *GetOutlineColor();
-  
-  // Description:
-  // Set/get the color of the axis labels of this widget.
-  void SetAxisLabelColor(double r, double g, double b);
-  double *GetAxisLabelColor();
-  
-  // Description:
-  // Set/get the viewport to position/size this 3D widget.
-  void SetViewport(double minX, double minY, double maxX, double maxY);
-  double* GetViewport();
-  
-protected:
-  vtkPVAxesWidget();
-  ~vtkPVAxesWidget();
-  
-  vtkRenderer *Renderer;
-  vtkRenderer *ParentRenderer;
-  
-  vtkPVAxesActor *AxesActor;
-  vtkPolyData *Outline;
-  vtkActor2D *OutlineActor;
-  
-  static void ProcessEvents(vtkObject *object, unsigned long event,
-                            void *clientdata, void *calldata);
-
-  vtkPVAxesWidgetObserver *Observer;
-  int StartTag;
-  
-  int MouseCursorState;
-  int Moving;
-  int StartPosition[2];
-
-  int Interactive;
-  
-  void UpdateCursorIcon();
-  void SetMouseCursor(int cursorState);
-  
-//BTX
-  int State;
-  
-  enum AxesWidgetState
-  {
-    Outside = 0,
-    Inside,
-    TopLeft,
-    TopRight,
-    BottomLeft,
-    BottomRight
-  };
-//ETX
-  
-  void OnButtonPress();
-  void OnMouseMove();
-  void OnButtonRelease();
-
-  void MoveWidget();
-  void ResizeTopLeft();
-  void ResizeTopRight();
-  void ResizeBottomLeft();
-  void ResizeBottomRight();
-  
-  void SquareRenderer();
-
-  unsigned long StartEventObserverId;  
-private:
-  vtkPVAxesWidget(const vtkPVAxesWidget&);  // Not implemented
-  void operator=(const vtkPVAxesWidget&);  // Not implemented
-};
-
-#endif