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

mitk::Mapper Class Reference
[Mapper Classes]

Base class of all mappers, 2D as well as 3D. More...

#include <mitkMapper.h>

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

List of all members.

Classes

class  BaseLocalStorage
 Base class for mapper specific rendering ressources. More...
class  LocalStorageHandler
 Templated class for management of LocalStorage implementations in Mappers. More...

Public Types

typedef Mapper Self
typedef itk::Object Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
virtual void SetDataNode (DataNode *_arg)
 Set the DataNode containing the data to map.
BaseDataGetData () const
 Get the data to map.
virtual DataNodeGetDataNode () const
 Get the DataNode containing the data to map.
virtual bool GetColor (float rgb[3], BaseRenderer *renderer, const char *name="color") const
 Convenience access method for color properties (instances of ColorProperty)
virtual bool GetVisibility (bool &visible, BaseRenderer *renderer, const char *name="visible") const
 Convenience access method for visibility properties (instances of BoolProperty)
virtual bool GetOpacity (float &opacity, BaseRenderer *renderer, const char *name="opacity") const
 Convenience access method for opacity properties (instances of FloatProperty)
virtual bool GetLevelWindow (LevelWindow &levelWindow, BaseRenderer *renderer, const char *name="levelwindow") const
 Convenience access method for color properties (instances of LevelWindoProperty)
virtual bool IsVisible (BaseRenderer *renderer, const char *name="visible") const
 Convenience access method for visibility properties (instances of BoolProperty). Return value is the visibility. Default is visible==true, i.e., true is returned even if the property (propertyKey) is not found.
virtual void Update (BaseRenderer *renderer)
virtual void MitkRenderOverlay (BaseRenderer *renderer)=0
virtual void MitkRenderOpaqueGeometry (BaseRenderer *renderer)=0
virtual void MitkRenderTranslucentGeometry (BaseRenderer *renderer)=0
bool IsVtkBased () const
 Returns whether this is an vtk-based mapper.
virtual bool HasVtkProp (const vtkProp *, BaseRenderer *)
 Returns true if this mapper owns the specified vtkProp for the given BaseRenderer.
virtual void ReleaseGraphicsResources (vtkWindow *)
 Release vtk-based graphics resources. Must be overwritten in subclasses if vtkProps are used.
int GetTimestep () const
 Returns the current time step as calculated from the renderer.
virtual bool IsLODEnabled (BaseRenderer *) const

Static Public Member Functions

static void SetDefaultProperties (DataNode *node, BaseRenderer *renderer=NULL, bool overwrite=false)
 Set default values of properties used by this mapper to node.

Protected Member Functions

 Mapper ()
virtual ~Mapper ()
virtual void GenerateData ()
 Generate the data needed for rendering (independent of a specific renderer)
virtual void GenerateData (BaseRenderer *renderer)
 Generate the data needed for rendering into renderer.
virtual void CalculateTimeStep (BaseRenderer *renderer)
virtual void ResetMapper (BaseRenderer *)

Protected Attributes

bool m_VtkBased
itk::WeakPointer< DataNodem_DataNode
itk::TimeStamp m_LastUpdateTime
 timestamp of last update of stored data

Detailed Description

Base class of all mappers, 2D as well as 3D.

Base class of all Mappers, 2D as well as 3D. Subclasses of mitk::Mapper control the creation of rendering primitives that interface to the graphics library (e.g., OpenGL, vtk).

Definition at line 60 of file mitkMapper.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::Mapper::ConstPointer
typedef itk::SmartPointer<Self> mitk::Mapper::Pointer
typedef itk::Object mitk::Mapper::Superclass

Constructor & Destructor Documentation

mitk::Mapper::Mapper (  ) [protected]

Definition at line 24 of file mitkMapper.cpp.

  : m_VtkBased( true ), m_TimeStep( 0 )
{

}
mitk::Mapper::~Mapper (  ) [protected, virtual]

Definition at line 31 of file mitkMapper.cpp.

{
}

Member Function Documentation

void mitk::Mapper::CalculateTimeStep ( mitk::BaseRenderer renderer ) [protected, virtual]

Definition at line 98 of file mitkMapper.cpp.

References mitk::BaseRenderer::GetTimeStep().

{
  if ( ( renderer != NULL ) && ( m_DataNode.GetPointer() != NULL ) )
  {
    m_TimeStep = renderer->GetTimeStep(m_DataNode->GetData());
  }
  else
  {
    m_TimeStep = 0;
  }
}
void mitk::Mapper::GenerateData (  ) [protected, virtual]
void mitk::Mapper::GenerateData ( mitk::BaseRenderer renderer ) [protected, virtual]
virtual const char* mitk::Mapper::GetClassName (  ) const [virtual]
bool mitk::Mapper::GetColor ( float  rgb[3],
mitk::BaseRenderer renderer,
const char *  name = "color" 
) const [virtual]

Convenience access method for color properties (instances of ColorProperty)

Returns:
true property was found

Definition at line 47 of file mitkMapper.cpp.

References mitk::DataNode::GetColor().

Referenced by mitk::VtkMapper3D::ApplyProperties().

{
    const mitk::DataNode* node=GetDataNode();
    if(node==NULL)
        return false;

    return node->GetColor(rgb, renderer, name);
}
mitk::BaseData * mitk::Mapper::GetData (  ) const
mitk::DataNode * mitk::Mapper::GetDataNode (  ) const [virtual]

Get the DataNode containing the data to map.

Definition at line 40 of file mitkMapper.cpp.

Referenced by mitk::UnstructuredGridMapper2D::GenerateData(), mitk::Geometry2DDataVtkMapper3D::GetInput(), mitk::SplineMapper2D::Paint(), mitk::PolyDataGLMapper2D::Paint(), and mitk::VtkMapper3D::UpdateVtkTransform().

{
  itkDebugMacro("returning DataNode address " << this->m_DataNode );
  return this->m_DataNode.GetPointer();
}
bool mitk::Mapper::GetLevelWindow ( mitk::LevelWindow levelWindow,
mitk::BaseRenderer renderer,
const char *  name = "levelwindow" 
) const [virtual]

Convenience access method for color properties (instances of LevelWindoProperty)

Returns:
true property was found

Definition at line 74 of file mitkMapper.cpp.

References mitk::DataNode::GetLevelWindow().

{
    const mitk::DataNode* node=GetDataNode();
    if(node==NULL)
        return false;

    return node->GetLevelWindow(levelWindow, renderer, name);
}
bool mitk::Mapper::GetOpacity ( float &  opacity,
mitk::BaseRenderer renderer,
const char *  name = "opacity" 
) const [virtual]

Convenience access method for opacity properties (instances of FloatProperty)

Returns:
true property was found

Definition at line 65 of file mitkMapper.cpp.

References mitk::DataNode::GetOpacity().

Referenced by mitk::VtkMapper3D::ApplyProperties().

{
    const mitk::DataNode* node=GetDataNode();
    if(node==NULL)
        return false;

    return node->GetOpacity(opacity, renderer, name);
}
int mitk::Mapper::GetTimestep (  ) const [inline]

Returns the current time step as calculated from the renderer.

Definition at line 162 of file mitkMapper.h.

Referenced by mitk::VtkMapper3D::UpdateVtkTransform().

{return m_TimeStep;}; 
bool mitk::Mapper::GetVisibility ( bool &  visible,
mitk::BaseRenderer renderer,
const char *  name = "visible" 
) const [virtual]

Convenience access method for visibility properties (instances of BoolProperty)

Returns:
true property was found
See also:
IsVisible

Definition at line 56 of file mitkMapper.cpp.

References mitk::DataNode::GetVisibility().

Referenced by mitk::VtkMapper3D::MitkRenderOpaqueGeometry(), mitk::VtkMapper3D::MitkRenderOverlay(), and mitk::VtkMapper3D::MitkRenderTranslucentGeometry().

{
    const mitk::DataNode* node=GetDataNode();
    if(node==NULL)
        return false;

    return node->GetVisibility(visible, renderer, name);
}
virtual bool mitk::Mapper::HasVtkProp ( const vtkProp *  ,
BaseRenderer  
) [inline, virtual]

Returns true if this mapper owns the specified vtkProp for the given BaseRenderer.

Note: returns false by default; should be implemented for VTK-based Mapper subclasses.

Reimplemented in mitk::VtkMapper3D, and mitk::CompositeMapper.

Definition at line 140 of file mitkMapper.h.

Referenced by mitk::CompositeMapper::HasVtkProp().

    { 
      return false; 
    }
virtual bool mitk::Mapper::IsLODEnabled ( BaseRenderer  ) const [inline, virtual]

Returns true if this Mapper currently allows for Level-of-Detail rendering. This reflects whether this Mapper currently invokes StartEvent, EndEvent, and ProgressEvent on BaseRenderer.

Reimplemented in mitk::VolumeDataVtkMapper3D, mitk::CompositeMapper, mitk::OdfVtkMapper2D< TPixelType, NrOdfDirections >, mitk::GPUVolumeMapper3D, and mitk::OdfVtkMapper2D< float, 252 >.

Definition at line 168 of file mitkMapper.h.

{ return false; }
bool mitk::Mapper::IsVisible ( mitk::BaseRenderer renderer,
const char *  name = "visible" 
) const [virtual]

Convenience access method for visibility properties (instances of BoolProperty). Return value is the visibility. Default is visible==true, i.e., true is returned even if the property (propertyKey) is not found.

Thus, the return value has a different meaning than in the GetVisibility method!

See also:
GetVisibility

Definition at line 83 of file mitkMapper.cpp.

Referenced by mitk::VtkMapper3D::MitkRenderOpaqueGeometry(), mitk::VtkMapper3D::MitkRenderOverlay(), mitk::VtkMapper3D::MitkRenderTranslucentGeometry(), mitk::SplineMapper2D::Paint(), and mitk::PolyDataGLMapper2D::Paint().

{
    bool visible=true;
    GetVisibility(visible, renderer, name);
    return visible;
}
bool mitk::Mapper::IsVtkBased (  ) const [inline]

Returns whether this is an vtk-based mapper.

Reimplemented in mitk::CompositeMapper.

Definition at line 130 of file mitkMapper.h.

Referenced by mitk::CompositeMapper::IsVtkBased(), and mitk::VtkPropRenderer::Render().

    {
      return m_VtkBased;
    }
virtual void mitk::Mapper::MitkRenderOpaqueGeometry ( BaseRenderer renderer ) [pure virtual]
virtual void mitk::Mapper::MitkRenderOverlay ( BaseRenderer renderer ) [pure virtual]
virtual void mitk::Mapper::MitkRenderTranslucentGeometry ( BaseRenderer renderer ) [pure virtual]
virtual void mitk::Mapper::ReleaseGraphicsResources ( vtkWindow *   ) [inline, virtual]

Release vtk-based graphics resources. Must be overwritten in subclasses if vtkProps are used.

Reimplemented in mitk::PointSetVtkMapper3D, mitk::VtkMapper3D, mitk::CompositeMapper, and mitk::EnhancedPointSetVtkMapper3D.

Definition at line 149 of file mitkMapper.h.

Referenced by mitk::CompositeMapper::ReleaseGraphicsResources().

{ };
virtual void mitk::Mapper::ResetMapper ( BaseRenderer  ) [inline, protected, virtual]
virtual void mitk::Mapper::SetDataNode ( DataNode _arg ) [virtual]

Set the DataNode containing the data to map.

Reimplemented in mitk::CompositeMapper.

Referenced by mitk::CompositeMapper::SetDataNode(), and mitk::DataNode::SetMapper().

void mitk::Mapper::SetDefaultProperties ( mitk::DataNode node,
mitk::BaseRenderer renderer = NULL,
bool  overwrite = false 
) [static]

Set default values of properties used by this mapper to node.

Parameters:
nodeThe node for which the properties are set
overwriteoverwrite existing properties (default: false)
rendererdefines which property list of node is used (default: NULL, i.e. default property list)

Reimplemented in mitk::ImageMapperGL2D, mitk::PointSetGLMapper2D, mitk::PointSetVtkMapper3D, mitk::SurfaceGLMapper2D, mitk::SurfaceVtkMapper3D, mitk::VolumeDataVtkMapper3D, mitk::CompositeMapper, mitk::DiffusionImageMapper< TPixelType >, mitk::OdfVtkMapper2D< TPixelType, NrOdfDirections >, mitk::EnhancedPointSetVtkMapper3D, mitk::GPUVolumeMapper3D, mitk::UnstructuredGridVtkMapper3D, mitk::PlanarFigureMapper2D, and mitk::OdfVtkMapper2D< float, 252 >.

Definition at line 153 of file mitkMapper.cpp.

References mitk::DataNode::AddProperty(), mitk::StringProperty::New(), mitk::IntProperty::New(), and mitk::BoolProperty::New().

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

{
  node->AddProperty( "visible", mitk::BoolProperty::New(true), renderer, overwrite );
  node->AddProperty( "layer", mitk::IntProperty::New(0), renderer, overwrite);
  node->AddProperty( "name", mitk::StringProperty::New("No Name!"), renderer, overwrite );
}
void mitk::Mapper::Update ( mitk::BaseRenderer renderer ) [virtual]

Reimplemented in mitk::ImageMapperGL2D.

Definition at line 110 of file mitkMapper.cpp.

References mitk::DataNode::GetData(), mitk::BaseData::GetMTime(), mitk::TimeSlicedGeometry::GetTimeSteps(), and mitk::TimeSlicedGeometry::IsValidTime().

Referenced by mitk::UnstructuredGridMapper2D::GetVtkAbstractMapper3D(), mitk::UnstructuredGridMapper2D::GetVtkLUT(), and mitk::VtkPropRenderer::Update().

{
  const DataNode* node = GetDataNode();
  assert(node!=NULL);

  //safety cause there are datatreenodes that have no defined data (video-nodes and root)
  unsigned int dataMTime = 0;
  mitk::BaseData::Pointer data = static_cast<mitk::BaseData *>(node->GetData());

  if (data.IsNotNull())
  {
    dataMTime = data->GetMTime();
  }

  // Calculate time step of the input data for the specified renderer (integer value)
  this->CalculateTimeStep( renderer );

  // Check if time step is valid
  const TimeSlicedGeometry *dataTimeGeometry = data->GetTimeSlicedGeometry();
  if ( ( dataTimeGeometry == NULL )
    || ( dataTimeGeometry->GetTimeSteps() == 0 )
    || ( !dataTimeGeometry->IsValidTime( m_TimeStep ) ) )
  {
    // TimeSlicedGeometry or time step is not valid for this data:
    // reset mapper so that nothing is displayed
    this->ResetMapper( renderer );
    return;
  }

  if(
      (m_LastUpdateTime < GetMTime()) ||
      (m_LastUpdateTime < node->GetDataReferenceChangedTime()) ||
      (m_LastUpdateTime < dataMTime) ||
      (renderer && (m_LastUpdateTime < renderer->GetTimeStepUpdateTime()))
    )
  {
    this->GenerateData();
    m_LastUpdateTime.Modified();
  }

  this->GenerateData(renderer);
}

Member Data Documentation

itk::WeakPointer<DataNode> mitk::Mapper::m_DataNode [protected]

Definition at line 195 of file mitkMapper.h.

Referenced by mitk::CompositeMapper::SetDataNode().

itk::TimeStamp mitk::Mapper::m_LastUpdateTime [protected]

timestamp of last update of stored data

Definition at line 199 of file mitkMapper.h.

bool mitk::Mapper::m_VtkBased [protected]

Definition at line 190 of file mitkMapper.h.

Referenced by mitk::GLMapper2D::GLMapper2D(), and mitk::VtkMapper2D::VtkMapper2D().


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