wxVtkMPR3DView Class Reference

#include <wxVtkMPR3DView.h>

Collaboration diagram for wxVtkMPR3DView:
Collaboration graph
[legend]

List of all members.

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)
vtkMPR3DDataViewerGetVtkMPR3DDataViewer ()
wxVtk3DBaseViewGetWxvtk3Dbaseview () 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

Detailed Description

Definition at line 17 of file wxVtkMPR3DView.h.


Constructor & Destructor Documentation

wxVtkMPR3DView::wxVtkMPR3DView ( wxVtk3DBaseView wxvtk3Dbaseview  ) 

Definition at line 19 of file wxVtkMPR3DView.cxx.

References _contourMapper, _planeWidget, _planeWidgetX, _planeWidgetY, _planeWidgetZ, _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         _planeWidgetX = 0;
00032         _planeWidgetY = 0;
00033         _planeWidgetZ = 0;
00034         //EED Fev 3 2010
00035         //Free Planes 
00036 }

wxVtkMPR3DView::~wxVtkMPR3DView (  )  [virtual]

Definition at line 40 of file wxVtkMPR3DView.cxx.

References _contourMapper, _contourPlaneActor, _planeWidget, _pointWidget, _probe, _vtkplane, VisiblePlaneWidget(), and VisiblePointWidget().

00041 {
00042         VisiblePointWidget( false );
00043         VisiblePlaneWidget( false );
00044         
00045         if(_pointWidget!=NULL){
00046                 _pointWidget->Delete();
00047         }
00048         if(_planeWidget!=NULL){
00049                 _planeWidget->Delete();
00050         }
00051         
00052         if(_vtkplane!=NULL){
00053                 _vtkplane->Delete();            
00054                 _probe->Delete();
00055                 _contourMapper->Delete();                       
00056                 _contourPlaneActor->Delete();           
00057         }
00058         
00059 }

Here is the call graph for this function:


Member Function Documentation

void wxVtkMPR3DView::Configure (  )  [virtual]

Definition at line 97 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(), and wxMaracas_ViewerWidget::ConfigureVTK().

00097                               {
00098         
00099         
00100         vtkImageData *imageData = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
00101 
00102         _wxvtk3Dbaseview->Configure();
00103         _wxvtkmpr3DviewCntrlPanel->UpdateControlPanel();
00104         
00105 //EED 27 Mai 2009 
00106 //      _wxvtk3Dbaseview->GetRenderer()->Clear();    
00107         
00108         // Actors are added to the renderer. 
00109         vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor();
00110         _wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor );                     
00111 //      _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(0)  );    // _saggital
00112 //      _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(1)  );    // _axial
00113 //      _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(2)  );    // _coronal
00114 
00115 
00116         // An initial camera view is created.  The Dolly() method moves 
00117         // the camera towards the FocalPoint, thereby enlarging the image.      
00118         _wxvtk3Dbaseview->GetRenderer()->SetActiveCamera(_wxvtk3Dbaseview->GetCamera());
00119         this->ResetCamera();
00120         
00121 
00122         // Set a background color for the renderer and set the size of the
00123         // render window (expressed in pixels).
00124         _wxvtk3Dbaseview->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 );
00125         _wxvtk3Dbaseview->GetRenWin()->SetSize(400, 400);
00126 
00127         // Note that when camera movement occurs (as it does in the Dolly()
00128         // method), the clipping planes often need adjusting. Clipping planes
00129         // consist of two planes: near and far along the view direction. The 
00130         // near plane clips out objects in front of the plane; the far plane
00131         // clips out objects behind the plane. This way only what is drawn
00132         // between the planes is actually rendered.
00133         _wxvtk3Dbaseview->GetRenderer()->ResetCameraClippingRange();
00134 
00135 
00136         // vtkPointWidget
00137         //if(_myCallback!=NULL){
00138                 //_myCallback->Delete();
00139 
00140         //}
00141         vtkmyPWCallback_3DPointWidget *_myCallback = vtkmyPWCallback_3DPointWidget::New();
00142         _myCallback->SetWxVtkMPR3DView(this);
00143         
00144         
00145         if(imageData){
00146                 if(_pointWidget==NULL){
00147                         _pointWidget = vtkPointWidget::New();
00148                 }
00149                 _pointWidget->SetInput( imageData );
00150                 _myCallback->SetVtkPointWidget(_pointWidget);
00151                 _pointWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() ); 
00152                 _pointWidget->AllOff();
00153                 _pointWidget->PlaceWidget();
00154                 
00155                 _pointWidget->AddObserver(vtkCommand::InteractionEvent,_myCallback);
00156                 
00157                 
00158                 if(_planeWidget==NULL)
00159                 {
00160                         _planeWidget = vtkPlaneWidget::New();
00161                 }
00162                 _planeWidget->SetInput( imageData );
00163                 
00164                 _myCallback->SetVtkPlaneWidget(_planeWidget);
00165 
00166                 _planeWidget->NormalToXAxisOn();
00167                 _planeWidget->SetResolution(50);
00168                 _planeWidget->SetRepresentationToOutline();
00169                 
00170                 int dim[3];
00171         
00172                 imageData->GetDimensions(dim);
00173                 int px=(dim[0]/2);
00174                 int py=(dim[1]/2);
00175                 int pz=(dim[2]/2);
00176                 int dd=20;
00177                 _planeWidget->PlaceWidget( px-dd , px+dd , py-dd , py+dd , pz-dd , pz+dd );
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                 }
00201 
00202                 _planeWidget->GetPolyData(_vtkplane);
00203                 _probe->SetSource( imageData );
00204                 _contourMapper->SetScalarRange( imageData->GetScalarRange() );
00205                 
00206                 
00207                 ConfigureFreePlanes();
00208         }
00209         
00210 //      _pointWidget->SetPosition( x,y,z ); 
00211         
00212 //EED01 29Mars2009
00213 // MACOS probleme vtk-window out of wx-window   
00214 //      _pointWidget->On();
00215         
00216         
00217 
00218 
00219 // PlaneWidget
00220         
00221         
00222         
00223         
00224         
00225         
00226 
00227 
00228         
00229 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxVtkMPR3DView::ConfigureFreePlanes (  ) 

Definition at line 232 of file wxVtkMPR3DView.cxx.

References _planeWidgetX, _planeWidgetY, _planeWidgetZ, and GetPlaneWidget().

Referenced by Configure().

00233 {
00234 
00235         // The shared picker enables us to use 3 planes at one time
00236         // and gets the picking order right
00237         vtkCellPicker* picker = vtkCellPicker::New();
00238         picker->SetTolerance(0.005);
00239 
00240         // The 3 image plane widgets 
00241         _planeWidgetX = GetPlaneWidget('x', 1, 0, 0, picker);
00242         _planeWidgetY = GetPlaneWidget('y', 1, 1, 0, picker);
00243         _planeWidgetZ = GetPlaneWidget('z', 0, 0, 1, picker);     
00244         
00245         _planeWidgetY->SetLookupTable(_planeWidgetX->GetLookupTable());
00246         _planeWidgetZ->SetLookupTable(_planeWidgetX->GetLookupTable());
00247         
00248         picker->UnRegister(NULL);
00249         
00250 }

Here is the call graph for this function:

Here is the caller graph for this function:

wxPanel * wxVtkMPR3DView::CreateControlPanel ( wxWindow *  parent,
bool  align 
)
void wxVtkMPR3DView::FreePlaneInteraction ( bool  ok  ) 

Definition at line 314 of file wxVtkMPR3DView.cxx.

References _planeWidgetX, _planeWidgetY, and _planeWidgetZ.

Referenced by wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneInteraction(), wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(), wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(), and wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ().

00315 {
00316         if(_planeWidgetX){
00317                 if (ok==true)
00318                 {
00319                         _planeWidgetX->InteractionOn();
00320                         _planeWidgetY->InteractionOn();
00321                         _planeWidgetZ->InteractionOn();
00322                 } else {
00323                         _planeWidgetX->InteractionOff();
00324                         _planeWidgetY->InteractionOff();
00325                         _planeWidgetZ->InteractionOff();
00326                 }
00327         }
00328 }

Here is the caller graph for this function:

void wxVtkMPR3DView::FreePlaneVisible ( int  plane,
bool  ok 
)

Definition at line 301 of file wxVtkMPR3DView.cxx.

References _planeWidgetX, _planeWidgetY, and _planeWidgetZ.

Referenced by wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneX(), wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneY(), and wxVtkMPR3DViewCntrlPanel::OnVisibleFreePlaneZ().

00302 {
00303         if(_planeWidgetX){
00304                 if ((plane==1) && (ok==true)) _planeWidgetX->EnabledOn();
00305                 if ((plane==2) && (ok==true)) _planeWidgetY->EnabledOn();
00306                 if ((plane==3) && (ok==true)) _planeWidgetZ->EnabledOn();
00307                 if ((plane==1) && (ok==false)) _planeWidgetX->EnabledOff();
00308                 if ((plane==2) && (ok==false)) _planeWidgetY->EnabledOff();
00309                 if ((plane==3) && (ok==false)) _planeWidgetZ->EnabledOff();
00310         }
00311 }

Here is the caller graph for this function:

vtkImagePlaneWidget * wxVtkMPR3DView::GetPlaneWidget ( unsigned char  activationkey,
double  r,
double  g,
double  b,
vtkCellPicker *  picker 
)

Definition at line 253 of file wxVtkMPR3DView.cxx.

References vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::GetVtkMPRBaseData(), and GetWxvtk3Dbaseview().

Referenced by ConfigureFreePlanes().

00254 {
00255         vtkProperty* prop1 = 0;         
00256         vtkImagePlaneWidget* planeWidget = 0;
00257         planeWidget = vtkImagePlaneWidget::New();
00258         planeWidget->EnabledOff();
00259         planeWidget->SetInteractor( GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor() );
00260         vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
00261         int xMin = 0, xMax = 0, yMin = 0, yMax = 0, zMin = 0, zMax = 0;
00262         double xSpacing = 0, ySpacing = 0, zSpacing = 0;
00263         if(image){
00264                 planeWidget->SetInput( image );
00265                 image->GetExtent(xMin, xMax, yMin, yMax, zMin, zMax);   
00266                 image->GetSpacing(xSpacing, ySpacing, zSpacing);
00267         }
00268 
00269         
00270         
00271         
00272                 
00273         
00274         if (activationkey=='x')
00275         {
00276                 planeWidget->SetPlaneOrientationToXAxes();       
00277                 planeWidget->SetSlicePosition((xMax+xMin)/2.*xSpacing);
00278         }
00279         
00280         if (activationkey=='y')
00281         {
00282                 planeWidget->SetPlaneOrientationToYAxes();
00283                 planeWidget->SetSlicePosition((yMax+yMin)/2.*ySpacing);
00284         }
00285                 
00286         if (activationkey=='z')
00287         {
00288                 planeWidget->SetPlaneOrientationToZAxes();
00289                 planeWidget->SetSlicePosition((zMax+zMin)/2.*zSpacing);
00290         }
00291         
00292         planeWidget->DisplayTextOn();
00293         planeWidget->SetPicker(picker);
00294         planeWidget->SetKeyPressActivationValue(activationkey);
00295         prop1 = planeWidget->GetPlaneProperty();
00296         prop1->SetColor(r, g, b);
00297         return planeWidget;
00298 }

Here is the call graph for this function:

Here is the caller graph for this function:

bool wxVtkMPR3DView::GetVisibleTissue ( int  idTissue  ) 
vtkMPR3DDataViewer * wxVtkMPR3DView::GetVtkMPR3DDataViewer (  ) 
wxVtk3DBaseView * wxVtkMPR3DView::GetWxvtk3Dbaseview (  )  throw (char*)
void wxVtkMPR3DView::InitOrientationPointWidget (  ) 

Definition at line 482 of file wxVtkMPR3DView.cxx.

References _planeWidget.

Referenced by wxManualRegistration3D::OnTracking().

00483 {
00484         this->_planeWidget->SetNormal(1,0,0);           
00485 }

Here is the caller graph for this function:

void wxVtkMPR3DView::Refresh (  )  [virtual]
void wxVtkMPR3DView::RefreshView (  )  [virtual]

Definition at line 349 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(), wxMaracasRenderTabbedPanel::OnRefreshView(), and wxMaracas_ViewerWidget::RefreshView().

00350 {
00351         double spc[3];
00352         vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
00353         
00354         if(image){
00355                 image->GetSpacing(spc);
00356         }else{
00357                 spc[0] = 0;
00358                 spc[1] = 0;
00359                 spc[2] = 0;
00360         }
00361         //this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc);
00362 
00363         //double nx=1,ny=0,nz=0; // JPRx
00364         Refresh();
00365         double x=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetX();
00366         double y=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetY();
00367         double z=GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetZ();
00368 
00369         x=x*spc[0];
00370         y=y*spc[1];
00371         z=z*spc[2];
00372 
00373         if(_pointWidget){
00374                 _pointWidget->SetPosition( x,y,z ); 
00375 
00376 
00377                 double in[3]; 
00378                 double normal[3];
00379                 vtkTransform *transform = GetVtkMPR3DDataViewer ()->GetVtkMPRBaseData()->GetTransformOrientation();
00380                 in[0]=1;                in[1]=0;                        in[2]=0;
00381                 transform->TransformPoint(in,normal);
00382                 _planeWidget->SetNormal( normal[0],normal[1],normal[2] );
00383 
00384 
00385                 _planeWidget->SetCenter( x,y,z );
00386                 _planeWidget->UpdatePlacement();
00387                 _planeWidget->GetPolyData(_vtkplane);
00388         }
00389 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxVtkMPR3DView::RemoveActor ( vtkActor *  actor  ) 

Definition at line 62 of file wxVtkMPR3DView.cxx.

References _wxvtk3Dbaseview, and wxVtk3DBaseView::GetRenderer().

00063 {       
00064         _wxvtk3Dbaseview->GetRenderer()->RemoveActor(actor);    
00065 }

Here is the call graph for this function:

void wxVtkMPR3DView::ResetCamera ( int *  ext = NULL,
double *  origin = NULL,
double *  spc = NULL 
)

Definition at line 68 of file wxVtkMPR3DView.cxx.

References _wxvtk3Dbaseview, wxVtk3DBaseView::GetCamera(), and wxVtk3DBaseView::GetRenderer().

Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), Configure(), and wxMaracas_ViewerWidget::ConfigureVTK().

00069 {
00070         if(ext == NULL){
00071                 _wxvtk3Dbaseview->GetRenderer()->ResetCamera ();        
00072                 _wxvtk3Dbaseview->GetCamera()->Dolly(1.5);      
00073         }else{
00074                 /*double x = (spc[0])*(origin[0]+(((double)ext[1]-(double)ext[0])/2.0));                
00075                 double y = (spc[1])*(origin[1]+(double)ext[3]);
00076                 double z = (spc[2])*(origin[2]+(((double)ext[5]-(double)ext[4])/2.0));*/
00077                 /*double x0=(spc[0])*((double)ext[0]+origin[0]);
00078                 double x1=(spc[0])*((double)ext[1]+origin[0]);
00079                 double y0=(spc[1])*((double)ext[2]+origin[1]);
00080                 double y1=(spc[1])*((double)ext[3]+origin[1]);
00081                 double z0=(spc[2])*((double)ext[4]+origin[2]);
00082                 double z1=(spc[2])*((double)ext[5]+origin[2]);*/
00083                 double x0=(spc[0])*((double)ext[0]);
00084                 double x1=(spc[0])*((double)ext[1]);
00085                 double y0=(spc[1])*((double)ext[2]);
00086                 double y1=(spc[1])*((double)ext[3]);
00087                 double z0=(spc[2])*((double)ext[4]);
00088                 double z1=(spc[2])*((double)ext[5]);
00089                 
00090                 _wxvtk3Dbaseview->GetRenderer()->ResetCamera(x0,x1,y0,y1,z0,z1);
00091                 //_wxvtk3Dbaseview->GetCamera()->SetPosition(x,y,z);
00092                 _wxvtk3Dbaseview->GetCamera()->Dolly(1.5);      
00093         }
00094 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxVtkMPR3DView::setColorTransferFunction ( vtkColorTransferFunction *  colortable  ) 

Definition at line 332 of file wxVtkMPR3DView.cxx.

References GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::setColorTransferFunction().

Referenced by wxMaracas_ViewerWidget::setColorTransferFunction().

00333 {
00334         GetVtkMPR3DDataViewer ()->setColorTransferFunction(colortable); 
00335 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxVtkMPR3DView::SetVisibleTissue ( int  idTissue,
bool  visible 
)
void wxVtkMPR3DView::SetVtkMPR3DDataViewer ( vtkMPR3DDataViewer vtkmpr3Ddataviewer  ) 
void wxVtkMPR3DView::showOutlineActor ( bool  value  ) 

Definition at line 462 of file wxVtkMPR3DView.cxx.

References _vtkmpr3Ddataviewer, _wxvtk3Dbaseview, vtkMPR3DDataViewer::GetOutlineActor(), and wxVtk3DBaseView::GetRenderer().

Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), and wxMaracasRenderTabbedPanel::addRemoveActorMPR().

00463 {
00464         vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor();
00465         if(value == true)
00466         {
00467                 _wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor );     
00468         }
00469         else
00470         {
00471                 _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _outlineActor );  
00472         }
00473 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxVtkMPR3DView::TestLoic1 (  ) 

Definition at line 492 of file wxVtkMPR3DView.cxx.

References _planeWidget, vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::GetVtkMPRBaseData().

Referenced by wxManualRegistration3D::OnTracking().

00493 {
00494 
00495         int sizeIma     = 128;
00496   double dimIma = sizeIma*2;
00497 
00498         vtkImageData *vtkimagedata =  this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
00499 
00500         double spc[3];
00501         vtkimagedata->GetSpacing(spc);
00502 
00503         vtkimagedata->Update();
00504 
00505 
00506          double p[3], n[3];
00507      this->_planeWidget->GetOrigin(p);
00508      this->_planeWidget->GetNormal(n);
00509 
00510 
00511 
00512     vtkPlaneSource* pSource = vtkPlaneSource::New( );
00513     pSource->SetResolution( sizeIma - 1, sizeIma - 1 );
00514     pSource->SetOrigin( p[ 0 ], p[ 1 ], p[ 2 ] );
00515     pSource->SetPoint1( p[ 0 ] + dimIma - 1.0, p[ 1 ], p[ 2 ] );
00516     pSource->SetPoint2( p[ 0 ], p[ 1 ]+ dimIma - 1.0 , p[ 2 ] );
00517     pSource->Update( );
00518     pSource->SetCenter( p[ 0 ], p[ 1 ], p[ 2 ] );
00519     pSource->SetNormal( n[ 0 ], n[ 1 ], n[ 2 ] );
00520     pSource->Update( );
00521 
00522     vtkProbeFilter* slices = vtkProbeFilter::New();
00523     slices->SetInput( ( vtkDataSet* )pSource->GetOutput( ) );
00524     slices->SetSource( vtkimagedata );
00525     slices->Update( );
00526     pSource->Delete( );
00527 
00528         vtkStructuredPoints   *stPoints = vtkStructuredPoints::New();
00529         stPoints -> GetPointData( )->SetScalars(  slices->GetOutput()->GetPointData()->GetScalars()  );
00530         stPoints -> SetDimensions( sizeIma, sizeIma, 1 );
00531         stPoints -> SetScalarType( vtkimagedata->GetScalarType() );
00532         stPoints -> SetScalarTypeToShort();
00533         stPoints -> Update();
00534 
00535         vtkImageChangeInformation  *change = vtkImageChangeInformation ::New();
00536         change    -> SetInput( stPoints );  
00537         change    -> Update();    //important
00538 
00539         double _range[2];
00540         vtkimagedata->GetScalarRange(_range);
00541    vtkWindowLevelLookupTable *_bwlookup = vtkWindowLevelLookupTable::New( );
00542    _bwlookup->SetHueRange( 0 , 1 );
00543    _bwlookup->SetNumberOfColors( (int)(_range[1] - _range[0] + 1) );
00544    _bwlookup->SetTableRange( _range[0] , _range[1] );
00545    _bwlookup->SetSaturationRange( 0 , 0 );
00546    _bwlookup->SetValueRange( 0 , 1 );
00547    _bwlookup->SetAlphaRange( 1 , 1 );
00548    _bwlookup->Build( );
00549  
00550    vtkLookupTable * _collookup = vtkLookupTable::New( );
00551    _collookup->SetNumberOfColors( 256 );
00552    _collookup->SetTableRange( 0 , 255 );
00553    _collookup->Build( );
00554    _collookup->SetTableValue( 0  , 1 , 0 , 0 , 1 );
00555    _collookup->SetTableValue(128 , 0 , 0 , 1 , 1 );
00556    _collookup->SetTableValue(255 , 0 , 1 , 0 , 1 );
00557 
00558 
00559         vtkMetaImageWriter *writer = vtkMetaImageWriter::New( );
00560         writer->SetInput( stPoints );
00561         writer->SetFileName( "C:/Users/Images/temp_EED/image.mhd" );
00562         writer->SetFileDimensionality( 2 );
00563         writer->Write( );
00564 
00565 
00566 
00567         vtkDataSetMapper *_3DSliceMapper = vtkDataSetMapper::New( );
00568         _3DSliceMapper->SetInput(change->GetOutput( ) );
00569         _3DSliceMapper->SetLookupTable( _bwlookup );
00570         _3DSliceMapper->SetScalarRange( _range );
00571         _3DSliceMapper->ImmediateModeRenderingOn( );
00572 
00573         vtkActor *_3DSliceActor = vtkActor::New( );
00574         _3DSliceActor->SetMapper( _3DSliceMapper );
00575 
00576  // The usual rendering stuff.
00577   vtkCamera *camera = vtkCamera::New();
00578       camera->SetPosition(1,1,1);
00579       camera->SetFocalPoint(0,0,0);
00580 
00581   vtkRenderer *renderer = vtkRenderer::New();
00582   vtkRenderWindow *renWin = vtkRenderWindow::New();
00583     renWin->AddRenderer(renderer);
00584 
00585   vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
00586     iren->SetRenderWindow(renWin);
00587 
00588   renderer->AddActor( _3DSliceActor );
00589       renderer->SetActiveCamera(camera);
00590       renderer->ResetCamera();
00591       renderer->SetBackground(1,1,1);
00592   
00593   renWin->SetSize(300,300);
00594 
00595   // interact with data
00596   renWin->Render();
00597   iren->Start();
00598 
00599 
00600 
00601 
00602 
00603 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxVtkMPR3DView::TestLoic2 (  ) 

Definition at line 607 of file wxVtkMPR3DView.cxx.

References _planeWidget, vtkBaseData::GetImageData(), GetVtkMPR3DDataViewer(), and vtkMPR3DDataViewer::GetVtkMPRBaseData().

00608 {
00609 /*
00610  vtkVectorNorm *vecMagnitude = vtkVectorNorm::New();
00611                 vecMagnitude->SetInput(VtkMainGrid);
00612                 vecMagnitude->NormalizeOff();
00613                 vecMagnitude->Update();
00614 */
00615 
00616         vtkPlane *slicePlane = vtkPlane::New();
00617                                 this->_planeWidget->GetPlane( slicePlane );
00618 
00619                 
00620         vtkCutter* sliceCutter = vtkCutter::New();
00621                 vtkImageData *vtkimagedata =  this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
00622                 sliceCutter->SetInput( vtkimagedata );
00623                 sliceCutter->SetCutFunction( slicePlane );
00624 
00625 //EED
00626 //        vtkLookupTable *lut = BuildHueWeightBaseMap();
00627 
00628 
00629         vtkPolyDataMapper *slice = vtkPolyDataMapper::New();
00630                 slice->SetInput( sliceCutter->GetOutput() );
00631         double range[2];
00632 // EED
00633 //                slice->Update();
00634                                   vtkimagedata->GetScalarRange(range);
00635 //                vecMagnitude->GetOutput()->GetScalarRange( range );
00636 //                range[1] *= 0.7; // reduce the upper range by 30%
00637 //                slice->SetScalarRange( range );
00638 //                slice->SetLookupTable( lut );
00639 
00640 //       vtkActor *sliceActor = vtkActor::New();
00641 //                sliceActor->SetMapper( slice );
00642 
00643         vtkPolyDataMapper *contourMapper = vtkPolyDataMapper::New();
00644                 contourMapper->SetInput( sliceCutter->GetOutput() );
00645                 contourMapper->SetScalarRange( range );
00646   //              contourMapper->SetLookupTable( lut );
00647 
00648                 
00649         vtkActor *contourActor = vtkActor::New();
00650                 contourActor->SetMapper( contourMapper );
00651 
00652 
00653 
00654  // The usual rendering stuff.
00655   vtkCamera *camera = vtkCamera::New();
00656       camera->SetPosition(1,1,1);
00657       camera->SetFocalPoint(0,0,0);
00658 
00659   vtkRenderer *renderer = vtkRenderer::New();
00660   vtkRenderWindow *renWin = vtkRenderWindow::New();
00661     renWin->AddRenderer(renderer);
00662 
00663   vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
00664     iren->SetRenderWindow(renWin);
00665 
00666   renderer->AddActor( contourActor );
00667 //  renderer->AddActor(cubeActor);
00668       renderer->SetActiveCamera(camera);
00669       renderer->ResetCamera();
00670       renderer->SetBackground(1,1,1);
00671   
00672   renWin->SetSize(300,300);
00673 
00674   // interact with data
00675   renWin->Render();
00676   iren->Start();
00677 
00678 
00679 }

Here is the call graph for this function:

void wxVtkMPR3DView::VisibleImageActor ( int  idPosition,
bool  visible 
)

Definition at line 412 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().

00412                                                                   {
00413         /*if(visible == false)
00414                 printf("CPR: wxVtkMPR3DView::VisibleImageActor-> visibleActor == false \n");
00415         else
00416         {
00417                 printf("CPR: wxVtkMPR3DView::VisibleImageActor-> visibleActor == true\n");
00418                 printf("CPR: wxVtkMPR3DView::VisibleImageActor-> idPosition == %d\n", idPosition);
00419         }
00420         */
00421         if (visible!=_vtkmpr3Ddataviewer->GetVisiblePosition(idPosition)){
00422                 if (visible==false){
00423                         _wxvtk3Dbaseview->GetRenderer()->RemoveActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition)  );        
00424                 } else {
00425                         _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition)  );   
00426                 }
00427                 _vtkmpr3Ddataviewer->SetVisiblePosition(idPosition,visible);
00428         }
00429 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxVtkMPR3DView::VisiblePlaneWidget ( bool  visible  ) 

Definition at line 446 of file wxVtkMPR3DView.cxx.

References _contourPlaneActor, and _planeWidget.

Referenced by wxMaracasRenderTabbedPanel::addRemoveActorMPR(), wxVtkMPR3DViewCntrlPanel::OnVisiblePlane(), wxVtkMPR3DViewCntrlPanel::SetVisiblePlane(), and ~wxVtkMPR3DView().

00447 {
00448         if(_planeWidget){
00449                 if (visible==true)
00450                 {
00451                         _planeWidget->On();
00452                         _contourPlaneActor->VisibilityOn();
00453 
00454                 } else {
00455                         _planeWidget->Off();
00456                         _contourPlaneActor->VisibilityOff();
00457                 }
00458         }
00459 }

Here is the caller graph for this function:

void wxVtkMPR3DView::VisiblePointWidget ( bool  visible  ) 

Definition at line 433 of file wxVtkMPR3DView.cxx.

References _pointWidget.

Referenced by wxMaracasRenderTabbedPanel::addRemoveActorMPR(), wxVtkMPR3DViewCntrlPanel::OnVisibleAxisXYZ(), wxVtkMPR3DViewCntrlPanel::SetVisibleXYZ(), and ~wxVtkMPR3DView().

00434 {
00435         if(_pointWidget){
00436                 if (visible==true)
00437                 {
00438                         _pointWidget->On();
00439                 } else {
00440                         _pointWidget->Off();
00441                 }
00442         }
00443 }

Here is the caller graph for this function:


Member Data Documentation

vtkPolyDataMapper* wxVtkMPR3DView::_contourMapper [private]

Definition at line 72 of file wxVtkMPR3DView.h.

Referenced by Configure(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().

Definition at line 65 of file wxVtkMPR3DView.h.

Referenced by Configure(), VisiblePlaneWidget(), and ~wxVtkMPR3DView().

vtkPlaneWidget* wxVtkMPR3DView::_planeWidget [private]
vtkImagePlaneWidget* wxVtkMPR3DView::_planeWidgetX [private]
vtkImagePlaneWidget* wxVtkMPR3DView::_planeWidgetY [private]
vtkImagePlaneWidget* wxVtkMPR3DView::_planeWidgetZ [private]
vtkPointWidget* wxVtkMPR3DView::_pointWidget [private]
vtkProbeFilter* wxVtkMPR3DView::_probe [private]

Definition at line 71 of file wxVtkMPR3DView.h.

Referenced by Configure(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().

vtkPolyData* wxVtkMPR3DView::_vtkplane [private]

Definition at line 64 of file wxVtkMPR3DView.h.

Referenced by Configure(), RefreshView(), wxVtkMPR3DView(), and ~wxVtkMPR3DView().

Definition at line 61 of file wxVtkMPR3DView.h.

Referenced by Configure(), CreateControlPanel(), Refresh(), and wxVtkMPR3DView().


The documentation for this class was generated from the following files:

Generated on 20 Oct 2010 for creaMaracasVisu_lib by  doxygen 1.6.1