vtk3DQuantSurfaceWidget Class Reference

Class that brigde to VTK, override double click... More...

#include <vtk3DQuantSurfaceWidget.h>

Inheritance diagram for vtk3DQuantSurfaceWidget:
Inheritance graph
[legend]
Collaboration diagram for vtk3DQuantSurfaceWidget:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 vtk3DQuantSurfaceWidget (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)
 ~vtk3DQuantSurfaceWidget ()
void ShowMARACASDataAndAxe (marInterface *mar)
void ShowMARACASDataAndAxeCT (marInterfaceCT *mar)
void SetImage (vtkProbeFilter *pFilter)
void InitListContourActor (int type, int nos)
void Show3DContourActor (int type=0)
void Hide3DContourActor (int type=0)
void Set3DContourActor (int slice, vtkPoints *contour3D, bool showActor, int type=0)
void Erase3DContourActor (int slice)
void Show3DSliceActor ()
void Hide3DSliceActor ()
void SetColorLookUp ()
void SetBWLookUp ()
void Show3DHealthySliceActor ()
void Hide3DHealthySliceActor ()
void Set3DHealthySliceActor ()
void Set3DRegionSliceActor (int type, int k1, int k2)
void Set3DStartRegionSliceActor (int type, int k)
void Set3DEndRegionSliceActor (int type, int k)
void Show3DRegionSliceActor (int type)
void Show3DStartRegionSliceActor (int type)
void Show3DEndRegionSliceActor (int type)
void Hide3DRegionSliceActor (int type)
void Hide3DStartRegionSliceActor (int type)
void Hide3DEndRegionSliceActor (int type)
void GetSliceLimites (int type, int &sliceStart, int &sliceEnd)
int GetAnalysisTypeStenosis ()
void SetAnalysisTypeStenosis (int analysisTypeStenosis)
vtkRenderer * QuantSurfaceWidget_GetRenderer ()
vtkRenderWindow * QuantSurfaceWidget_GetRenderWindow ()
void OnLeftDClick (wxMouseEvent &event)
virtual void OnMouseWheel (wxMouseEvent &event)
void Render ()
void ConfigureVTK ()
void ShowMARACASData (marInterface *mar)
void ShowMARACASDataCT (marInterfaceCT *mar)
void SetSurfaceColor (float red, float green, float blue)
void SetSurfaceVisibility (bool visible)
void SetSurfaceIsoValue (int isoval)
void SetSurfaceOpacity (int opaval)
void GetSphereCenter (double center[3])
void SetAxis (vtkPolyData *axis)
void RemoveAxis ()
 vtkGetMacro (InitialSphere, int)
 vtkGetMacro (Stereo, int)
void SetInterfaceVtkPanelWidgets (InterfaceVtkPanelWidgets *intVtkPanWid)
void SetInitialPoint ()
void GetLast3DClickPoint (double *pp, double *cp)
void InitCameraReset ()
vtkRenderer * GetRenderer ()
void PrintSelf (ostream &os, vtkIndent indent)
void Initialize ()
void Enable ()
bool Enable (bool enable)
void Disable ()
void Start ()
void UpdateSize (int x, int y)
int CreateTimer (int timertype)
int DestroyTimer ()
void TerminateApp ()
void OnPaint (wxPaintEvent &event)
void OnEraseBackground (wxEraseEvent &event)
void OnMotion (wxMouseEvent &event)
void OnButtonDown (wxMouseEvent &event)
 (VTK_MAJOR_VERSION == 3 && VTK_MINOR_VERSION == 1)
void OnButtonUp (wxMouseEvent &event)
void OnEnter (wxMouseEvent &event)
void OnLeave (wxMouseEvent &event)
void OnKeyDown (wxKeyEvent &event)
void OnKeyUp (wxKeyEvent &event)
void OnTimer (wxTimerEvent &event)
void OnSize (wxSizeEvent &event)
void SetRenderWhenDisabled (int newValue)
 vtkBooleanMacro (Stereo, int)
 vtkBooleanMacro (UseCaptureMouse, int)
virtual void SetStereo (int capable)
 vtkSetMacro (UseCaptureMouse, int)

Static Public Member Functions

static
wxVTKRenderWindowInteractor
New ()

Public Attributes

vtkImageData * _marImageData
vtkPolyData * _marPolyData

Protected Member Functions

void SetInitialPoint (float *pickPoint, float *cameraPos)
void SetLast3DClickPoint (double *pp, double *cp)
long GetHandleHack ()

Protected Attributes

vtkDataSetMapper * _3DSliceMapper
vtkActor * _3DSliceActor
RectangleGuideVtk_hs_rectGuide
RectangleGuideVtk_s1_rectGuide
RectangleGuideVtk_s2_rectGuide
RectangleGuideVtk_sA_rectGuide
RectangleGuideVtk_sB_rectGuide
vtkWindowLevelLookupTable * _bwlookup
vtkLookupTable * _collookup
marInterface_mar
marInterfaceCT_marCT
vtkRenderer * _pRenderer
vtkRenderWindow * _pRenderWindow
vtkOutlineFilter * _outLine
vtkPolyDataMapper * _outMapper
vtkActor * _outActor
vtkMarchingCubes * _mCubes
vtkPolyDataMapper * _surfMapper
vtkActor * _surfActor
vtkPolyData * _centralLine
vtkPolyDataMapper * _centralLineMapper
vtkActor * _centralLineActor
vtkSphereSource * _spheres [4]
vtkPolyDataMapper * _spheresMapper [4]
vtkActor * _spheresActor [4]
vtkPolyDataMapper * _axesMapper
vtkActor * _axesActor
double _range [2]
InterfaceVtkPanelWidgets_intVtkPanWid
wxTimer timer
int ActiveButton
int RenderAllowed
int Stereo

Private Member Functions

void Set3DSliceActor (RectangleGuideVtk *_rectGuide, float scale, int k, int r, int g, int b)

Private Attributes

int _analysisTypeStenosis
listContourVTK_lstContVtk
listContourVTK_lstContHealtyVtk

Detailed Description

Class that brigde to VTK, override double click...

Definition at line 80 of file vtk3DQuantSurfaceWidget.h.


Constructor & Destructor Documentation

vtk3DQuantSurfaceWidget::vtk3DQuantSurfaceWidget ( wxWindow *  parent,
wxWindowID  id,
const wxPoint &  pos = wxDefaultPosition,
const wxSize &  size = wxDefaultSize,
long  style = 0,
const wxString &  name = wxPanelNameStr 
)

Again wxVTK is an hybrid class, double click was done using wxWindows, simply because VTK doesn't provide such facility (as opposed to wheel support that is supposed to be merged in VTK trunk sooner or later:

http://public.kitware.com/pipermail/vtkusers/2003-August/019548.html http://www.creatis.insa-lyon.fr/~malaterre/vtk/wheel.patch

Definition at line 200 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceActor, _3DSliceMapper, _bwlookup, _collookup, _hs_rectGuide, _lstContHealtyVtk, _lstContVtk, _s1_rectGuide, _s2_rectGuide, _sA_rectGuide, _sB_rectGuide, and listContourVTK::SetColour().

00207         : vtk3DSurfaceWidget( parent, id, pos, size, style, name ){
00208   _3DSliceMapper                = NULL;
00209   _3DSliceActor                 = NULL;
00210   _bwlookup                             = NULL;
00211   _collookup                    = NULL;
00212   _hs_rectGuide                 = new RectangleGuideVtk();
00213   _s1_rectGuide                 = new RectangleGuideVtk();
00214   _s2_rectGuide                 = new RectangleGuideVtk();
00215   _sA_rectGuide                 = new RectangleGuideVtk();
00216   _sB_rectGuide                 = new RectangleGuideVtk();
00217 
00218   _lstContVtk                   = new listContourVTK(this);
00219   _lstContHealtyVtk             = new listContourVTK(this);
00220   _lstContVtk->SetColour(1,1,0);
00221   _lstContHealtyVtk->SetColour(0,0,1);
00222 
00223 }

Here is the call graph for this function:

vtk3DQuantSurfaceWidget::~vtk3DQuantSurfaceWidget (  ) 

Definition at line 225 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceActor, _3DSliceMapper, _bwlookup, _collookup, _hs_rectGuide, _lstContHealtyVtk, _lstContVtk, _s1_rectGuide, _s2_rectGuide, _sA_rectGuide, and _sB_rectGuide.

00226 {
00227   if( _3DSliceActor )   _3DSliceActor   ->Delete();
00228   if( _3DSliceMapper)   _3DSliceMapper  ->Delete();
00229   if( _bwlookup         )       _bwlookup               ->Delete();
00230   if( _collookup        )       _collookup              ->Delete();
00231 
00232   delete _hs_rectGuide;
00233   delete _s1_rectGuide;
00234   delete _s2_rectGuide;
00235   delete _sA_rectGuide;
00236   delete _sB_rectGuide;
00237 
00238   delete _lstContVtk;
00239   delete _lstContHealtyVtk;
00240 }


Member Function Documentation

void vtk3DSurfaceWidget::ConfigureVTK (  )  [inherited]

Definition at line 488 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_pRenderer, and vtk3DSurfaceWidget::_pRenderWindow.

Referenced by wxSurfaceWidget::ShowMARACASData(), ShowMARACASDataAndAxe(), and ShowMARACASDataAndAxeCT().

00489 {
00490   // get render window
00491   _pRenderWindow =  this->GetRenderWindow(  );
00492 
00493   // connect renderer and render window and configure render window
00494   _pRenderWindow->AddRenderer( _pRenderer );
00495 
00496   // configure renderer
00497   _pRenderer->SetBackground( 0.0, 0.0, 0.0 );
00498   //_pRenderer->SetBackground( 1, 1, 0);  //FIXME
00499   _pRenderer->GetActiveCamera( )->Zoom( 1.0 );
00500   _pRenderer->GetActiveCamera( )->SetClippingRange( 1, 1000 );
00501   _pRenderer->ResetCamera( );
00502 
00503 //EED 22Mai2007 
00504 //  AttachRenderWindow();
00505 
00506 }

Here is the caller graph for this function:

int wxVTKRenderWindowInteractor::CreateTimer ( int  timertype  )  [inherited]
int wxVTKRenderWindowInteractor::DestroyTimer (  )  [inherited]

Definition at line 267 of file wxVTKRenderWindowInteractor.cxx.

00268 {
00269   // do nothing
00270   return 1;
00271 }

void wxVTKRenderWindowInteractor::Disable (  )  [inherited]

Definition at line 223 of file wxVTKRenderWindowInteractor.cxx.

00224 {
00225   // if already disabled then done
00226   if (!Enabled)
00227     return;
00228 
00229   // that's it (we can't remove the event handler like it should be...)
00230   Enabled = 0;
00231   Modified();
00232 }

bool wxVTKRenderWindowInteractor::Enable ( bool  enable  )  [inherited]

Definition at line 214 of file wxVTKRenderWindowInteractor.cxx.

References wxVTKRenderWindowInteractor::Enable().

00215 {
00216 #if defined(__WXGTK__) && defined(USE_WXGLCANVAS)
00217   return wxGLCanvas::Enable(enable);
00218 #else
00219   return wxWindow::Enable(enable);
00220 #endif
00221 }

Here is the call graph for this function:

void wxVTKRenderWindowInteractor::Enable (  )  [inherited]

Definition at line 200 of file wxVTKRenderWindowInteractor.cxx.

Referenced by wxVTKRenderWindowInteractor::Enable(), and wxVTKRenderWindowInteractor::Initialize().

00201 {
00202   // if already enabled then done
00203   if (Enabled)
00204     return;
00205 
00206   // that's it
00207   Enabled = 1;
00208 #if defined(__WXGTK__) && defined(USE_WXGLCANVAS)
00209   SetCurrent();
00210 #endif
00211   Modified();
00212 }

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Erase3DContourActor ( int  slice  ) 
int vtk3DQuantSurfaceWidget::GetAnalysisTypeStenosis (  ) 

Definition at line 601 of file vtk3DQuantSurfaceWidget.cxx.

References _analysisTypeStenosis.

Referenced by wxQuantificationWidgetCT::GetAnalysisTypeStenosis(), and wxQuantificationWidget::GetAnalysisTypeStenosis().

00601                                                     {
00602         return _analysisTypeStenosis;
00603 }

Here is the caller graph for this function:

long wxVTKRenderWindowInteractor::GetHandleHack (  )  [protected, inherited]

Definition at line 296 of file wxVTKRenderWindowInteractor.cxx.

Referenced by wxVTKRenderWindowInteractor::Render().

00297 {
00298   //helper function to hide the MSW vs GTK stuff
00299   long handle_tmp = 0;
00300 
00301 // __WXMSW__ is for Win32
00302 //__WXMAX__ stands for using Carbon C-headers, using either the CarbonLib/CFM or the native Mach-O builds (which then also use the latest features available)
00303 // __WXGTK__ is for both gtk 1.2.x and gtk 2.x
00304 #if defined(__WXMSW__) || defined(__WXMAC__)
00305     handle_tmp = (long)this->GetHandle();
00306 #endif //__WXMSW__
00307 
00308 //__WXCOCOA__ stands for using the objective-c Cocoa API
00309 #ifdef __WXCOCOA__
00310    // Here is how to find the NSWindow
00311    wxTopLevelWindow* toplevel = dynamic_cast<wxTopLevelWindow*>(
00312      wxGetTopLevelParent( this ) );
00313    if (toplevel != NULL )    
00314    {
00315      handle_tmp = (long)toplevel->GetNSWindow();
00316    }
00317    // The NSView will be deducted from 
00318    // [(NSWindow*)Handle contentView]
00319    // if only I knew how to write that in c++
00320 #endif //__WXCOCOA__
00321 
00322     // Find and return the actual X-Window.
00323 #if defined(__WXGTK__) || defined(__WXX11__)
00324     return (long)GetXWindow(this);
00325 #endif
00326 
00327 //#ifdef __WXMOTIF__
00328 //    handle_tmp = (long)this->GetXWindow();
00329 //#endif
00330 
00331   return handle_tmp;
00332 }

Here is the caller graph for this function:

void vtk3DSurfaceWidget::GetLast3DClickPoint ( double *  pp,
double *  cp 
) [inherited]

Definition at line 135 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_lastCameraPos, and vtk3DSurfaceWidget::_lastPickPoint.

Referenced by wxQuantificationWidgetCT::CallBackOnLeftDClick(), and wxQuantificationWidget::CallBackOnLeftDClick().

00135                                                                     {
00136         pp[0]=_lastPickPoint[0];
00137         pp[1]=_lastPickPoint[1];
00138         pp[2]=_lastPickPoint[2];
00139         cp[0]=_lastCameraPos[0];
00140         cp[1]=_lastCameraPos[1];
00141         cp[2]=_lastCameraPos[2];
00142 }

Here is the caller graph for this function:

vtkRenderer * vtk3DSurfaceWidget::GetRenderer (  )  [inherited]
void vtk3DQuantSurfaceWidget::GetSliceLimites ( int  type,
int &  sliceStart,
int &  sliceEnd 
)

Definition at line 590 of file vtk3DQuantSurfaceWidget.cxx.

References RectangleGuideVtk::_iSlice, _s1_rectGuide, _s2_rectGuide, _sA_rectGuide, and _sB_rectGuide.

Referenced by wxQuantificationWidgetCT::GetSliceLimites(), and wxQuantificationWidget::GetSliceLimites().

00590                                                                                     {
00591         if (type==0){
00592                 sliceStart      = _s1_rectGuide->_iSlice;
00593                 sliceEnd        = _s2_rectGuide->_iSlice;
00594         }
00595         if (type==1){
00596                 sliceStart      = _sA_rectGuide->_iSlice;
00597                 sliceEnd        = _sB_rectGuide->_iSlice;
00598         }
00599 }

Here is the caller graph for this function:

void vtk3DSurfaceWidget::GetSphereCenter ( double  center[3]  )  [inherited]
void vtk3DQuantSurfaceWidget::Hide3DContourActor ( int  type = 0  ) 

Definition at line 392 of file vtk3DQuantSurfaceWidget.cxx.

References _lstContHealtyVtk, _lstContVtk, and listContourVTK::Hide3DContourActor().

Referenced by wxQuantificationWidgetCT::OnVisibleRing_CB(), and wxQuantificationWidget::OnVisibleRing_CB().

00392                                                           {
00393         if (type==0){ _lstContVtk->Hide3DContourActor(); }
00394         if (type==1){ _lstContHealtyVtk->Hide3DContourActor(); }
00395 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Hide3DEndRegionSliceActor ( int  type  ) 

Definition at line 574 of file vtk3DQuantSurfaceWidget.cxx.

References RectangleGuideVtk::_actor, vtk3DSurfaceWidget::_pRenderer, vtk3DSurfaceWidget::_pRenderWindow, _s2_rectGuide, _sB_rectGuide, and RectangleGuideVtk::_showActor.

Referenced by wxQuantificationWidgetCT::Hide3DEndRegionSliceActor(), wxQuantificationWidget::Hide3DEndRegionSliceActor(), and Hide3DRegionSliceActor().

00574                                                                  {
00575         if (type==0){
00576                 if (_s2_rectGuide->_showActor==true){
00577                         _pRenderer->RemoveActor( _s2_rectGuide->_actor );
00578                         _s2_rectGuide->_showActor=false;
00579                 }
00580         }
00581         if (type==1){
00582                 if (_sB_rectGuide->_showActor==true){
00583                         _pRenderer->RemoveActor( _sB_rectGuide->_actor );
00584                         _sB_rectGuide->_showActor=false;
00585                 }
00586         }
00587         _pRenderWindow->Render( );
00588 }

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Hide3DHealthySliceActor (  ) 
void vtk3DQuantSurfaceWidget::Hide3DRegionSliceActor ( int  type  ) 

Definition at line 553 of file vtk3DQuantSurfaceWidget.cxx.

References Hide3DEndRegionSliceActor(), and Hide3DStartRegionSliceActor().

Referenced by wxQuantificationWidgetCT::Hide3DRegionSliceActor(), and wxQuantificationWidget::Hide3DRegionSliceActor().

00553                                                               {
00554         Hide3DStartRegionSliceActor(type );
00555         Hide3DEndRegionSliceActor(type );
00556 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Hide3DSliceActor (  ) 

Definition at line 376 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceActor, vtk3DSurfaceWidget::_pRenderer, and vtk3DSurfaceWidget::_pRenderWindow.

Referenced by wxQuantificationWidgetCT::OnPerpendicular_CB(), and wxQuantificationWidget::OnPerpendicular_CB().

00377 {
00378   _pRenderer->RemoveActor( _3DSliceActor );
00379   _pRenderWindow->Render( );
00380 }

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Hide3DStartRegionSliceActor ( int  type  ) 

Definition at line 558 of file vtk3DQuantSurfaceWidget.cxx.

References RectangleGuideVtk::_actor, vtk3DSurfaceWidget::_pRenderer, vtk3DSurfaceWidget::_pRenderWindow, _s1_rectGuide, _sA_rectGuide, and RectangleGuideVtk::_showActor.

Referenced by Hide3DRegionSliceActor(), wxQuantificationWidgetCT::Hide3DStartRegionSliceActor(), and wxQuantificationWidget::Hide3DStartRegionSliceActor().

00558                                                                    {
00559         if (type==0){
00560                 if (_s1_rectGuide->_showActor==true){
00561                         _pRenderer->RemoveActor( _s1_rectGuide->_actor );
00562                         _s1_rectGuide->_showActor=false;
00563                 }
00564         }
00565         if (type==1){
00566                 if (_sA_rectGuide->_showActor==true){
00567                         _pRenderer->RemoveActor( _sA_rectGuide->_actor );
00568                         _sA_rectGuide->_showActor=false;
00569                 }
00570         }
00571         _pRenderWindow->Render( );
00572 }

Here is the caller graph for this function:

void vtk3DSurfaceWidget::InitCameraReset (  )  [inherited]

Definition at line 157 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_pRenderer.

Referenced by wxSurfaceWidget::ShowMARACASData(), wxQuantificationWidgetCT::ShowMARACASData(), and wxQuantificationWidget::ShowMARACASData().

00157                                          {
00158         _pRenderer->ResetCameraClippingRange();
00159         vtkCamera *cam=_pRenderer->GetActiveCamera();
00160         cam->Zoom(1.8);
00161 // EED 31 Mai 2007
00162 //      Render();
00163 }

Here is the caller graph for this function:

void wxVTKRenderWindowInteractor::Initialize (  )  [inherited]

Definition at line 185 of file wxVTKRenderWindowInteractor.cxx.

References wxVTKRenderWindowInteractor::Enable().

00186 {
00187   int *size = RenderWindow->GetSize();
00188   // enable everything and start rendering
00189   Enable();
00190   //RenderWindow->Start();
00191 
00192   // set the size in the render window interactor
00193   Size[0] = size[0];
00194   Size[1] = size[1];
00195 
00196   // this is initialized
00197   Initialized = 1;
00198 }

Here is the call graph for this function:

void vtk3DQuantSurfaceWidget::InitListContourActor ( int  type,
int  nos 
)

Definition at line 382 of file vtk3DQuantSurfaceWidget.cxx.

References _lstContHealtyVtk, _lstContVtk, and listContourVTK::InitListContourActor().

Referenced by wxQuantificationWidgetCT::Clean3D(), wxQuantificationWidget::Clean3D(), wxQuantificationWidgetCT::OnCleanAll_BT(), wxQuantificationWidget::OnCleanAll_BT(), and wxQuantificationWidget::SetHealthySlice().

00382                                                                    {
00383         if ((type==0) || (type==-1)){ _lstContVtk->InitListContourActor(nos); }
00384         if ((type==1) || (type==-1)){ _lstContHealtyVtk->InitListContourActor(nos); }
00385 }

Here is the call graph for this function:

Here is the caller graph for this function:

wxVTKRenderWindowInteractor * wxVTKRenderWindowInteractor::New (  )  [static, inherited]
void wxVTKRenderWindowInteractor::OnButtonDown ( wxMouseEvent &  event  )  [inherited]

(VTK_MAJOR_VERSION == 3 && VTK_MINOR_VERSION == 1)

Reimplemented in wxVTKRenderWindowInteractorEditContour.

Definition at line 542 of file wxVTKRenderWindowInteractor.cxx.

References wxVTKRenderWindowInteractor::ActiveButton, wxVTKRenderWindowInteractor::UseCaptureMouse, and WX_USE_X_CAPTURE.

00543 {
00544         
00545   if (!Enabled || (ActiveButton != wxEVT_NULL))
00546     {
00547     return;
00548     }
00549   ActiveButton = event.GetEventType();
00550 
00551 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00552   SetEventInformationFlipY(event.GetX(), event.GetY(), 
00553     event.ControlDown(), event.ShiftDown(), '\0', 0, NULL);
00554 #endif
00555 
00556   if(event.RightDown())
00557   {
00558 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00559     // new style
00560     InvokeEvent(vtkCommand::RightButtonPressEvent, NULL);
00561 #else            
00562     // old style
00563     InteractorStyle->OnRightButtonDown(event.ControlDown(), event.ShiftDown(),
00564       event.GetX(), Size[1] - event.GetY() - 1);
00565 #endif
00566   }
00567   else if(event.LeftDown())
00568   {
00569 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00570     // new style
00571     InvokeEvent(vtkCommand::LeftButtonPressEvent, NULL);
00572 #else            
00573     // old style
00574     InteractorStyle->OnLeftButtonDown(event.ControlDown(),  event.ShiftDown(),
00575       event.GetX(), Size[1] - event.GetY() - 1);
00576 #endif
00577   }
00578   else if(event.MiddleDown())
00579   {
00580 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00581     // new style
00582     InvokeEvent(vtkCommand::MiddleButtonPressEvent, NULL);
00583 #else            
00584     // old style
00585     InteractorStyle->OnMiddleButtonDown(event.ControlDown(), event.ShiftDown(),
00586       event.GetX(), Size[1] - event.GetY() - 1);
00587 #endif
00588   }
00589   //save the button and capture mouse until the button is released
00590   //Only if :
00591   //1. it is possible (WX_USE_X_CAPTURE)
00592   //2. user decided to.
00593   if ((ActiveButton != wxEVT_NULL) && WX_USE_X_CAPTURE && UseCaptureMouse)
00594   {
00595     CaptureMouse();
00596   }
00597 }

void wxVTKRenderWindowInteractor::OnButtonUp ( wxMouseEvent &  event  )  [inherited]

Reimplemented in wxVTKRenderWindowInteractorEditContour.

Definition at line 599 of file wxVTKRenderWindowInteractor.cxx.

References wxVTKRenderWindowInteractor::ActiveButton, wxVTKRenderWindowInteractor::UseCaptureMouse, and WX_USE_X_CAPTURE.

00600 {
00601   //EVT_xxx_DOWN == EVT_xxx_UP - 1
00602   //This is only needed if two mouse buttons are pressed at the same time.
00603   //In wxWindows 2.4 and later: better use of wxMOUSE_BTN_RIGHT or 
00604   //wxEVT_COMMAND_RIGHT_CLICK
00605   if (!Enabled || (ActiveButton != (event.GetEventType()-1))) 
00606     {
00607     return;
00608     }
00609 
00610 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00611   SetEventInformationFlipY(event.GetX(), event.GetY(), 
00612     event.ControlDown(), event.ShiftDown(), '\0', 0, NULL);
00613 #endif
00614   
00615   if(ActiveButton == wxEVT_RIGHT_DOWN)
00616   {
00617 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00618     // new style
00619     InvokeEvent(vtkCommand::RightButtonReleaseEvent, NULL);
00620 #else            
00621     // old style
00622     InteractorStyle->OnRightButtonUp(event.ControlDown(), event.ShiftDown(),
00623       event.GetX(), Size[1] - event.GetY() - 1);
00624 #endif
00625   }
00626   else if(ActiveButton == wxEVT_LEFT_DOWN)
00627   {
00628 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00629     // new style
00630     InvokeEvent(vtkCommand::LeftButtonReleaseEvent, NULL);
00631 #else            
00632     // old style
00633     InteractorStyle->OnLeftButtonUp(event.ControlDown(), event.ShiftDown(),
00634       event.GetX(), Size[1] - event.GetY() - 1);
00635 #endif
00636   }
00637   else if(ActiveButton == wxEVT_MIDDLE_DOWN)
00638   {
00639 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00640     // new style
00641     InvokeEvent(vtkCommand::MiddleButtonReleaseEvent, NULL);
00642 #else            
00643     // old style
00644     InteractorStyle->OnMiddleButtonUp(event.ControlDown(), event.ShiftDown(),
00645       event.GetX(), Size[1] - event.GetY() - 1);
00646 #endif
00647   }
00648   //if the ActiveButton is realeased, then release mouse capture
00649   if ((ActiveButton != wxEVT_NULL) && WX_USE_X_CAPTURE && UseCaptureMouse)
00650   {
00651     ReleaseMouse();
00652   }
00653   ActiveButton = wxEVT_NULL;
00654 }

void wxVTKRenderWindowInteractor::OnEnter ( wxMouseEvent &  event  )  [inherited]

Definition at line 407 of file wxVTKRenderWindowInteractor.cxx.

00408 {
00409         SetFocus();
00410   if (!Enabled) 
00411     {           
00412                 return; 
00413     }
00414 
00415 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00416     // new style
00417   SetEventInformationFlipY(event.GetX(), event.GetY(), 
00418       event.ControlDown(), event.ShiftDown(), '\0', 0, NULL);
00419 
00420   InvokeEvent(vtkCommand::EnterEvent, NULL);
00421 #else
00422     // old style
00423   InteractorStyle->OnEnter(event.ControlDown(), event.ShiftDown(),
00424       event.GetX(), Size[1] - event.GetY() - 1);  
00425 #endif
00426 }

void wxVTKRenderWindowInteractor::OnEraseBackground ( wxEraseEvent &  event  )  [inherited]

Definition at line 363 of file wxVTKRenderWindowInteractor.cxx.

00364 {
00365   //printf("EED wxVTKRenderWindowInteractor::OnEraseBackground \n");
00366   //turn off background erase to reduce flickering on MSW
00367   event.Skip(false);
00368 }

void wxVTKRenderWindowInteractor::OnKeyDown ( wxKeyEvent &  event  )  [inherited]

Reimplemented in wxVTKRenderWindowInteractorEditContour.

Definition at line 448 of file wxVTKRenderWindowInteractor.cxx.

00449 {
00450   if (!Enabled) 
00451     {
00452     return;
00453     }
00454 
00455 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00456     // new style
00457   int keycode = event.GetKeyCode();
00458  
00459 
00460   char key = '\0';
00461   if ( keycode < 256 )
00462   {
00463     // TODO: Unicode in non-Unicode mode ??
00464     key = (char)keycode;
00465   }
00466   else//Dic 2007
00467   {
00468         if ( keycode==314 )//Real keyCode for Left ARROW and non-Unicode
00469         {       
00470                 key = 'L';//Left
00471         }
00472         else if( keycode==315 )//Real keyCode for Left ARROW and non-Unicode
00473         {
00474                 key = 'U';//Up
00475         }
00476         else if( keycode==316 )//Real keyCode for Left ARROW and non-Unicode
00477         {
00478                 key = 'R';//Right
00479         }
00480         else if( keycode==317 )//Real keyCode for Down ARROW and non-Unicode
00481         {
00482                 key = 'D';//Down
00483         }
00484         else if( keycode==312 )//Real keyCode for Diagonal left down ARROW and non-Unicode
00485         {
00486                 key = 'W';//Diagonal left down
00487         }
00488         else if( keycode==313 )//Real keyCode for Diagonal left up ARROW and non-Unicode
00489         {
00490                 key = 'Q';//Diagonal left up
00491         }
00492         else if( keycode==366 )//Real keyCode for Diagonal right up ARROW and non-Unicode
00493         {
00494                 key = 'P';//Diagonal right up
00495         }
00496         else if( keycode==367 )//Real keyCode for Diagonal right down ARROW and non-Unicode
00497         {
00498                 key = 'M';//Diagonal right down
00499         }
00500   }
00501 
00502   SetEventInformationFlipY(event.GetX(), event.GetY(), 
00503     event.ControlDown(), event.ShiftDown(), key, 0, NULL);
00504 
00505   InvokeEvent(vtkCommand::KeyPressEvent, NULL);
00506   InvokeEvent(vtkCommand::CharEvent, NULL);
00507 #else
00508   InteractorStyle->OnKeyDown(event.ControlDown(), event.ShiftDown(), 
00509     event.GetKeyCode(), 1);
00510 #endif
00511   event.Skip();
00512 }

void wxVTKRenderWindowInteractor::OnKeyUp ( wxKeyEvent &  event  )  [inherited]

Definition at line 514 of file wxVTKRenderWindowInteractor.cxx.

00515 {
00516   if (!Enabled) 
00517     {
00518     return;
00519     }
00520 
00521 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00522     // new style
00523   int keycode = event.GetKeyCode();
00524   char key = '\0';
00525   if (keycode < 256)
00526   {
00527     // TODO: Unicode in non-Unicode mode ??
00528     key = (char)keycode;
00529   }
00530 
00531   SetEventInformationFlipY(event.GetX(), event.GetY(), 
00532     event.ControlDown(), event.ShiftDown(), key, 0, NULL);
00533   InvokeEvent(vtkCommand::KeyReleaseEvent, NULL);
00534 #else
00535   InteractorStyle->OnKeyUp(event.ControlDown(), event.ShiftDown(), 
00536     event.GetKeyCode(), 1);
00537 #endif
00538   event.Skip();
00539 }

void wxVTKRenderWindowInteractor::OnLeave ( wxMouseEvent &  event  )  [inherited]

Definition at line 428 of file wxVTKRenderWindowInteractor.cxx.

00429 {
00430   if (!Enabled) 
00431     {
00432     return;
00433     }
00434 
00435 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00436     // new style
00437   SetEventInformationFlipY(event.GetX(), event.GetY(), 
00438       event.ControlDown(), event.ShiftDown(), '\0', 0, NULL);
00439 
00440   InvokeEvent(vtkCommand::LeaveEvent, NULL);
00441 #else
00442     // old style
00443   InteractorStyle->OnLeave(event.ControlDown(), event.ShiftDown(),
00444       event.GetX(), Size[1] - event.GetY() - 1);  
00445 #endif
00446 }

void vtk3DSurfaceWidget::OnLeftDClick ( wxMouseEvent &  event  )  [inherited]

Definition at line 121 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_intVtkPanWid, vtk3DSurfaceWidget::_pRenderer, InterfaceVtkPanelWidgets::CallBackOnLeftDClick(), wxVTKRenderWindowInteractor::New(), and vtk3DSurfaceWidget::SetLast3DClickPoint().

00121                                                           {
00122         double pp[ 3 ], cp[ 3 ];
00123         int eventrwi[2];
00124         vtkPointPicker* picker = vtkPointPicker::New( );        
00125         this->GetEventPosition( eventrwi );
00126         picker->Pick( eventrwi[0], eventrwi[1], 0.0, _pRenderer );
00127         _pRenderer->GetActiveCamera( )->GetPosition( cp );
00128         picker->GetPickPosition( pp );
00129 
00130         picker->Delete( );
00131         this->SetLast3DClickPoint( pp, cp );
00132         if (_intVtkPanWid!=NULL) { _intVtkPanWid->CallBackOnLeftDClick(event); }
00133 }

Here is the call graph for this function:

void wxVTKRenderWindowInteractor::OnMotion ( wxMouseEvent &  event  )  [inherited]

Reimplemented in wxVTKRenderWindowInteractorEditContour.

Definition at line 388 of file wxVTKRenderWindowInteractor.cxx.

00389 {
00390  if (!Enabled) 
00391     {
00392    return;
00393     }
00394 
00395 #if VTK_MAJOR_VERSION == 5 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
00396   SetEventInformationFlipY(event.GetX(), event.GetY(), 
00397     event.ControlDown(), event.ShiftDown(), '\0', 0, NULL);
00398 
00399   InvokeEvent(vtkCommand::MouseMoveEvent, NULL);
00400 #else
00401   InteractorStyle->OnMouseMove(event.ControlDown(), event.ShiftDown(),
00402     event.GetX(), Size[1] - event.GetY() - 1);
00403 #endif
00404 }

void vtk3DSurfaceWidget::OnMouseWheel ( wxMouseEvent &  event  )  [virtual, inherited]

Reimplemented from wxVTKRenderWindowInteractor.

Definition at line 117 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_intVtkPanWid, and InterfaceVtkPanelWidgets::CallBackOnMouseWheel().

00117                                                           { 
00118         if (_intVtkPanWid!=NULL) { _intVtkPanWid->CallBackOnMouseWheel(event);}
00119 }

Here is the call graph for this function:

void wxVTKRenderWindowInteractor::OnPaint ( wxPaintEvent &  event  )  [inherited]
void wxVTKRenderWindowInteractor::OnSize ( wxSizeEvent &  event  )  [inherited]
void wxVTKRenderWindowInteractor::OnTimer ( wxTimerEvent &  event  )  [inherited]
void wxVTKRenderWindowInteractor::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [inherited]

Definition at line 764 of file wxVTKRenderWindowInteractor.cxx.

00765 {
00766   this->Superclass::PrintSelf(os, indent);
00767 }

vtkRenderer* vtk3DQuantSurfaceWidget::QuantSurfaceWidget_GetRenderer (  )  [inline]
vtkRenderWindow* vtk3DQuantSurfaceWidget::QuantSurfaceWidget_GetRenderWindow (  )  [inline]
void vtk3DSurfaceWidget::RemoveAxis (  )  [inherited]

Definition at line 213 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_axesActor, vtk3DSurfaceWidget::_pRenderer, and vtk3DSurfaceWidget::_pRenderWindow.

Referenced by wxSurfaceWidget::Clean3D(), wxQuantificationWidgetCT::Clean3D(), and wxQuantificationWidget::Clean3D().

00214 {
00215   if (_axesActor)
00216   {
00217       _pRenderer->RemoveActor(_axesActor);
00218       _axesActor->Delete();
00219       _axesActor = NULL;
00220       _pRenderWindow->Render( );
00221         }
00222 }

Here is the caller graph for this function:

void vtk3DSurfaceWidget::Render (  )  [inherited]
void vtk3DQuantSurfaceWidget::Set3DContourActor ( int  slice,
vtkPoints *  contour3D,
bool  showActor,
int  type = 0 
)

Definition at line 397 of file vtk3DQuantSurfaceWidget.cxx.

References _lstContHealtyVtk, _lstContVtk, and listContourVTK::Set3DContourActor().

Referenced by wxQuantificationWidgetCT::OnContour_BT(), wxQuantificationWidget::OnContour_BT(), and wxQuantificationWidget::SetHealthySlice().

00397                                                                                                           {
00398         if (type==0) { _lstContVtk->Set3DContourActor(slice,contour3D,showActor);       }
00399         if (type==1) { _lstContHealtyVtk->Set3DContourActor(slice,contour3D,showActor); }
00400 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Set3DEndRegionSliceActor ( int  type,
int  k 
)

Definition at line 514 of file vtk3DQuantSurfaceWidget.cxx.

References marInterface::_experiment, vtk3DSurfaceWidget::_mar, _s2_rectGuide, _sB_rectGuide, marExperiment::getAxis(), Set3DSliceActor(), and marAxis::setFinishQuant().

Referenced by wxQuantificationWidget::Set3DEndRegionSliceActor(), and Set3DRegionSliceActor().

00514                                                                         {
00515         if (type==0){
00516                 Set3DSliceActor( _s2_rectGuide , 0.3 , k ,1,0,0);
00517                 _mar->_experiment->getAxis()->setFinishQuant(k);
00518         }
00519         if (type==1){
00520                 Set3DSliceActor( _sB_rectGuide , 0.3 , k ,1,1,0);
00521         }
00522 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Set3DHealthySliceActor (  ) 

Definition at line 493 of file vtk3DQuantSurfaceWidget.cxx.

References marInterface::_experiment, _hs_rectGuide, vtk3DSurfaceWidget::_mar, marExperiment::getAxis(), marAxis::getHealthySlice(), and Set3DSliceActor().

Referenced by wxQuantificationWidget::SetHealthySlice().

00493                                                       {
00494         int k = _mar->_experiment->getAxis( )->getHealthySlice();
00495         Set3DSliceActor( _hs_rectGuide , 1.0 , k ,0,0,1);
00496 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Set3DRegionSliceActor ( int  type,
int  k1,
int  k2 
)

Definition at line 499 of file vtk3DQuantSurfaceWidget.cxx.

References Set3DEndRegionSliceActor(), and Set3DStartRegionSliceActor().

Referenced by wxQuantificationWidgetCT::Set3DRegionSliceActor(), and wxQuantificationWidget::Set3DRegionSliceActor().

00499                                                                               {
00500         Set3DStartRegionSliceActor(type, k1);
00501         Set3DEndRegionSliceActor(type, k2);
00502 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Set3DSliceActor ( RectangleGuideVtk _rectGuide,
float  scale,
int  k,
int  r,
int  g,
int  b 
) [private]

Definition at line 418 of file vtk3DQuantSurfaceWidget.cxx.

References RectangleGuideVtk::_actor, marInterface::_experiment, RectangleGuideVtk::_grid, RectangleGuideVtk::_iSlice, RectangleGuideVtk::_mapper, vtk3DSurfaceWidget::_mar, RectangleGuideVtk::_points, RectangleGuideVtk::_poly_line, vtk3DSurfaceWidget::_pRenderer, marExperiment::getAxis(), marParameters::getDimIma(), marAxis::getNormal(), marObject::getParameters(), marParameters::getSizeIma(), marAxis::getSplinePoint(), and wxVTKRenderWindowInteractor::New().

Referenced by Set3DEndRegionSliceActor(), Set3DHealthySliceActor(), and Set3DStartRegionSliceActor().

00418                                                                                                                  {
00419         int             sizeIma;
00420         double  dimIma;
00421         double  *o;  // Origen
00422         double  *c;  // Center
00423         double  *n;  // Normal
00424 
00425         double  ori[3];
00426         double  p1[3];
00427         double  p2[3];
00428 
00429         sizeIma = _mar->_experiment->getAxis( )->getParameters( )->getSizeIma( );
00430         dimIma  = _mar->_experiment->getAxis( )->getParameters( )->getDimIma( );
00431     o           = _mar->_experiment->getAxis( )->getSplinePoint(k);  
00432     c           = _mar->_experiment->getAxis( )->getSplinePoint(k);  
00433     n           = _mar->_experiment->getAxis( )->getNormal(k);  
00434 
00435     vtkPlaneSource* pSource = vtkPlaneSource::New( );
00436     pSource->SetOrigin( o[0]                            , o[1], o[2]                            );
00437     pSource->SetPoint1( o[0]+dimIma*scale - 1.0 , o[1], o[2]                            );
00438     pSource->SetPoint2( o[0]                            , o[1], o[2]+dimIma*scale - 1.0 );
00439     pSource->SetResolution( sizeIma - 1 , sizeIma - 1   );
00440     pSource->Update( );
00441     pSource->SetCenter( c[ 0 ], c[ 1 ], c[ 2 ] );
00442     pSource->SetNormal( n[ 0 ], n[ 1 ], n[ 2 ] );
00443     pSource->Update( );
00444         pSource->GetOrigin( ori );
00445     pSource->GetPoint1( p1      );
00446     pSource->GetPoint2( p2      );
00447 
00448         if (_rectGuide->_actor)         _pRenderer->RemoveActor(_rectGuide->_actor);
00449         if (_rectGuide->_grid)          _rectGuide->_grid->Delete();
00450         if (_rectGuide->_actor)         _rectGuide->_actor->Delete();
00451         if (_rectGuide->_points)        _rectGuide->_points->Delete();
00452         if (_rectGuide->_mapper)        _rectGuide->_mapper->Delete();
00453         if (_rectGuide->_poly_line)     _rectGuide->_poly_line->Delete();
00454 
00455         _rectGuide->_poly_line = vtkPolyLine::New();
00456         ( _rectGuide->_poly_line->GetPointIds() )->SetNumberOfIds(8);
00457         ( _rectGuide->_poly_line->GetPointIds() )->SetId(0,0);
00458         ( _rectGuide->_poly_line->GetPointIds() )->SetId(1,1);
00459         ( _rectGuide->_poly_line->GetPointIds() )->SetId(2,2);
00460         ( _rectGuide->_poly_line->GetPointIds() )->SetId(3,3);
00461         ( _rectGuide->_poly_line->GetPointIds() )->SetId(4,4);
00462         ( _rectGuide->_poly_line->GetPointIds() )->SetId(5,5);
00463         ( _rectGuide->_poly_line->GetPointIds() )->SetId(6,6);
00464         ( _rectGuide->_poly_line->GetPointIds() )->SetId(7,7);
00465 
00466         _rectGuide->_points=vtkPoints::New();
00467         _rectGuide->_points->InsertNextPoint( ori[0]                    , ori[1]                                        , ori[2]                        );
00468         _rectGuide->_points->InsertNextPoint( p1[0]                             , p1[1]                                         , p1[2]                         );
00469         _rectGuide->_points->InsertNextPoint( p2[0]+p1[0]-ori[0], p2[1]+p1[1]-ori[1]            , p2[2]+p1[2]-ori[2]);
00470         _rectGuide->_points->InsertNextPoint( p2[0]                             , p2[1]                                         , p2[2]                         );
00471         _rectGuide->_points->InsertNextPoint( ori[0]                    , ori[1]                                        , ori[2]                        );
00472         _rectGuide->_points->InsertNextPoint( p2[0]+p1[0]-ori[0], p2[1]+p1[1]-ori[1]            , p2[2]+p1[2]-ori[2]);
00473         _rectGuide->_points->InsertNextPoint( p1[0]                             , p1[1]                                         , p1[2]                         );
00474         _rectGuide->_points->InsertNextPoint( p2[0]                             , p2[1]                                         , p2[2]                         );
00475 
00476         _rectGuide->_grid=vtkUnstructuredGrid::New();
00477         _rectGuide->_grid->Allocate(1,1);
00478         _rectGuide->_grid->InsertNextCell( _rectGuide->_poly_line->GetCellType() , _rectGuide->_poly_line->GetPointIds() );
00479         _rectGuide->_grid->SetPoints( _rectGuide->_points );
00480 
00481         _rectGuide->_mapper = vtkDataSetMapper::New();
00482         _rectGuide->_mapper->SetInput(_rectGuide->_grid);
00483         _rectGuide->_mapper->ImmediateModeRenderingOn();
00484 
00485         _rectGuide->_actor=vtkActor::New();
00486         _rectGuide->_actor->SetMapper(_rectGuide->_mapper);
00487         _rectGuide->_actor->GetProperty()->BackfaceCullingOn();
00488         _rectGuide->_actor->GetProperty()->SetDiffuseColor(r,g,b);
00489         _rectGuide->_actor->PickableOff( );
00490         _rectGuide->_iSlice = k;
00491 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Set3DStartRegionSliceActor ( int  type,
int  k 
)

Definition at line 504 of file vtk3DQuantSurfaceWidget.cxx.

References marInterface::_experiment, vtk3DSurfaceWidget::_mar, _s1_rectGuide, _sA_rectGuide, marExperiment::getAxis(), Set3DSliceActor(), and marAxis::setStartQuant().

Referenced by Set3DRegionSliceActor(), and wxQuantificationWidget::Set3DStartRegionSliceActor().

00504                                                                           {
00505         if (type==0){
00506                 Set3DSliceActor( _s1_rectGuide , 0.3 , k ,1,0,0);
00507                 _mar->_experiment->getAxis()->setStartQuant(k);
00508         }
00509         if (type==1){
00510                 Set3DSliceActor( _sA_rectGuide , 0.3 , k ,1,1,0);
00511         }
00512 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::SetAnalysisTypeStenosis ( int  analysisTypeStenosis  ) 

Definition at line 605 of file vtk3DQuantSurfaceWidget.cxx.

References _analysisTypeStenosis.

Referenced by wxQuantificationWidgetCT::SetAnalysisTypeStenosis(), and wxQuantificationWidget::SetAnalysisTypeStenosis().

00605                                                                              {
00606         _analysisTypeStenosis=analysisTypeStenosis;
00607 }

Here is the caller graph for this function:

void vtk3DSurfaceWidget::SetAxis ( vtkPolyData *  axis  )  [inherited]

Definition at line 195 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_axesActor, vtk3DSurfaceWidget::_axesMapper, vtk3DSurfaceWidget::_pRenderer, and wxVTKRenderWindowInteractor::New().

Referenced by wxSurfaceWidget::AddAxisActors(), wxQuantificationWidgetCT::AddAxisActors(), wxQuantificationWidget::AddAxisActors(), ShowMARACASDataAndAxe(), and ShowMARACASDataAndAxeCT().

00196 {
00197         _axesMapper = vtkPolyDataMapper::New( );
00198         _axesMapper->SetInput( axis );
00199         _axesMapper->Update();
00200     //axis->Delete();
00201 
00202         _axesActor = vtkActor::New( );
00203         _axesActor->SetMapper( _axesMapper );
00204         _axesActor->GetProperty()->SetColor( 1, 0, 0 );
00205         _axesActor->GetProperty()->SetLineWidth( 2.0 );
00206         _pRenderer->AddActor( _axesActor );
00207 
00208         //Generate a new vtkwindow ???
00209 //EED 31 Mai 2007
00210 //      _pRenderWindow->Render( );
00211  }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::SetBWLookUp (  ) 

Definition at line 355 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceMapper, _bwlookup, and vtk3DSurfaceWidget::_pRenderWindow.

Referenced by wxQuantificationWidgetCT::OnGreyScale_RB(), and wxQuantificationWidget::OnGreyScale_RB().

00355                                          {
00356   _3DSliceMapper->SetLookupTable( _bwlookup );
00357   _pRenderWindow->Render( );
00358 }    

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::SetColorLookUp (  ) 

Definition at line 360 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceMapper, _collookup, and vtk3DSurfaceWidget::_pRenderWindow.

Referenced by wxQuantificationWidgetCT::OnColor_RB(), and wxQuantificationWidget::OnColor_RB().

00360                                             {
00361   _3DSliceMapper->SetLookupTable( _collookup );
00362   _pRenderWindow->Render( );
00363 }

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::SetImage ( vtkProbeFilter *  pFilter  ) 

Definition at line 365 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceMapper.

Referenced by wxQuantificationWidgetCT::RefreshAxis(), and wxQuantificationWidget::RefreshAxis().

00366 {
00367   _3DSliceMapper->SetInput(pFilter->GetOutput( ) );
00368 }

Here is the caller graph for this function:

void vtk3DSurfaceWidget::SetInitialPoint ( float *  pickPoint,
float *  cameraPos 
) [protected, inherited]

Definition at line 334 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_centralLine, vtk3DSurfaceWidget::_centralLineActor, vtk3DSurfaceWidget::_centralLineMapper, vtk3DSurfaceWidget::_depth, marInterface::_experiment, vtk3DSurfaceWidget::_height, vtk3DSurfaceWidget::_mar, vtk3DSurfaceWidget::_mCubes, vtk3DSurfaceWidget::_pRenderer, vtk3DSurfaceWidget::_pRenderWindow, vtk3DSurfaceWidget::_spheres, vtk3DSurfaceWidget::_spheresActor, vtk3DSurfaceWidget::_spheresMapper, vtk3DSurfaceWidget::_width, UtilVtk3DGeometriSelection::FindCubePointsFromPoints(), gtm::TVector< T >::GetAnsiRef(), marObject::getParameters(), UtilVtk3DGeometriSelection::GetPointAndNormalIntersection(), marDictionary::GetString(), GTM_MAX, vtk3DSurfaceWidget::InitialSphere, wxVTKRenderWindowInteractor::New(), UtilVtk3DGeometriSelection::SetDimentions(), UtilVtk3DGeometriSelection::SetMarchingCube(), marParameters::setROIStep(), and marExperiment::setStartPoint().

00334                                                                             {
00335         marDictionary marDict;
00336         char ttmp[256];
00337 
00338     gtm::TVector< double > pO( 3 ), pF( 3 ), pp( 3 ), cp( 3 );
00339     gtm::TVector< double > xc( 3 );
00340     gtm::TVector< double > x1( 3 ), n1( 3 );
00341     gtm::TVector< double > x2( 3 ), n2( 3 );
00342     gtm::TVector< double > tmp( 3 );
00343     double fac;
00344     bool success                = true;
00345     int notSuccessType  = 0;
00346 
00347     if( _centralLineActor )
00348     {
00349         _pRenderer->RemoveActor( _centralLineActor );
00350         _centralLineActor->Delete( );
00351     } // fi
00352     if( _centralLineMapper ) _centralLineMapper->Delete( );
00353     if( _centralLine )       _centralLine->Delete( );
00354 
00355     _centralLine       = NULL;
00356     _centralLineMapper = NULL;
00357     _centralLineActor  = NULL;
00358 
00359     for(int i=0; i<4; i++)
00360     {
00361       if( _spheresActor[ i ] )
00362       {
00363         _pRenderer->RemoveActor( _spheresActor[ i ] );
00364         _spheresActor[ i ]->Delete( );
00365       } // fi
00366       if( _spheresMapper[ i ] ) _spheresMapper[ i ]->Delete( );
00367       if( _spheres[ i ] )       _spheres[ i ]->Delete( );
00368       _spheres[ i ] = NULL;
00369       _spheresMapper[ i ] = NULL;
00370       _spheresActor[ i ] = NULL;
00371     } //rof
00372 
00373     fac = GTM_MAX( _width, _height );
00374     fac = 2 * GTM_MAX( fac, _depth );
00375     pp( 0 ) = pickPoint[ 0 ]; pp( 1 ) = pickPoint[ 1 ]; pp( 2 ) = pickPoint[ 2 ];
00376     cp( 0 ) = cameraPos[ 0 ]; cp( 1 ) = cameraPos[ 1 ]; cp( 2 ) = cameraPos[ 2 ];
00377 
00378 
00379         UtilVtk3DGeometriSelection utilVtk3DGeometriSelection;
00380         utilVtk3DGeometriSelection.SetDimentions(_width,_height,_depth);
00381         utilVtk3DGeometriSelection.SetMarchingCube(_mCubes);
00382 
00383     if( utilVtk3DGeometriSelection.FindCubePointsFromPoints(
00384       pO.GetAnsiRef( ), pF.GetAnsiRef( ),
00385       pp.GetAnsiRef( ), cp.GetAnsiRef( )
00386     ) ) {
00387 
00388         if( utilVtk3DGeometriSelection.GetPointAndNormalIntersection(
00389             x1.GetAnsiRef( ), n1.GetAnsiRef( ),
00390             pO.GetAnsiRef( ), pF.GetAnsiRef( )
00391     ) ) {
00392 
00393             if( utilVtk3DGeometriSelection.GetPointAndNormalIntersection(
00394           x2.GetAnsiRef( ), n2.GetAnsiRef( ),
00395           ( x1 - n1 ).GetAnsiRef( ), ( x1 - ( n1 * fac ) ).GetAnsiRef( )
00396         ) ) {
00397 
00398                 xc = ( x2 + x1 ) * 0.5;
00399 
00400 
00401                 double dd=12; // EED   ****** ATENTION ****************
00402 
00403                 if (!(
00404                         (xc(0)<dd) || (xc(1)<dd) || (xc(2)<dd) || 
00405                         (fabs(xc(0)-_width)<dd) || (fabs(xc(1)-_height)<dd) || (fabs(xc(2)-_depth)<dd) 
00406                         )){
00407 
00408                 _mar->_experiment->setStartPoint( (int)xc( 0 ), (int)xc( 1 ), (int)xc( 2 ) );
00409         _mar->_experiment->getParameters( )->setROIStep( 2*( xc - x1 ).GetNorm( ) );
00410 
00411       for(int i=0; i<4; i++)
00412       {
00413         _spheres[ i ] = vtkSphereSource::New( );
00414         _spheresMapper[ i ] = vtkPolyDataMapper::New( );
00415         _spheresMapper[ i ]->SetInput( _spheres[ i ]->GetOutput( ) );
00416         _spheresActor[ i ] = vtkActor::New( );
00417         _spheresActor[ i ]->SetMapper( _spheresMapper[ i ] );
00418         _spheresActor[ i ]->PickableOff( );
00419         _pRenderer->AddActor( _spheresActor[ i ] );
00420       }
00421 
00422                 _spheres[ 0 ]->SetCenter( x1( 0 ), x1( 1 ), x1( 2 ) );
00423                 _spheres[ 1 ]->SetCenter( x2( 0 ), x2( 1 ), x2( 2 ) );
00424                 _spheres[ 2 ]->SetCenter( xc( 0 ), xc( 1 ), xc( 2 ) );
00425                 _spheres[ 3 ]->SetCenter( xc( 0 ), xc( 1 ), xc( 2 ) );
00426 
00427                 _spheres[ 0 ]->SetRadius( 0.5 );
00428                 _spheres[ 1 ]->SetRadius( 0.5 );
00429                 _spheres[ 2 ]->SetRadius( 0.5 );
00430                 _spheres[ 3 ]->SetRadius( ( xc - x1 ).GetNorm( ) );
00431 
00432                 _spheresActor[ 0 ]->GetProperty( )->SetColor( 1.0, 0.0, 0.0 );
00433                 _spheresActor[ 1 ]->GetProperty( )->SetColor( 0.0, 1.0, 0.0 );
00434                 _spheresActor[ 2 ]->GetProperty( )->SetColor( 0.0, 0.0, 1.0 );
00435                 _spheresActor[ 3 ]->GetProperty( )->SetColor( 1.0, 0.0, 0.0 );
00436                 _spheresActor[ 3 ]->GetProperty( )->SetOpacity( 0.3 );
00437 
00438                 vtkPoints* points = vtkPoints::New( );
00439                 points->InsertNextPoint( x1.GetAnsiRef( ) );
00440                 points->InsertNextPoint( x2.GetAnsiRef( ) );
00441 
00442                 vtkCellArray* array = vtkCellArray::New( );
00443                 array->InsertNextCell( 2 );
00444                 array->InsertCellPoint( 0 );
00445                 array->InsertCellPoint( 1 );
00446 
00447                 _centralLine = vtkPolyData::New( );
00448                 _centralLine->SetPoints( points );
00449                 _centralLine->SetLines( array );
00450       points->Delete();
00451       array->Delete();
00452 
00453                 _centralLineMapper = vtkPolyDataMapper::New( );
00454                 _centralLineMapper->SetInput( _centralLine );
00455 
00456                 _centralLineActor = vtkActor::New( );
00457                 _centralLineActor->SetMapper( _centralLineMapper );
00458                 _centralLineActor->GetProperty( )->SetColor( 1.0, 1.0, 1.0 );
00459                 _centralLineActor->PickableOff( );
00460                 _pRenderer->AddActor( _centralLineActor );
00461 
00462 
00463            } else  {success = false; notSuccessType=1; }
00464 
00465         } // fi
00466 
00467         } else success = false;
00468 
00469     } else success = false;
00470 
00471     // Show a message, if any.
00472     if (( !success ) && (notSuccessType==0)) {
00473                 strcpy( ttmp , marDict.GetString(905) ); strcat( ttmp , "\n \n" ); strcat( ttmp , marDict.GetString(910) );
00474         wxMessageBox( wxString(ttmp, wxConvUTF8) , // "Set an initial point.\n \n (Double click over the interest artery.)"
00475                                           _T("DxMM : MARACAS"), wxOK | wxCENTRE | wxICON_INFORMATION, this);
00476         }
00477     if ((!success ) && (notSuccessType==1)) {
00478                 strcpy( ttmp , marDict.GetString(915) ); strcat( ttmp , "\n \n" ); strcat( ttmp , marDict.GetString(920) );
00479         wxMessageBox( wxString(ttmp, wxConvUTF8), //"The initial point should be far \n of the limits of the volume."
00480                                           _T("DxMM : MARACAS"), wxOK | wxCENTRE | wxICON_INFORMATION, this);
00481         }
00482     // Finish
00483     _pRenderWindow->Render( );
00484     InitialSphere = success;
00485 
00486 }

Here is the call graph for this function:

void vtk3DSurfaceWidget::SetInitialPoint (  )  [inherited]

Definition at line 330 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_lastCameraPos, and vtk3DSurfaceWidget::_lastPickPoint.

Referenced by wxSurfaceWidget::CallBackOnLeftDClick().

00330                                         {
00331         this->SetInitialPoint( _lastPickPoint, _lastCameraPos );
00332 }

Here is the caller graph for this function:

void vtk3DSurfaceWidget::SetInterfaceVtkPanelWidgets ( InterfaceVtkPanelWidgets intVtkPanWid  )  [inline, inherited]

Definition at line 84 of file vtk3DSurfaceWidget.h.

References vtk3DSurfaceWidget::_intVtkPanWid.

Referenced by wxQuantificationWidgetCT::CreatePanel_Left().

00084 {_intVtkPanWid=intVtkPanWid;};

Here is the caller graph for this function:

void vtk3DSurfaceWidget::SetLast3DClickPoint ( double *  pp,
double *  cp 
) [protected, inherited]

Definition at line 144 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_lastCameraPos, and vtk3DSurfaceWidget::_lastPickPoint.

Referenced by vtk3DSurfaceWidget::OnLeftDClick().

00144                                                                     {
00145         _lastPickPoint[0]=pp[0];
00146         _lastPickPoint[1]=pp[1];
00147         _lastPickPoint[2]=pp[2];
00148         _lastCameraPos[0]=cp[0];
00149         _lastCameraPos[1]=cp[1];
00150         _lastCameraPos[2]=cp[2];
00151 }

Here is the caller graph for this function:

void wxVTKRenderWindowInteractor::SetRenderWhenDisabled ( int  newValue  )  [inherited]

Definition at line 725 of file wxVTKRenderWindowInteractor.cxx.

References wxVTKRenderWindowInteractor::RenderWhenDisabled.

00726 {
00727   //Change value of __RenderWhenDisabled ivar.
00728   //If __RenderWhenDisabled is false (the default), this widget will not
00729   //call Render() on the RenderWindow if the top level frame (i.e. the
00730   //containing frame) has been disabled.
00731 
00732   //This prevents recursive rendering during wxSafeYield() calls.
00733   //wxSafeYield() can be called during the ProgressMethod() callback of
00734   //a VTK object to have progress bars and other GUI elements updated -
00735   //it does this by disabling all windows (disallowing user-input to
00736   //prevent re-entrancy of code) and then handling all outstanding
00737   //GUI events.
00738         
00739   //However, this often triggers an OnPaint() method for wxVTKRWIs,
00740   //resulting in a Render(), resulting in Update() being called whilst
00741   //still in progress.
00742 
00743   RenderWhenDisabled = (bool)newValue;
00744 }

void wxVTKRenderWindowInteractor::SetStereo ( int  capable  )  [virtual, inherited]

Definition at line 750 of file wxVTKRenderWindowInteractor.cxx.

References wxVTKRenderWindowInteractor::Stereo.

00751 {
00752   if (Stereo != capable)
00753     {
00754     Stereo = capable;
00755     RenderWindow->StereoCapableWindowOn();
00756     RenderWindow->SetStereoTypeToCrystalEyes();
00757     Modified();
00758     }
00759 }

void vtk3DSurfaceWidget::SetSurfaceColor ( float  red,
float  green,
float  blue 
) [inherited]

Definition at line 165 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_pRenderWindow, and vtk3DSurfaceWidget::_surfActor.

00166 {
00167   _surfActor->GetProperty()->SetColor(red, green, blue );
00168   _pRenderWindow->Render();
00169 }

void vtk3DSurfaceWidget::SetSurfaceIsoValue ( int  isoval  )  [inherited]
void vtk3DSurfaceWidget::SetSurfaceOpacity ( int  opaval  )  [inherited]

Definition at line 183 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_pRenderWindow, and vtk3DSurfaceWidget::_surfActor.

Referenced by wxQuantificationWidgetCT::OnSliderOpacityScroll(), wxQuantificationWidget::OnSliderOpacityScroll(), wxSurfaceWidget::OnSliderOpacityScrollThumbrelease(), wxQuantificationWidgetCT::SetSlider_Isovalue_Opacity(), and wxQuantificationWidget::SetSlider_Isovalue_Opacity().

00184 {
00185   //There is no way in Win32 to specify a slider different than 0->100
00186   _surfActor->GetProperty()->SetOpacity( (double)opaval/100.0 );
00187   _pRenderWindow->Render();
00188 }

Here is the caller graph for this function:

void vtk3DSurfaceWidget::SetSurfaceVisibility ( bool  visible  )  [inherited]

Definition at line 171 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_pRenderWindow, and vtk3DSurfaceWidget::_surfActor.

Referenced by wxQuantificationWidgetCT::OnShowSurface_CB(), and wxQuantificationWidget::OnShowSurface_CB().

00172 {
00173   _surfActor->SetVisibility( visible );
00174   _pRenderWindow->Render();
00175 }

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Show3DContourActor ( int  type = 0  ) 

Definition at line 387 of file vtk3DQuantSurfaceWidget.cxx.

References _lstContHealtyVtk, _lstContVtk, and listContourVTK::Show3DContourActor().

Referenced by wxQuantificationWidgetCT::OnVisibleRing_CB(), and wxQuantificationWidget::OnVisibleRing_CB().

00387                                                           {
00388         if (type==0){ _lstContVtk->Show3DContourActor(); }
00389         if (type==1){ _lstContHealtyVtk->Show3DContourActor(); }
00390 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Show3DEndRegionSliceActor ( int  type  ) 

Definition at line 541 of file vtk3DQuantSurfaceWidget.cxx.

References RectangleGuideVtk::_actor, RectangleGuideVtk::_iSlice, vtk3DSurfaceWidget::_pRenderer, vtk3DSurfaceWidget::_pRenderWindow, _s2_rectGuide, _sB_rectGuide, and RectangleGuideVtk::_showActor.

Referenced by wxQuantificationWidgetCT::Show3DEndRegionSliceActor(), wxQuantificationWidget::Show3DEndRegionSliceActor(), and Show3DRegionSliceActor().

00541                                                                  {
00542         if ((type==0) && (_s2_rectGuide->_iSlice!=-1)){
00543                 _pRenderer->AddActor( _s2_rectGuide->_actor );
00544                 _s2_rectGuide->_showActor=true;
00545         }
00546         if ((type==1) && (_sB_rectGuide->_iSlice!=-1)){
00547                 _pRenderer->AddActor( _sB_rectGuide->_actor );
00548                 _sB_rectGuide->_showActor=true;
00549         }
00550   _pRenderWindow->Render( );
00551 }

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Show3DHealthySliceActor (  ) 
void vtk3DQuantSurfaceWidget::Show3DRegionSliceActor ( int  type  ) 

Definition at line 524 of file vtk3DQuantSurfaceWidget.cxx.

References Show3DEndRegionSliceActor(), and Show3DStartRegionSliceActor().

Referenced by wxQuantificationWidgetCT::Show3DRegionSliceActor(), and wxQuantificationWidget::Show3DRegionSliceActor().

00524                                                               {
00525         Show3DStartRegionSliceActor(type);
00526         Show3DEndRegionSliceActor(type);
00527 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Show3DSliceActor (  ) 

Definition at line 370 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceActor, vtk3DSurfaceWidget::_pRenderer, and vtk3DSurfaceWidget::_pRenderWindow.

Referenced by wxQuantificationWidgetCT::OnPerpendicular_CB(), and wxQuantificationWidget::OnPerpendicular_CB().

00371 {
00372   _pRenderer->AddActor( _3DSliceActor );
00373   _pRenderWindow->Render( );
00374 }

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::Show3DStartRegionSliceActor ( int  type  ) 
void vtk3DSurfaceWidget::ShowMARACASData ( marInterface mar  )  [inherited]

Definition at line 224 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_depth, marInterface::_experiment, vtk3DSurfaceWidget::_height, vtk3DSurfaceWidget::_mar, vtk3DSurfaceWidget::_marImageData, vtk3DSurfaceWidget::_mCubes, vtk3DSurfaceWidget::_outActor, vtk3DSurfaceWidget::_outLine, vtk3DSurfaceWidget::_outMapper, vtk3DSurfaceWidget::_pRenderer, vtk3DSurfaceWidget::_range, vtk3DSurfaceWidget::_surfActor, vtk3DSurfaceWidget::_surfMapper, vtk3DSurfaceWidget::_width, marExperiment::getDynData(), marDynData::getVolume(), and wxVTKRenderWindowInteractor::New().

Referenced by wxSurfaceWidget::ShowMARACASData(), and ShowMARACASDataAndAxe().

00224                                                            {
00225     int whd[3];
00226 
00227     _mar = mar;
00228     _marImageData = _mar->_experiment->getDynData( )->getVolume( )->castVtk();
00229     _marImageData->GetDimensions( whd );
00230     _width  = whd[0];
00231     _height = whd[1];
00232     _depth  = whd[2];
00233 
00234     _marImageData->GetScalarRange( _range );
00235     
00236     //Outline v2:
00237     // An outline provides context around the data.
00238     _outLine    = vtkOutlineFilter::New( );
00239     _outLine->SetInput( _marImageData );
00240     _outMapper  = vtkPolyDataMapper::New( );
00241     _outMapper->SetInput( _outLine->GetOutput( ) );
00242     _outActor   = vtkActor::New( );
00243     _outActor->SetMapper( _outMapper );
00244     _outActor->GetProperty( )->SetColor( 0.7, 0.0, 0.9 );
00245     //_outActor->PickableOff( );
00246     _pRenderer->AddActor( _outActor );
00247 
00248     // Surface
00249     _mCubes = vtkMarchingCubes::New( );
00250     _surfMapper = vtkPolyDataMapper::New( );
00251     _surfActor = vtkActor::New( );
00252 
00253     _mCubes->SetInput( _marImageData );
00254     _mCubes->SetValue( 0, _range[1] / 4 );
00255 
00256     vtkStripper *stripper = vtkStripper::New();
00257     stripper->SetInput( _mCubes->GetOutput( ) );
00258 
00259          _surfMapper->SetInput( stripper->GetOutput() );
00260     _surfMapper->ScalarVisibilityOff( );
00261     stripper->Delete();
00262 
00263     _surfActor->SetMapper( _surfMapper );
00264     _surfActor->PickableOff( );
00265     _surfActor->GetProperty( )->SetColor( 0.9803, 0.9215, 0.8392 );
00266     _surfActor->GetProperty( )->SetOpacity( 0.5 );
00267     _pRenderer->AddActor( _surfActor );
00268 
00269     // 1. ParallelProjectionOn should be set after AddActor (otherwise call vtkRenderer::ResetCameraClippingRange
00270     // 2. ParallelProjectionOn is *necessary* for the vtkImplicitSelectionLoop
00271     // otherwise this give a cone instead of a cylinder cutting.
00272     _pRenderer->GetActiveCamera()->ParallelProjectionOn();
00273 
00274 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::ShowMARACASDataAndAxe ( marInterface mar  ) 

Definition at line 244 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceActor, _3DSliceMapper, _bwlookup, _collookup, marInterface::_experiment, _lstContHealtyVtk, _lstContVtk, vtk3DSurfaceWidget::_mar, vtk3DSurfaceWidget::_pRenderer, vtk3DSurfaceWidget::_range, vtk3DSurfaceWidget::ConfigureVTK(), marAxis::Draw(), marExperiment::get3DSlice(), marExperiment::getAxis(), marExperiment::getNumberOfSlices(), listContourVTK::InitListContourActor(), wxVTKRenderWindowInteractor::New(), vtk3DSurfaceWidget::SetAxis(), marExperiment::setAxis(), and vtk3DSurfaceWidget::ShowMARACASData().

Referenced by wxQuantificationWidget::ShowMARACASData().

00245 {
00246   marAxis                       *temp;
00247   vtkPolyData           *allData;
00248   int nos;
00249   vtkProbeFilter        *pFilter;
00250 
00251   this->ShowMARACASData( mar );
00252   this->ConfigureVTK();
00253 
00254   _pRenderer->SetBackground( 0.35, 0.35, 0.35 );
00255 
00256   // Axis
00257   _mar->_experiment->setAxis( 0 );
00258   temp          = _mar->_experiment->getAxis( );  // ??? getActualAxis ??
00259   allData       = temp->Draw( );
00260 
00261   nos           = _mar->_experiment->getNumberOfSlices( );
00262   pFilter       = _mar->_experiment->get3DSlice( (int) (nos-1)/2 );
00263 
00264   _bwlookup = vtkWindowLevelLookupTable::New( );
00265   _bwlookup->SetHueRange( 0 , 1 );
00266   _bwlookup->SetNumberOfColors( (int)(_range[1] - _range[0] + 1) );
00267   _bwlookup->SetTableRange( _range[0] , _range[1] );
00268   _bwlookup->SetSaturationRange( 0 , 0 );
00269   _bwlookup->SetValueRange( 0 , 1 );
00270   _bwlookup->SetAlphaRange( 1 , 1 );
00271   _bwlookup->Build( );
00272 
00273   _collookup = vtkLookupTable::New( );
00274   _collookup->SetNumberOfColors( 256 );
00275   _collookup->SetTableRange( 0 , 255 );
00276   _collookup->Build( );
00277   _collookup->SetTableValue( 0  , 1 , 0 , 0 , 1 );
00278   _collookup->SetTableValue(128 , 0 , 0 , 1 , 1 );
00279   _collookup->SetTableValue(255 , 0 , 1 , 0 , 1 );
00280 
00281   _3DSliceMapper = vtkDataSetMapper::New( );
00282   _3DSliceMapper->SetInput(pFilter->GetOutput( ) );
00283   _3DSliceMapper->SetLookupTable( _bwlookup );
00284   _3DSliceMapper->SetScalarRange( _range );
00285   _3DSliceMapper->ImmediateModeRenderingOn( );
00286 
00287   _3DSliceActor = vtkActor::New( );
00288   _3DSliceActor->SetMapper( _3DSliceMapper );
00289   _pRenderer->AddActor( _3DSliceActor);
00290 
00291   _lstContVtk->InitListContourActor(nos);
00292   _lstContHealtyVtk->InitListContourActor(nos);
00293   
00294   this->SetAxis( allData );
00295 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DQuantSurfaceWidget::ShowMARACASDataAndAxeCT ( marInterfaceCT mar  ) 

Definition at line 300 of file vtk3DQuantSurfaceWidget.cxx.

References _3DSliceActor, _3DSliceMapper, _bwlookup, _collookup, _lstContHealtyVtk, _lstContVtk, vtk3DSurfaceWidget::_marCT, vtk3DSurfaceWidget::_pRenderer, vtk3DSurfaceWidget::_range, vtk3DSurfaceWidget::ConfigureVTK(), marAxis::Draw(), marInterfaceCT::get3DSlice(), marInterfaceCT::getAxis(), marInterfaceCT::getNumberOfSlices(), listContourVTK::InitListContourActor(), wxVTKRenderWindowInteractor::New(), vtk3DSurfaceWidget::SetAxis(), marInterfaceCT::setAxis(), and vtk3DSurfaceWidget::ShowMARACASDataCT().

Referenced by wxQuantificationWidgetCT::ShowMARACASData().

00301 {
00302   marAxis                       *temp;
00303   vtkPolyData           *allData;
00304   int nos;
00305   vtkProbeFilter        *pFilter;
00306 
00307   this->ShowMARACASDataCT( mar );
00308   this->ConfigureVTK();
00309 
00310   _pRenderer->SetBackground( 0.75, 0.75, 0.75 );
00311 
00312   // Axis
00313   _marCT->setAxis( 0 );
00314   temp          = _marCT->getAxis( );  // ??? getActualAxis ??
00315   allData       = temp->Draw( );
00316 
00317   nos           = _marCT->getNumberOfSlices( );
00318   pFilter       = _marCT->get3DSlice( (int) (nos-1)/2 );
00319 
00320   _bwlookup = vtkWindowLevelLookupTable::New( );
00321   _bwlookup->SetHueRange( 0 , 1 );
00322   _bwlookup->SetNumberOfColors( (int)(_range[1] - _range[0] + 1) );
00323   _bwlookup->SetTableRange( _range[0] , _range[1] );
00324   _bwlookup->SetSaturationRange( 0 , 0 );
00325   _bwlookup->SetValueRange( 0 , 1 );
00326   _bwlookup->SetAlphaRange( 1 , 1 );
00327   _bwlookup->Build( );
00328 
00329   _collookup = vtkLookupTable::New( );
00330   _collookup->SetNumberOfColors( 256 );
00331   _collookup->SetTableRange( 0 , 255 );
00332   _collookup->Build( );
00333   _collookup->SetTableValue( 0  , 1 , 0 , 0 , 1 );
00334   _collookup->SetTableValue(128 , 0 , 0 , 1 , 1 );
00335   _collookup->SetTableValue(255 , 0 , 1 , 0 , 1 );
00336 
00337   _3DSliceMapper = vtkDataSetMapper::New( );
00338   _3DSliceMapper->SetInput(pFilter->GetOutput( ) );
00339   _3DSliceMapper->SetLookupTable( _bwlookup );
00340   _3DSliceMapper->SetScalarRange( _range );
00341   _3DSliceMapper->ImmediateModeRenderingOn( );
00342 
00343   _3DSliceActor = vtkActor::New( );
00344   _3DSliceActor->SetMapper( _3DSliceMapper );
00345   _pRenderer->AddActor( _3DSliceActor);
00346 
00347   _lstContVtk->InitListContourActor(nos);
00348   _lstContHealtyVtk->InitListContourActor(nos);
00349   
00350   this->SetAxis( allData );
00351 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtk3DSurfaceWidget::ShowMARACASDataCT ( marInterfaceCT mar  )  [inherited]

Definition at line 276 of file vtk3DSurfaceWidget.cxx.

References vtk3DSurfaceWidget::_depth, vtk3DSurfaceWidget::_height, vtk3DSurfaceWidget::_marCT, vtk3DSurfaceWidget::_marImageData, vtk3DSurfaceWidget::_mCubes, vtk3DSurfaceWidget::_outActor, vtk3DSurfaceWidget::_outLine, vtk3DSurfaceWidget::_outMapper, vtk3DSurfaceWidget::_pRenderer, vtk3DSurfaceWidget::_range, vtk3DSurfaceWidget::_surfActor, vtk3DSurfaceWidget::_surfMapper, vtk3DSurfaceWidget::_width, marInterfaceCT::getDynData(), marInterfaceCT::GetExperiment(), marDynData::getVolume(), and wxVTKRenderWindowInteractor::New().

Referenced by ShowMARACASDataAndAxeCT().

00276                                                                {
00277     int whd[3];
00278 
00279 
00280     _marCT = mar;
00281     _marImageData = _marCT->getDynData()->getVolume()->castVtk();
00282     _marImageData->GetDimensions( whd );
00283     _width  = whd[0];
00284     _height = whd[1];
00285     _depth  = whd[2];
00286 
00287     _marImageData->GetScalarRange( _range );
00288     
00289         int a = (_marCT->GetExperiment())->getQuantStart();
00290     //Outline v2:
00291     // An outline provides context around the data.
00292     _outLine    = vtkOutlineFilter::New( );
00293     _outLine->SetInput( _marImageData );
00294     _outMapper  = vtkPolyDataMapper::New( );
00295     _outMapper->SetInput( _outLine->GetOutput( ) );
00296     _outActor   = vtkActor::New( );
00297     _outActor->SetMapper( _outMapper );
00298     _outActor->GetProperty( )->SetColor( 0.7, 0.0, 0.9 );
00299     //_outActor->PickableOff( );
00300     _pRenderer->AddActor( _outActor );
00301 
00302     // Surface
00303     _mCubes = vtkMarchingCubes::New( );
00304     _surfMapper = vtkPolyDataMapper::New( );
00305     _surfActor = vtkActor::New( );
00306 
00307     _mCubes->SetInput( _marImageData );
00308     _mCubes->SetValue( 0, _range[1] / 4 );
00309 
00310     vtkStripper *stripper = vtkStripper::New();
00311     stripper->SetInput( _mCubes->GetOutput( ) );
00312 
00313          _surfMapper->SetInput( stripper->GetOutput() );
00314     _surfMapper->ScalarVisibilityOff( );
00315     stripper->Delete();
00316 
00317     _surfActor->SetMapper( _surfMapper );
00318     _surfActor->PickableOff( );
00319     _surfActor->GetProperty( )->SetColor( 0.9803, 0.9215, 0.8392 );
00320     _surfActor->GetProperty( )->SetOpacity( 0.5 );
00321     _pRenderer->AddActor( _surfActor );
00322 
00323     // 1. ParallelProjectionOn should be set after AddActor (otherwise call vtkRenderer::ResetCameraClippingRange
00324     // 2. ParallelProjectionOn is *necessary* for the vtkImplicitSelectionLoop
00325     // otherwise this give a cone instead of a cylinder cutting.
00326     _pRenderer->GetActiveCamera()->ParallelProjectionOn();
00327 
00328 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxVTKRenderWindowInteractor::Start (  )  [inherited]

Definition at line 234 of file wxVTKRenderWindowInteractor.cxx.

00235 {
00236   // the interactor cannot control the event loop
00237   vtkErrorMacro( << "wxVTKRenderWindowInteractor::Start() "
00238     "interactor cannot control event loop.");
00239 }

void wxVTKRenderWindowInteractor::TerminateApp (  )  [inline, inherited]

Definition at line 124 of file wxVTKRenderWindowInteractor.h.

00124 {};

void wxVTKRenderWindowInteractor::UpdateSize ( int  x,
int  y 
) [inherited]

Definition at line 241 of file wxVTKRenderWindowInteractor.cxx.

00242 {
00243   if( RenderWindow )
00244   {
00245     // if the size changed tell render window
00246     if ( x != Size[0] || y != Size[1] )
00247     {
00248       // adjust our (vtkRenderWindowInteractor size)
00249       Size[0] = x;
00250       Size[1] = y;
00251       // and our RenderWindow's size
00252       RenderWindow->SetSize(x, y);
00253     }
00254   }
00255 }

wxVTKRenderWindowInteractor::vtkBooleanMacro ( UseCaptureMouse  ,
int   
) [inherited]
wxVTKRenderWindowInteractor::vtkBooleanMacro ( Stereo  ,
int   
) [inherited]
wxVTKRenderWindowInteractor::vtkGetMacro ( Stereo  ,
int   
) [inherited]
vtk3DSurfaceWidget::vtkGetMacro ( InitialSphere  ,
int   
) [inherited]
wxVTKRenderWindowInteractor::vtkSetMacro ( UseCaptureMouse  ,
int   
) [inherited]

Member Data Documentation

vtkDataSetMapper* vtk3DQuantSurfaceWidget::_3DSliceMapper [protected]

Definition at line 153 of file vtk3DQuantSurfaceWidget.h.

Referenced by GetAnalysisTypeStenosis(), and SetAnalysisTypeStenosis().

vtkActor* vtk3DSurfaceWidget::_axesActor [protected, inherited]
vtkPolyDataMapper* vtk3DSurfaceWidget::_axesMapper [protected, inherited]
vtkWindowLevelLookupTable* vtk3DQuantSurfaceWidget::_bwlookup [protected]
vtkPolyData* vtk3DSurfaceWidget::_centralLine [protected, inherited]
vtkActor* vtk3DSurfaceWidget::_centralLineActor [protected, inherited]
vtkPolyDataMapper* vtk3DSurfaceWidget::_centralLineMapper [protected, inherited]
vtkLookupTable* vtk3DQuantSurfaceWidget::_collookup [protected]
marInterface* vtk3DSurfaceWidget::_mar [protected, inherited]
marInterfaceCT* vtk3DSurfaceWidget::_marCT [protected, inherited]
vtkImageData* vtk3DSurfaceWidget::_marImageData [inherited]
vtkPolyData* vtk3DSurfaceWidget::_marPolyData [inherited]

Definition at line 80 of file vtk3DSurfaceWidget.h.

vtkMarchingCubes* vtk3DSurfaceWidget::_mCubes [protected, inherited]
vtkActor* vtk3DSurfaceWidget::_outActor [protected, inherited]
vtkOutlineFilter* vtk3DSurfaceWidget::_outLine [protected, inherited]
vtkPolyDataMapper* vtk3DSurfaceWidget::_outMapper [protected, inherited]
vtkRenderer* vtk3DSurfaceWidget::_pRenderer [protected, inherited]
vtkRenderWindow* vtk3DSurfaceWidget::_pRenderWindow [protected, inherited]
double vtk3DSurfaceWidget::_range[2] [protected, inherited]
vtkSphereSource* vtk3DSurfaceWidget::_spheres[4] [protected, inherited]
vtkActor* vtk3DSurfaceWidget::_spheresActor[4] [protected, inherited]
vtkPolyDataMapper* vtk3DSurfaceWidget::_spheresMapper[4] [protected, inherited]
vtkActor* vtk3DSurfaceWidget::_surfActor [protected, inherited]
vtkPolyDataMapper* vtk3DSurfaceWidget::_surfMapper [protected, inherited]
int wxVTKRenderWindowInteractor::ActiveButton [protected, inherited]
int wxVTKRenderWindowInteractor::RenderAllowed [protected, inherited]

Definition at line 163 of file wxVTKRenderWindowInteractor.h.

Referenced by wxVTKRenderWindowInteractor::Render().

int wxVTKRenderWindowInteractor::Stereo [protected, inherited]
wxTimer wxVTKRenderWindowInteractor::timer [protected, inherited]

Definition at line 161 of file wxVTKRenderWindowInteractor.h.


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

Generated on 20 Oct 2010 for creaMaracasVisu_lib by  doxygen 1.6.1