Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes

mitk::BaseRenderer Class Reference
[Renderer and RenderWindow Classes]

Organizes the rendering process. More...

#include <mitkBaseRenderer.h>

Inheritance diagram for mitk::BaseRenderer:
Inheritance graph
[legend]

List of all members.

Public Types

enum  StandardMapperSlot { Standard2D = 1, Standard3D = 2 }
typedef std::map
< vtkRenderWindow
*, BaseRenderer * > 
BaseRendererMapType
typedef BaseRenderer Self
typedef itk::Object Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer
typedef int MapperSlotId
 MapperSlotId defines which kind of mapper (e.g., 2D or 3D) shoud be used.

Public Member Functions

 itkEventMacro (RendererResetEvent, itk::AnyEvent)
virtual const char * GetClassName () const
 BaseRenderer (const char *name=NULL, vtkRenderWindow *renWin=NULL, mitk::RenderingManager *rm=NULL)
virtual void SetDataStorage (DataStorage *storage)
 set the datastorage that will be used for rendering
virtual DataStorage::Pointer GetDataStorage () const
vtkRenderWindow * GetRenderWindow () const
 Access the RenderWindow into which this renderer renders.
vtkRenderer * GetVtkRenderer () const
virtual void Paint ()
 Do the rendering and flush the result.
virtual void Initialize ()
 Initialize the RenderWindow. Should only be called from RenderWindow.
virtual void Resize (int w, int h)
 Called to inform the renderer that the RenderWindow has been resized.
virtual void InitRenderer (vtkRenderWindow *renderwindow)
 Initialize the renderer with a RenderWindow (renderwindow).
virtual void InitSize (int w, int h)
 Set the initial size. Called by RenderWindow after it has become visible for the first time.
virtual void DrawOverlayMouse (Point2D &p2d)
 Draws a point on the widget. Should be used during conferences to show the position of the remote mouse.
virtual void SetWorldGeometry (Geometry3D *geometry)
 Set/Get the WorldGeometry (m_WorldGeometry) for 3D and 2D rendering, that describing the (maximal) area to be rendered.
virtual const Geometry3DGetWorldGeometry ()
virtual const Geometry3DGetCurrentWorldGeometry ()
 Get the current 3D-worldgeometry (m_CurrentWorldGeometry) used for 3D-rendering.
virtual const Geometry2DGetCurrentWorldGeometry2D ()
 Get the current 2D-worldgeometry (m_CurrentWorldGeometry2D) used for 2D-rendering.
virtual bool SetWorldGeometryToDataStorageBounds ()
virtual void SetDisplayGeometry (DisplayGeometry *geometry2d)
 Set/Get the DisplayGeometry (for 2D rendering)
virtual const DisplayGeometryGetDisplayGeometry ()
virtual DisplayGeometryGetDisplayGeometry ()
virtual void SetSlice (unsigned int slice)
 Set/Get m_Slice which defines together with m_TimeStep the 2D geometry stored in m_TimeSlicedWorldGeometry used as m_CurrentWorldGeometry2D.
virtual unsigned int GetSlice () const
virtual void SetTimeStep (unsigned int timeStep)
 Set/Get m_TimeStep which defines together with m_Slice the 2D geometry stored in m_TimeSlicedWorldGeometry used as m_CurrentWorldGeometry2D.
virtual unsigned int GetTimeStep () const
int GetTimeStep (const BaseData *data) const
 Get the time-step of a BaseData object which exists at the time of the currently displayed content.
ScalarType GetTime () const
 Get the time in ms of the currently displayed content.
virtual void SetGeometry (const itk::EventObject &geometrySliceEvent)
 SetWorldGeometry is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometrySendEvent.
virtual void UpdateGeometry (const itk::EventObject &geometrySliceEvent)
 UpdateWorldGeometry is called to re-read the 2D geometry from the slice navigation controller.
virtual void SetGeometrySlice (const itk::EventObject &geometrySliceEvent)
 SetSlice is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometrySliceEvent.
virtual void SetGeometryTime (const itk::EventObject &geometryTimeEvent)
 SetTimeStep is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometryTimeEvent.
virtual Geometry2DDataGetDisplayGeometryData ()
 Get a data object containing the DisplayGeometry (for 2D rendering)
virtual Geometry2DDataGetWorldGeometryData ()
 Get a data object containing the WorldGeometry (for 2D rendering)
virtual DataNodeGetWorldGeometryNode ()
 Get a DataNode pointing to a data object containing the WorldGeometry (3D and 2D rendering)
virtual DataNodeGetDisplayGeometryNode ()
 Get a DataNode pointing to a data object containing the DisplayGeometry (for 2D rendering)
virtual DataNodeGetCurrentWorldGeometry2DNode ()
 Get a DataNode pointing to a data object containing the current 2D-worldgeometry m_CurrentWorldGeometry2D (for 2D rendering)
void SendUpdateSlice ()
 Sets timestamp of CurrentWorldGeometry2D and DisplayGeometry and forces so reslicing in that renderwindow.
unsigned long GetCurrentWorldGeometry2DUpdateTime ()
 Get timestamp of last call of SetCurrentWorldGeometry2D.
unsigned long GetDisplayGeometryUpdateTime ()
 Get timestamp of last call of SetDisplayGeometry.
unsigned long GetTimeStepUpdateTime ()
 Get timestamp of last change of current TimeStep.
virtual void PickWorldPoint (const Point2D &diplayPosition, Point3D &worldPosition) const
 Perform a picking: find the x,y,z world coordinate of a display x,y coordinate.
virtual DataNodePickObject (const Point2D &, Point3D &) const
 Determines the object (mitk::DataNode) closest to the current position by means of picking.
virtual MapperSlotId GetMapperID ()
 Get the MapperSlotId to use.
virtual void SetMapperID (MapperSlotId _arg)
 Set the MapperSlotId to use.
virtual bool GetFocused ()
 Has the renderer the focus?
virtual void SetFocused (bool _arg)
 Tell the renderer that it is focused. The caller is responsible for focus management, not the renderer itself.
void SetDepthPeelingEnabled (bool enabled)
 Sets whether depth peeling is enabled or not.
void SetMaxNumberOfPeels (int maxNumber)
virtual int * GetSize ()
void SetSliceNavigationController (SliceNavigationController *SlicenavigationController)
void SetCameraController (CameraController *cameraController)
virtual CameraControllerGetCameraController ()
virtual SliceNavigationControllerGetSliceNavigationController ()
virtual CameraRotationControllerGetCameraRotationController ()
virtual bool GetEmptyWorldGeometry ()
virtual void MousePressEvent (MouseEvent *)
 Mouse event dispatchers.
virtual void MouseReleaseEvent (MouseEvent *)
 Mouse event dispatchers.
virtual void MouseMoveEvent (MouseEvent *)
 Mouse event dispatchers.
virtual void WheelEvent (mitk::WheelEvent *we)
 Wheel event dispatcher.
virtual void KeyPressEvent (KeyEvent *)
 Key event dispatcher.
const char * GetName () const
 get the name of the Renderer
int GetSizeX () const
 get the x_size of the RendererWindow
int GetSizeY () const
 get the y_size of the RendererWindow
const double * GetBounds () const
void RequestUpdate ()
void ForceImmediateUpdate ()
unsigned int GetNumberOfVisibleLODEnabledMappers () const
virtual mitk::RenderingManagerGetRenderingManager () const
 Setter for the RenderingManager that handles this instance of BaseRenderer.
void RemoveAllLocalStorages ()
void RegisterLocalStorageHandler (mitk::BaseLocalStorageHandler *lsh)
void UnregisterLocalStorageHandler (mitk::BaseLocalStorageHandler *lsh)

Static Public Member Functions

static BaseRendererGetInstance (vtkRenderWindow *renWin)
static void AddInstance (vtkRenderWindow *renWin, BaseRenderer *baseRenderer)
static void RemoveInstance (vtkRenderWindow *renWin)
static BaseRendererGetByName (const std::string &name)
static vtkRenderWindow * GetRenderWindowByName (const std::string &name)

Static Public Attributes

static BaseRendererMapType baseRendererMap
static const MapperSlotId defaultMapper = 1
 Default mapper id to use.

Protected Types

typedef std::set< Mapper * > LODEnabledMappersType

Protected Member Functions

virtual ~BaseRenderer ()
virtual void Update ()=0
 Call update of all mappers. To be implemented in subclasses.
virtual void SetCurrentWorldGeometry2D (Geometry2D *geometry2d)
 Sets m_CurrentWorldGeometry2D.
virtual void SetCurrentWorldGeometry (Geometry3D *geometry)
 Sets m_CurrentWorldGeometry.
virtual void PrintSelf (std::ostream &os, itk::Indent indent) const

Protected Attributes

vtkRenderWindow * m_RenderWindow
vtkRenderer * m_VtkRenderer
MapperSlotId m_MapperID
 MapperSlotId to use. Defines which kind of mapper (e.g., 2D or 3D) shoud be used.
DataStorage::Pointer m_DataStorage
 The DataStorage that is used for rendering.
RenderingManager::Pointer m_RenderingManager
 The RenderingManager that manages this instance.
unsigned long m_LastUpdateTime
 Timestamp of last call of Update().
CameraController::Pointer m_CameraController
 CameraController for 3D rendering.
SliceNavigationController::Pointer m_SliceNavigationController
CameraRotationController::Pointer m_CameraRotationController
int m_Size [2]
 Size of the RenderWindow.
bool m_Focused
 Contains whether the renderer that it is focused. The caller of SetFocused is responsible for focus management, not the renderer itself. is doubled because of mitk::FocusManager in GlobalInteraction!!! (ingmar)
Geometry2DData::Pointer m_WorldGeometryData
Geometry2DData::Pointer m_DisplayGeometryData
Geometry2DData::Pointer m_CurrentWorldGeometry2DData
DataNode::Pointer m_WorldGeometryNode
DataNode::Pointer m_DisplayGeometryNode
DataNode::Pointer m_CurrentWorldGeometry2DNode
unsigned long m_DisplayGeometryTransformTime
 test only
unsigned long m_CurrentWorldGeometry2DTransformTime
 test only
std::string m_Name
double m_Bounds [6]
bool m_EmptyWorldGeometry
bool m_DepthPeelingEnabled
int m_MaxNumberOfPeels
unsigned int m_NumberOfVisibleLODEnabledMappers
std::list
< mitk::BaseLocalStorageHandler * > 
m_RegisteredLocalStorageHandlers

Detailed Description

Organizes the rendering process.

Organizes the rendering process. A Renderer contains a reference to a DataStorage and asks the mappers of the data objects to render the data into the renderwindow it is associated to.

#Render() checks if rendering is currently allowed by calling RenderWindow::PrepareRendering(). Initialization of a rendering context can also be performed in this method.

The actual rendering code has been moved to #Repaint() Both #Repaint() and #Update() are declared protected now.

Note: Separation of the Repaint and Update processes (rendering vs creating a vtk prop tree) still needs to be worked on. The whole rendering process also should be reworked to use VTK based classes for both 2D and 3D rendering.

Definition at line 73 of file mitkBaseRenderer.h.


Member Typedef Documentation

typedef std::map<vtkRenderWindow*,BaseRenderer*> mitk::BaseRenderer::BaseRendererMapType

Definition at line 76 of file mitkBaseRenderer.h.

typedef itk::SmartPointer<const Self> mitk::BaseRenderer::ConstPointer

Reimplemented in mitk::VtkPropRenderer.

Definition at line 89 of file mitkBaseRenderer.h.

typedef std::set< Mapper * > mitk::BaseRenderer::LODEnabledMappersType [protected]

Definition at line 561 of file mitkBaseRenderer.h.

MapperSlotId defines which kind of mapper (e.g., 2D or 3D) shoud be used.

Definition at line 95 of file mitkBaseRenderer.h.

typedef itk::SmartPointer<Self> mitk::BaseRenderer::Pointer

Reimplemented in mitk::VtkPropRenderer.

Definition at line 89 of file mitkBaseRenderer.h.

Standard class typedefs.

Reimplemented in mitk::VtkPropRenderer.

Definition at line 89 of file mitkBaseRenderer.h.

typedef itk::Object mitk::BaseRenderer::Superclass

Reimplemented in mitk::VtkPropRenderer.

Definition at line 89 of file mitkBaseRenderer.h.


Member Enumeration Documentation

Enumerator:
Standard2D 
Standard3D 

Definition at line 97 of file mitkBaseRenderer.h.


Constructor & Destructor Documentation

mitk::BaseRenderer::BaseRenderer ( const char *  name = NULL,
vtkRenderWindow *  renWin = NULL,
mitk::RenderingManager rm = NULL 
)

Definition at line 123 of file mitkBaseRenderer.cpp.

References AddInstance(), GetInstance(), mitk::VtkLayerController::GetInstance(), m_Bounds, m_CameraController, m_CameraRotationController, m_CurrentWorldGeometry2DData, m_CurrentWorldGeometry2DNode, m_CurrentWorldGeometry2DTransformTime, m_DisplayGeometryData, m_DisplayGeometryNode, m_DisplayGeometryTransformTime, m_Name, m_RenderingManager, m_RenderWindow, m_Size, m_SliceNavigationController, m_VtkRenderer, mitk::BaseController::New(), mitk::TDMouseVtkCameraController::New(), mitk::CameraRotationController::New(), mitk::SliceNavigationController::New(), mitk::DisplayGeometry::New(), mitk::ResliceMethodProperty::New(), mitk::IntProperty::New(), mitk::DataNode::New(), mitk::Geometry2DData::New(), mitk::PlaneGeometry::New(), and mitk::WeakPointerProperty::New().

                                                                                                     :
m_RenderWindow(NULL), m_VtkRenderer(NULL), m_MapperID(defaultMapper), m_DataStorage(NULL), m_RenderingManager(rm), m_LastUpdateTime(0),
m_CameraController(NULL), m_SliceNavigationController(NULL), m_CameraRotationController(NULL), /*m_Size(),*/
 m_Focused(false), m_WorldGeometry(NULL), m_TimeSlicedWorldGeometry(NULL), m_CurrentWorldGeometry(NULL), m_CurrentWorldGeometry2D(NULL),
m_DisplayGeometry(NULL), m_Slice(0), m_TimeStep(), m_CurrentWorldGeometry2DUpdateTime(), m_DisplayGeometryUpdateTime(),
m_TimeStepUpdateTime(), m_WorldGeometryData(NULL), m_DisplayGeometryData(NULL), m_CurrentWorldGeometry2DData(NULL),
m_WorldGeometryNode(NULL), m_DisplayGeometryNode(NULL), m_CurrentWorldGeometry2DNode(NULL), m_DisplayGeometryTransformTime(0),
m_CurrentWorldGeometry2DTransformTime(0), m_Name(name), /*m_Bounds(),*/ m_EmptyWorldGeometry(true), m_DepthPeelingEnabled(true),
m_MaxNumberOfPeels(100), m_NumberOfVisibleLODEnabledMappers(0)
{
  m_Bounds[0] = 0;
  m_Bounds[1] = 0;
  m_Bounds[2] = 0;
  m_Bounds[3] = 0;
  m_Bounds[4] = 0;
  m_Bounds[5] = 0;

  if (name != NULL)
  {
    m_Name = name;
  }
  else
  {
    m_Name = "unnamed renderer";
    itkWarningMacro(<< "Created unnamed renderer. Bad for serialization. Please choose a name.");
  }

  if(renWin != NULL)
  {
    m_RenderWindow = renWin;
    m_RenderWindow->Register(NULL);
  }
  else
  {
    itkWarningMacro(<< "Created mitkBaseRenderer without vtkRenderWindow present.");
  }

  m_Size[0] = 0;
  m_Size[1] = 0;

  //instances.insert( this );

  //adding this BaseRenderer to the List of all BaseRenderer
  m_RenderingManager->GetGlobalInteraction()->AddFocusElement(this);

  WeakPointerProperty::Pointer rendererProp = WeakPointerProperty::New((itk::Object*)this);

  m_CurrentWorldGeometry2D = mitk::PlaneGeometry::New();

  m_CurrentWorldGeometry2DData = mitk::Geometry2DData::New();
  m_CurrentWorldGeometry2DData->SetGeometry2D(m_CurrentWorldGeometry2D);
  m_CurrentWorldGeometry2DNode = mitk::DataNode::New();
  m_CurrentWorldGeometry2DNode->SetData(m_CurrentWorldGeometry2DData);
  m_CurrentWorldGeometry2DNode->GetPropertyList()->SetProperty("renderer", rendererProp);
  m_CurrentWorldGeometry2DNode->GetPropertyList()->SetProperty("layer", IntProperty::New(1000));

  m_CurrentWorldGeometry2DNode->SetProperty( "reslice.thickslices", mitk::ResliceMethodProperty::New( ) );
  m_CurrentWorldGeometry2DNode->SetProperty( "reslice.thickslices.num", mitk::IntProperty::New( 1 ) );

  m_CurrentWorldGeometry2DTransformTime = m_CurrentWorldGeometry2DNode->GetVtkTransform()->GetMTime();

  m_DisplayGeometry = mitk::DisplayGeometry::New();
  m_DisplayGeometry->SetWorldGeometry(m_CurrentWorldGeometry2D);
  m_DisplayGeometryData = mitk::Geometry2DData::New();
  m_DisplayGeometryData->SetGeometry2D(m_DisplayGeometry);
  m_DisplayGeometryNode = mitk::DataNode::New();
  m_DisplayGeometryNode->SetData(m_DisplayGeometryData);
  m_DisplayGeometryNode->GetPropertyList()->SetProperty("renderer", rendererProp);
  m_DisplayGeometryTransformTime = m_DisplayGeometryNode->GetVtkTransform()->GetMTime();


  mitk::SliceNavigationController::Pointer sliceNavigationController = mitk::SliceNavigationController::New( "navigation" );
  sliceNavigationController->SetRenderer( this );
  sliceNavigationController->ConnectGeometrySliceEvent( this );
  sliceNavigationController->ConnectGeometryUpdateEvent( this );
  sliceNavigationController->ConnectGeometryTimeEvent( this, false );
  m_SliceNavigationController = sliceNavigationController;

  m_CameraRotationController = mitk::CameraRotationController::New();
  m_CameraRotationController->SetRenderWindow( m_RenderWindow );
  m_CameraRotationController->AcquireCamera();

//if TD Mouse Interaction is activated, then call TDMouseVtkCameraController instead of VtkInteractorCameraController
#ifdef MITK_USE_TD_MOUSE
    m_CameraController = mitk::TDMouseVtkCameraController::New();
#else
    m_CameraController = mitk::CameraController::New(NULL);
#endif

  m_VtkRenderer = vtkRenderer::New();

  if (mitk::VtkLayerController::GetInstance(m_RenderWindow) == NULL)
  {  
    mitk::VtkLayerController::AddInstance(m_RenderWindow,m_VtkRenderer);
    mitk::VtkLayerController::GetInstance(m_RenderWindow)->InsertSceneRenderer(m_VtkRenderer);
  }
  else
    mitk::VtkLayerController::GetInstance(m_RenderWindow)->InsertSceneRenderer(m_VtkRenderer);  
}
mitk::BaseRenderer::~BaseRenderer (  ) [protected, virtual]

Definition at line 224 of file mitkBaseRenderer.cpp.

References mitk::VtkLayerController::RemoveInstance().

{
  if(m_VtkRenderer!=NULL)
  {
    m_VtkRenderer->Delete();
    m_VtkRenderer = NULL;
  }

  if(m_CameraController.IsNotNull())
    m_CameraController->SetRenderer(NULL);
  
  m_RenderingManager->GetGlobalInteraction()->RemoveFocusElement(this);

  mitk::VtkLayerController::RemoveInstance(m_RenderWindow);

  RemoveAllLocalStorages();
    
  
  m_DataStorage = NULL;

  if(m_RenderWindow!=NULL)
  {
    m_RenderWindow->Delete();
    m_RenderWindow = NULL;
  }
}

Member Function Documentation

void mitk::BaseRenderer::AddInstance ( vtkRenderWindow *  renWin,
BaseRenderer baseRenderer 
) [static]

Definition at line 79 of file mitkBaseRenderer.cpp.

References RemoveInstance().

Referenced by BaseRenderer(), mitk::RenderWindowBase::Initialize(), and mitkRenderingManagerTest().

{
  if(renWin == NULL || baseRenderer == NULL)
    return;

  // ensure that no BaseRenderer is managed twice
  mitk::BaseRenderer::RemoveInstance(renWin);

  baseRendererMap.insert(BaseRendererMapType::value_type(renWin,baseRenderer));
}
virtual void mitk::BaseRenderer::DrawOverlayMouse ( Point2D &  p2d ) [virtual]

Draws a point on the widget. Should be used during conferences to show the position of the remote mouse.

Referenced by mitk::ConferenceEventMapper::MapEvent().

void mitk::BaseRenderer::ForceImmediateUpdate (  )

Definition at line 725 of file mitkBaseRenderer.cpp.

{
  m_RenderingManager->ForceImmediateUpdate(this->m_RenderWindow);
}
const double * mitk::BaseRenderer::GetBounds (  ) const

Definition at line 567 of file mitkBaseRenderer.cpp.

{
  return m_Bounds;
}
mitk::BaseRenderer * mitk::BaseRenderer::GetByName ( const std::string &  name ) [static]

Definition at line 99 of file mitkBaseRenderer.cpp.

Referenced by mitk::SceneReaderV1::DecorateNodeWithProperties(), and mitk::ConferenceEventMapper::MapEvent().

{
  for(BaseRendererMapType::iterator mapit = baseRendererMap.begin(); 
    mapit != baseRendererMap.end(); mapit++)
  {
    if( (*mapit).second->m_Name == name)
      return (*mapit).second;
  }
  return NULL;
}
virtual CameraController* mitk::BaseRenderer::GetCameraController (  ) [virtual]
virtual CameraRotationController* mitk::BaseRenderer::GetCameraRotationController (  ) [virtual]
virtual const char* mitk::BaseRenderer::GetClassName (  ) const [virtual]

Reimplemented in mitk::VtkPropRenderer.

virtual const Geometry3D* mitk::BaseRenderer::GetCurrentWorldGeometry (  ) [virtual]

Get the current 3D-worldgeometry (m_CurrentWorldGeometry) used for 3D-rendering.

Referenced by mitk::VolumeDataVtkMapper3D::GenerateData().

virtual const Geometry2D* mitk::BaseRenderer::GetCurrentWorldGeometry2D (  ) [virtual]
virtual DataNode* mitk::BaseRenderer::GetCurrentWorldGeometry2DNode (  ) [virtual]

Get a DataNode pointing to a data object containing the current 2D-worldgeometry m_CurrentWorldGeometry2D (for 2D rendering)

Examples:
Step4.cpp, Step5.cpp, and Step6.cpp.

Referenced by mitk::ImageMapperGL2D::GenerateData(), main(), Step6::SetupWidgets(), and QmitkSlicesInterpolator::UpdateVisibleSuggestion().

unsigned long mitk::BaseRenderer::GetCurrentWorldGeometry2DUpdateTime (  ) [inline]

Get timestamp of last call of SetCurrentWorldGeometry2D.

Definition at line 283 of file mitkBaseRenderer.h.

Referenced by mitk::ImageMapperGL2D::Update().

{ return m_CurrentWorldGeometry2DUpdateTime; };
virtual DataStorage::Pointer mitk::BaseRenderer::GetDataStorage (  ) const [inline, virtual]

return the DataStorage that is used for rendering

Definition at line 104 of file mitkBaseRenderer.h.

Referenced by mitk::SurfaceInteractor::CanHandleEvent(), mitk::PositionTracker::ExecuteAction(), and mitk::UnstructuredGridVtkMapper3D::GenerateData().

  {
    return m_DataStorage.GetPointer();
  };
virtual const DisplayGeometry* mitk::BaseRenderer::GetDisplayGeometry (  ) [virtual]
virtual DisplayGeometry* mitk::BaseRenderer::GetDisplayGeometry (  ) [virtual]
virtual Geometry2DData* mitk::BaseRenderer::GetDisplayGeometryData (  ) [virtual]

Get a data object containing the DisplayGeometry (for 2D rendering)

virtual DataNode* mitk::BaseRenderer::GetDisplayGeometryNode (  ) [virtual]

Get a DataNode pointing to a data object containing the DisplayGeometry (for 2D rendering)

unsigned long mitk::BaseRenderer::GetDisplayGeometryUpdateTime (  ) [inline]

Get timestamp of last call of SetDisplayGeometry.

Definition at line 286 of file mitkBaseRenderer.h.

Referenced by mitk::ContourSetVtkMapper3D::GenerateData(), and mitk::ImageMapperGL2D::Update().

{ return m_CurrentWorldGeometry2DUpdateTime; };
virtual bool mitk::BaseRenderer::GetEmptyWorldGeometry (  ) [virtual]
virtual bool mitk::BaseRenderer::GetFocused (  ) [virtual]

Has the renderer the focus?

Referenced by mitk::GlobalInteraction::GetFocus().

mitk::BaseRenderer * mitk::BaseRenderer::GetInstance ( vtkRenderWindow *  renWin ) [static]

Definition at line 67 of file mitkBaseRenderer.cpp.

References baseRendererMap.

Referenced by mitk::CameraRotationController::AcquireCamera(), QmitkToolPairNavigationView::Activated(), QmitkStdMultiWidget::AddDisplayPlaneSubTree(), BaseRenderer(), QmitkBoundingObjectWidget::CreateBoundingObject(), QmitkToolPairNavigationView::CreateConeAsInstrumentVisualization(), QmitkMovieMaker::CreateQtPartControl(), QmitkToolPairNavigationView::Deactivated(), QmitkStdMultiWidget::EnableStandardLevelWindow(), mitk::FeedbackContourTool::FeedbackContourTool(), QmitkStdMultiWidget::Fit(), QmitkMovieMaker::FocusChange(), QmitkSimpleExampleView::generateMovie(), mitk::RenderWindowBase::GetCameraRotationController(), mitk::RenderWindowBase::GetController(), mitk::RenderingManager::GetNextLOD(), mitk::RenderWindowBase::GetSliceNavigationController(), mitk::RenderingManager::InitializeViews(), QmitkStdMultiWidget::InitializeWidget(), QmitkStdMultiWidget::MoveCrossToPosition(), QmitkViewInitializationView::OnApply(), QmitkPointListWidget::OnBtnAddPoint(), QmitkSlicesInterpolator::OnFrontalSliceChanged(), QmitkIGTExampleView::OnMeasure(), QmitkIGTExampleView::OnPlaying(), QmitkSlicesInterpolator::OnSagittalSliceChanged(), QmitkSlicesInterpolator::OnTransversalSliceChanged(), mitk::RenderingManager::RenderingEndCallback(), mitk::SceneIO::SaveScene(), QmitkStandardViews::SetCameraControllerFromRenderWindow(), QmitkStdMultiWidget::SetDataStorage(), mitk::RenderingManager::SetMaximumLOD(), QmitkMovieMaker::SetRecordingWindow(), QmitkMovieMaker::SetStepperWindow(), QmitkToolPairNavigationView::SetupIGTPipeline(), and QmitkSimpleExampleView::stereoSelectionChanged().

{
   for(BaseRendererMapType::iterator mapit = baseRendererMap.begin(); 
      mapit != baseRendererMap.end(); mapit++)
  {
    if( (*mapit).first == renWin)
      return (*mapit).second;
  }
  return NULL;
}
virtual MapperSlotId mitk::BaseRenderer::GetMapperID (  ) [virtual]
const char* mitk::BaseRenderer::GetName (  ) const [inline]

get the name of the Renderer

Note:

Definition at line 362 of file mitkBaseRenderer.h.

Referenced by mitk::OdfVtkMapper2D< TPixelType, NrOdfDirections >::GetIndex().

  {
    return m_Name.c_str();
  }
unsigned int mitk::BaseRenderer::GetNumberOfVisibleLODEnabledMappers (  ) const

Returns number of mappers which are visible and have level-of-detail rendering enabled

Definition at line 731 of file mitkBaseRenderer.cpp.

Referenced by mitk::RenderingManager::RenderingEndCallback().

mitk::RenderingManager * mitk::BaseRenderer::GetRenderingManager (  ) const [virtual]

Setter for the RenderingManager that handles this instance of BaseRenderer.

Getter for the RenderingManager that handles this instance of BaseRenderer

Definition at line 737 of file mitkBaseRenderer.cpp.

Referenced by QmitkOverlayController::AddOverlay(), mitk::PlanarFigureInteractor::ExecuteAction(), and mitk::DisplayInteractor::ExecuteOperation().

{
  return m_RenderingManager.GetPointer();
}
vtkRenderWindow* mitk::BaseRenderer::GetRenderWindow (  ) const [inline]
vtkRenderWindow * mitk::BaseRenderer::GetRenderWindowByName ( const std::string &  name ) [static]

Definition at line 111 of file mitkBaseRenderer.cpp.

{
  for(BaseRendererMapType::iterator mapit = baseRendererMap.begin(); 
  mapit != baseRendererMap.end(); mapit++)
  {
    if( (*mapit).second->m_Name == name)
      return (*mapit).first;
  }
  return NULL;
}
virtual int* mitk::BaseRenderer::GetSize (  ) [virtual]
int mitk::BaseRenderer::GetSizeX (  ) const [inline]

get the x_size of the RendererWindow

Note:

Definition at line 370 of file mitkBaseRenderer.h.

Referenced by mitk::ConferenceEventMapper::MapEvent().

  {
    return m_Size[0];
  }
int mitk::BaseRenderer::GetSizeY (  ) const [inline]

get the y_size of the RendererWindow

Note:

Definition at line 378 of file mitkBaseRenderer.h.

Referenced by mitk::ConferenceEventMapper::MapEvent().

  {
    return m_Size[1];
  }
virtual unsigned int mitk::BaseRenderer::GetSlice (  ) const [virtual]
virtual SliceNavigationController* mitk::BaseRenderer::GetSliceNavigationController (  ) [virtual]
mitk::ScalarType mitk::BaseRenderer::GetTime (  ) const

Get the time in ms of the currently displayed content.

See also:
GetTimeStep, m_TimeStep

Definition at line 392 of file mitkBaseRenderer.cpp.

Referenced by mitk::SurfaceDeformationInteractor3D::ExecuteAction(), mitk::PointSetInteractor::ExecuteAction(), and mitk::PlanarFigureInteractor::ExecuteAction().

{
  if(m_TimeSlicedWorldGeometry.IsNull())
  {
    return 0;
  }
  else
  {
    ScalarType timeInMS = m_TimeSlicedWorldGeometry->TimeStepToMS(GetTimeStep());
    if(timeInMS == ScalarTypeNumericTraits::NonpositiveMin())
      return 0;
    else
      return timeInMS;
  }
}
virtual unsigned int mitk::BaseRenderer::GetTimeStep (  ) const [virtual]
int mitk::BaseRenderer::GetTimeStep ( const BaseData data ) const

Get the time-step of a BaseData object which exists at the time of the currently displayed content.

Returns -1 or mitk::BaseData::m_TimeSteps if there is no data at the current time.

See also:
GetTimeStep, m_TimeStep

Definition at line 383 of file mitkBaseRenderer.cpp.

References mitk::BaseData::GetTimeSlicedGeometry(), mitk::BaseData::IsInitialized(), and mitk::TimeSlicedGeometry::MSToTimeStep().

{
  if( (data==NULL) || (data->IsInitialized()==false) )
  {
    return -1;
  }
  return data->GetTimeSlicedGeometry()->MSToTimeStep(GetTime());
}
unsigned long mitk::BaseRenderer::GetTimeStepUpdateTime (  ) [inline]

Get timestamp of last change of current TimeStep.

Definition at line 289 of file mitkBaseRenderer.h.

{ return m_TimeStepUpdateTime; };
vtkRenderer* mitk::BaseRenderer::GetVtkRenderer (  ) const [inline]
virtual const Geometry3D* mitk::BaseRenderer::GetWorldGeometry (  ) [virtual]
virtual Geometry2DData* mitk::BaseRenderer::GetWorldGeometryData (  ) [virtual]

Get a data object containing the WorldGeometry (for 2D rendering)

virtual DataNode* mitk::BaseRenderer::GetWorldGeometryNode (  ) [virtual]

Get a DataNode pointing to a data object containing the WorldGeometry (3D and 2D rendering)

void mitk::BaseRenderer::Initialize (  ) [virtual]

Initialize the RenderWindow. Should only be called from RenderWindow.

Definition at line 288 of file mitkBaseRenderer.cpp.

{
}
void mitk::BaseRenderer::InitRenderer ( vtkRenderWindow *  renderwindow ) [virtual]

Initialize the renderer with a RenderWindow (renderwindow).

Reimplemented in mitk::VtkPropRenderer.

Definition at line 303 of file mitkBaseRenderer.cpp.

Referenced by mitk::VtkPropRenderer::InitRenderer().

{
  if(m_RenderWindow != NULL)
  {
    m_RenderWindow->Delete();
  }
  m_RenderWindow = renderwindow;
  if(m_RenderWindow != NULL)
  {
    m_RenderWindow->Register(NULL);
  }
  
  RemoveAllLocalStorages();
  
  if(m_CameraController.IsNotNull())
  {
    m_CameraController->SetRenderer(this);
  }

  //BUG (#1551) added settings for depth peeling
#if ( ( VTK_MAJOR_VERSION >= 5 ) && ( VTK_MINOR_VERSION>=2)  )
  m_RenderWindow->SetAlphaBitPlanes(1);
  m_VtkRenderer->SetUseDepthPeeling(m_DepthPeelingEnabled);
  m_VtkRenderer->SetMaximumNumberOfPeels(m_MaxNumberOfPeels);
  m_VtkRenderer->SetOcclusionRatio(0.1);
#endif
}
void mitk::BaseRenderer::InitSize ( int  w,
int  h 
) [virtual]

Set the initial size. Called by RenderWindow after it has become visible for the first time.

Reimplemented in mitk::VtkPropRenderer.

Definition at line 331 of file mitkBaseRenderer.cpp.

{
  m_Size[0] = w;
  m_Size[1] = h;
  GetDisplayGeometry()->SetSizeInDisplayUnits(w, h, false);
  GetDisplayGeometry()->Fit();
}
mitk::BaseRenderer::itkEventMacro ( RendererResetEvent  ,
itk::AnyEvent   
)
void mitk::BaseRenderer::KeyPressEvent ( mitk::KeyEvent ke ) [virtual]

Key event dispatcher.

Note:
for internal use only. preliminary.

Definition at line 693 of file mitkBaseRenderer.cpp.

References mitk::Event::GetButton(), mitk::Event::GetButtonState(), mitk::KeyEvent::GetDisplayPosition(), mitk::KeyEvent::GetKey(), mitk::KeyEvent::GetText(), mitk::KeyEvent::GetType(), mitk::EventMapper::MapEvent(), and mitk::KeyEvent::SetDisplayPosition().

{
  if(m_MapperID==1)
  {
    Point2D p(ke->GetDisplayPosition());
    Point2D p_mm;
    Point3D position;
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    GetDisplayGeometry()->DisplayToWorld(p, p_mm);
    GetDisplayGeometry()->Map(p_mm, position);
    mitk::KeyEvent event(this, ke->GetType(), ke->GetButton(), ke->GetButtonState(), ke->GetKey(), ke->GetText(), p);
    mitk::EventMapper::MapEvent( &event, m_RenderingManager->GetGlobalInteraction() );
  }
  else if(m_MapperID==2)
  {
    Point2D p(ke->GetDisplayPosition());
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    ke->SetDisplayPosition(p);
    mitk::EventMapper::MapEvent( ke, m_RenderingManager->GetGlobalInteraction() );
  }
}
void mitk::BaseRenderer::MouseMoveEvent ( mitk::MouseEvent me ) [virtual]

Mouse event dispatchers.

Note:
for internal use only. preliminary.

Definition at line 637 of file mitkBaseRenderer.cpp.

References mitk::Event::GetButton(), mitk::Event::GetButtonState(), mitk::DisplayPositionEvent::GetDisplayPosition(), mitk::Event::GetType(), mitk::Key_unknown, mitk::EventMapper::MapEvent(), and mitk::DisplayPositionEvent::SetDisplayPosition().

{
  //if (m_CameraController)
  //{
  //  if((me->GetButtonState()<=512) || (me->GetButtonState()>=516))// provisorisch: Ctrl nicht durchlassen. Bald wird aus m_CameraController eine StateMachine
  //    m_CameraController->MouseMoveEvent(me);
  //}
  if(m_MapperID==1)
  {
    Point2D p(me->GetDisplayPosition());
    Point2D p_mm;
    Point3D position;
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    GetDisplayGeometry()->DisplayToWorld(p, p_mm);
    GetDisplayGeometry()->Map(p_mm, position);
    mitk::PositionEvent event(this, me->GetType(), me->GetButton(), me->GetButtonState(), mitk::Key_unknown, p, position);
    mitk::EventMapper::MapEvent( &event, m_RenderingManager->GetGlobalInteraction() );
  }
  else if(m_MapperID==2)
  {
    Point2D p(me->GetDisplayPosition());
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    me->SetDisplayPosition(p);
    mitk::EventMapper::MapEvent( me, m_RenderingManager->GetGlobalInteraction() );
  }
}
void mitk::BaseRenderer::MousePressEvent ( mitk::MouseEvent me ) [virtual]

Mouse event dispatchers.

Note:
for internal use only. preliminary.

Definition at line 573 of file mitkBaseRenderer.cpp.

References mitk::Event::GetButton(), mitk::Event::GetButtonState(), mitk::DisplayPositionEvent::GetDisplayPosition(), mitk::Event::GetType(), mitk::Key_unknown, mitk::EventMapper::MapEvent(), and mitk::DisplayPositionEvent::SetDisplayPosition().

{
  //set the Focus on the renderer
  /*bool success =*/ m_RenderingManager->GetGlobalInteraction()->SetFocus(this);
  /*
  if (! success) 
    mitk::StatusBar::GetInstance()->DisplayText("Warning! from mitkBaseRenderer.cpp: Couldn't focus this BaseRenderer!");
  */

  //if (m_CameraController)
  //{
  //  if(me->GetButtonState()!=512) // provisorisch: Ctrl nicht durchlassen. Bald wird aus m_CameraController eine StateMachine
  //    m_CameraController->MousePressEvent(me);
  //}
  if(m_MapperID==1)
  {
    Point2D p(me->GetDisplayPosition());
    Point2D p_mm;
    Point3D position;
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    GetDisplayGeometry()->DisplayToWorld(p, p_mm);
    GetDisplayGeometry()->Map(p_mm, position);
    mitk::PositionEvent event(this, me->GetType(), me->GetButton(), me->GetButtonState(), mitk::Key_unknown, p, position);
    mitk::EventMapper::MapEvent( &event, m_RenderingManager->GetGlobalInteraction() );
  }
  else if(m_MapperID>1)//==2 for 3D and ==5 for stencil
  {
    Point2D p(me->GetDisplayPosition());

    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    me->SetDisplayPosition(p);
    mitk::EventMapper::MapEvent( me, m_RenderingManager->GetGlobalInteraction() );
  }
}
void mitk::BaseRenderer::MouseReleaseEvent ( mitk::MouseEvent me ) [virtual]

Mouse event dispatchers.

Note:
for internal use only. preliminary.

Definition at line 608 of file mitkBaseRenderer.cpp.

References mitk::Event::GetButton(), mitk::Event::GetButtonState(), mitk::DisplayPositionEvent::GetDisplayPosition(), mitk::Event::GetType(), mitk::Key_unknown, mitk::EventMapper::MapEvent(), and mitk::DisplayPositionEvent::SetDisplayPosition().

{

  //if (m_CameraController)
  //{
  //  if(me->GetButtonState()!=512) // provisorisch: Ctrl nicht durchlassen. Bald wird aus m_CameraController eine StateMachine
  //    m_CameraController->MouseReleaseEvent(me);
  //}

  if(m_MapperID==1)
  {
    Point2D p(me->GetDisplayPosition());
    Point2D p_mm;
    Point3D position;
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    GetDisplayGeometry()->DisplayToWorld(p, p_mm);
    GetDisplayGeometry()->Map(p_mm, position);
    mitk::PositionEvent event(this, me->GetType(), me->GetButton(), me->GetButtonState(), mitk::Key_unknown, p, position);
    mitk::EventMapper::MapEvent( &event, m_RenderingManager->GetGlobalInteraction() );
  }
  else if(m_MapperID==2)
  {
    Point2D p(me->GetDisplayPosition());
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    me->SetDisplayPosition(p);
    mitk::EventMapper::MapEvent( me, m_RenderingManager->GetGlobalInteraction() );
  }
}
void mitk::BaseRenderer::Paint (  ) [virtual]

Do the rendering and flush the result.

Definition at line 284 of file mitkBaseRenderer.cpp.

{
}
virtual DataNode* mitk::BaseRenderer::PickObject ( const Point2D &  ,
Point3D &   
) const [inline, virtual]

Determines the object (mitk::DataNode) closest to the current position by means of picking.

Warning:
Implementation currently empty for 2D rendering; intended to be implemented for 3D renderers

Reimplemented in mitk::VtkPropRenderer.

Definition at line 305 of file mitkBaseRenderer.h.

{ return NULL; };
virtual void mitk::BaseRenderer::PickWorldPoint ( const Point2D &  diplayPosition,
Point3D &  worldPosition 
) const [virtual]

Perform a picking: find the x,y,z world coordinate of a display x,y coordinate.

Warning:
Has to be overwritten in subclasses for the 3D-case.

Implemented here only for 2D-rendering by using m_DisplayGeometry

Reimplemented in mitk::VtkPropRenderer.

Referenced by mitk::KeyEvent::GetWorldPosition().

void mitk::BaseRenderer::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const [protected, virtual]

Definition at line 788 of file mitkBaseRenderer.cpp.

{
  os << indent << " MapperID: " << m_MapperID << std::endl;
  os << indent << " Slice: " << m_Slice << std::endl;
  os << indent << " TimeStep: " << m_TimeStep << std::endl;

  os << indent << " WorldGeometry: ";
  if(m_WorldGeometry.IsNull())
    os << "NULL" << std::endl;
  else
    m_WorldGeometry->Print(os, indent);

  os << indent << " CurrentWorldGeometry2D: ";
  if(m_CurrentWorldGeometry2D.IsNull())
    os << "NULL" << std::endl;
  else
    m_CurrentWorldGeometry2D->Print(os, indent);

  os << indent << " CurrentWorldGeometry2DUpdateTime: " << m_CurrentWorldGeometry2DUpdateTime << std::endl;
  os << indent << " CurrentWorldGeometry2DTransformTime: " << m_CurrentWorldGeometry2DTransformTime << std::endl;

  os << indent << " DisplayGeometry: ";
  if(m_DisplayGeometry.IsNull())
    os << "NULL" << std::endl;
  else
    m_DisplayGeometry->Print(os, indent);

  os << indent << " DisplayGeometryTransformTime: " << m_DisplayGeometryTransformTime << std::endl;
  Superclass::PrintSelf(os,indent);
}
void mitk::BaseRenderer::RegisterLocalStorageHandler ( mitk::BaseLocalStorageHandler lsh )
void mitk::BaseRenderer::RemoveAllLocalStorages (  )

Definition at line 251 of file mitkBaseRenderer.cpp.

{
  this->InvokeEvent(mitk::BaseRenderer::RendererResetEvent());
  
  std::list<mitk::BaseLocalStorageHandler*>::iterator it;
  for ( it=m_RegisteredLocalStorageHandlers.begin() ; it != m_RegisteredLocalStorageHandlers.end(); it++ )
    (*it)->ClearLocalStorage(this,false);
  m_RegisteredLocalStorageHandlers.clear();  
}
void mitk::BaseRenderer::RemoveInstance ( vtkRenderWindow *  renWin ) [static]

Definition at line 91 of file mitkBaseRenderer.cpp.

Referenced by AddInstance(), and mitk::RenderWindowBase::Destroy().

{
  BaseRendererMapType::iterator mapit = baseRendererMap.find(renWin);
  if(mapit != baseRendererMap.end())
    baseRendererMap.erase(mapit);
}
void mitk::BaseRenderer::RequestUpdate (  )

Definition at line 720 of file mitkBaseRenderer.cpp.

{
  m_RenderingManager->RequestUpdate(this->m_RenderWindow);
}
void mitk::BaseRenderer::Resize ( int  w,
int  h 
) [virtual]

Called to inform the renderer that the RenderWindow has been resized.

Reimplemented in mitk::VtkPropRenderer.

Definition at line 292 of file mitkBaseRenderer.cpp.

Referenced by mitk::VtkPropRenderer::Resize().

{
  m_Size[0] = w;
  m_Size[1] = h;

  if(m_CameraController)
    m_CameraController->Resize(w, h); //(formerly problematic on windows: vtkSizeBug)

  GetDisplayGeometry()->SetSizeInDisplayUnits(w, h);
}
void mitk::BaseRenderer::SendUpdateSlice (  )

Sets timestamp of CurrentWorldGeometry2D and DisplayGeometry and forces so reslicing in that renderwindow.

Definition at line 486 of file mitkBaseRenderer.cpp.

{
  m_DisplayGeometryUpdateTime.Modified();
  m_CurrentWorldGeometry2DUpdateTime.Modified();
}
void mitk::BaseRenderer::SetCameraController ( CameraController cameraController )

Sets the new camera controller and deletes the vtkRenderWindowInteractor in case of the VTKInteractorCameraController

Definition at line 777 of file mitkBaseRenderer.cpp.

References MITK_INFO, and mitk::CameraController::SetRenderer().

{
  mitk::VtkInteractorCameraController::Pointer vtkInteractorCameraController = dynamic_cast<mitk::VtkInteractorCameraController*>(cameraController);
  if (vtkInteractorCameraController.IsNotNull())
    MITK_INFO<<"!!!WARNING!!!: RenderWindow interaction events are no longer handled via CameraController (See Bug #954)."<<std::endl;
  m_CameraController->SetRenderer(NULL);
  m_CameraController = NULL;
  m_CameraController = cameraController;
  m_CameraController->SetRenderer(this);
}
void mitk::BaseRenderer::SetCurrentWorldGeometry ( mitk::Geometry3D geometry ) [protected, virtual]

Sets m_CurrentWorldGeometry.

Definition at line 492 of file mitkBaseRenderer.cpp.

References mitk::Geometry3D::CalculateBoundingBoxRelativeToTransform().

{
  m_CurrentWorldGeometry = geometry;
  if(geometry == NULL)
  {
    m_Bounds[0] = 0;
    m_Bounds[1] = 0;
    m_Bounds[2] = 0;
    m_Bounds[3] = 0;
    m_Bounds[4] = 0;
    m_Bounds[5] = 0;
    m_EmptyWorldGeometry = true;
    return;
  }
  BoundingBox::Pointer boundingBox = 
    m_CurrentWorldGeometry->CalculateBoundingBoxRelativeToTransform(NULL);
  const BoundingBox::BoundsArrayType& worldBounds = boundingBox->GetBounds();
  m_Bounds[0] = worldBounds[0];
  m_Bounds[1] = worldBounds[1];
  m_Bounds[2] = worldBounds[2];
  m_Bounds[3] = worldBounds[3];
  m_Bounds[4] = worldBounds[4];
  m_Bounds[5] = worldBounds[5];
  if(boundingBox->GetDiagonalLength2()<=mitk::eps)
    m_EmptyWorldGeometry = true;
  else
    m_EmptyWorldGeometry = false;
}
void mitk::BaseRenderer::SetCurrentWorldGeometry2D ( mitk::Geometry2D geometry2d ) [protected, virtual]

Sets m_CurrentWorldGeometry2D.

Definition at line 474 of file mitkBaseRenderer.cpp.

{
  if (m_CurrentWorldGeometry2D != geometry2d)
  {
    m_CurrentWorldGeometry2D = geometry2d;
    m_CurrentWorldGeometry2DData->SetGeometry2D(m_CurrentWorldGeometry2D);
    m_DisplayGeometry->SetWorldGeometry(m_CurrentWorldGeometry2D);
    m_CurrentWorldGeometry2DUpdateTime.Modified();
    Modified();
  }
}
void mitk::BaseRenderer::SetDataStorage ( DataStorage storage ) [virtual]

set the datastorage that will be used for rendering

Reimplemented in mitk::VtkPropRenderer.

Definition at line 273 of file mitkBaseRenderer.cpp.

Referenced by mitk::VtkPropRenderer::SetDataStorage().

{
  if ( storage != NULL )
  {
    m_DataStorage = storage;
    this->Modified();
  }
}
void mitk::BaseRenderer::SetDepthPeelingEnabled ( bool  enabled )

Sets whether depth peeling is enabled or not.

Definition at line 819 of file mitkBaseRenderer.cpp.

{
  m_DepthPeelingEnabled = enabled;
#if ( ( VTK_MAJOR_VERSION >= 5 ) && ( VTK_MINOR_VERSION>=2)  )
  m_VtkRenderer->SetUseDepthPeeling(enabled);
#endif
}
void mitk::BaseRenderer::SetDisplayGeometry ( mitk::DisplayGeometry geometry2d ) [virtual]

Set/Get the DisplayGeometry (for 2D rendering)

The DisplayGeometry describes which part of the Geometry2D m_CurrentWorldGeometry2D is displayed.

Definition at line 462 of file mitkBaseRenderer.cpp.

{
  itkDebugMacro("setting DisplayGeometry to " << geometry2d);
  if (m_DisplayGeometry != geometry2d)
  {
    m_DisplayGeometry = geometry2d;
    m_DisplayGeometryData->SetGeometry2D(m_DisplayGeometry);
    m_DisplayGeometryUpdateTime.Modified();
    Modified();
  }
}
virtual void mitk::BaseRenderer::SetFocused ( bool  _arg ) [virtual]

Tell the renderer that it is focused. The caller is responsible for focus management, not the renderer itself.

void mitk::BaseRenderer::SetGeometry ( const itk::EventObject &  geometrySliceEvent ) [virtual]

SetWorldGeometry is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometrySendEvent.

Definition at line 521 of file mitkBaseRenderer.cpp.

{
  const SliceNavigationController::GeometrySendEvent* sendEvent =
    dynamic_cast<const SliceNavigationController::GeometrySendEvent *>(&geometrySendEvent);

  assert(sendEvent!=NULL);
  SetWorldGeometry(sendEvent ->GetTimeSlicedGeometry());
}
void mitk::BaseRenderer::SetGeometrySlice ( const itk::EventObject &  geometrySliceEvent ) [virtual]

SetSlice is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometrySliceEvent.

Definition at line 549 of file mitkBaseRenderer.cpp.

References mitk::SliceNavigationController::TimeSlicedGeometryEvent::GetPos().

{
  const SliceNavigationController::GeometrySliceEvent* sliceEvent =
    dynamic_cast<const SliceNavigationController::GeometrySliceEvent *>(&geometrySliceEvent);

  assert(sliceEvent!=NULL);
  SetSlice(sliceEvent->GetPos());
}
void mitk::BaseRenderer::SetGeometryTime ( const itk::EventObject &  geometryTimeEvent ) [virtual]

SetTimeStep is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometryTimeEvent.

Definition at line 558 of file mitkBaseRenderer.cpp.

References mitk::SliceNavigationController::TimeSlicedGeometryEvent::GetPos().

{
  const SliceNavigationController::GeometryTimeEvent * timeEvent =
    dynamic_cast<const SliceNavigationController::GeometryTimeEvent *>(&geometryTimeEvent);

  assert(timeEvent!=NULL);
  SetTimeStep(timeEvent->GetPos());
}
virtual void mitk::BaseRenderer::SetMapperID ( MapperSlotId  _arg ) [virtual]

Set the MapperSlotId to use.

Reimplemented in mitk::VtkPropRenderer.

void mitk::BaseRenderer::SetMaxNumberOfPeels ( int  maxNumber )

Definition at line 827 of file mitkBaseRenderer.cpp.

{
  m_MaxNumberOfPeels = maxNumber;
#if ( ( VTK_MAJOR_VERSION >= 5 ) && ( VTK_MINOR_VERSION>=2)  )
  m_VtkRenderer->SetMaximumNumberOfPeels(maxNumber);
#endif
}
void mitk::BaseRenderer::SetSlice ( unsigned int  slice ) [virtual]

Set/Get m_Slice which defines together with m_TimeStep the 2D geometry stored in m_TimeSlicedWorldGeometry used as m_CurrentWorldGeometry2D.

See also:
m_Slice

Definition at line 339 of file mitkBaseRenderer.cpp.

References mitk::SlicedGeometry3D::GetGeometry2D(), and mitk::SlicedGeometry3D::GetSlices().

{
  if(m_Slice!=slice)
  {
    m_Slice = slice;
    if(m_TimeSlicedWorldGeometry.IsNotNull())
    {
      SlicedGeometry3D* slicedWorldGeometry=dynamic_cast<SlicedGeometry3D*>(m_TimeSlicedWorldGeometry->GetGeometry3D(m_TimeStep));
      if(slicedWorldGeometry!=NULL)
      {
        if(m_Slice >= slicedWorldGeometry->GetSlices())
          m_Slice = slicedWorldGeometry->GetSlices()-1;
        SetCurrentWorldGeometry2D(slicedWorldGeometry->GetGeometry2D(m_Slice));
        SetCurrentWorldGeometry(slicedWorldGeometry);
      }
    }
    else
      Modified();
  }
}
void mitk::BaseRenderer::SetSliceNavigationController ( mitk::SliceNavigationController SlicenavigationController )

Sets the new Navigation controller

Definition at line 746 of file mitkBaseRenderer.cpp.

References mitk::SliceNavigationController::GetCreatedWorldGeometry(), mitk::SliceNavigationController::SetInputWorldGeometry(), mitk::SliceNavigationController::SetRenderer(), and mitk::SliceNavigationController::Update().

{
  if (SlicenavigationController == NULL)
    return;

  //disconnect old from globalinteraction
  m_RenderingManager->GetGlobalInteraction()->RemoveListener(SlicenavigationController);
  
  //copy worldgeometry
  SlicenavigationController->SetInputWorldGeometry( SlicenavigationController->GetCreatedWorldGeometry() );
  SlicenavigationController->Update();

    
  //set new 
  m_SliceNavigationController = SlicenavigationController;
  m_SliceNavigationController->SetRenderer( this );

  if (m_SliceNavigationController.IsNotNull())
  {  
    m_SliceNavigationController->ConnectGeometrySliceEvent( this );
    m_SliceNavigationController->ConnectGeometryUpdateEvent( this );
    m_SliceNavigationController->ConnectGeometryTimeEvent( this, false );
  }

 
}
void mitk::BaseRenderer::SetTimeStep ( unsigned int  timeStep ) [virtual]

Set/Get m_TimeStep which defines together with m_Slice the 2D geometry stored in m_TimeSlicedWorldGeometry used as m_CurrentWorldGeometry2D.

See also:
m_TimeStep

Definition at line 360 of file mitkBaseRenderer.cpp.

References mitk::SlicedGeometry3D::GetGeometry2D().

{
  if(m_TimeStep!=timeStep)
  {
    m_TimeStep = timeStep;
    m_TimeStepUpdateTime.Modified();

    if(m_TimeSlicedWorldGeometry.IsNotNull())
    {
      if(m_TimeStep >= m_TimeSlicedWorldGeometry->GetTimeSteps())
        m_TimeStep = m_TimeSlicedWorldGeometry->GetTimeSteps()-1;
      SlicedGeometry3D* slicedWorldGeometry=dynamic_cast<SlicedGeometry3D*>(m_TimeSlicedWorldGeometry->GetGeometry3D(m_TimeStep));
      if(slicedWorldGeometry!=NULL)
      {
        SetCurrentWorldGeometry2D(slicedWorldGeometry->GetGeometry2D(m_Slice));
        SetCurrentWorldGeometry(slicedWorldGeometry);
      }
    }
    else
      Modified();
  }
}
void mitk::BaseRenderer::SetWorldGeometry ( mitk::Geometry3D geometry ) [virtual]

Set/Get the WorldGeometry (m_WorldGeometry) for 3D and 2D rendering, that describing the (maximal) area to be rendered.

Depending of the type of the passed Geometry3D more or less information can be extracted:

  • if it is a Geometry2D (which is a sub-class of Geometry3D), m_CurrentWorldGeometry2D is also set to point to it. m_TimeSlicedWorldGeometry is set to NULL.
  • if it is a TimeSlicedGeometry, m_TimeSlicedWorldGeometry is also set to point to it. If m_TimeSlicedWorldGeometry contains instances of SlicedGeometry3D, m_CurrentWorldGeometry2D is set to one of geometries stored in the SlicedGeometry3D according to the value of m_Slice; otherwise a PlaneGeometry describing the top of the bounding-box of the Geometry3D is set as the m_CurrentWorldGeometry2D.
  • otherwise a PlaneGeometry describing the top of the bounding-box of the Geometry3D is set as the m_CurrentWorldGeometry2D. m_TimeSlicedWorldGeometry is set to NULL.
    See also:
    m_WorldGeometry
    m_TimeSlicedWorldGeometry
    m_CurrentWorldGeometry2D

Definition at line 408 of file mitkBaseRenderer.cpp.

References mitk::Geometry3D::GetBoundingBox(), mitk::SlicedGeometry3D::GetGeometry2D(), mitk::SlicedGeometry3D::GetSlices(), and mitk::PlaneGeometry::New().

{
  itkDebugMacro("setting WorldGeometry to " << geometry);

  if(m_WorldGeometry != geometry)
  {
    if(geometry->GetBoundingBox()->GetDiagonalLength2() == 0)
      return;
    
    m_WorldGeometry = geometry;
    m_TimeSlicedWorldGeometry=dynamic_cast<TimeSlicedGeometry*>(geometry);
    SlicedGeometry3D* slicedWorldGeometry;
    if(m_TimeSlicedWorldGeometry.IsNotNull())
    {
      itkDebugMacro("setting TimeSlicedWorldGeometry to " << m_TimeSlicedWorldGeometry);
      if(m_TimeStep >= m_TimeSlicedWorldGeometry->GetTimeSteps())
        m_TimeStep = m_TimeSlicedWorldGeometry->GetTimeSteps()-1;
      slicedWorldGeometry=dynamic_cast<SlicedGeometry3D*>(m_TimeSlicedWorldGeometry->GetGeometry3D(m_TimeStep));
    }
    else
    {
      slicedWorldGeometry=dynamic_cast<SlicedGeometry3D*>(geometry);
    }
    Geometry2D::Pointer geometry2d;
    if(slicedWorldGeometry!=NULL)
    {
      if(m_Slice >= slicedWorldGeometry->GetSlices() && (m_Slice != 0))
        m_Slice = slicedWorldGeometry->GetSlices()-1;
      geometry2d = slicedWorldGeometry->GetGeometry2D(m_Slice);
      if(geometry2d.IsNull())
      {
        PlaneGeometry::Pointer plane = mitk::PlaneGeometry::New();
        plane->InitializeStandardPlane(slicedWorldGeometry);
        geometry2d = plane;
      }
      SetCurrentWorldGeometry(slicedWorldGeometry);
    }
    else
    {
      geometry2d=dynamic_cast<Geometry2D*>(geometry);
      if(geometry2d.IsNull())
      {
        PlaneGeometry::Pointer plane = PlaneGeometry::New();
        plane->InitializeStandardPlane(geometry);
        geometry2d = plane;
      }
      SetCurrentWorldGeometry(geometry);
    }
    SetCurrentWorldGeometry2D(geometry2d); // calls Modified()
  }
  if(m_CurrentWorldGeometry2D.IsNull())
    itkWarningMacro("m_CurrentWorldGeometry2D is NULL");
}
virtual bool mitk::BaseRenderer::SetWorldGeometryToDataStorageBounds (  ) [inline, virtual]

Calculates the bounds of the DataStorage (if it contains any valid data), creates a geometry from these bounds and sets it as world geometry of the renderer.

Call this method to re-initialize the renderer to the current DataStorage (e.g. after loading an additional dataset), to ensure that the view is aligned correctly. This is not implemented yet.

Reimplemented in mitk::VtkPropRenderer.

Definition at line 191 of file mitkBaseRenderer.h.

  {
    return false;
  }
void mitk::BaseRenderer::UnregisterLocalStorageHandler ( mitk::BaseLocalStorageHandler lsh )
virtual void mitk::BaseRenderer::Update (  ) [protected, pure virtual]

Call update of all mappers. To be implemented in subclasses.

Implemented in mitk::VtkPropRenderer.

void mitk::BaseRenderer::UpdateGeometry ( const itk::EventObject &  geometrySliceEvent ) [virtual]

UpdateWorldGeometry is called to re-read the 2D geometry from the slice navigation controller.

Definition at line 530 of file mitkBaseRenderer.cpp.

References mitk::SlicedGeometry3D::GetGeometry2D().

{
  const SliceNavigationController::GeometryUpdateEvent* updateEvent =
    dynamic_cast<const SliceNavigationController::GeometryUpdateEvent*>(&geometryUpdateEvent);

  if (updateEvent==NULL) return;

  if (m_CurrentWorldGeometry.IsNotNull())
  {
    SlicedGeometry3D* slicedWorldGeometry=dynamic_cast<SlicedGeometry3D*>(m_CurrentWorldGeometry.GetPointer());
    if (slicedWorldGeometry)
    {
      Geometry2D* geometry2D = slicedWorldGeometry->GetGeometry2D(m_Slice);
    
      SetCurrentWorldGeometry2D(geometry2D); // calls Modified()
    }
  }
}
void mitk::BaseRenderer::WheelEvent ( mitk::WheelEvent we ) [virtual]

Wheel event dispatcher.

Note:
for internal use only. preliminary.

Definition at line 671 of file mitkBaseRenderer.cpp.

References mitk::Event::GetButton(), mitk::Event::GetButtonState(), mitk::DisplayPositionEvent::GetDisplayPosition(), mitk::Event::GetType(), mitk::Key_unknown, mitk::EventMapper::MapEvent(), and mitk::DisplayPositionEvent::SetDisplayPosition().

{
  if(m_MapperID==1)
  {
    Point2D p(we->GetDisplayPosition());
    Point2D p_mm;
    Point3D position;
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    GetDisplayGeometry()->DisplayToWorld(p, p_mm);
    GetDisplayGeometry()->Map(p_mm, position);
    mitk::PositionEvent event(this, we->GetType(), we->GetButton(), we->GetButtonState(), mitk::Key_unknown, p, position);
    mitk::EventMapper::MapEvent( &event, m_RenderingManager->GetGlobalInteraction() );
  }
  else if(m_MapperID==2)
  {
    Point2D p(we->GetDisplayPosition());
    GetDisplayGeometry()->ULDisplayToDisplay(p,p);
    we->SetDisplayPosition(p);
    mitk::EventMapper::MapEvent( we, m_RenderingManager->GetGlobalInteraction() );
  }
}

Member Data Documentation

Default mapper id to use.

Definition at line 124 of file mitkBaseRenderer.h.

double mitk::BaseRenderer::m_Bounds[6] [protected]

Definition at line 553 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

CameraController for 3D rendering.

Note:
preliminary.

Definition at line 434 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

Definition at line 436 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

Data object containing the m_CurrentWorldGeometry2D defined above.

Definition at line 532 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

DataNode objects containing the m_CurrentWorldGeometry2DData defined above.

Definition at line 542 of file mitkBaseRenderer.h.

Referenced by BaseRenderer(), and mitk::VtkPropRenderer::VtkPropRenderer().

test only

Definition at line 549 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

The DataStorage that is used for rendering.

Definition at line 421 of file mitkBaseRenderer.h.

Definition at line 557 of file mitkBaseRenderer.h.

Data object containing the m_DisplayGeometry defined above.

Definition at line 529 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

DataNode objects containing the m_DisplayGeometryData defined above.

Definition at line 539 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

test only

Definition at line 546 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

Definition at line 555 of file mitkBaseRenderer.h.

Contains whether the renderer that it is focused. The caller of SetFocused is responsible for focus management, not the renderer itself. is doubled because of mitk::FocusManager in GlobalInteraction!!! (ingmar)

Definition at line 447 of file mitkBaseRenderer.h.

unsigned long mitk::BaseRenderer::m_LastUpdateTime [protected]

Timestamp of last call of Update().

Definition at line 429 of file mitkBaseRenderer.h.

MapperSlotId to use. Defines which kind of mapper (e.g., 2D or 3D) shoud be used.

Definition at line 417 of file mitkBaseRenderer.h.

Definition at line 559 of file mitkBaseRenderer.h.

std::string mitk::BaseRenderer::m_Name [protected]

Definition at line 551 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

Number of mappers which are visible and have level-of-detail rendering enabled

Definition at line 565 of file mitkBaseRenderer.h.

Definition at line 571 of file mitkBaseRenderer.h.

RenderingManager::Pointer mitk::BaseRenderer::m_RenderingManager [protected]

The RenderingManager that manages this instance.

Definition at line 425 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

vtkRenderWindow* mitk::BaseRenderer::m_RenderWindow [protected]

Definition at line 412 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

int mitk::BaseRenderer::m_Size[2] [protected]

Size of the RenderWindow.

Definition at line 441 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

Definition at line 435 of file mitkBaseRenderer.h.

Referenced by BaseRenderer().

vtkRenderer* mitk::BaseRenderer::m_VtkRenderer [protected]

Definition at line 413 of file mitkBaseRenderer.h.

Referenced by BaseRenderer(), and mitk::VtkPropRenderer::VtkPropRenderer().

Data object containing the m_WorldGeometry defined above.

Definition at line 526 of file mitkBaseRenderer.h.

DataNode objects containing the m_WorldGeometryData defined above.

Definition at line 536 of file mitkBaseRenderer.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines