#include "vtkInteractorStyleBaseView.h"
#include "vtkCellArray.h"
+#ifdef WIN32
+#include <mathdefs.h>
+using namespace gtm;
+#endif
wxVtkMPR2DView::wxVtkMPR2DView( wxWindow *parent, int direction)
:wxVtk2DBaseView(parent)
if(_lineAActor==NULL){
_lineAActor = vtkActor::New();
_lineAActor->GetProperty()->SetDiffuseColor(1,0,0);
- _lineAActor->GetProperty()->SetLineWidth(2);
+ _lineAActor->GetProperty()->SetLineWidth(0.5);
_ptsA = vtkPoints::New();
_ptsA->SetNumberOfPoints(2);
if(_lineBActor==NULL){
_lineBActor = vtkActor::New();
_lineBActor->GetProperty()->SetDiffuseColor(1,0,0);
- _lineBActor->GetProperty()->SetLineWidth(2);
+ _lineBActor->GetProperty()->SetLineWidth(0.5);
_lineBMapper = vtkPolyDataMapper::New();
_lineBActor->SetMapper(_lineBMapper);
vtkCamera *camera =_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->GetActiveCamera();
//EED 17Avril2009
- /*
- if (_direction==0) {
- camera->SetViewUp ( 0 , -1 , 0 );
- camera->SetPosition ( -10000,(y1+y2)/2 , (z1+z2)/2 );
+ //EED 21 mars 2012 FLIP problem ..PLOP..
+
+ if (_direction==0) { // YZ
+ camera->SetViewUp ( 0 , 0 , 1 );
+ camera->SetPosition ( 10000,(y1+y2)/2 , (z1+z2)/2 );
camera->SetFocalPoint ( 0 , (y1+y2)/2 , (z1+z2)/2 );
camera->SetParallelScale( (z2-z1)/3.0 );
}
- if (_direction==1) {
- camera->SetViewUp ( 0 , 0 , -1 );
- camera->SetPosition ((x1+x2)/2 , 10000 , (z1+z2)/2 );
+ if (_direction==1) { // XZ
+ camera->SetViewUp ( 0 , 0 , 1 );
+ camera->SetPosition ((x1+x2)/2 , -10000 , (z1+z2)/2 );
camera->SetFocalPoint ((x1+x2)/2 , 0 , (z1+z2)/2 );
camera->SetParallelScale( (x2-x1)/3.0 );
}
- if (_direction==2) {
+ if (_direction==2) { // XY
camera->SetViewUp ( 0 , -1 , 0 );
camera->SetPosition ((x1+x2)/2 , (y1+y2)/2 , -10000);
camera->SetFocalPoint ((x1+x2)/2 , (y1+y2)/2 , 0 );
camera->SetParallelScale( (x2-x1)/3.0 );
}
- */
+/*
if (_direction==0) { // YZ
camera->SetViewUp ( 0 , 1 , 0 );
camera->SetPosition ( 10000,(y1+y2)/2 , (z1+z2)/2 );
camera->SetFocalPoint ((x1+x2)/2 , (y1+y2)/2 , 0 );
camera->SetParallelScale( (x2-x1)/3.0 );
}
-
+*/
// _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow (160);
// _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel (800);
int xx = 0, yy = 0, zz = 0;
double *spc = 0;
double *origin = 0;
-
+
+ double xx1,yy1,zz1,xx2,yy2,zz2;
+
//GetVtkmprbasedata()->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
y2 += origin[1];
z1 += origin[2];
z2 += origin[2];
+
+ xx1 = x1*spc[0];
+ yy1 = y1*spc[1];
+ zz1 = z1*spc[2];
+
+ xx2 = x2*spc[0];
+ yy2 = y2*spc[1];
+ zz2 = z2*spc[2];
+
x1 = (int)(x1*spc[0]);
y1 = (int)(y1*spc[1]);
z1 = (int)(z1*spc[2]);
-
- x2 = (int)(x2*spc[0]);
- y2 = (int)(y2*spc[1]);
- z2 = (int)(z2*spc[2]);
+
+ x2 = (int)(x2*spc[0]);
+ y2 = (int)(y2*spc[1]);
+ z2 = (int)(z2*spc[2]);
xx = (int)(GetVtkmprbasedata()->GetX());
yy = (int)(GetVtkmprbasedata()->GetY());
x = round(xx*spc[0]);
y = round(yy*spc[1]);
z = round(zz*spc[2]);
-
+
if ((xx!=_backX) || (yy!=_backY) || (zz!=_backZ)) {
if (_direction==0) { // YZ
if(_imageViewer2XYZ)
+ {
_imageViewer2XYZ->SetXSlice( (int)(GetVtkmprbasedata()->GetX()) );
- _ptsA->SetPoint(0, x2, y1 , z );
- _ptsA->SetPoint(1, x2, y2 , z );
- _ptsB->SetPoint(0, x2, y , z1);
- _ptsB->SetPoint(1, x2, y , z2);
+ }
+//EED 21 mars 2012 FLIP probleme ..PLOP..
+ //_ptsA->SetPoint(0, x2, y1 , z );
+ //_ptsA->SetPoint(1, x2, y2 , z );
+ //_ptsB->SetPoint(0, x2, y , z1);
+ //_ptsB->SetPoint(1, x2, y , z2);
+ _ptsA->SetPoint(0, xx2, yy1 , z );
+ _ptsA->SetPoint(1, xx2, yy2 , z );
+ _ptsB->SetPoint(0, xx2, y , zz1);
+ _ptsB->SetPoint(1, xx2, y , zz2);
}
if (_direction==1) { // XZ
if(_imageViewer2XYZ)
+ {
_imageViewer2XYZ->SetYSlice( (int)(GetVtkmprbasedata()->GetY()) );
- _ptsA->SetPoint(0, x1 , y2 , z );
- _ptsA->SetPoint(1, x2 , y2 , z );
- _ptsB->SetPoint(0, x , y2 , z1);
- _ptsB->SetPoint(1, x , y2 , z2);
+ }
+//EED 21 mars 2012 FLIP probleme ..PLOP..
+ //_ptsA->SetPoint(0, x1 , y2 , z );
+ //_ptsA->SetPoint(1, x2 , y2 , z );
+ //_ptsB->SetPoint(0, x , y2 , z1);
+ //_ptsB->SetPoint(1, x , y2 , z2);
+ _ptsA->SetPoint(0, xx1 , y1 , z );
+ _ptsA->SetPoint(1, xx2 , y1 , z );
+ _ptsB->SetPoint(0, x , y1 , zz1);
+ _ptsB->SetPoint(1, x , y1 , zz2);
}
if (_direction==2) { // XY
if(_imageViewer2XYZ)
+ {
_imageViewer2XYZ->SetZSlice( (int)(GetVtkmprbasedata()->GetZ()) );
+ }
// _ptsA->SetPoint(0, x1 , y , -z2 );
// _ptsA->SetPoint(1, x2 , y , -z2 );
// _ptsB->SetPoint(0, x , y1, -z2 );
// _ptsB->SetPoint(1, x , y2, -z2 );
- _ptsA->SetPoint(0, x1 , y , z2 );
- _ptsA->SetPoint(1, x2 , y , z2 );
- _ptsB->SetPoint(0, x , y1, z2 );
- _ptsB->SetPoint(1, x , y2, z2 );
+
+//EED 21 mars 2012 FLIP probleme ..PLOP..
+ //_ptsA->SetPoint(0, x1 , y , z2 );
+ //_ptsA->SetPoint(1, x2 , y , z2 );
+ //_ptsB->SetPoint(0, x , y1, z2 );
+ //_ptsB->SetPoint(1, x , y2, z2 );
+
+ _ptsA->SetPoint(0, xx1 , y , z1 );
+ _ptsA->SetPoint(1, xx2 , y , z1 );
+ _ptsB->SetPoint(0, x , yy1, z1 );
+ _ptsB->SetPoint(1, x , yy2, z1 );
+
+
}
_backX=xx;
_backY=yy;
}
+//-------------------------------------------------------------------
+int wxVtkMPR2DView::GetDirection() // virtual
+{
+ return _direction;
+}
+
//-------------------------------------------------------------------
//-------------------------------------------------------------------