//-------------------------------------------------------------------
wxVtkMPR2DView::~wxVtkMPR2DView()
{
- if (_ptsA!=NULL) { _ptsA -> Delete(); }
- if (_lineAActor!=NULL) { _lineAActor -> Delete(); }
- if (_lineAMapper!=NULL) { _lineAMapper -> Delete(); }
- if (_pdA!=NULL) { _pdA -> Delete(); }
- if (_ptsB!=NULL) { _ptsB -> Delete(); }
- if (_lineBActor!=NULL) { _lineBActor -> Delete(); }
- if (_lineBMapper!=NULL) { _lineBMapper -> Delete(); }
- if (_pdB!=NULL) { _pdB -> Delete(); }
+ if (_ptsA!=NULL) { _ptsA->Delete(); }
+ if (_lineAActor!=NULL) { _lineAActor->Delete(); }
+ if (_lineAMapper!=NULL) { _lineAMapper->Delete(); }
+ if (_pdA!=NULL) { _pdA->Delete(); }
+ if (_ptsB!=NULL) { _ptsB->Delete(); }
+ if (_lineBActor!=NULL) { _lineBActor->Delete(); }
+ if (_lineBMapper!=NULL) { _lineBMapper->Delete(); }
+ if (_pdB!=NULL) { _pdB->Delete(); }
}
//-------------------------------------------------------------------
vtkMPRBaseData *wxVtkMPR2DView::GetVtkmprbasedata()
((vtkInteractorStyleBaseView*)GetInteractorStyleBaseView())->AddInteractorStyleMaracas( _interactorstylemprview );
}
- if(img!=NULL){
+ if(img!=NULL)
+ {
double* origin = img->GetOrigin();
img->GetExtent(x1,x2,y1,y2,z1,z2);
img->GetSpacing(spc);
_ptsA->SetPoint(1, 1000 , 1000 , 1000 );
_pdA = vtkPolyData::New();
_lineAMapper = vtkPolyDataMapper::New();
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
_lineAMapper->SetInput(_pdA);
+#else
+ _lineAMapper->SetInputData(_pdA);
+#endif
+
_lineAMapper->ImmediateModeRenderingOn();
_lineAActor->SetMapper(_lineAMapper);
}
// Axe B
- if(_lineBActor==NULL){
+ if(_lineBActor==NULL)
+ {
_lineBActor = vtkActor::New();
_lineBActor->GetProperty()->SetDiffuseColor(1,0,0);
_lineBActor->GetProperty()->SetLineWidth(0.5);
_pdB->SetPoints( _ptsB );
_pdB->SetLines( linesB );
linesB->Delete(); //do not delete lines ??
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
_lineBMapper->SetInput(_pdB);
+#else
+ _lineBMapper->SetInputData(_pdB);
+#endif
+
_lineBMapper->ImmediateModeRenderingOn();
- if(_imageViewer2XYZ){
+ if(_imageViewer2XYZ)
+ {
_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineAActor );
_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineBActor );
vtkCamera *camera =_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->GetActiveCamera();
//EED 17Avril2009
//EED 21 mars 2012 FLIP problem ..PLOP..
- if (_direction==0) { // YZ
+ 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) { // XZ
+ 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) { // XY
+ 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 );
void wxVtkMPR2DView::SetVisibleAxis(bool ok)
{
- if (ok!=_visibleAxis)
+ if (ok != _visibleAxis)
{
- _visibleAxis=ok;
+ _visibleAxis = ok;
if (_visibleAxis==true)
{
_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineAActor );
{
_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->RemoveActor( _lineAActor );
_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->RemoveActor( _lineBActor );
- }
+ } // if visible
+ } // ok
+}
- }
+
+//-------------------------------------------------------------------
+void wxVtkMPR2DView::ResetBackXYZ()
+{
+ _backX=-9999;
+ _backY=-9999;
+ _backZ=-9999;
}
+
//-------------------------------------------------------------------
void wxVtkMPR2DView::Refresh()
{
//wxVtk2DBaseView::Refresh();
int x1 = 0,x2 = 0,y1 = 0,y2 = 0,z1 = 0,z2 = 0;
-
//EED 02/08/2013
// int x = 0, y = 0, z = 0;
- double x = 0, y = 0, z = 0;
-
- int xx = 0, yy = 0, zz = 0;
+ double x = 0, y = 0, z = 0;
+ int xx = 0, yy = 0, zz = 0;
double *spc = 0;
double *origin = 0;
-
double xx1,yy1,zz1,xx2,yy2,zz2;
-
+ bool fixAxis2D;
+ double opacityAxis;
vtkImageData* img = GetVtkmprbasedata()->GetImageData();
- if(img!=NULL){
+ if(img!=NULL)
+ {
origin = img->GetOrigin();
img->GetExtent(x1,x2,y1,y2,z1,z2);
spc = img->GetSpacing();
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]);
-
+ 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]);
-
- xx = (int)(GetVtkmprbasedata()->GetX());
- yy = (int)(GetVtkmprbasedata()->GetY());
- zz = (int)(GetVtkmprbasedata()->GetZ());
-
-//EED 02/08/2013
-// x = round(xx*spc[0]);
-// y = round(yy*spc[1]);
-// z = round(zz*spc[2]);
-
- x = xx*spc[0];
- y = yy*spc[1];
- z = zz*spc[2];
-
-
- if ((xx!=_backX) || (yy!=_backY) || (zz!=_backZ)) {
-
+ xx = (int)(GetVtkmprbasedata()->GetX());
+ yy = (int)(GetVtkmprbasedata()->GetY());
+ zz = (int)(GetVtkmprbasedata()->GetZ());
+ x = xx*spc[0];
+ y = yy*spc[1];
+ z = zz*spc[2];
+ fixAxis2D = GetVtkmprbasedata()->GetFixAxis2D();
+ opacityAxis = GetVtkmprbasedata()->GetOpacityAxis();
+ if ((xx!=_backX) || (yy!=_backY) || (zz!=_backZ) || (fixAxis2D!=_backFixAxis2D) || (opacityAxis!=_backOpacityAxis))
+ {
+ double position[3];
+ double focalpoint[3];
+ GetRenderer()->GetActiveCamera()->GetPosition(position);
+ GetRenderer()->GetActiveCamera()->GetFocalPoint(focalpoint);
if (_direction==0) { // YZ
if(_imageViewer2XYZ)
{
_ptsA->SetPoint(1, xx2, yy2 , z );
_ptsB->SetPoint(0, xx2, y , zz1);
_ptsB->SetPoint(1, xx2, y , zz2);
+ position[1] = y;
+ position[2] = z;
+ focalpoint[1] = y;
+ focalpoint[2] = z;
}
if (_direction==1) { // XZ
if(_imageViewer2XYZ)
_ptsA->SetPoint(1, xx2 , y1 , z );
_ptsB->SetPoint(0, x , y1 , zz1);
_ptsB->SetPoint(1, x , y1 , zz2);
+ position[0] = x;
+ position[2] = z;
+ focalpoint[0] = x;
+ focalpoint[2] = z;
}
if (_direction==2) { // XY
if(_imageViewer2XYZ)
//_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;
- _backZ=zz;
- }
+ position[0] = x;
+ position[1] = y;
+ focalpoint[0] = x;
+ focalpoint[1] = y;
+ } // if back
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+ // ..
+#else
+ _ptsA->Modified();
+ _ptsB->Modified();
+#endif
+ if (fixAxis2D == true)
+ {
+ GetRenderer()->GetActiveCamera()->SetPosition(position);
+ GetRenderer()->GetActiveCamera()->SetFocalPoint(focalpoint);
+ } // if GetFixAxis2D
+ _lineAActor->GetProperty()->SetOpacity( opacityAxis );
+ _lineBActor->GetProperty()->SetOpacity( opacityAxis );
+ _backX = xx;
+ _backY = yy;
+ _backZ = zz;
+ _backFixAxis2D = fixAxis2D;
+ _backOpacityAxis= opacityAxis;
+ } // if image
//EED 2016/02/19
vtkImageActor *imageactor = _imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor();
imageactor->SetInterpolate( GetVtkBaseData()->GetInterpolate() );
-
//EED 01nov2012
UpdateColorWindowLevel();
+//EED 05juin2019
+ UpdateCameraParallelScale();
wxVtkBaseView::Refresh();
}
}
+
//-------------------------------------------------------------------
int wxVtkMPR2DView::GetActualSlice() // virtual
{