1 #include "wxMaracasRenderImageTransformation.h"
6 wxMaracasRenderImageTransformation::wxMaracasRenderImageTransformation(wxMaracasMultipleVolumeRendererManager* _vol, wxMaracasSurfaceRenderingManager* _surface1,
7 wxMaracasSurfaceRenderingManager* _surface2, wxMaracasSurfaceRenderingManager* _surface3, int id)
16 transformV = vtkTransform::New();
17 transformS1 = vtkTransform::New();
18 transformS2 = vtkTransform::New();
19 transformS3 = vtkTransform::New();
26 wxMaracasRenderImageTransformation::~wxMaracasRenderImageTransformation()
31 ** Transforms a volume by the given value for the X axis
33 void wxMaracasRenderImageTransformation::Translate(int x, int y, int z)
35 transformV->Identity();
36 transformS1->Identity();
37 transformS2->Identity();
38 transformS3->Identity();
40 transformV->Translate( x, y, z );
41 transformS1->Translate( x, y, z );
42 transformS2->Translate( x, y, z );
43 transformS3->Translate( x, y, z );
49 ** Rotates a volume by the given degree for the X axis
51 void wxMaracasRenderImageTransformation::Rotate(int x, int y, int z)
53 transformV->Identity();
54 transformS1->Identity();
55 transformS2->Identity();
56 transformS3->Identity();
58 transformV->RotateX( x );
59 transformS1->RotateX( x );
60 transformS2->RotateX( x );
61 transformS3->RotateX( x );
63 transformV->RotateY( y );
64 transformS1->RotateY( y );
65 transformS2->RotateY( y );
66 transformS3->RotateY( y );
68 transformV->RotateZ( z );
69 transformS1->RotateZ( z );
70 transformS2->RotateZ( z );
71 transformS3->RotateZ( z );
77 ** Scales a volume by the given value for the X axis
79 void wxMaracasRenderImageTransformation::Scale(int x, int y, int z)
81 float resultX = x/100.0;
82 float resultY = y/100.0;
83 float resultZ = z/100.0;
85 //printf("wxMaracasRenderImageManagementPanel::Rotate int:scaleX = %d \n",x);
86 //printf("wxMaracasRenderImageManagementPanel::Rotate int:scaleY = %d \n", y);
87 //printf("wxMaracasRenderImageManagementPanel::Rotate int:scaleZ = %d \n", z);
89 //printf("wxMaracasRenderImageManagementPanel::Rotate float:scaleX = %f \n", resultX);
90 //printf("wxMaracasRenderImageManagementPanel::Rotate float:scaleY = %f \n", resultY);
91 //printf("wxMaracasRenderImageManagementPanel::Rotate float:scaleZ = %f \n", resultZ);
93 transformV->Identity();
94 transformS1->Identity();
95 transformS2->Identity();
96 transformS3->Identity();
98 transformV->Scale( (x/100.0), (y/100.0), (z/100.0) );
99 transformS1->Scale( (x/100.0), (y/100.0), (z/100.0) );
100 transformS2->Scale( (x/100.0), (y/100.0), (z/100.0) );
101 transformS3->Scale( (x/100.0), (y/100.0), (z/100.0) );
107 ** Updates each Matrix
109 void wxMaracasRenderImageTransformation::Refresh()throw(char*)
111 transformV->Update();
112 transformS1->Update();
113 transformS2->Update();
114 transformS3->Update();
116 vol->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix());
117 //vol->getRenderer()->Render();
119 surface1->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix());
120 //surface1->getRenderer()->Render();
122 surface2->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix());
123 //surface2->getRenderer()->Render();
125 surface3->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix());
126 surface3->getRenderer()->Render();