#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, bool align) |
vtkMPR3DDataViewer * | GetVtkMPR3DDataViewer () |
wxVtk3DBaseView * | GetWxvtk3Dbaseview () throw (char*) |
void | InitOrientationPointWidget () |
void | showOutlineActor (bool value) |
void | TestLoic1 () |
void | TestLoic2 () |
void | RemoveActor (vtkActor *actor) |
void | ResetCamera (int *ext=NULL, double *origin=NULL, double *spc=NULL) |
void | setColorTransferFunction (vtkColorTransferFunction *colortable) |
void | ConfigureFreePlanes () |
vtkImagePlaneWidget * | GetPlaneWidget (unsigned char activationkey, double r, double g, double b, vtkCellPicker *picker) |
void | FreePlaneVisible (int plane, bool ok) |
void | FreePlaneInteraction (bool ok) |
Private Attributes | |
wxVtk3DBaseView * | _wxvtk3Dbaseview |
vtkMPR3DDataViewer * | _vtkmpr3Ddataviewer |
wxVtkMPR3DViewCntrlPanel * | _wxvtkmpr3DviewCntrlPanel |
vtkPolyData * | _vtkplane |
vtkActor * | _contourPlaneActor |
vtkPlaneWidget * | _planeWidget |
vtkPointWidget * | _pointWidget |
vtkProbeFilter * | _probe |
vtkPolyDataMapper * | _contourMapper |
vtkImagePlaneWidget * | _planeWidgetX |
vtkImagePlaneWidget * | _planeWidgetY |
vtkImagePlaneWidget * | _planeWidgetZ |
Definition at line 17 of file wxVtkMPR3DView.h.
wxVtkMPR3DView::wxVtkMPR3DView | ( | wxVtk3DBaseView * | wxvtk3Dbaseview | ) |
Definition at line 19 of file wxVtkMPR3DView.cxx.
References _contourMapper, _planeWidget, _pointWidget, _probe, _vtkmpr3Ddataviewer, _vtkplane, _wxvtk3Dbaseview, and _wxvtkmpr3DviewCntrlPanel.
00020 { 00021 _wxvtk3Dbaseview = wxvtk3Dbaseview; 00022 _vtkmpr3Ddataviewer = NULL; 00023 _wxvtkmpr3DviewCntrlPanel = NULL; 00024 //_myCallback = NULL; 00025 _pointWidget = NULL; 00026 _planeWidget = NULL; 00027 _vtkplane = NULL; 00028 _probe = NULL; 00029 _contourMapper = NULL; 00030 00031 00032 //EED Fev 3 2010 00033 //Free Planes 00034 }
wxVtkMPR3DView::~wxVtkMPR3DView | ( | ) | [virtual] |
Definition at line 38 of file wxVtkMPR3DView.cxx.
References _contourMapper, _contourPlaneActor, _planeWidget, _pointWidget, _probe, _vtkplane, VisiblePlaneWidget(), and VisiblePointWidget().
00039 { 00040 VisiblePointWidget( false ); 00041 VisiblePlaneWidget( false ); 00042 00043 if(_pointWidget!=NULL){ 00044 _pointWidget->Delete(); 00045 } 00046 if(_planeWidget!=NULL){ 00047 _planeWidget->Delete(); 00048 } 00049 00050 if(_vtkplane!=NULL){ 00051 _vtkplane->Delete(); 00052 _probe->Delete(); 00053 _contourMapper->Delete(); 00054 _contourPlaneActor->Delete(); 00055 } 00056 00057 }
void wxVtkMPR3DView::Configure | ( | ) | [virtual] |
Definition at line 95 of file wxVtkMPR3DView.cxx.
References _contourMapper, _contourPlaneActor, _planeWidget, _pointWidget, _probe, _vtkmpr3Ddataviewer, _vtkplane, _wxvtk3Dbaseview, _wxvtkmpr3DviewCntrlPanel, wxVtk3DBaseView::Configure(), ConfigureFreePlanes(), 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().
Referenced by wxMaracasRenderTabbedPanel::addMPROptions().
00095 { 00096 00097 _wxvtk3Dbaseview->Configure(); 00098 _wxvtkmpr3DviewCntrlPanel->UpdateControlPanel(); 00099 00100 //EED 27 Mai 2009 00101 // _wxvtk3Dbaseview->GetRenderer()->Clear(); 00102 00103 // Actors are added to the renderer. 00104 vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor(); 00105 _wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor ); 00106 // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(0) ); // _saggital 00107 // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(1) ); // _axial 00108 // _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(2) ); // _coronal 00109 00110 00111 // An initial camera view is created. The Dolly() method moves 00112 // the camera towards the FocalPoint, thereby enlarging the image. 00113 _wxvtk3Dbaseview->GetRenderer()->SetActiveCamera(_wxvtk3Dbaseview->GetCamera()); 00114 this->ResetCamera(); 00115 00116 00117 // Set a background color for the renderer and set the size of the 00118 // render window (expressed in pixels). 00119 _wxvtk3Dbaseview->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 ); 00120 _wxvtk3Dbaseview->GetRenWin()->SetSize(400, 400); 00121 00122 // Note that when camera movement occurs (as it does in the Dolly() 00123 // method), the clipping planes often need adjusting. Clipping planes 00124 // consist of two planes: near and far along the view direction. The 00125 // near plane clips out objects in front of the plane; the far plane 00126 // clips out objects behind the plane. This way only what is drawn 00127 // between the planes is actually rendered. 00128 _wxvtk3Dbaseview->GetRenderer()->ResetCameraClippingRange(); 00129 00130 00131 // vtkPointWidget 00132 //if(_myCallback!=NULL){ 00133 //_myCallback->Delete(); 00134 00135 //} 00136 vtkmyPWCallback_3DPointWidget *_myCallback = vtkmyPWCallback_3DPointWidget::New(); 00137 _myCallback->SetWxVtkMPR3DView(this); 00138 00139 if(_pointWidget!=NULL){ 00140 _pointWidget->Delete(); 00141 } 00142 _pointWidget = vtkPointWidget::New(); 00143 _myCallback->SetVtkPointWidget(_pointWidget); 00144 _pointWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); 00145 _pointWidget->SetInput( GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData() ); 00146 00147 _pointWidget->AllOff(); 00148 00149 _pointWidget->PlaceWidget(); 00150 // _pointWidget->SetPosition( x,y,z ); 00151 00152 //EED01 29Mars2009 00153 // MACOS probleme vtk-window out of wx-window 00154 // _pointWidget->On(); 00155 00156 _pointWidget->AddObserver(vtkCommand::InteractionEvent,_myCallback); 00157 00158 00159 // PlaneWidget 00160 if(_planeWidget!=NULL) 00161 { 00162 _planeWidget->Delete(); 00163 } 00164 _planeWidget = vtkPlaneWidget::New(); 00165 _myCallback->SetVtkPlaneWidget(_planeWidget); 00166 _planeWidget->SetInput( GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData() ); 00167 _planeWidget->NormalToXAxisOn(); 00168 _planeWidget->SetResolution(50); 00169 _planeWidget->SetRepresentationToOutline(); 00170 int dim[3]; 00171 GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetDimensions(dim); 00172 int px=(dim[0]/2); 00173 int py=(dim[1]/2); 00174 int pz=(dim[2]/2); 00175 int dd=20; 00176 _planeWidget->PlaceWidget( px-dd , px+dd , py-dd , py+dd , pz-dd , pz+dd ); 00177 00178 00179 if(_vtkplane==NULL){ 00180 _vtkplane = vtkPolyData::New(); 00181 00182 _probe = vtkProbeFilter::New(); 00183 _probe->SetInput(_vtkplane); 00184 00185 _contourMapper = vtkPolyDataMapper::New(); 00186 00187 _contourMapper->SetInput( _probe->GetPolyDataOutput() ); 00188 00189 _contourPlaneActor = vtkActor::New(); 00190 _contourPlaneActor->SetMapper(_contourMapper); 00191 00192 _contourPlaneActor->VisibilityOff(); 00193 00194 _planeWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); 00195 _planeWidget->AddObserver(vtkCommand::InteractionEvent,_myCallback); 00196 00197 _planeWidget->Off(); 00198 _wxvtk3Dbaseview->GetRenderer()->AddActor( _contourPlaneActor ); 00199 00200 }else{ 00201 00202 } 00203 _planeWidget->GetPolyData(_vtkplane); 00204 vtkImageData *imageData = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00205 _probe->SetSource( imageData ); 00206 _contourMapper->SetScalarRange( imageData->GetScalarRange() ); 00207 00208 ConfigureFreePlanes(); 00209 }
void wxVtkMPR3DView::ConfigureFreePlanes | ( | ) |
Definition at line 212 of file wxVtkMPR3DView.cxx.
References _planeWidgetX, _planeWidgetY, _planeWidgetZ, and GetPlaneWidget().
Referenced by Configure().
00213 { 00214 00215 // The shared picker enables us to use 3 planes at one time 00216 // and gets the picking order right 00217 vtkCellPicker* picker = vtkCellPicker::New(); 00218 picker->SetTolerance(0.005); 00219 00220 // The 3 image plane widgets 00221 _planeWidgetX = GetPlaneWidget('x', 1, 0, 0, picker); 00222 _planeWidgetY = GetPlaneWidget('y', 1, 1, 0, picker); 00223 _planeWidgetZ = GetPlaneWidget('z', 0, 0, 1, picker); 00224 00225 _planeWidgetY->SetLookupTable(_planeWidgetX->GetLookupTable()); 00226 _planeWidgetZ->SetLookupTable(_planeWidgetX->GetLookupTable()); 00227 00228 picker->UnRegister(NULL); 00229 00230 }
wxPanel * wxVtkMPR3DView::CreateControlPanel | ( | wxWindow * | parent, | |
bool | align | |||
) |
Definition at line 352 of file wxVtkMPR3DView.cxx.
References _wxvtkmpr3DviewCntrlPanel.
Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), wxManualRegistration3D::AddPanelControl_B(), wxManualRegistration3D::Create3DView(), wxManualTree_MPRWidget::Create3DViewContour(), wxSegmentationFM3DWidget::Create3DViewContour(), wxManualSegmentation_MPRWidget::Create3DViewContour(), wxMPRWidget::CreateMPRPanel4View(), wxMPRWidget::CreateView(), and wxMaracas_ViewerWidget::wxMaracas_ViewerWidget().
00353 { 00354 _wxvtkmpr3DviewCntrlPanel = new wxVtkMPR3DViewCntrlPanel(parent,this, align); 00355 return _wxvtkmpr3DviewCntrlPanel; 00356 }
void wxVtkMPR3DView::FreePlaneInteraction | ( | bool | ok | ) |
Definition at line 288 of file wxVtkMPR3DView.cxx.
References _planeWidgetX, _planeWidgetY, and _planeWidgetZ.
Referenced by wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction(), wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(), wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(), and wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ().
00289 { 00290 if (ok==true) 00291 { 00292 _planeWidgetX->InteractionOn(); 00293 _planeWidgetY->InteractionOn(); 00294 _planeWidgetZ->InteractionOn(); 00295 } else { 00296 _planeWidgetX->InteractionOff(); 00297 _planeWidgetY->InteractionOff(); 00298 _planeWidgetZ->InteractionOff(); 00299 } 00300 }
void wxVtkMPR3DView::FreePlaneVisible | ( | int | plane, | |
bool | ok | |||
) |
Definition at line 276 of file wxVtkMPR3DView.cxx.
References _planeWidgetX, _planeWidgetY, and _planeWidgetZ.
Referenced by wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(), wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(), and wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ().
00277 { 00278 00279 if ((plane==1) && (ok==true)) _planeWidgetX->EnabledOn(); 00280 if ((plane==2) && (ok==true)) _planeWidgetY->EnabledOn(); 00281 if ((plane==3) && (ok==true)) _planeWidgetZ->EnabledOn(); 00282 if ((plane==1) && (ok==false)) _planeWidgetX->EnabledOff(); 00283 if ((plane==2) && (ok==false)) _planeWidgetY->EnabledOff(); 00284 if ((plane==3) && (ok==false)) _planeWidgetZ->EnabledOff(); 00285 }
vtkImagePlaneWidget * wxVtkMPR3DView::GetPlaneWidget | ( | unsigned char | activationkey, | |
double | r, | |||
double | g, | |||
double | b, | |||
vtkCellPicker * | picker | |||
) |
Definition at line 233 of file wxVtkMPR3DView.cxx.
References vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::GetVtkMPRBaseData(), and GetWxvtk3Dbaseview().
Referenced by ConfigureFreePlanes().
00234 { 00235 vtkProperty* prop1 = 0; 00236 vtkImagePlaneWidget* planeWidget = 0; 00237 planeWidget = vtkImagePlaneWidget::New(); 00238 planeWidget->EnabledOff(); 00239 planeWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); 00240 vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00241 planeWidget->SetInput( image ); 00242 00243 00244 int xMin, xMax, yMin, yMax, zMin, zMax; 00245 image->GetExtent(xMin, xMax, yMin, yMax, zMin, zMax); 00246 double xSpacing, ySpacing, zSpacing; 00247 image->GetSpacing(xSpacing, ySpacing, zSpacing); 00248 00249 if (activationkey=='x') 00250 { 00251 planeWidget->SetPlaneOrientationToXAxes(); 00252 planeWidget->SetSlicePosition((xMax+xMin)/2.*xSpacing); 00253 } 00254 00255 if (activationkey=='y') 00256 { 00257 planeWidget->SetPlaneOrientationToYAxes(); 00258 planeWidget->SetSlicePosition((yMax+yMin)/2.*ySpacing); 00259 } 00260 00261 if (activationkey=='z') 00262 { 00263 planeWidget->SetPlaneOrientationToZAxes(); 00264 planeWidget->SetSlicePosition((zMax+zMin)/2.*zSpacing); 00265 } 00266 00267 planeWidget->DisplayTextOn(); 00268 planeWidget->SetPicker(picker); 00269 planeWidget->SetKeyPressActivationValue(activationkey); 00270 prop1 = planeWidget->GetPlaneProperty(); 00271 prop1->SetColor(r, g, b); 00272 return planeWidget; 00273 }
bool wxVtkMPR3DView::GetVisibleTissue | ( | int | idTissue | ) |
vtkMPR3DDataViewer * wxVtkMPR3DView::GetVtkMPR3DDataViewer | ( | ) |
Definition at line 358 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer.
Referenced by Configure(), wxManualTree_MPRWidget::ConfigureContour(), vtkmyPWCallback_3DPointWidget::Execute(), GetPlaneWidget(), wxVtkMPR3DViewCntrlPanel::OnEditColorTable(), wxVtkMPR3DViewCntrlPanel::OnPositionX(), wxVtkMPR3DViewCntrlPanel::OnPositionY(), wxVtkMPR3DViewCntrlPanel::OnPositionZ(), wxManualRegistration3D::OnTracking(), wxVtkMPR3DViewCntrlPanel::Refresh(), RefreshView(), wxManualRegistration3D::RefreshView(), vtkInteractorStyle3DView::SelectMarchibCubePoint(), setColorTransferFunction(), TestLoic1(), TestLoic2(), and wxVtkMPR3DViewCntrlPanel::UpdateControlPanel().
00359 { 00360 return _vtkmpr3Ddataviewer; 00361 }
wxVtk3DBaseView * wxVtkMPR3DView::GetWxvtk3Dbaseview | ( | ) | throw (char*) |
Definition at line 363 of file wxVtkMPR3DView.cxx.
References _wxvtk3Dbaseview.
Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), wxMaracasRenderTabbedPanel::addRemoveActorMPR(), Configure(), wxSTLWidget_02::ConfigureSTL(), wxSTLWidget_03::ConfigureSTL(), vtkmyPWCallback_3DPointWidget::Execute(), wxSTLWidget_03::ExtractSurface(), wxSTLWidget_02::ExtractTree2_JF(), GetPlaneWidget(), wxManualSegmentation_MPRWidget::GetRenderer(), wxSegmentationFM3DWidget::OnBtnSegment(), wxSTLWidget_02::OnBtnSTLFileLoad(), wxSTLWidget_03::OnBtnSTLFileLoad(), wxSegmentationFM3DWidget::OnBtnUndo(), wxSTLWidget_02::OnJoinRegions(), wxVtkMPR3DViewCntrlPanel::OnPositionX(), wxVtkMPR3DViewCntrlPanel::OnPositionY(), wxVtkMPR3DViewCntrlPanel::OnPositionZ(), wxMaracasRenderTabbedPanel::OnRefreshView(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(), wxSTLWidget_02::Reset_vtk_STLFile(), wxSTLWidget_03::Reset_vtk_STLFile(), wxSTLWidget_02::ResetTree2_JF(), wxSTLWidget_03::ResetTree2_JF(), vtkInteractorStyle3DView::SelectMarchibCubePoint(), wxVtkMPR3DViewCntrlPanel::SetVisibleX(), wxVtkMPR3DViewCntrlPanel::SetVisibleY(), and wxVtkMPR3DViewCntrlPanel::SetVisibleZ().
00364 { 00365 if(_wxvtk3Dbaseview==NULL){ 00366 throw "wxVtk3DBaseView* wxVtkMPR3DView::GetWxvtk3Dbaseview() _wxvtk3Dbaseview=NULL"; 00367 } 00368 return _wxvtk3Dbaseview; 00369 }
void wxVtkMPR3DView::InitOrientationPointWidget | ( | ) |
Definition at line 439 of file wxVtkMPR3DView.cxx.
References _planeWidget.
Referenced by wxManualRegistration3D::OnTracking().
00440 { 00441 this->_planeWidget->SetNormal(1,0,0); 00442 }
void wxVtkMPR3DView::Refresh | ( | ) | [virtual] |
Definition at line 310 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer, _wxvtkmpr3DviewCntrlPanel, and wxVtkMPR3DViewCntrlPanel::Refresh().
Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), wxMaracasRenderTabbedPanel::addRemoveActorMPR(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(), RefreshView(), wxVtkMPR3DViewCntrlPanel::SetVisibleX(), wxVtkMPR3DViewCntrlPanel::SetVisibleY(), and wxVtkMPR3DViewCntrlPanel::SetVisibleZ().
00311 { 00312 _vtkmpr3Ddataviewer -> Refresh(); 00313 if (_wxvtkmpr3DviewCntrlPanel!=NULL) 00314 { 00315 _wxvtkmpr3DviewCntrlPanel->Refresh(); 00316 } 00317 00318 }
void wxVtkMPR3DView::RefreshView | ( | ) | [virtual] |
Definition at line 321 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(), wxVtkMPR3DViewCntrlPanel::OnPositionZ(), and wxMaracasRenderTabbedPanel::OnRefreshView().
00322 { 00323 double spc[3]; 00324 this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc); 00325 00326 //double nx=1,ny=0,nz=0; // JPRx 00327 Refresh(); 00328 double x=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetX(); 00329 double y=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetY(); 00330 double z=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetZ(); 00331 00332 x=x*spc[0]; 00333 y=y*spc[1]; 00334 z=z*spc[2]; 00335 00336 _pointWidget->SetPosition( x,y,z ); 00337 00338 00339 double in[3]; 00340 double normal[3]; 00341 vtkTransform *transform = GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetTransformOrientation(); 00342 in[0]=1; in[1]=0; in[2]=0; 00343 transform->TransformPoint(in,normal); 00344 _planeWidget->SetNormal( normal[0],normal[1],normal[2] ); 00345 00346 00347 _planeWidget->SetCenter( x,y,z ); 00348 _planeWidget->UpdatePlacement(); 00349 _planeWidget->GetPolyData(_vtkplane); 00350 }
void wxVtkMPR3DView::RemoveActor | ( | vtkActor * | actor | ) |
Definition at line 60 of file wxVtkMPR3DView.cxx.
References _wxvtk3Dbaseview, and wxVtk3DBaseView::GetRenderer().
00061 { 00062 _wxvtk3Dbaseview->GetRenderer()->RemoveActor(actor); 00063 }
void wxVtkMPR3DView::ResetCamera | ( | int * | ext = NULL , |
|
double * | origin = NULL , |
|||
double * | spc = NULL | |||
) |
Definition at line 66 of file wxVtkMPR3DView.cxx.
References _wxvtk3Dbaseview, wxVtk3DBaseView::GetCamera(), and wxVtk3DBaseView::GetRenderer().
Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), Configure(), and wxMaracas_ViewerWidget::ConfigureVTK().
00067 { 00068 if(ext == NULL){ 00069 _wxvtk3Dbaseview->GetRenderer()->ResetCamera (); 00070 _wxvtk3Dbaseview->GetCamera()->Dolly(1.5); 00071 }else{ 00072 /*double x = (spc[0])*(origin[0]+(((double)ext[1]-(double)ext[0])/2.0)); 00073 double y = (spc[1])*(origin[1]+(double)ext[3]); 00074 double z = (spc[2])*(origin[2]+(((double)ext[5]-(double)ext[4])/2.0));*/ 00075 /*double x0=(spc[0])*((double)ext[0]+origin[0]); 00076 double x1=(spc[0])*((double)ext[1]+origin[0]); 00077 double y0=(spc[1])*((double)ext[2]+origin[1]); 00078 double y1=(spc[1])*((double)ext[3]+origin[1]); 00079 double z0=(spc[2])*((double)ext[4]+origin[2]); 00080 double z1=(spc[2])*((double)ext[5]+origin[2]);*/ 00081 double x0=(spc[0])*((double)ext[0]); 00082 double x1=(spc[0])*((double)ext[1]); 00083 double y0=(spc[1])*((double)ext[2]); 00084 double y1=(spc[1])*((double)ext[3]); 00085 double z0=(spc[2])*((double)ext[4]); 00086 double z1=(spc[2])*((double)ext[5]); 00087 00088 _wxvtk3Dbaseview->GetRenderer()->ResetCamera(x0,x1,y0,y1,z0,z1); 00089 //_wxvtk3Dbaseview->GetCamera()->SetPosition(x,y,z); 00090 _wxvtk3Dbaseview->GetCamera()->Dolly(1.5); 00091 } 00092 }
void wxVtkMPR3DView::setColorTransferFunction | ( | vtkColorTransferFunction * | colortable | ) |
Definition at line 304 of file wxVtkMPR3DView.cxx.
References GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::setColorTransferFunction().
Referenced by wxMaracas_ViewerWidget::setColorTransferFunction().
00305 { 00306 GetVtkMPR3DDataViewer ()->setColorTransferFunction(colortable); 00307 }
void wxVtkMPR3DView::SetVisibleTissue | ( | int | idTissue, | |
bool | visible | |||
) |
void wxVtkMPR3DView::SetVtkMPR3DDataViewer | ( | vtkMPR3DDataViewer * | vtkmpr3Ddataviewer | ) |
Definition at line 433 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer.
Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), wxManualRegistration3D::AddPanelControl_B(), wxManualRegistration3D::Create3DView(), wxManualTree_MPRWidget::Create3DViewContour(), wxSegmentationFM3DWidget::Create3DViewContour(), wxManualSegmentation_MPRWidget::Create3DViewContour(), wxMPRWidget::CreateMPRPanel4View(), wxMPRWidget::CreateView(), and wxMaracas_ViewerWidget::wxMaracas_ViewerWidget().
00434 { 00435 _vtkmpr3Ddataviewer = vtkmpr3Ddataviewer; 00436 }
void wxVtkMPR3DView::showOutlineActor | ( | bool | value | ) |
Definition at line 419 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer, _wxvtk3Dbaseview, vtkMPR3DDataViewer::GetOutlineActor(), and wxVtk3DBaseView::GetRenderer().
Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), and wxMaracasRenderTabbedPanel::addRemoveActorMPR().
00420 { 00421 vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor(); 00422 if(value == true) 00423 { 00424 _wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor ); 00425 } 00426 else 00427 { 00428 _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _outlineActor ); 00429 } 00430 }
void wxVtkMPR3DView::TestLoic1 | ( | ) |
Definition at line 449 of file wxVtkMPR3DView.cxx.
References _planeWidget, vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::GetVtkMPRBaseData().
Referenced by wxManualRegistration3D::OnTracking().
00450 { 00451 00452 int sizeIma = 128; 00453 double dimIma = sizeIma*2; 00454 00455 vtkImageData *vtkimagedata = this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00456 00457 double spc[3]; 00458 vtkimagedata->GetSpacing(spc); 00459 00460 vtkimagedata->Update(); 00461 00462 00463 double p[3], n[3]; 00464 this->_planeWidget->GetOrigin(p); 00465 this->_planeWidget->GetNormal(n); 00466 00467 00468 00469 vtkPlaneSource* pSource = vtkPlaneSource::New( ); 00470 pSource->SetResolution( sizeIma - 1, sizeIma - 1 ); 00471 pSource->SetOrigin( p[ 0 ], p[ 1 ], p[ 2 ] ); 00472 pSource->SetPoint1( p[ 0 ] + dimIma - 1.0, p[ 1 ], p[ 2 ] ); 00473 pSource->SetPoint2( p[ 0 ], p[ 1 ]+ dimIma - 1.0 , p[ 2 ] ); 00474 pSource->Update( ); 00475 pSource->SetCenter( p[ 0 ], p[ 1 ], p[ 2 ] ); 00476 pSource->SetNormal( n[ 0 ], n[ 1 ], n[ 2 ] ); 00477 pSource->Update( ); 00478 00479 vtkProbeFilter* slices = vtkProbeFilter::New(); 00480 slices->SetInput( ( vtkDataSet* )pSource->GetOutput( ) ); 00481 slices->SetSource( vtkimagedata ); 00482 slices->Update( ); 00483 pSource->Delete( ); 00484 00485 vtkStructuredPoints *stPoints = vtkStructuredPoints::New(); 00486 stPoints -> GetPointData( )->SetScalars( slices->GetOutput()->GetPointData()->GetScalars() ); 00487 stPoints -> SetDimensions( sizeIma, sizeIma, 1 ); 00488 stPoints -> SetScalarType( vtkimagedata->GetScalarType() ); 00489 stPoints -> SetScalarTypeToShort(); 00490 stPoints -> Update(); 00491 00492 vtkImageChangeInformation *change = vtkImageChangeInformation ::New(); 00493 change -> SetInput( stPoints ); 00494 change -> Update(); //important 00495 00496 double _range[2]; 00497 vtkimagedata->GetScalarRange(_range); 00498 vtkWindowLevelLookupTable *_bwlookup = vtkWindowLevelLookupTable::New( ); 00499 _bwlookup->SetHueRange( 0 , 1 ); 00500 _bwlookup->SetNumberOfColors( (int)(_range[1] - _range[0] + 1) ); 00501 _bwlookup->SetTableRange( _range[0] , _range[1] ); 00502 _bwlookup->SetSaturationRange( 0 , 0 ); 00503 _bwlookup->SetValueRange( 0 , 1 ); 00504 _bwlookup->SetAlphaRange( 1 , 1 ); 00505 _bwlookup->Build( ); 00506 00507 vtkLookupTable * _collookup = vtkLookupTable::New( ); 00508 _collookup->SetNumberOfColors( 256 ); 00509 _collookup->SetTableRange( 0 , 255 ); 00510 _collookup->Build( ); 00511 _collookup->SetTableValue( 0 , 1 , 0 , 0 , 1 ); 00512 _collookup->SetTableValue(128 , 0 , 0 , 1 , 1 ); 00513 _collookup->SetTableValue(255 , 0 , 1 , 0 , 1 ); 00514 00515 00516 vtkMetaImageWriter *writer = vtkMetaImageWriter::New( ); 00517 writer->SetInput( stPoints ); 00518 writer->SetFileName( "C:/Users/Images/temp_EED/image.mhd" ); 00519 writer->SetFileDimensionality( 2 ); 00520 writer->Write( ); 00521 00522 00523 00524 vtkDataSetMapper *_3DSliceMapper = vtkDataSetMapper::New( ); 00525 _3DSliceMapper->SetInput(change->GetOutput( ) ); 00526 _3DSliceMapper->SetLookupTable( _bwlookup ); 00527 _3DSliceMapper->SetScalarRange( _range ); 00528 _3DSliceMapper->ImmediateModeRenderingOn( ); 00529 00530 vtkActor *_3DSliceActor = vtkActor::New( ); 00531 _3DSliceActor->SetMapper( _3DSliceMapper ); 00532 00533 // The usual rendering stuff. 00534 vtkCamera *camera = vtkCamera::New(); 00535 camera->SetPosition(1,1,1); 00536 camera->SetFocalPoint(0,0,0); 00537 00538 vtkRenderer *renderer = vtkRenderer::New(); 00539 vtkRenderWindow *renWin = vtkRenderWindow::New(); 00540 renWin->AddRenderer(renderer); 00541 00542 vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); 00543 iren->SetRenderWindow(renWin); 00544 00545 renderer->AddActor( _3DSliceActor ); 00546 renderer->SetActiveCamera(camera); 00547 renderer->ResetCamera(); 00548 renderer->SetBackground(1,1,1); 00549 00550 renWin->SetSize(300,300); 00551 00552 // interact with data 00553 renWin->Render(); 00554 iren->Start(); 00555 00556 00557 00558 00559 00560 }
void wxVtkMPR3DView::TestLoic2 | ( | ) |
Definition at line 564 of file wxVtkMPR3DView.cxx.
References _planeWidget, vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::GetVtkMPRBaseData().
00565 { 00566 /* 00567 vtkVectorNorm *vecMagnitude = vtkVectorNorm::New(); 00568 vecMagnitude->SetInput(VtkMainGrid); 00569 vecMagnitude->NormalizeOff(); 00570 vecMagnitude->Update(); 00571 */ 00572 00573 vtkPlane *slicePlane = vtkPlane::New(); 00574 this->_planeWidget->GetPlane( slicePlane ); 00575 00576 00577 vtkCutter* sliceCutter = vtkCutter::New(); 00578 vtkImageData *vtkimagedata = this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00579 sliceCutter->SetInput( vtkimagedata ); 00580 sliceCutter->SetCutFunction( slicePlane ); 00581 00582 //EED 00583 // vtkLookupTable *lut = BuildHueWeightBaseMap(); 00584 00585 00586 vtkPolyDataMapper *slice = vtkPolyDataMapper::New(); 00587 slice->SetInput( sliceCutter->GetOutput() ); 00588 double range[2]; 00589 // EED 00590 // slice->Update(); 00591 vtkimagedata->GetScalarRange(range); 00592 // vecMagnitude->GetOutput()->GetScalarRange( range ); 00593 // range[1] *= 0.7; // reduce the upper range by 30% 00594 // slice->SetScalarRange( range ); 00595 // slice->SetLookupTable( lut ); 00596 00597 // vtkActor *sliceActor = vtkActor::New(); 00598 // sliceActor->SetMapper( slice ); 00599 00600 vtkPolyDataMapper *contourMapper = vtkPolyDataMapper::New(); 00601 contourMapper->SetInput( sliceCutter->GetOutput() ); 00602 contourMapper->SetScalarRange( range ); 00603 // contourMapper->SetLookupTable( lut ); 00604 00605 00606 vtkActor *contourActor = vtkActor::New(); 00607 contourActor->SetMapper( contourMapper ); 00608 00609 00610 00611 // The usual rendering stuff. 00612 vtkCamera *camera = vtkCamera::New(); 00613 camera->SetPosition(1,1,1); 00614 camera->SetFocalPoint(0,0,0); 00615 00616 vtkRenderer *renderer = vtkRenderer::New(); 00617 vtkRenderWindow *renWin = vtkRenderWindow::New(); 00618 renWin->AddRenderer(renderer); 00619 00620 vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); 00621 iren->SetRenderWindow(renWin); 00622 00623 renderer->AddActor( contourActor ); 00624 // renderer->AddActor(cubeActor); 00625 renderer->SetActiveCamera(camera); 00626 renderer->ResetCamera(); 00627 renderer->SetBackground(1,1,1); 00628 00629 renWin->SetSize(300,300); 00630 00631 // interact with data 00632 renWin->Render(); 00633 iren->Start(); 00634 00635 00636 }
void wxVtkMPR3DView::VisibleImageActor | ( | int | idPosition, | |
bool | visible | |||
) |
Definition at line 373 of file wxVtkMPR3DView.cxx.
References _vtkmpr3Ddataviewer, _wxvtk3Dbaseview, vtkMPR3DDataViewer::GetImageActor(), wxVtk3DBaseView::GetRenderer(), vtkMPR3DDataViewer::GetVisiblePosition(), and vtkMPR3DDataViewer::SetVisiblePosition().
Referenced by wxMaracasRenderTabbedPanel::addRemoveActorMPR(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisX(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisY(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisZ(), wxVtkMPR3DViewCntrlPanel::SetVisibleX(), wxVtkMPR3DViewCntrlPanel::SetVisibleY(), and wxVtkMPR3DViewCntrlPanel::SetVisibleZ().
00373 { 00374 /*if(visible == false) 00375 printf("CPR: wxVtkMPR3DView::VisibleImageActor-> visibleActor == false \n"); 00376 else 00377 { 00378 printf("CPR: wxVtkMPR3DView::VisibleImageActor-> visibleActor == true\n"); 00379 printf("CPR: wxVtkMPR3DView::VisibleImageActor-> idPosition == %d\n", idPosition); 00380 } 00381 */ 00382 if (visible!=_vtkmpr3Ddataviewer->GetVisiblePosition(idPosition)){ 00383 if (visible==false){ 00384 _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); 00385 } else { 00386 _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) ); 00387 } 00388 _vtkmpr3Ddataviewer->SetVisiblePosition(idPosition,visible); 00389 } 00390 }
void wxVtkMPR3DView::VisiblePlaneWidget | ( | bool | visible | ) |
Definition at line 405 of file wxVtkMPR3DView.cxx.
References _contourPlaneActor, and _planeWidget.
Referenced by wxMaracasRenderTabbedPanel::addRemoveActorMPR(), wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(), wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(), and ~wxVtkMPR3DView().
00406 { 00407 if (visible==true) 00408 { 00409 _planeWidget->On(); 00410 _contourPlaneActor->VisibilityOn(); 00411 00412 } else { 00413 _planeWidget->Off(); 00414 _contourPlaneActor->VisibilityOff(); 00415 } 00416 }
void wxVtkMPR3DView::VisiblePointWidget | ( | bool | visible | ) |
Definition at line 394 of file wxVtkMPR3DView.cxx.
References _pointWidget.
Referenced by wxMaracasRenderTabbedPanel::addRemoveActorMPR(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(), wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(), and ~wxVtkMPR3DView().
00395 { 00396 if (visible==true) 00397 { 00398 _pointWidget->On(); 00399 } else { 00400 _pointWidget->Off(); 00401 } 00402 }
vtkPolyDataMapper* wxVtkMPR3DView::_contourMapper [private] |
Definition at line 72 of file wxVtkMPR3DView.h.
Referenced by Configure(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
vtkActor* wxVtkMPR3DView::_contourPlaneActor [private] |
Definition at line 65 of file wxVtkMPR3DView.h.
Referenced by Configure(), VisiblePlaneWidget(), and ~wxVtkMPR3DView().
vtkPlaneWidget* wxVtkMPR3DView::_planeWidget [private] |
Definition at line 66 of file wxVtkMPR3DView.h.
Referenced by Configure(), InitOrientationPointWidget(), RefreshView(), TestLoic1(), TestLoic2(), VisiblePlaneWidget(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
vtkImagePlaneWidget* wxVtkMPR3DView::_planeWidgetX [private] |
Definition at line 75 of file wxVtkMPR3DView.h.
Referenced by ConfigureFreePlanes(), FreePlaneInteraction(), and FreePlaneVisible().
vtkImagePlaneWidget* wxVtkMPR3DView::_planeWidgetY [private] |
Definition at line 76 of file wxVtkMPR3DView.h.
Referenced by ConfigureFreePlanes(), FreePlaneInteraction(), and FreePlaneVisible().
vtkImagePlaneWidget* wxVtkMPR3DView::_planeWidgetZ [private] |
Definition at line 77 of file wxVtkMPR3DView.h.
Referenced by ConfigureFreePlanes(), FreePlaneInteraction(), and FreePlaneVisible().
vtkPointWidget* wxVtkMPR3DView::_pointWidget [private] |
Definition at line 69 of file wxVtkMPR3DView.h.
Referenced by Configure(), RefreshView(), VisiblePointWidget(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
vtkProbeFilter* wxVtkMPR3DView::_probe [private] |
Definition at line 71 of file wxVtkMPR3DView.h.
Referenced by Configure(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
Definition at line 60 of file wxVtkMPR3DView.h.
Referenced by Configure(), GetVtkMPR3DDataViewer(), Refresh(), SetVtkMPR3DDataViewer(), showOutlineActor(), VisibleImageActor(), and wxVtkMPR3DView().
vtkPolyData* wxVtkMPR3DView::_vtkplane [private] |
Definition at line 64 of file wxVtkMPR3DView.h.
Referenced by Configure(), RefreshView(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().
wxVtk3DBaseView* wxVtkMPR3DView::_wxvtk3Dbaseview [private] |
Definition at line 59 of file wxVtkMPR3DView.h.
Referenced by Configure(), GetWxvtk3Dbaseview(), RemoveActor(), ResetCamera(), showOutlineActor(), VisibleImageActor(), and wxVtkMPR3DView().
Definition at line 61 of file wxVtkMPR3DView.h.
Referenced by Configure(), CreateControlPanel(), Refresh(), and wxVtkMPR3DView().