From 2b3d00250f19aca00728e0eaad2df0fd4dbcb724 Mon Sep 17 00:00:00 2001 From: enk Date: Mon, 30 May 2005 10:12:25 +0000 Subject: [PATCH] Added transformation fixed bug with incorrect transformation --- src/VTKFilter/SALOME_CubeAxesActor2D.cxx | 26 ++++++++++++++++++-- src/VTKFilter/SALOME_Transform.cxx | 31 +++++++++++++++++++++--- src/VTKFilter/SALOME_Transform.h | 4 ++- 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/VTKFilter/SALOME_CubeAxesActor2D.cxx b/src/VTKFilter/SALOME_CubeAxesActor2D.cxx index 43f153411..0d047aa32 100644 --- a/src/VTKFilter/SALOME_CubeAxesActor2D.cxx +++ b/src/VTKFilter/SALOME_CubeAxesActor2D.cxx @@ -100,6 +100,27 @@ SALOME_CubeAxesActor2D::SALOME_CubeAxesActor2D() this->XAxis->SetProperty(this->GetProperty()); this->YAxis->SetProperty(this->GetProperty()); this->ZAxis->SetProperty(this->GetProperty()); + + if (this->AxisLabelTextProperty) + { + if (this->XAxis->GetLabelTextProperty()) + this->XAxis->GetLabelTextProperty()->ShallowCopy(this->AxisLabelTextProperty); + if (this->YAxis->GetLabelTextProperty()) + this->YAxis->GetLabelTextProperty()->ShallowCopy(this->AxisLabelTextProperty); + if (this->ZAxis->GetLabelTextProperty()) + this->ZAxis->GetLabelTextProperty()->ShallowCopy(this->AxisLabelTextProperty); + } + + if (this->AxisTitleTextProperty) + { + if (this->XAxis->GetLabelTextProperty()) + this->XAxis->GetTitleTextProperty()->ShallowCopy(this->AxisTitleTextProperty); + if (this->YAxis->GetLabelTextProperty()) + this->YAxis->GetTitleTextProperty()->ShallowCopy(this->AxisTitleTextProperty); + if (this->ZAxis->GetLabelTextProperty()) + this->ZAxis->GetTitleTextProperty()->ShallowCopy(this->AxisTitleTextProperty); + } + } //---------------------------------------------------------------------------- @@ -390,7 +411,7 @@ int SALOME_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport) double aTScale[3]; if(m_Transform.GetPointer() != NULL) - m_Transform->GetScale(aTScale); + m_Transform->GetMatrixScale(aTScale); this->XAxis->GetPositionCoordinate()->SetValue(xCoords[0], xCoords[1]); this->XAxis->GetPosition2Coordinate()->SetValue(xCoords[2], xCoords[3]); @@ -515,6 +536,7 @@ int SALOME_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport) this->wireActorYZ->GetProperty()->SetColor(color); this->wireActorXZ->GetProperty()->SetColor(color); + /* // Rebuid text props // Perform shallow copy here since each individual axis can be // accessed through the class API (i.e. each individual axis text prop @@ -560,7 +582,7 @@ int SALOME_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport) this->AxisTitleTextProperty); } } - + */ this->BuildTime.Modified(); //Render the axes diff --git a/src/VTKFilter/SALOME_Transform.cxx b/src/VTKFilter/SALOME_Transform.cxx index 7700215d1..3ca3b485e 100644 --- a/src/VTKFilter/SALOME_Transform.cxx +++ b/src/VTKFilter/SALOME_Transform.cxx @@ -31,19 +31,44 @@ #include #include +#ifdef _DEBUG_ +static int MYDEBUG = 0; +#else +static int MYDEBUG = 0; +#endif + using namespace std; vtkStandardNewMacro(SALOME_Transform); -void SALOME_Transform::SetScale(float theScaleX, float theScaleY, float theScaleZ){ +void SALOME_Transform::SetMatrixScale(double theScaleX, double theScaleY, double theScaleZ){ double aMatrix[16] = {theScaleX,0,0,0, 0,theScaleY,0,0, 0,0,theScaleZ,0, 0,0,0,1.0000000}; - vtkTransform::SetMatrix(aMatrix); + this->SetMatrix(aMatrix); + if(MYDEBUG) + cout << __FILE__ << "[" << __LINE__ << "]:" << endl + << "SetMatrixSize" << endl + << "\t theScaleX=" << theScaleX << " theScaleY=" << theScaleY << " theScaleZ=" << theScaleZ << endl; +} + +void SALOME_Transform::GetMatrixScale(double theScale[3]){ + vtkMatrix4x4 *aTMatrix=this->GetMatrix(); + const double aScaleX = aTMatrix->GetElement(0,0); + const double aScaleY = aTMatrix->GetElement(1,1); + const double aScaleZ = aTMatrix->GetElement(2,2); + theScale[0] = aScaleX; + theScale[1] = aScaleY; + theScale[2] = aScaleZ; + if(MYDEBUG) + cout << __FILE__ << "[" << __LINE__ << "]:" << endl + << "GetMatrixSize" << endl + << "\t theScaleX=" << theScale[0] << " theScaleY=" << theScale[1] << " theScaleZ=" << theScale[2] << endl; } int SALOME_Transform::IsIdentity(){ - float* aScale = GetScale(); + double aScale[3]; + this->GetMatrixScale(aScale); return (aScale[0] == 1.0 && aScale[1] == 1.0 && aScale[2] == 1.0); } diff --git a/src/VTKFilter/SALOME_Transform.h b/src/VTKFilter/SALOME_Transform.h index fe9231a13..a6c1b6f8c 100644 --- a/src/VTKFilter/SALOME_Transform.h +++ b/src/VTKFilter/SALOME_Transform.h @@ -36,7 +36,9 @@ class VTK_EXPORT SALOME_Transform : public vtkTransform{ static SALOME_Transform *New(); vtkTypeMacro(SALOME_Transform,vtkTransform); - void SetScale(float theScaleX, float theScaleY, float theScaleZ); + //void SetScale(float theScaleX, float theScaleY, float theScaleZ); + void SetMatrixScale(double theScaleX, double theScaleY, double theScaleZ); + void GetMatrixScale(double theScale[3]); int IsIdentity(); protected: -- 2.39.2