Medical Imaging Interaction Toolkit  2023.12.00
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, Mapper)
 
Pointer Clone () const
 
void MitkRender (mitk::BaseRenderer *renderer, mitk::VtkPropRenderer::RenderType type) override
 
void ApplyColorAndOpacityProperties (mitk::BaseRenderer *renderer, vtkActor *actor=nullptr) override
 Apply color and opacity properties read from the PropertyList. The actor is not used in the GLMappers. Called by mapper subclasses. 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 bool IsVtkBased () const
 Returns whether this is an vtk-based mapper. 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=nullptr, 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 ()
 
 ~PlanarFigureMapper2D () override
 
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...
 
void Initialize (mitk::BaseRenderer *renderer)
 
- Protected Member Functions inherited from mitk::Mapper
 Mapper ()
 explicit constructor which disallows implicit conversions More...
 
 ~Mapper () override
 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...
 

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 108 of file mitkPlanarFigureMapper2D.h.

Member Enumeration Documentation

◆ PlanarFigureDisplayMode

Enumerator
PF_DEFAULT 
PF_HOVER 
PF_SELECTED 
PF_COUNT 

Definition at line 130 of file mitkPlanarFigureMapper2D.h.

Constructor & Destructor Documentation

◆ PlanarFigureMapper2D()

mitk::PlanarFigureMapper2D::PlanarFigureMapper2D ( )
protected

◆ ~PlanarFigureMapper2D()

mitk::PlanarFigureMapper2D::~PlanarFigureMapper2D ( )
overrideprotected

Member Function Documentation

◆ ApplyColorAndOpacityProperties()

void mitk::PlanarFigureMapper2D::ApplyColorAndOpacityProperties ( mitk::BaseRenderer renderer,
vtkActor *  actor = nullptr 
)
overridevirtual

Apply color and opacity properties read from the PropertyList. The actor is not used in the GLMappers. Called by mapper subclasses.

Implements mitk::Mapper.

◆ Clone()

Pointer mitk::PlanarFigureMapper2D::Clone ( ) const

◆ DrawHelperLines()

void mitk::PlanarFigureMapper2D::DrawHelperLines ( mitk::PlanarFigure figure,
Point2D anchorPoint,
const PlaneGeometry planarFigurePlaneGeometry,
const PlaneGeometry rendererPlaneGeometry,
const mitk::BaseRenderer renderer 
)
protected

Internally used by RenderLines() to draw the helperlines using PaintPolyLine().

◆ DrawMainLines()

void mitk::PlanarFigureMapper2D::DrawMainLines ( mitk::PlanarFigure figure,
Point2D anchorPoint,
const PlaneGeometry planarFigurePlaneGeometry,
const PlaneGeometry rendererPlaneGeometry,
const mitk::BaseRenderer renderer 
)
protected

Internally used by RenderLines() to draw the mainlines using PaintPolyLine().

◆ DrawMarker()

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

◆ Initialize()

void mitk::PlanarFigureMapper2D::Initialize ( mitk::BaseRenderer renderer)
protected

◆ InitializeDefaultPlanarFigureProperties()

void mitk::PlanarFigureMapper2D::InitializeDefaultPlanarFigureProperties ( )
protected

◆ InitializePlanarFigurePropertiesFromDataNode()

void mitk::PlanarFigureMapper2D::InitializePlanarFigurePropertiesFromDataNode ( const mitk::DataNode node)
protected

◆ mitkClassMacro()

mitk::PlanarFigureMapper2D::mitkClassMacro ( PlanarFigureMapper2D  ,
Mapper   
)

◆ MitkRender()

void mitk::PlanarFigureMapper2D::MitkRender ( mitk::BaseRenderer renderer,
mitk::VtkPropRenderer::RenderType  type 
)
overridevirtual

reimplemented from Baseclass

Implements mitk::Mapper.

◆ New()

static Pointer mitk::PlanarFigureMapper2D::New ( )
static

◆ OnNodeModified()

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.

◆ PaintPolyLine()

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.

◆ RenderAnnotations()

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.

◆ RenderControlPoints()

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

Renders the control-points.

◆ RenderLines()

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)

◆ RenderQuantities()

void mitk::PlanarFigureMapper2D::RenderQuantities ( const mitk::PlanarFigure planarFigure,
mitk::BaseRenderer renderer,
const mitk::Point2D  anchorPoint,
double &  annotationOffset,
float  globalOpacity,
const PlanarFigureDisplayMode  lineDisplayMode 
)
protected

Renders the quantities of the figure below the text annotations.

◆ SetColorProperty()

void mitk::PlanarFigureMapper2D::SetColorProperty ( float  property[3][3],
PlanarFigureDisplayMode  mode,
float  red,
float  green,
float  blue 
)
inlineprotected

Definition at line 241 of file mitkPlanarFigureMapper2D.h.

◆ SetDefaultProperties()

static void mitk::PlanarFigureMapper2D::SetDefaultProperties ( mitk::DataNode node,
mitk::BaseRenderer renderer = nullptr,
bool  overwrite = false 
)
static

◆ SetFloatProperty()

void mitk::PlanarFigureMapper2D::SetFloatProperty ( float *  property,
PlanarFigureDisplayMode  mode,
float  value 
)
inlineprotected

Definition at line 248 of file mitkPlanarFigureMapper2D.h.

◆ TransformObjectToDisplay()

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 file: