#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, _vtkplane, VisiblePlaneWidget(), and VisiblePointWidget().
00185 { 00186 printf("EED wxVtkMPR3DView::~wxVtkMPR3DView\n"); 00187 VisiblePointWidget( false ); 00188 VisiblePlaneWidget( false ); 00189 00190 if(_pointWidget!=NULL){ 00191 _pointWidget->Delete(); 00192 } 00193 if(_planeWidget!=NULL){ 00194 _planeWidget->Delete(); 00195 } 00196 00197 if(_vtkplane!=NULL){ 00198 _vtkplane->Delete(); 00199 _probe->Delete(); 00200 _contourMapper->Delete(); 00201 _contourPlaneActor->Delete(); 00202 } 00203 00204 }
void wxVtkMPR3DView::VisibleImageActor | ( | int | idPosition, | |
bool | visible | |||
) |
Definition at line 269 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().
00269 { 00270 if (visible!=_vtkmpr3Ddataviewer->GetVisiblePosition(idPosition)){ 00271 if (visible==false){ 00272 _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); 00273 } else { 00274 _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); 00275 } 00276 _vtkmpr3Ddataviewer->SetVisiblePosition(idPosition,visible); 00277 } 00278 }
void wxVtkMPR3DView::VisiblePointWidget | ( | bool | visible | ) |
Definition at line 282 of file wxVtkMPR3DView.cxx.
References _pointWidget.
Referenced by wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(), and ~wxVtkMPR3DView().
00283 { 00284 if (visible==true) 00285 { 00286 _pointWidget->On(); 00287 } else { 00288 _pointWidget->Off(); 00289 } 00290 }
void wxVtkMPR3DView::VisiblePlaneWidget | ( | bool | visible | ) |
Definition at line 293 of file wxVtkMPR3DView.cxx.
References _contourPlaneActor, and _planeWidget.
Referenced by wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(), and ~wxVtkMPR3DView().
00294 { 00295 if (visible==true) 00296 { 00297 _planeWidget->On(); 00298 _contourPlaneActor->VisibilityOn(); 00299 00300 } else { 00301 _planeWidget->Off(); 00302 _contourPlaneActor->VisibilityOff(); 00303 } 00304 }
void wxVtkMPR3DView::SetVisibleTissue | ( | int | idTissue, | |
bool | visible | |||
) |
bool wxVtkMPR3DView::GetVisibleTissue | ( | int | idTissue | ) |
void wxVtkMPR3DView::Refresh | ( | ) | [virtual] |
Definition at line 207 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer, _wxvtkmpr3DviewCntrlPanel, and wxVtkMPR3DViewCntrlPanel::Refresh().
Referenced by HistogramDialog::OnRefreshBtn(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(), and RefreshView().
00208 { 00209 _vtkmpr3Ddataviewer -> Refresh(); 00210 if (_wxvtkmpr3DviewCntrlPanel!=NULL) 00211 { 00212 _wxvtkmpr3DviewCntrlPanel->Refresh(); 00213 } 00214 00215 }
void wxVtkMPR3DView::RefreshView | ( | ) | [virtual] |
Definition at line 217 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().
00218 { 00219 double spc[3]; 00220 this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc); 00221 00222 //double nx=1,ny=0,nz=0; // JPRx 00223 Refresh(); 00224 double x=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetX(); 00225 double y=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetY(); 00226 double z=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetZ(); 00227 00228 x=x*spc[0]; 00229 y=y*spc[1]; 00230 z=z*spc[2]; 00231 00232 _pointWidget->SetPosition( x,y,z ); 00233 00234 00235 double in[3]; 00236 double normal[3]; 00237 vtkTransform *transform = GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetTransformOrientation(); 00238 in[0]=1; in[1]=0; in[2]=0; 00239 transform->TransformPoint(in,normal); 00240 _planeWidget->SetNormal( normal[0],normal[1],normal[2] ); 00241 00242 00243 _planeWidget->SetCenter( x,y,z ); 00244 _planeWidget->UpdatePlacement(); 00245 _planeWidget->GetPolyData(_vtkplane); 00246 }
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 }
void wxVtkMPR3DView::SetVtkMPR3DDataViewer | ( | vtkMPR3DDataViewer * | vtkmpr3Ddataviewer | ) |
Definition at line 307 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().
00308 { 00309 _vtkmpr3Ddataviewer = vtkmpr3Ddataviewer; 00310 }
wxPanel * wxVtkMPR3DView::CreateControlPanel | ( | wxWindow * | parent | ) |
Definition at line 248 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().
00249 { 00250 _wxvtkmpr3DviewCntrlPanel = new wxVtkMPR3DViewCntrlPanel(parent,this); 00251 return _wxvtkmpr3DviewCntrlPanel; 00252 }
vtkMPR3DDataViewer * wxVtkMPR3DView::GetVtkMPR3DDataViewer | ( | ) |
Definition at line 254 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().
00255 { 00256 return _vtkmpr3Ddataviewer; 00257 }
wxVtk3DBaseView * wxVtkMPR3DView::GetWxvtk3Dbaseview | ( | ) | throw (char*) |
Definition at line 259 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().
00260 { 00261 if(_wxvtk3Dbaseview==NULL){ 00262 throw "wxVtk3DBaseView* wxVtkMPR3DView::GetWxvtk3Dbaseview() _wxvtk3Dbaseview=NULL"; 00263 } 00264 return _wxvtk3Dbaseview; 00265 }
void wxVtkMPR3DView::InitOrientationPointWidget | ( | ) |
Definition at line 313 of file wxVtkMPR3DView.cxx.
References _planeWidget.
Referenced by wxManualRegistration3D::OnTracking().
00314 { 00315 this->_planeWidget->SetNormal(1,0,0); 00316 }
void wxVtkMPR3DView::TestLoic1 | ( | ) |
Definition at line 323 of file wxVtkMPR3DView.cxx.
References _planeWidget, vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::GetVtkMPRBaseData().
Referenced by wxManualRegistration3D::OnTracking().
00324 { 00325 00326 int sizeIma = 128; 00327 double dimIma = sizeIma*2; 00328 00329 vtkImageData *vtkimagedata = this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00330 00331 double spc[3]; 00332 vtkimagedata->GetSpacing(spc); 00333 00334 vtkimagedata->Update(); 00335 00336 00337 double p[3], n[3]; 00338 this->_planeWidget->GetOrigin(p); 00339 this->_planeWidget->GetNormal(n); 00340 00341 00342 00343 vtkPlaneSource* pSource = vtkPlaneSource::New( ); 00344 pSource->SetResolution( sizeIma - 1, sizeIma - 1 ); 00345 pSource->SetOrigin( p[ 0 ], p[ 1 ], p[ 2 ] ); 00346 pSource->SetPoint1( p[ 0 ] + dimIma - 1.0, p[ 1 ], p[ 2 ] ); 00347 pSource->SetPoint2( p[ 0 ], p[ 1 ]+ dimIma - 1.0 , p[ 2 ] ); 00348 pSource->Update( ); 00349 pSource->SetCenter( p[ 0 ], p[ 1 ], p[ 2 ] ); 00350 pSource->SetNormal( n[ 0 ], n[ 1 ], n[ 2 ] ); 00351 pSource->Update( ); 00352 00353 vtkProbeFilter* slices = vtkProbeFilter::New(); 00354 slices->SetInput( ( vtkDataSet* )pSource->GetOutput( ) ); 00355 slices->SetSource( vtkimagedata ); 00356 slices->Update( ); 00357 pSource->Delete( ); 00358 00359 vtkStructuredPoints *stPoints = vtkStructuredPoints::New(); 00360 stPoints -> GetPointData( )->SetScalars( slices->GetOutput()->GetPointData()->GetScalars() ); 00361 stPoints -> SetDimensions( sizeIma, sizeIma, 1 ); 00362 stPoints -> SetScalarType( vtkimagedata->GetScalarType() ); 00363 stPoints -> SetScalarTypeToShort(); 00364 stPoints -> Update(); 00365 00366 vtkImageChangeInformation *change = vtkImageChangeInformation ::New(); 00367 change -> SetInput( stPoints ); 00368 change -> Update(); //important 00369 00370 double _range[2]; 00371 vtkimagedata->GetScalarRange(_range); 00372 vtkWindowLevelLookupTable *_bwlookup = vtkWindowLevelLookupTable::New( ); 00373 _bwlookup->SetHueRange( 0 , 1 ); 00374 _bwlookup->SetNumberOfColors( (int)(_range[1] - _range[0] + 1) ); 00375 _bwlookup->SetTableRange( _range[0] , _range[1] ); 00376 _bwlookup->SetSaturationRange( 0 , 0 ); 00377 _bwlookup->SetValueRange( 0 , 1 ); 00378 _bwlookup->SetAlphaRange( 1 , 1 ); 00379 _bwlookup->Build( ); 00380 00381 vtkLookupTable * _collookup = vtkLookupTable::New( ); 00382 _collookup->SetNumberOfColors( 256 ); 00383 _collookup->SetTableRange( 0 , 255 ); 00384 _collookup->Build( ); 00385 _collookup->SetTableValue( 0 , 1 , 0 , 0 , 1 ); 00386 _collookup->SetTableValue(128 , 0 , 0 , 1 , 1 ); 00387 _collookup->SetTableValue(255 , 0 , 1 , 0 , 1 ); 00388 00389 00390 vtkMetaImageWriter *writer = vtkMetaImageWriter::New( ); 00391 writer->SetInput( stPoints ); 00392 writer->SetFileName( "C:/Users/Images/temp_EED/image.mhd" ); 00393 writer->SetFileDimensionality( 2 ); 00394 writer->Write( ); 00395 00396 00397 00398 vtkDataSetMapper *_3DSliceMapper = vtkDataSetMapper::New( ); 00399 _3DSliceMapper->SetInput(change->GetOutput( ) ); 00400 _3DSliceMapper->SetLookupTable( _bwlookup ); 00401 _3DSliceMapper->SetScalarRange( _range ); 00402 _3DSliceMapper->ImmediateModeRenderingOn( ); 00403 00404 vtkActor *_3DSliceActor = vtkActor::New( ); 00405 _3DSliceActor->SetMapper( _3DSliceMapper ); 00406 00407 // The usual rendering stuff. 00408 vtkCamera *camera = vtkCamera::New(); 00409 camera->SetPosition(1,1,1); 00410 camera->SetFocalPoint(0,0,0); 00411 00412 vtkRenderer *renderer = vtkRenderer::New(); 00413 vtkRenderWindow *renWin = vtkRenderWindow::New(); 00414 renWin->AddRenderer(renderer); 00415 00416 vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); 00417 iren->SetRenderWindow(renWin); 00418 00419 renderer->AddActor( _3DSliceActor ); 00420 renderer->SetActiveCamera(camera); 00421 renderer->ResetCamera(); 00422 renderer->SetBackground(1,1,1); 00423 00424 renWin->SetSize(300,300); 00425 00426 // interact with data 00427 renWin->Render(); 00428 iren->Start(); 00429 00430 00431 00432 00433 00434 }
void wxVtkMPR3DView::TestLoic2 | ( | ) |
Definition at line 438 of file wxVtkMPR3DView.cxx.
References _planeWidget, vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::GetVtkMPRBaseData().
00439 { 00440 /* 00441 vtkVectorNorm *vecMagnitude = vtkVectorNorm::New(); 00442 vecMagnitude->SetInput(VtkMainGrid); 00443 vecMagnitude->NormalizeOff(); 00444 vecMagnitude->Update(); 00445 */ 00446 00447 vtkPlane *slicePlane = vtkPlane::New(); 00448 this->_planeWidget->GetPlane( slicePlane ); 00449 00450 00451 vtkCutter* sliceCutter = vtkCutter::New(); 00452 vtkImageData *vtkimagedata = this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00453 sliceCutter->SetInput( vtkimagedata ); 00454 sliceCutter->SetCutFunction( slicePlane ); 00455 00456 //EED 00457 // vtkLookupTable *lut = BuildHueWeightBaseMap(); 00458 00459 00460 vtkPolyDataMapper *slice = vtkPolyDataMapper::New(); 00461 slice->SetInput( sliceCutter->GetOutput() ); 00462 double range[2]; 00463 // EED 00464 // slice->Update(); 00465 vtkimagedata->GetScalarRange(range); 00466 // vecMagnitude->GetOutput()->GetScalarRange( range ); 00467 // range[1] *= 0.7; // reduce the upper range by 30% 00468 // slice->SetScalarRange( range ); 00469 // slice->SetLookupTable( lut ); 00470 00471 // vtkActor *sliceActor = vtkActor::New(); 00472 // sliceActor->SetMapper( slice ); 00473 00474 vtkPolyDataMapper *contourMapper = vtkPolyDataMapper::New(); 00475 contourMapper->SetInput( sliceCutter->GetOutput() ); 00476 contourMapper->SetScalarRange( range ); 00477 // contourMapper->SetLookupTable( lut ); 00478 00479 00480 vtkActor *contourActor = vtkActor::New(); 00481 contourActor->SetMapper( contourMapper ); 00482 00483 00484 00485 // The usual rendering stuff. 00486 vtkCamera *camera = vtkCamera::New(); 00487 camera->SetPosition(1,1,1); 00488 camera->SetFocalPoint(0,0,0); 00489 00490 vtkRenderer *renderer = vtkRenderer::New(); 00491 vtkRenderWindow *renWin = vtkRenderWindow::New(); 00492 renWin->AddRenderer(renderer); 00493 00494 vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); 00495 iren->SetRenderWindow(renWin); 00496 00497 renderer->AddActor( contourActor ); 00498 // renderer->AddActor(cubeActor); 00499 renderer->SetActiveCamera(camera); 00500 renderer->ResetCamera(); 00501 renderer->SetBackground(1,1,1); 00502 00503 renWin->SetSize(300,300); 00504 00505 // interact with data 00506 renWin->Render(); 00507 iren->Start(); 00508 00509 00510 }
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 }
wxVtk3DBaseView* wxVtkMPR3DView::_wxvtk3Dbaseview [private] |
Definition at line 46 of file wxVtkMPR3DView.h.
Referenced by Configure(), GetWxvtk3Dbaseview(), RemoveActor(), ResetCamera(), VisibleImageActor(), and wxVtkMPR3DView().
Definition at line 47 of file wxVtkMPR3DView.h.
Referenced by Configure(), GetVtkMPR3DDataViewer(), Refresh(), SetVtkMPR3DDataViewer(), VisibleImageActor(), and wxVtkMPR3DView().
Definition at line 48 of file wxVtkMPR3DView.h.
Referenced by Configure(), CreateControlPanel(), Refresh(), and wxVtkMPR3DView().
vtkPolyData* wxVtkMPR3DView::_vtkplane [private] |
Definition at line 51 of file wxVtkMPR3DView.h.
Referenced by Configure(), RefreshView(), 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().
vtkPolyDataMapper* wxVtkMPR3DView::_contourMapper [private] |
Definition at line 59 of file wxVtkMPR3DView.h.
Referenced by Configure(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().