//-------------------------------------------------------------------
void wxVtkMPR3DView::Configure(){
+
+
+ vtkImageData *imageData = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
_wxvtk3Dbaseview->Configure();
_wxvtkmpr3DviewCntrlPanel->UpdateControlPanel();
_pointWidget = vtkPointWidget::New();
_myCallback->SetVtkPointWidget(_pointWidget);
_pointWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() );
- _pointWidget->SetInput( GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData() );
+
+ if(imageData){
+ _pointWidget->SetInput( imageData );
+ }
_pointWidget->AllOff();
}
_planeWidget = vtkPlaneWidget::New();
_myCallback->SetVtkPlaneWidget(_planeWidget);
- _planeWidget->SetInput( GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData() );
+ if(imageData){
+ _planeWidget->SetInput( imageData );
+ }
_planeWidget->NormalToXAxisOn();
_planeWidget->SetResolution(50);
_planeWidget->SetRepresentationToOutline();
int dim[3];
- GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetDimensions(dim);
+ if(imageData){
+ imageData->GetDimensions(dim);
+ }else{
+ dim[0] = 0;
+ dim[1] = 0;
+ dim[2] = 0;
+ }
int px=(dim[0]/2);
int py=(dim[1]/2);
int pz=(dim[2]/2);
_planeWidget->Off();
_wxvtk3Dbaseview->GetRenderer()->AddActor( _contourPlaneActor );
- }else{
-
}
+
_planeWidget->GetPolyData(_vtkplane);
- vtkImageData *imageData = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
- _probe->SetSource( imageData );
- _contourMapper->SetScalarRange( imageData->GetScalarRange() );
+ if(imageData){
+ _probe->SetSource( imageData );
+ _contourMapper->SetScalarRange( imageData->GetScalarRange() );
+ }
ConfigureFreePlanes();
}
planeWidget->EnabledOff();
planeWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() );
vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
- planeWidget->SetInput( image );
+ int xMin = 0, xMax = 0, yMin = 0, yMax = 0, zMin = 0, zMax = 0;
+ double xSpacing = 0, ySpacing = 0, zSpacing = 0;
+ if(image){
+ planeWidget->SetInput( image );
+ image->GetExtent(xMin, xMax, yMin, yMax, zMin, zMax);
+ image->GetSpacing(xSpacing, ySpacing, zSpacing);
+ }
- int xMin, xMax, yMin, yMax, zMin, zMax;
- image->GetExtent(xMin, xMax, yMin, yMax, zMin, zMax);
- double xSpacing, ySpacing, zSpacing;
- image->GetSpacing(xSpacing, ySpacing, zSpacing);
+
+
+
if (activationkey=='x')
{
void wxVtkMPR3DView::RefreshView() // virtual
{
double spc[3];
- this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc);
+ vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
+
+ if(image){
+ image->GetSpacing(spc);
+ }else{
+ spc[0] = 0;
+ spc[1] = 0;
+ spc[2] = 0;
+ }
+ //this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc);
//double nx=1,ny=0,nz=0; // JPRx
Refresh();