#include <wxVtkMPR3DView.h>
Public Member Functions | |
wxVtkMPR3DView (wxVtk3DBaseView *wxvtk3Dbaseview) | |
virtual | ~wxVtkMPR3DView () |
void | VisibleImageActor (int idPosition, bool visible) |
void | VisiblePointWidget (bool visible) |
void | VisiblePlaneWidget (bool visible) |
void | SetVisibleTissue (int idTissue, bool visible) |
bool | GetVisibleTissue (int idTissue) |
virtual void | Refresh () |
virtual void | RefreshView () |
virtual void | Configure () |
void | SetVtkMPR3DDataViewer (vtkMPR3DDataViewer *vtkmpr3Ddataviewer) |
wxPanel * | CreateControlPanel (wxWindow *parent) |
vtkMPR3DDataViewer * | GetVtkMPR3DDataViewer () |
wxVtk3DBaseView * | GetWxvtk3Dbaseview () throw (char*) |
void | InitOrientationPointWidget () |
void | TestLoic1 () |
void | TestLoic2 () |
void | RemoveActor (vtkActor *actor) |
void | ResetCamera (int *ext=NULL, double *origin=NULL, double *spc=NULL) |
Private Attributes | |
wxVtk3DBaseView * | _wxvtk3Dbaseview |
vtkMPR3DDataViewer * | _vtkmpr3Ddataviewer |
wxVtkMPR3DViewCntrlPanel * | _wxvtkmpr3DviewCntrlPanel |
vtkPolyData * | _vtkplane |
vtkActor * | _contourPlaneActor |
vtkPlaneWidget * | _planeWidget |
vtkPointWidget * | _pointWidget |
vtkProbeFilter * | _probe |
vtkPolyDataMapper * | _contourMapper |
Definition at line 16 of file wxVtkMPR3DView.h.
wxVtkMPR3DView::wxVtkMPR3DView | ( | wxVtk3DBaseView * | wxvtk3Dbaseview | ) |
Definition at line 17 of file wxVtkMPR3DView.cxx.
References _contourMapper, _planeWidget, _pointWidget, _probe, _vtkmpr3Ddataviewer, _vtkplane, _wxvtk3Dbaseview, and _wxvtkmpr3DviewCntrlPanel.
00018 { 00019 _wxvtk3Dbaseview = wxvtk3Dbaseview; 00020 _vtkmpr3Ddataviewer = NULL; 00021 _wxvtkmpr3DviewCntrlPanel = NULL; 00022 //_myCallback=NULL; 00023 _pointWidget=NULL; 00024 _planeWidget=NULL; 00025 _vtkplane=NULL; 00026 _probe=NULL; 00027 _contourMapper=NULL; 00028 }
wxVtkMPR3DView::~wxVtkMPR3DView | ( | ) | [virtual] |
Definition at line 184 of file wxVtkMPR3DView.cxx.
References _contourMapper, _contourPlaneActor, _planeWidget, _pointWidget, _probe, and _vtkplane.
00185 { 00186 if(_pointWidget!=NULL){ 00187 _pointWidget->Delete(); 00188 } 00189 if(_planeWidget!=NULL){ 00190 _planeWidget->Delete(); 00191 } 00192 00193 if(_vtkplane!=NULL){ 00194 _vtkplane->Delete(); 00195 _probe->Delete(); 00196 _contourMapper->Delete(); 00197 _contourPlaneActor->Delete(); 00198 } 00199 00200 }
void wxVtkMPR3DView::Configure | ( | ) | [virtual] |
Definition at line 62 of file wxVtkMPR3DView.cxx.
References _contourMapper, _contourPlaneActor, _planeWidget, _pointWidget, _probe, _vtkmpr3Ddataviewer, _vtkplane, _wxvtk3Dbaseview, _wxvtkmpr3DviewCntrlPanel, wxVtk3DBaseView::Configure(), wxVtk3DBaseView::GetCamera(), vtkBaseData::GetImageData(), vtkMPR3DDataViewer::GetOutlineActor(), wxVtk3DBaseView::GetRenderer(), wxVtk3DBaseView::GetRenWin(), GetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::GetVtkMPRBaseData(), GetWxvtk3Dbaseview(), vtkmyPWCallback_3DPointWidget::New(), ResetCamera(), vtkmyPWCallback_3DPointWidget::SetVtkPlaneWidget(), vtkmyPWCallback_3DPointWidget::SetVtkPointWidget(), vtkmyPWCallback_3DPointWidget::SetWxVtkMPR3DView(), and wxVtkMPR3DViewCntrlPanel::UpdateControlPanel().
00062 { 00063 00064 00065 _wxvtk3Dbaseview->Configure(); 00066 _wxvtkmpr3DviewCntrlPanel->UpdateControlPanel(); 00067 00068 //EED 27 Mai 2009 00069 // _wxvtk3Dbaseview->GetRenderer()->Clear(); 00070 00071 // Actors are added to the renderer. 00072 vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor(); 00073 _wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor ); 00074 // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(0) ); // _saggital 00075 // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(1) ); // _axial 00076 // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(2) ); // _coronal 00077 00078 00079 // An initial camera view is created. The Dolly() method moves 00080 // the camera towards the FocalPoint, thereby enlarging the image. 00081 _wxvtk3Dbaseview->GetRenderer()->SetActiveCamera(_wxvtk3Dbaseview->GetCamera()); 00082 this->ResetCamera(); 00083 00084 00085 // Set a background color for the renderer and set the size of the 00086 // render window (expressed in pixels). 00087 _wxvtk3Dbaseview->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 ); 00088 _wxvtk3Dbaseview->GetRenWin()->SetSize(400, 400); 00089 00090 // Note that when camera movement occurs (as it does in the Dolly() 00091 // method), the clipping planes often need adjusting. Clipping planes 00092 // consist of two planes: near and far along the view direction. The 00093 // near plane clips out objects in front of the plane; the far plane 00094 // clips out objects behind the plane. This way only what is drawn 00095 // between the planes is actually rendered. 00096 _wxvtk3Dbaseview->GetRenderer()->ResetCameraClippingRange(); 00097 00098 00099 // vtkPointWidget 00100 //if(_myCallback!=NULL){ 00101 //_myCallback->Delete(); 00102 00103 //} 00104 vtkmyPWCallback_3DPointWidget *_myCallback = vtkmyPWCallback_3DPointWidget::New(); 00105 _myCallback->SetWxVtkMPR3DView(this); 00106 00107 if(_pointWidget!=NULL){ 00108 _pointWidget->Delete(); 00109 } 00110 _pointWidget = vtkPointWidget::New(); 00111 _myCallback->SetVtkPointWidget(_pointWidget); 00112 _pointWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); 00113 _pointWidget->SetInput( GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData() ); 00114 00115 _pointWidget->AllOff(); 00116 00117 _pointWidget->PlaceWidget(); 00118 // _pointWidget->SetPosition( x,y,z ); 00119 00120 //EED01 29Mars2009 00121 // MACOS probleme vtk-window out of wx-window 00122 // _pointWidget->On(); 00123 00124 _pointWidget->AddObserver(vtkCommand::InteractionEvent,_myCallback); 00125 00126 00127 // PlaneWidget 00128 if(_planeWidget!=NULL){ 00129 _planeWidget->Delete(); 00130 } 00131 _planeWidget = vtkPlaneWidget::New(); 00132 _myCallback->SetVtkPlaneWidget(_planeWidget); 00133 _planeWidget->SetInput( GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData() ); 00134 _planeWidget->NormalToXAxisOn(); 00135 _planeWidget->SetResolution(50); 00136 _planeWidget->SetRepresentationToOutline(); 00137 int dim[3]; 00138 GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetDimensions(dim); 00139 int px=(dim[0]/2); 00140 int py=(dim[1]/2); 00141 int pz=(dim[2]/2); 00142 int dd=20; 00143 _planeWidget->PlaceWidget( px-dd , px+dd , py-dd , py+dd , pz-dd , pz+dd ); 00144 00145 00146 if(_vtkplane==NULL){ 00147 _vtkplane = vtkPolyData::New(); 00148 00149 _probe = vtkProbeFilter::New(); 00150 _probe->SetInput(_vtkplane); 00151 00152 _contourMapper = vtkPolyDataMapper::New(); 00153 00154 _contourMapper->SetInput( _probe->GetPolyDataOutput() ); 00155 00156 _contourPlaneActor = vtkActor::New(); 00157 _contourPlaneActor->SetMapper(_contourMapper); 00158 00159 _contourPlaneActor->VisibilityOff(); 00160 00161 _planeWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); 00162 _planeWidget->AddObserver(vtkCommand::InteractionEvent,_myCallback); 00163 00164 _planeWidget->Off(); 00165 _wxvtk3Dbaseview->GetRenderer()->AddActor( _contourPlaneActor ); 00166 00167 }else{ 00168 00169 } 00170 _planeWidget->GetPolyData(_vtkplane); 00171 00172 00173 vtkImageData *imageData = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00174 _probe->SetSource( imageData ); 00175 00176 00177 _contourMapper->SetScalarRange( imageData->GetScalarRange() ); 00178 00179 00180 00181 00182 }
wxPanel * wxVtkMPR3DView::CreateControlPanel | ( | wxWindow * | parent | ) |
Definition at line 244 of file wxVtkMPR3DView.cxx.
References _wxvtkmpr3DviewCntrlPanel.
Referenced by wxManualRegistration3D::AddPanelControl_B(), wxManualRegistration3D::Create3DView(), wxManualTree_MPRWidget::Create3DViewContour(), wxSegmentationFM3DWidget::Create3DViewContour(), wxManualSegmentation_MPRWidget::Create3DViewContour(), wxMPRWidget::CreateMPRPanel4View(), wxMPRWidget::CreateView(), and wxMaracas_ViewerWidget::wxMaracas_ViewerWidget().
00245 { 00246 _wxvtkmpr3DviewCntrlPanel = new wxVtkMPR3DViewCntrlPanel(parent,this); 00247 return _wxvtkmpr3DviewCntrlPanel; 00248 }
bool wxVtkMPR3DView::GetVisibleTissue | ( | int | idTissue | ) |
vtkMPR3DDataViewer * wxVtkMPR3DView::GetVtkMPR3DDataViewer | ( | ) |
Definition at line 250 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer.
Referenced by Configure(), wxManualTree_MPRWidget::ConfigureContour(), vtkmyPWCallback_3DPointWidget::Execute(), wxVtkMPR3DViewCntrlPanel::OnEditColorTable(), wxVtkMPR3DViewCntrlPanel::OnPositionX(), wxVtkMPR3DViewCntrlPanel::OnPositionY(), wxVtkMPR3DViewCntrlPanel::OnPositionZ(), wxManualRegistration3D::OnTracking(), wxVtkMPR3DViewCntrlPanel::Refresh(), RefreshView(), wxManualRegistration3D::RefreshView(), vtkInteractorStyle3DView::SelectMarchibCubePoint(), TestLoic1(), TestLoic2(), and wxVtkMPR3DViewCntrlPanel::UpdateControlPanel().
00251 { 00252 return _vtkmpr3Ddataviewer; 00253 }
wxVtk3DBaseView * wxVtkMPR3DView::GetWxvtk3Dbaseview | ( | ) | throw (char*) |
Definition at line 255 of file wxVtkMPR3DView.cxx.
References _wxvtk3Dbaseview.
Referenced by Configure(), wxSTLWidget_02::ConfigureSTL(), wxSTLWidget_03::ConfigureSTL(), vtkmyPWCallback_3DPointWidget::Execute(), wxSTLWidget_03::ExtractSurface(), wxSTLWidget_02::ExtractTree2_JF(), wxManualSegmentation_MPRWidget::GetRenderer(), wxSegmentationFM3DWidget::OnBtnSegment(), wxSTLWidget_02::OnBtnSTLFileLoad(), wxSTLWidget_03::OnBtnSTLFileLoad(), wxSegmentationFM3DWidget::OnBtnUndo(), wxSTLWidget_02::OnJoinRegions(), wxVtkMPR3DViewCntrlPanel::OnPositionX(), wxVtkMPR3DViewCntrlPanel::OnPositionY(), wxVtkMPR3DViewCntrlPanel::OnPositionZ(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(), wxSTLWidget_02::Reset_vtk_STLFile(), wxSTLWidget_03::Reset_vtk_STLFile(), wxSTLWidget_02::ResetTree2_JF(), wxSTLWidget_03::ResetTree2_JF(), and vtkInteractorStyle3DView::SelectMarchibCubePoint().
00256 { 00257 if(_wxvtk3Dbaseview==NULL){ 00258 throw "wxVtk3DBaseView* wxVtkMPR3DView::GetWxvtk3Dbaseview() _wxvtk3Dbaseview=NULL"; 00259 } 00260 return _wxvtk3Dbaseview; 00261 }
void wxVtkMPR3DView::InitOrientationPointWidget | ( | ) |
Definition at line 309 of file wxVtkMPR3DView.cxx.
References _planeWidget.
Referenced by wxManualRegistration3D::OnTracking().
00310 { 00311 this->_planeWidget->SetNormal(1,0,0); 00312 }
void wxVtkMPR3DView::Refresh | ( | ) | [virtual] |
Definition at line 203 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer, _wxvtkmpr3DviewCntrlPanel, and wxVtkMPR3DViewCntrlPanel::Refresh().
Referenced by HistogramDialog::OnRefreshBtn(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(), and RefreshView().
00204 { 00205 _vtkmpr3Ddataviewer -> Refresh(); 00206 if (_wxvtkmpr3DviewCntrlPanel!=NULL) 00207 { 00208 _wxvtkmpr3DviewCntrlPanel->Refresh(); 00209 } 00210 00211 }
void wxVtkMPR3DView::RefreshView | ( | ) | [virtual] |
Definition at line 213 of file wxVtkMPR3DView.cxx.
References _planeWidget, _pointWidget, _vtkplane, vtkBaseData::GetImageData(), vtkMPRBaseData::GetTransformOrientation(), GetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::GetVtkMPRBaseData(), vtkMPRBaseData::GetX(), vtkMPRBaseData::GetY(), vtkBaseData::GetZ(), and Refresh().
Referenced by wxVtkMPR3DViewCntrlPanel::OnPositionX(), wxVtkMPR3DViewCntrlPanel::OnPositionY(), and wxVtkMPR3DViewCntrlPanel::OnPositionZ().
00214 { 00215 double spc[3]; 00216 this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc); 00217 00218 //double nx=1,ny=0,nz=0; // JPRx 00219 Refresh(); 00220 double x=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetX(); 00221 double y=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetY(); 00222 double z=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetZ(); 00223 00224 x=x*spc[0]; 00225 y=y*spc[1]; 00226 z=z*spc[2]; 00227 00228 _pointWidget->SetPosition( x,y,z ); 00229 00230 00231 double in[3]; 00232 double normal[3]; 00233 vtkTransform *transform = GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetTransformOrientation(); 00234 in[0]=1; in[1]=0; in[2]=0; 00235 transform->TransformPoint(in,normal); 00236 _planeWidget->SetNormal( normal[0],normal[1],normal[2] ); 00237 00238 00239 _planeWidget->SetCenter( x,y,z ); 00240 _planeWidget->UpdatePlacement(); 00241 _planeWidget->GetPolyData(_vtkplane); 00242 }
void wxVtkMPR3DView::RemoveActor | ( | vtkActor * | actor | ) |
Definition at line 29 of file wxVtkMPR3DView.cxx.
References _wxvtk3Dbaseview, and wxVtk3DBaseView::GetRenderer().
00029 { 00030 00031 _wxvtk3Dbaseview->GetRenderer()->RemoveActor(actor); 00032 00033 00034 }
void wxVtkMPR3DView::ResetCamera | ( | int * | ext = NULL , |
|
double * | origin = NULL , |
|||
double * | spc = NULL | |||
) |
Definition at line 35 of file wxVtkMPR3DView.cxx.
References _wxvtk3Dbaseview, wxVtk3DBaseView::GetCamera(), and wxVtk3DBaseView::GetRenderer().
Referenced by Configure(), and wxMaracas_ViewerWidget::ConfigureVTK().
00035 { 00036 if(ext == NULL){ 00037 00038 _wxvtk3Dbaseview->GetRenderer()->ResetCamera (); 00039 _wxvtk3Dbaseview->GetCamera()->Dolly(1.5); 00040 }else{ 00041 /*double x = (spc[0])*(origin[0]+(((double)ext[1]-(double)ext[0])/2.0)); 00042 double y = (spc[1])*(origin[1]+(double)ext[3]); 00043 double z = (spc[2])*(origin[2]+(((double)ext[5]-(double)ext[4])/2.0));*/ 00044 /*double x0=(spc[0])*((double)ext[0]+origin[0]); 00045 double x1=(spc[0])*((double)ext[1]+origin[0]); 00046 double y0=(spc[1])*((double)ext[2]+origin[1]); 00047 double y1=(spc[1])*((double)ext[3]+origin[1]); 00048 double z0=(spc[2])*((double)ext[4]+origin[2]); 00049 double z1=(spc[2])*((double)ext[5]+origin[2]);*/ 00050 double x0=(spc[0])*((double)ext[0]); 00051 double x1=(spc[0])*((double)ext[1]); 00052 double y0=(spc[1])*((double)ext[2]); 00053 double y1=(spc[1])*((double)ext[3]); 00054 double z0=(spc[2])*((double)ext[4]); 00055 double z1=(spc[2])*((double)ext[5]); 00056 00057 _wxvtk3Dbaseview->GetRenderer()->ResetCamera(x0,x1,y0,y1,z0,z1); 00058 //_wxvtk3Dbaseview->GetCamera()->SetPosition(x,y,z); 00059 _wxvtk3Dbaseview->GetCamera()->Dolly(1.5); 00060 } 00061 }
void wxVtkMPR3DView::SetVisibleTissue | ( | int | idTissue, | |
bool | visible | |||
) |
void wxVtkMPR3DView::SetVtkMPR3DDataViewer | ( | vtkMPR3DDataViewer * | vtkmpr3Ddataviewer | ) |
Definition at line 303 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer.
Referenced by wxManualRegistration3D::AddPanelControl_B(), wxManualRegistration3D::Create3DView(), wxManualTree_MPRWidget::Create3DViewContour(), wxSegmentationFM3DWidget::Create3DViewContour(), wxManualSegmentation_MPRWidget::Create3DViewContour(), wxMPRWidget::CreateMPRPanel4View(), wxMPRWidget::CreateView(), and wxMaracas_ViewerWidget::wxMaracas_ViewerWidget().
00304 { 00305 _vtkmpr3Ddataviewer = vtkmpr3Ddataviewer; 00306 }
void wxVtkMPR3DView::TestLoic1 | ( | ) |
Definition at line 319 of file wxVtkMPR3DView.cxx.
References _planeWidget, vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::GetVtkMPRBaseData().
Referenced by wxManualRegistration3D::OnTracking().
00320 { 00321 00322 int sizeIma = 128; 00323 double dimIma = sizeIma*2; 00324 00325 vtkImageData *vtkimagedata = this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00326 00327 double spc[3]; 00328 vtkimagedata->GetSpacing(spc); 00329 00330 vtkimagedata->Update(); 00331 00332 00333 double p[3], n[3]; 00334 this->_planeWidget->GetOrigin(p); 00335 this->_planeWidget->GetNormal(n); 00336 00337 00338 00339 vtkPlaneSource* pSource = vtkPlaneSource::New( ); 00340 pSource->SetResolution( sizeIma - 1, sizeIma - 1 ); 00341 pSource->SetOrigin( p[ 0 ], p[ 1 ], p[ 2 ] ); 00342 pSource->SetPoint1( p[ 0 ] + dimIma - 1.0, p[ 1 ], p[ 2 ] ); 00343 pSource->SetPoint2( p[ 0 ], p[ 1 ]+ dimIma - 1.0 , p[ 2 ] ); 00344 pSource->Update( ); 00345 pSource->SetCenter( p[ 0 ], p[ 1 ], p[ 2 ] ); 00346 pSource->SetNormal( n[ 0 ], n[ 1 ], n[ 2 ] ); 00347 pSource->Update( ); 00348 00349 vtkProbeFilter* slices = vtkProbeFilter::New(); 00350 slices->SetInput( ( vtkDataSet* )pSource->GetOutput( ) ); 00351 slices->SetSource( vtkimagedata ); 00352 slices->Update( ); 00353 pSource->Delete( ); 00354 00355 vtkStructuredPoints *stPoints = vtkStructuredPoints::New(); 00356 stPoints -> GetPointData( )->SetScalars( slices->GetOutput()->GetPointData()->GetScalars() ); 00357 stPoints -> SetDimensions( sizeIma, sizeIma, 1 ); 00358 stPoints -> SetScalarType( vtkimagedata->GetScalarType() ); 00359 stPoints -> SetScalarTypeToShort(); 00360 stPoints -> Update(); 00361 00362 vtkImageChangeInformation *change = vtkImageChangeInformation ::New(); 00363 change -> SetInput( stPoints ); 00364 change -> Update(); //important 00365 00366 double _range[2]; 00367 vtkimagedata->GetScalarRange(_range); 00368 vtkWindowLevelLookupTable *_bwlookup = vtkWindowLevelLookupTable::New( ); 00369 _bwlookup->SetHueRange( 0 , 1 ); 00370 _bwlookup->SetNumberOfColors( (int)(_range[1] - _range[0] + 1) ); 00371 _bwlookup->SetTableRange( _range[0] , _range[1] ); 00372 _bwlookup->SetSaturationRange( 0 , 0 ); 00373 _bwlookup->SetValueRange( 0 , 1 ); 00374 _bwlookup->SetAlphaRange( 1 , 1 ); 00375 _bwlookup->Build( ); 00376 00377 vtkLookupTable * _collookup = vtkLookupTable::New( ); 00378 _collookup->SetNumberOfColors( 256 ); 00379 _collookup->SetTableRange( 0 , 255 ); 00380 _collookup->Build( ); 00381 _collookup->SetTableValue( 0 , 1 , 0 , 0 , 1 ); 00382 _collookup->SetTableValue(128 , 0 , 0 , 1 , 1 ); 00383 _collookup->SetTableValue(255 , 0 , 1 , 0 , 1 ); 00384 00385 00386 vtkMetaImageWriter *writer = vtkMetaImageWriter::New( ); 00387 writer->SetInput( stPoints ); 00388 writer->SetFileName( "C:/Users/Images/temp_EED/image.mhd" ); 00389 writer->SetFileDimensionality( 2 ); 00390 writer->Write( ); 00391 00392 00393 00394 vtkDataSetMapper *_3DSliceMapper = vtkDataSetMapper::New( ); 00395 _3DSliceMapper->SetInput(change->GetOutput( ) ); 00396 _3DSliceMapper->SetLookupTable( _bwlookup ); 00397 _3DSliceMapper->SetScalarRange( _range ); 00398 _3DSliceMapper->ImmediateModeRenderingOn( ); 00399 00400 vtkActor *_3DSliceActor = vtkActor::New( ); 00401 _3DSliceActor->SetMapper( _3DSliceMapper ); 00402 00403 // The usual rendering stuff. 00404 vtkCamera *camera = vtkCamera::New(); 00405 camera->SetPosition(1,1,1); 00406 camera->SetFocalPoint(0,0,0); 00407 00408 vtkRenderer *renderer = vtkRenderer::New(); 00409 vtkRenderWindow *renWin = vtkRenderWindow::New(); 00410 renWin->AddRenderer(renderer); 00411 00412 vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); 00413 iren->SetRenderWindow(renWin); 00414 00415 renderer->AddActor( _3DSliceActor ); 00416 renderer->SetActiveCamera(camera); 00417 renderer->ResetCamera(); 00418 renderer->SetBackground(1,1,1); 00419 00420 renWin->SetSize(300,300); 00421 00422 // interact with data 00423 renWin->Render(); 00424 iren->Start(); 00425 00426 00427 00428 00429 00430 }
void wxVtkMPR3DView::TestLoic2 | ( | ) |
Definition at line 434 of file wxVtkMPR3DView.cxx.
References _planeWidget, vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::GetVtkMPRBaseData().
00435 { 00436 /* 00437 vtkVectorNorm *vecMagnitude = vtkVectorNorm::New(); 00438 vecMagnitude->SetInput(VtkMainGrid); 00439 vecMagnitude->NormalizeOff(); 00440 vecMagnitude->Update(); 00441 */ 00442 00443 vtkPlane *slicePlane = vtkPlane::New(); 00444 this->_planeWidget->GetPlane( slicePlane ); 00445 00446 00447 vtkCutter* sliceCutter = vtkCutter::New(); 00448 vtkImageData *vtkimagedata = this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00449 sliceCutter->SetInput( vtkimagedata ); 00450 sliceCutter->SetCutFunction( slicePlane ); 00451 00452 //EED 00453 // vtkLookupTable *lut = BuildHueWeightBaseMap(); 00454 00455 00456 vtkPolyDataMapper *slice = vtkPolyDataMapper::New(); 00457 slice->SetInput( sliceCutter->GetOutput() ); 00458 double range[2]; 00459 // EED 00460 // slice->Update(); 00461 vtkimagedata->GetScalarRange(range); 00462 // vecMagnitude->GetOutput()->GetScalarRange( range ); 00463 // range[1] *= 0.7; // reduce the upper range by 30% 00464 // slice->SetScalarRange( range ); 00465 // slice->SetLookupTable( lut ); 00466 00467 // vtkActor *sliceActor = vtkActor::New(); 00468 // sliceActor->SetMapper( slice ); 00469 00470 vtkPolyDataMapper *contourMapper = vtkPolyDataMapper::New(); 00471 contourMapper->SetInput( sliceCutter->GetOutput() ); 00472 contourMapper->SetScalarRange( range ); 00473 // contourMapper->SetLookupTable( lut ); 00474 00475 00476 vtkActor *contourActor = vtkActor::New(); 00477 contourActor->SetMapper( contourMapper ); 00478 00479 00480 00481 // The usual rendering stuff. 00482 vtkCamera *camera = vtkCamera::New(); 00483 camera->SetPosition(1,1,1); 00484 camera->SetFocalPoint(0,0,0); 00485 00486 vtkRenderer *renderer = vtkRenderer::New(); 00487 vtkRenderWindow *renWin = vtkRenderWindow::New(); 00488 renWin->AddRenderer(renderer); 00489 00490 vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); 00491 iren->SetRenderWindow(renWin); 00492 00493 renderer->AddActor( contourActor ); 00494 // renderer->AddActor(cubeActor); 00495 renderer->SetActiveCamera(camera); 00496 renderer->ResetCamera(); 00497 renderer->SetBackground(1,1,1); 00498 00499 renWin->SetSize(300,300); 00500 00501 // interact with data 00502 renWin->Render(); 00503 iren->Start(); 00504 00505 00506 }
void wxVtkMPR3DView::VisibleImageActor | ( | int | idPosition, | |
bool | visible | |||
) |
Definition at line 265 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer, _wxvtk3Dbaseview, vtkMPR3DDataViewer::GetImageActor(), wxVtk3DBaseView::GetRenderer(), vtkMPR3DDataViewer::GetVisiblePosition(), and vtkMPR3DDataViewer::SetVisiblePosition().
Referenced by wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(), and wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ().
00265 { 00266 if (visible!=_vtkmpr3Ddataviewer->GetVisiblePosition(idPosition)){ 00267 if (visible==false){ 00268 _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); 00269 } else { 00270 _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); 00271 } 00272 _vtkmpr3Ddataviewer->SetVisiblePosition(idPosition,visible); 00273 } 00274 }
void wxVtkMPR3DView::VisiblePlaneWidget | ( | bool | visible | ) |
Definition at line 289 of file wxVtkMPR3DView.cxx.
References _contourPlaneActor, and _planeWidget.
Referenced by wxVtkMPR3DViewCntrlPanel::OnVisiblePlane().
00290 { 00291 if (visible==true) 00292 { 00293 _planeWidget->On(); 00294 _contourPlaneActor->VisibilityOn(); 00295 00296 } else { 00297 _planeWidget->Off(); 00298 _contourPlaneActor->VisibilityOff(); 00299 } 00300 }
void wxVtkMPR3DView::VisiblePointWidget | ( | bool | visible | ) |
Definition at line 278 of file wxVtkMPR3DView.cxx.
References _pointWidget.
Referenced by wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ().
00279 { 00280 if (visible==true) 00281 { 00282 _pointWidget->On(); 00283 } else { 00284 _pointWidget->Off(); 00285 } 00286 }
vtkPolyDataMapper* wxVtkMPR3DView::_contourMapper [private] |
Definition at line 59 of file wxVtkMPR3DView.h.
Referenced by Configure(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
vtkActor* wxVtkMPR3DView::_contourPlaneActor [private] |
Definition at line 52 of file wxVtkMPR3DView.h.
Referenced by Configure(), VisiblePlaneWidget(), and ~wxVtkMPR3DView().
vtkPlaneWidget* wxVtkMPR3DView::_planeWidget [private] |
Definition at line 53 of file wxVtkMPR3DView.h.
Referenced by Configure(), InitOrientationPointWidget(), RefreshView(), TestLoic1(), TestLoic2(), VisiblePlaneWidget(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
vtkPointWidget* wxVtkMPR3DView::_pointWidget [private] |
Definition at line 56 of file wxVtkMPR3DView.h.
Referenced by Configure(), RefreshView(), VisiblePointWidget(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
vtkProbeFilter* wxVtkMPR3DView::_probe [private] |
Definition at line 58 of file wxVtkMPR3DView.h.
Referenced by Configure(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
Definition at line 47 of file wxVtkMPR3DView.h.
Referenced by Configure(), GetVtkMPR3DDataViewer(), Refresh(), SetVtkMPR3DDataViewer(), VisibleImageActor(), and wxVtkMPR3DView().
vtkPolyData* wxVtkMPR3DView::_vtkplane [private] |
Definition at line 51 of file wxVtkMPR3DView.h.
Referenced by Configure(), RefreshView(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
wxVtk3DBaseView* wxVtkMPR3DView::_wxvtk3Dbaseview [private] |
Definition at line 46 of file wxVtkMPR3DView.h.
Referenced by Configure(), GetWxvtk3Dbaseview(), RemoveActor(), ResetCamera(), VisibleImageActor(), and wxVtkMPR3DView().
Definition at line 48 of file wxVtkMPR3DView.h.
Referenced by Configure(), CreateControlPanel(), Refresh(), and wxVtkMPR3DView().