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


Detailed Description

Definition at line 16 of file wxVtkMPR3DView.h.


Constructor & Destructor Documentation

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 }

Here is the call graph for this function:


Member Function Documentation

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

wxVtk3DBaseView* wxVtkMPR3DView::_wxvtk3Dbaseview [private]

Definition at line 46 of file wxVtkMPR3DView.h.

Referenced by Configure(), GetWxvtk3Dbaseview(), RemoveActor(), ResetCamera(), VisibleImageActor(), and wxVtkMPR3DView().

vtkMPR3DDataViewer* wxVtkMPR3DView::_vtkmpr3Ddataviewer [private]

Definition at line 47 of file wxVtkMPR3DView.h.

Referenced by Configure(), GetVtkMPR3DDataViewer(), Refresh(), SetVtkMPR3DDataViewer(), VisibleImageActor(), and wxVtkMPR3DView().

wxVtkMPR3DViewCntrlPanel* wxVtkMPR3DView::_wxvtkmpr3DviewCntrlPanel [private]

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().


The documentation for this class was generated from the following files:
Generated on Wed Jul 29 16:36:29 2009 for creaMaracasVisu_lib by  doxygen 1.5.3