Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitk::PlanarFigureMapper2D Class Reference

OpenGL-based mapper to render display sub-class instances of mitk::PlanarFigure. More...

#include <mitkPlanarFigureMapper2D.h>

Inheritance diagram for mitk::PlanarFigureMapper2D:
Collaboration diagram for mitk::PlanarFigureMapper2D:

Public Member Functions

 mitkClassMacro (PlanarFigureMapper2D, GLMapper)
 
Pointer Clone () const
 
virtual void Paint (BaseRenderer *renderer) override
 
- Public Member Functions inherited from mitk::GLMapper
 mitkClassMacro (GLMapper, Mapper)
 
virtual void ApplyProperties (mitk::BaseRenderer *renderer)
 Apply color and opacity properties read from the PropertyList. More...
 
virtual void ApplyColorAndOpacityProperties (mitk::BaseRenderer *renderer, vtkActor *actor=NULL) override
 Apply color and opacity properties read from the PropertyList. The actor is not used in the GLMappers. Called by mapper subclasses. More...
 
void MitkRender (mitk::BaseRenderer *renderer, mitk::VtkPropRenderer::RenderType type) override
 Checks visibility and calls the paint method. More...
 
virtual bool IsVtkBased () const override
 Returns whether this is a vtk-based mapper. More...
 
- Public Member Functions inherited from mitk::Mapper
virtual std::vector< std::string > GetClassHierarchy () const
 
virtual const char * GetClassName () const
 
virtual void SetDataNode (DataNode *_arg)
 Set the DataNode containing the data to map. More...
 
virtual DataNodeGetDataNode () const
 Get the DataNode containing the data to map. Method only returns valid DataNode Pointer if the mapper belongs to a data node. Otherwise, the returned DataNode Pointer might be invalid. More...
 
BaseDataGetData () const
 Get the data to map. More...
 
virtual bool GetColor (float rgb[3], BaseRenderer *renderer, const char *name="color") const
 Convenience access method for color properties (instances of ColorProperty) More...
 
virtual bool GetVisibility (bool &visible, BaseRenderer *renderer, const char *name="visible") const
 Convenience access method for visibility properties (instances of BoolProperty) More...
 
virtual bool GetOpacity (float &opacity, BaseRenderer *renderer, const char *name="opacity") const
 Convenience access method for opacity properties (instances of FloatProperty) More...
 
virtual bool GetLevelWindow (LevelWindow &levelWindow, BaseRenderer *renderer, const char *name="levelwindow") const
 Convenience access method for color properties (instances of LevelWindoProperty) More...
 
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. More...
 
virtual void Update (BaseRenderer *renderer)
 Calls the time step of the input data for the specified renderer and checks whether the time step is valid and calls method GenerateDataForRenderer() More...
 
int GetTimestep () const
 Returns the current time step as calculated from the renderer. More...
 
virtual bool IsLODEnabled (BaseRenderer *) const
 

Static Public Member Functions

static Pointer New ()
 
static void SetDefaultProperties (mitk::DataNode *node, mitk::BaseRenderer *renderer=NULL, bool overwrite=false)
 
- Static Public Member Functions inherited from mitk::Mapper
static const char * GetStaticNameOfClass ()
 
static void SetDefaultProperties (DataNode *node, BaseRenderer *renderer=nullptr, bool overwrite=false)
 Set default values of properties used by this mapper to node. More...
 

Protected Types

enum  PlanarFigureDisplayMode { PF_DEFAULT, PF_HOVER, PF_SELECTED, PF_COUNT }
 

Protected Member Functions

 PlanarFigureMapper2D ()
 
virtual ~PlanarFigureMapper2D ()
 
void RenderLines (const PlanarFigureDisplayMode lineDisplayMode, mitk::PlanarFigure *planarFigure, mitk::Point2D &anchorPoint, const mitk::PlaneGeometry *planarFigurePlaneGeometry, const mitk::PlaneGeometry *rendererPlaneGeometry, const mitk::BaseRenderer *renderer)
 Renders all the lines defined by the PlanarFigure. More...
 
void RenderQuantities (const mitk::PlanarFigure *planarFigure, mitk::BaseRenderer *renderer, const mitk::Point2D anchorPoint, double &annotationOffset, float globalOpacity, const PlanarFigureDisplayMode lineDisplayMode)
 Renders the quantities of the figure below the text annotations. More...
 
void RenderAnnotations (mitk::BaseRenderer *renderer, const std::string name, const mitk::Point2D anchorPoint, float globalOpacity, const PlanarFigureDisplayMode lineDisplayMode, double &annotationOffset)
 Renders the text annotations. More...
 
void RenderControlPoints (const mitk::PlanarFigure *planarFigure, const PlanarFigureDisplayMode lineDisplayMode, const mitk::PlaneGeometry *planarFigurePlaneGeometry, const mitk::PlaneGeometry *rendererPlaneGeometry, mitk::BaseRenderer *renderer)
 Renders the control-points. More...
 
void TransformObjectToDisplay (const mitk::Point2D &point2D, mitk::Point2D &displayPoint, const mitk::PlaneGeometry *objectGeometry, const mitk::PlaneGeometry *, const mitk::BaseRenderer *renderer)
 
void DrawMarker (const mitk::Point2D &point, float *lineColor, float lineOpacity, float *markerColor, float markerOpacity, float lineWidth, PlanarFigureControlPointStyleProperty::Shape shape, const mitk::PlaneGeometry *objectGeometry, const mitk::PlaneGeometry *rendererGeometry, const mitk::BaseRenderer *renderer)
 
void PaintPolyLine (const mitk::PlanarFigure::PolyLineType vertices, bool closed, Point2D &anchorPoint, const PlaneGeometry *planarFigurePlaneGeometry, const PlaneGeometry *rendererPlaneGeometry, const mitk::BaseRenderer *renderer)
 Actually paints the polyline defined by the figure. More...
 
void DrawMainLines (mitk::PlanarFigure *figure, Point2D &anchorPoint, const PlaneGeometry *planarFigurePlaneGeometry, const PlaneGeometry *rendererPlaneGeometry, const mitk::BaseRenderer *renderer)
 Internally used by RenderLines() to draw the mainlines using PaintPolyLine(). More...
 
void DrawHelperLines (mitk::PlanarFigure *figure, Point2D &anchorPoint, const PlaneGeometry *planarFigurePlaneGeometry, const PlaneGeometry *rendererPlaneGeometry, const mitk::BaseRenderer *renderer)
 Internally used by RenderLines() to draw the helperlines using PaintPolyLine(). More...
 
void InitializeDefaultPlanarFigureProperties ()
 
void InitializePlanarFigurePropertiesFromDataNode (const mitk::DataNode *node)
 
void SetColorProperty (float property[3][3], PlanarFigureDisplayMode mode, float red, float green, float blue)
 
void SetFloatProperty (float *property, PlanarFigureDisplayMode mode, float value)
 
void OnNodeModified ()
 Callback that sets m_NodeModified to true. More...
 
- Protected Member Functions inherited from mitk::GLMapper
 GLMapper ()
 Returns whether this mapper allows picking in the renderwindow virtual bool IsPickable() const { return false; }. More...
 
virtual ~GLMapper ()
 
- Protected Member Functions inherited from mitk::Mapper
 Mapper ()
 explicit constructor which disallows implicit conversions More...
 
virtual ~Mapper ()
 virtual destructor in order to derive from this class More...
 
virtual void GenerateData ()
 Generate the data needed for rendering (independent of a specific renderer) More...
 
virtual void GenerateDataForRenderer (BaseRenderer *)
 Generate the data needed for rendering into renderer. More...
 
virtual void CalculateTimeStep (BaseRenderer *renderer)
 Updates the time step, which is sometimes needed in subclasses. More...
 
virtual void ResetMapper (BaseRenderer *)
 Reset the mapper (i.e., make sure that nothing is displayed) if no valid data is present. In most cases the reimplemented function disables the according actors (toggling visibility off) More...
 
virtual OverlayManagerGetOverlayManager () const
 

Additional Inherited Members

- Public Types inherited from mitk::Mapper
typedef Mapper Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Protected Attributes inherited from mitk::Mapper
mitk::DataNodem_DataNode
 

Detailed Description

OpenGL-based mapper to render display sub-class instances of mitk::PlanarFigure.

The appearance of planar figures can be configured through properties. If no properties are specified, default values will be used. There are four elements a planar figure consists of:

  1. "line": the main line segments of the planar figure (note: text is drawn in the same style)
  2. "helperline": additional line segments of planar figures, such as arrow tips, arches of angles, etc.
  3. "outline": background which is drawn behind the lines and helperlines of the planar figure (optional)
  4. "marker": the markers (control points) of a planar figure
  5. "markerline": the lines by which markers (control points) are surrounded

In the following, all appearance-related planar figure properties are listed:

  1. General properties for the planar figure
    • "planarfigure.drawoutline": if true, the "outline" lines is drawn
    • "planarfigure.drawquantities": if true, the quantities (text) associated with the planar figure is drawn
    • "planarfigure.drawname": if true, the name specified by the dataNode is drawn
    • "planarfigure.drawshadow": if true, a black shadow is drawn around the planar figure
    • "planarfigure.controlpointshape": style of the control points (enum)
  2. Line widths of planar figure elements
    • "planarfigure.line.width": width of "line" segments (float value, in mm)
    • "planarfigure.shadow.widthmodifier": the width of the shadow is defined by width of the "line" * this modifier
    • "planarfigure.outline.width": width of "outline" segments (float value, in mm)
    • "planarfigure.helperline.width": width of "helperline" segments (float value, in mm)
  3. Color/opacity of planar figure elements in normal mode (unselected)
    • "planarfigure.default.line.color"
    • "planarfigure.default.line.opacity"
    • "planarfigure.default.outline.color"
    • "planarfigure.default.outline.opacity"
    • "planarfigure.default.helperline.color"
    • "planarfigure.default.helperline.opacity"
    • "planarfigure.default.markerline.color"
    • "planarfigure.default.markerline.opacity"
    • "planarfigure.default.marker.color"
    • "planarfigure.default.marker.opacity"
  4. Color/opacity of planar figure elements in hover mode (mouse-over)
    • "planarfigure.hover.line.color"
    • "planarfigure.hover.line.opacity"
    • "planarfigure.hover.outline.color"
    • "planarfigure.hover.outline.opacity"
    • "planarfigure.hover.helperline.color"
    • "planarfigure.hover.helperline.opacity"
    • "planarfigure.hover.markerline.color"
    • "planarfigure.hover.markerline.opacity"
    • "planarfigure.hover.marker.color"
    • "planarfigure.hover.marker.opacity"
  5. Color/opacity of planar figure elements in selected mode
    • "planarfigure.selected.line.color"
    • "planarfigure.selected.line.opacity"
    • "planarfigure.selected.outline.color"
    • "planarfigure.selected.outline.opacity"
    • "planarfigure.selected.helperline.color"
    • "planarfigure.selected.helperline.opacity"
    • "planarfigure.selected.markerline.color;"
    • "planarfigure.selected.markerline.opacity"
    • "planarfigure.selected.marker.color"
    • "planarfigure.selected.marker.opacity"

Definition at line 109 of file mitkPlanarFigureMapper2D.h.

Constructor & Destructor Documentation

mitk::PlanarFigureMapper2D::PlanarFigureMapper2D ( )
protected
mitk::PlanarFigureMapper2D::~PlanarFigureMapper2D ( )
protectedvirtual

Definition at line 43 of file mitkPlanarFigureMapper2D.cpp.

Member Function Documentation

Pointer mitk::PlanarFigureMapper2D::Clone ( ) const
void mitk::PlanarFigureMapper2D::DrawHelperLines ( mitk::PlanarFigure figure,
Point2D anchorPoint,
const PlaneGeometry planarFigurePlaneGeometry,
const PlaneGeometry rendererPlaneGeometry,
const mitk::BaseRenderer renderer 
)
protected
void mitk::PlanarFigureMapper2D::DrawMainLines ( mitk::PlanarFigure figure,
Point2D anchorPoint,
const PlaneGeometry planarFigurePlaneGeometry,
const PlaneGeometry rendererPlaneGeometry,
const mitk::BaseRenderer renderer 
)
protected
void mitk::PlanarFigureMapper2D::DrawMarker ( const mitk::Point2D point,
float *  lineColor,
float  lineOpacity,
float *  markerColor,
float  markerOpacity,
float  lineWidth,
PlanarFigureControlPointStyleProperty::Shape  shape,
const mitk::PlaneGeometry objectGeometry,
const mitk::PlaneGeometry rendererGeometry,
const mitk::BaseRenderer renderer 
)
protected
void mitk::PlanarFigureMapper2D::InitializeDefaultPlanarFigureProperties ( )
protected
mitk::PlanarFigureMapper2D::mitkClassMacro ( PlanarFigureMapper2D  ,
GLMapper   
)
static Pointer mitk::PlanarFigureMapper2D::New ( )
static
void mitk::PlanarFigureMapper2D::OnNodeModified ( )
protected

Callback that sets m_NodeModified to true.

This method set the bool flag m_NodeModified to true. It's a callback that is executed when a itk::ModifiedEvet is invoked on our DataNode.

Definition at line 556 of file mitkPlanarFigureMapper2D.cpp.

Referenced by InitializePlanarFigurePropertiesFromDataNode().

void mitk::PlanarFigureMapper2D::PaintPolyLine ( const mitk::PlanarFigure::PolyLineType  vertices,
bool  closed,
Point2D anchorPoint,
const PlaneGeometry planarFigurePlaneGeometry,
const PlaneGeometry rendererPlaneGeometry,
const mitk::BaseRenderer renderer 
)
protected

Actually paints the polyline defined by the figure.

Definition at line 166 of file mitkPlanarFigureMapper2D.cpp.

References min(), and PLANAR_OFFSET.

void mitk::PlanarFigureMapper2D::RenderAnnotations ( mitk::BaseRenderer renderer,
const std::string  name,
const mitk::Point2D  anchorPoint,
float  globalOpacity,
const PlanarFigureDisplayMode  lineDisplayMode,
double &  annotationOffset 
)
protected

Renders the text annotations.

Definition at line 698 of file mitkPlanarFigureMapper2D.cpp.

References mitk::eps, and offset.

void mitk::PlanarFigureMapper2D::RenderControlPoints ( const mitk::PlanarFigure planarFigure,
const PlanarFigureDisplayMode  lineDisplayMode,
const mitk::PlaneGeometry planarFigurePlaneGeometry,
const mitk::PlaneGeometry rendererPlaneGeometry,
mitk::BaseRenderer renderer 
)
protected
void mitk::PlanarFigureMapper2D::RenderLines ( const PlanarFigureDisplayMode  lineDisplayMode,
mitk::PlanarFigure planarFigure,
mitk::Point2D anchorPoint,
const mitk::PlaneGeometry planarFigurePlaneGeometry,
const mitk::PlaneGeometry rendererPlaneGeometry,
const mitk::BaseRenderer renderer 
)
protected

Renders all the lines defined by the PlanarFigure.

This method renders all the lines that are defined by the PlanarFigure. That includes the mainlines and helperlines as well as their shadows and the outlines.

This method already takes responsibility for the setting of the relevant openGL attributes to reduce unnecessary setting of these attributes. (e.g. no need to set color twice if it's the same)

Definition at line 806 of file mitkPlanarFigureMapper2D.cpp.

void mitk::PlanarFigureMapper2D::RenderQuantities ( const mitk::PlanarFigure planarFigure,
mitk::BaseRenderer renderer,
const mitk::Point2D  anchorPoint,
double &  annotationOffset,
float  globalOpacity,
const PlanarFigureDisplayMode  lineDisplayMode 
)
protected
void mitk::PlanarFigureMapper2D::SetColorProperty ( float  property[3][3],
PlanarFigureDisplayMode  mode,
float  red,
float  green,
float  blue 
)
inlineprotected

Definition at line 235 of file mitkPlanarFigureMapper2D.h.

void mitk::PlanarFigureMapper2D::SetDefaultProperties ( mitk::DataNode node,
mitk::BaseRenderer renderer = NULL,
bool  overwrite = false 
)
static
void mitk::PlanarFigureMapper2D::SetFloatProperty ( float *  property,
PlanarFigureDisplayMode  mode,
float  value 
)
inlineprotected

Definition at line 242 of file mitkPlanarFigureMapper2D.h.

void mitk::PlanarFigureMapper2D::TransformObjectToDisplay ( const mitk::Point2D point2D,
mitk::Point2D displayPoint,
const mitk::PlaneGeometry objectGeometry,
const mitk::PlaneGeometry ,
const mitk::BaseRenderer renderer 
)
protected

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