Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit

Vtk-based 2D mapper for PointSet. More...

#include <mitkPointSetVtkMapper2D.h>

Inheritance diagram for mitk::PointSetVtkMapper2D:
Collaboration diagram for mitk::PointSetVtkMapper2D:

Classes

class  LocalStorage
 Internal class holding the mapper, actor, etc. for each of the 3 2D render windows. More...
 

Public Types

typedef PointSetVtkMapper2D Self
 
typedef VtkMapper Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Public Types inherited from mitk::VtkMapper
typedef VtkMapper Self
 
typedef Mapper Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Public Types inherited from mitk::Mapper
typedef Mapper Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 

Public Member Functions

virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
Pointer Clone () const
 
virtual const mitk::PointSetGetInput () const
 
virtual vtkProp * GetVtkProp (mitk::BaseRenderer *renderer) override
 returns the a prop assembly More...
 
- Public Member Functions inherited from mitk::VtkMapper
virtual bool IsVtkBased () const override
 Returns whether this is an vtk-based mapper. More...
 
void MitkRender (mitk::BaseRenderer *renderer, mitk::VtkPropRenderer::RenderType type) override
 Determines which geometry should be rendered (opaque, translucent, volumetric, overlay) and calls the appropriate function. More...
 
virtual void MitkRenderOverlay (BaseRenderer *renderer)
 Checks visibility and renders the overlay. More...
 
virtual void MitkRenderOpaqueGeometry (BaseRenderer *renderer)
 Checks visibility and renders untransparent geometry. More...
 
virtual void MitkRenderTranslucentGeometry (BaseRenderer *renderer)
 Checks visiblity and renders transparent geometry. More...
 
virtual void MitkRenderVolumetricGeometry (BaseRenderer *renderer)
 Checks visibility and renders volumes. More...
 
virtual bool HasVtkProp (const vtkProp *prop, BaseRenderer *renderer)
 Returns true if this mapper owns the specified vtkProp for the given BaseRenderer. More...
 
virtual void UpdateVtkTransform (mitk::BaseRenderer *renderer)
 Set the vtkTransform of the m_Prop3D for the current time step of renderer. More...
 
virtual void ApplyProperties (vtkActor *actor, mitk::BaseRenderer *renderer)
 Apply color and opacity properties read from the PropertyList. More...
 
void ApplyShaderProperties (mitk::BaseRenderer *renderer)
 SHADERTODO. More...
 
virtual void ApplyColorAndOpacityProperties (mitk::BaseRenderer *renderer, vtkActor *actor) override
 Apply color and opacity properties read from the PropertyList. Called by mapper subclasses. More...
 
virtual void ReleaseGraphicsResources (mitk::BaseRenderer *)
 Release vtk-based graphics resources that are being consumed by this mapper. More...
 
- Public Member Functions inherited from mitk::Mapper
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 const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
static void SetDefaultProperties (mitk::DataNode *node, mitk::BaseRenderer *renderer=NULL, bool overwrite=false)
 set the default properties for this mapper More...
 
- Static Public Member Functions inherited from mitk::VtkMapper
static const char * GetStaticNameOfClass ()
 
static void SetVtkMapperImmediateModeRendering (vtkMapper *mapper)
 Re-issues all drawing commands required to describe the entire scene each time a new frame is required, regardless of actual changes. More...
 
- 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...
 

Public Attributes

mitk::LocalStorageHandler< LocalStoragem_LSH
 The LocalStorageHandler holds all (three) LocalStorages for the three 2D render windows. More...
 
- Public Attributes inherited from mitk::VtkMapper
mitk::LocalStorageHandler< VtkMapperLocalStoragem_VtkMapperLSH
 

Protected Member Functions

 PointSetVtkMapper2D ()
 
virtual ~PointSetVtkMapper2D ()
 
virtual void GenerateDataForRenderer (mitk::BaseRenderer *renderer) override
 Generate the data needed for rendering into renderer. More...
 
virtual void ResetMapper (BaseRenderer *renderer) override
 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 void CreateVTKRenderObjects (mitk::BaseRenderer *renderer)
 
- Protected Member Functions inherited from mitk::VtkMapper
 VtkMapper ()
 
virtual ~VtkMapper ()
 
- 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 CalculateTimeStep (BaseRenderer *renderer)
 Updates the time step, which is sometimes needed in subclasses. More...
 
virtual OverlayManagerGetOverlayManager () const
 

Protected Attributes

bool m_ShowContour
 
bool m_CloseContour
 
bool m_ShowPoints
 
bool m_ShowDistances
 
int m_DistancesDecimalDigits
 
bool m_ShowAngles
 
bool m_ShowDistantLines
 
int m_LineWidth
 
int m_PointLineWidth
 
float m_Point2DSize
 
int m_IDShapeProperty
 
bool m_FillShape
 
float m_DistanceToPlane
 
- Protected Attributes inherited from mitk::Mapper
mitk::DataNodem_DataNode
 

Detailed Description

Vtk-based 2D mapper for PointSet.

Due to the need of different colors for selected and unselected points and the facts, that we also have a contour and labels for the points, the vtk structure is build up the following way:

We have three PolyData, one selected, and one unselected and one for a contour between the points. Each one is connected to an own PolyDataMapper and an Actor. The different color for the unselected and selected state and for the contour is read from properties.

This mapper has several additional functionalities, such as rendering a contour between points, calculating and displaying distances or angles between points.

Point Representation

The points are displayed as small glyphs of configurable shape (see property "PointSet.2D.shape"). The size of these glyphs is given in world units. That means, the size or shape of those glyphs is independent of the BaseGeometry object that you assign to the PointSet. As for all other objects, positions of points will be transformed into the world via the Geometry's index-to-world transform.

Then the three Actors are combined inside a vtkPropAssembly and this object is returned in GetProp() and so hooked up into the rendering pipeline.

Applicable Properties

Properties that can be set for point sets and influence the PointSetVTKMapper2D are:

  • "line width": (IntProperty 2) // line width of the line from one point to another
  • "point line width": (IntProperty 1) // line width of the cross marking a point
  • "point 2D size": (FloatProperty 6) // size of the glyph marking a point (diameter, in world units!)
  • "show contour": (BoolProperty false) // enable contour rendering between points (lines)
  • "close contour": (BoolProperty false) // if enabled, the open strip is closed (first point connected with last point)
  • "show points": (BoolProperty true) // show or hide points
  • "show distances": (BoolProperty false) // show or hide distance measure
  • "distance decimal digits": (IntProperty 2) // set the number of decimal digits to be shown when rendering the distance information
  • "show angles": (BoolProperty false) // show or hide angle measurement
  • "show distant lines": (BoolProperty false) // show the line between to points from a distant view (equals "always on top" option)
  • "layer": (IntProperty 1) // default is drawing pointset above images (they have a default layer of 0)
  • "PointSet.2D.shape" (EnumerationProperty Cross) // provides different shapes marking a point 0 = "None", 1 = "Vertex", 2 = "Dash", 3 = "Cross", 4 = "ThickCross", 5 = "Triangle", 6 = "Square", 7 = "Circle", 8 = "Diamond", 9 = "Arrow", 10 = "ThickArrow", 11 = "HookedArrow", 12 = "Cross"
  • "PointSet.2D.fill shape": (BoolProperty false) // fill or do not fill the glyph shape
  • "Pointset.2D.distance to plane": (FloatProperty 4.0) //In the 2D render window, points are rendered which lie within a certain distance to the current plane. They are projected on the current plane and scaled according to their distance. Point markers appear smaller as the plane moves away from their true location. The distance threshold can be adjusted by this float property, which ables the user to delineate the points that lie exactly on the plane. (+/- rounding error)

Other Properties used here but not defined in this class:

  • "selectedcolor": (ColorProperty (1.0f, 0.0f, 0.0f)) // default color of the selected pointset e.g. the current point is red
  • "contourcolor" : (ColorProperty (1.0f, 0.0f, 0.0f)) // default color for the contour is red
  • "color": (ColorProperty (1.0f, 1.0f, 0.0f)) // default color of the (unselected) pointset is yellow
  • "opacity": (FloatProperty 1.0) // opacity of point set, contours
  • "label": (StringProperty NULL) // a label can be defined for each point, which is rendered in proximity to the point

Definition at line 121 of file mitkPointSetVtkMapper2D.h.

Member Typedef Documentation

Constructor & Destructor Documentation

mitk::PointSetVtkMapper2D::PointSetVtkMapper2D ( )
protected

Definition at line 99 of file mitkPointSetVtkMapper2D.cpp.

mitk::PointSetVtkMapper2D::~PointSetVtkMapper2D ( )
protectedvirtual

Definition at line 117 of file mitkPointSetVtkMapper2D.cpp.

Member Function Documentation

Pointer mitk::PointSetVtkMapper2D::Clone ( ) const
void mitk::PointSetVtkMapper2D::CreateVTKRenderObjects ( mitk::BaseRenderer renderer)
protectedvirtual

Definition at line 159 of file mitkPointSetVtkMapper2D.cpp.

References mitk::PlaneGeometry::Distance(), mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::BaseGeometry::GetSpacing(), mitk::BaseGeometry::GetVtkTransform(), mitk::itk2vtk(), line, mitk::PointSetVtkMapper2D::LocalStorage::m_ContourActor, mitk::PointSetVtkMapper2D::LocalStorage::m_ContourLines, mitk::PointSetVtkMapper2D::LocalStorage::m_ContourPoints, mitk::PointSetVtkMapper2D::LocalStorage::m_DistancesBetweenPoints, mitk::PointSetVtkMapper2D::LocalStorage::m_PropAssembly, mitk::PointSetVtkMapper2D::LocalStorage::m_SelectedActor, mitk::PointSetVtkMapper2D::LocalStorage::m_SelectedGlyph3D, mitk::PointSetVtkMapper2D::LocalStorage::m_SelectedGlyphSource2D, mitk::PointSetVtkMapper2D::LocalStorage::m_SelectedPoints, mitk::PointSetVtkMapper2D::LocalStorage::m_SelectedScales, mitk::PointSetVtkMapper2D::LocalStorage::m_UnselectedActor, mitk::PointSetVtkMapper2D::LocalStorage::m_UnselectedGlyph3D, mitk::PointSetVtkMapper2D::LocalStorage::m_UnselectedGlyphSource2D, mitk::PointSetVtkMapper2D::LocalStorage::m_UnselectedPoints, mitk::PointSetVtkMapper2D::LocalStorage::m_UnselectedScales, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkContourPolyData, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkContourPolyDataMapper, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkSelectedPointListPolyData, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkSelectedPolyDataMapper, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkTextActor, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkTextAngleActors, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkTextDistanceActors, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkTextLabelActors, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkUnselectedPointListPolyData, mitk::PointSetVtkMapper2D::LocalStorage::m_VtkUnselectedPolyDataMapper, makePerpendicularVector2D(), max(), mitk::New(), mitk::PlaneGeometry::SignedDistance(), mitk::vtk2itk(), and mitk::BaseRenderer::WorldToDisplay().

virtual std::vector<std::string> mitk::PointSetVtkMapper2D::GetClassHierarchy ( ) const
inlineoverridevirtual

Reimplemented from mitk::VtkMapper.

Definition at line 124 of file mitkPointSetVtkMapper2D.h.

virtual const char* mitk::PointSetVtkMapper2D::GetClassName ( ) const
virtual

Reimplemented from mitk::VtkMapper.

const mitk::PointSet * mitk::PointSetVtkMapper2D::GetInput ( void  ) const
virtual
static const char* mitk::PointSetVtkMapper2D::GetStaticNameOfClass ( )
inlinestatic

Definition at line 124 of file mitkPointSetVtkMapper2D.h.

vtkProp * mitk::PointSetVtkMapper2D::GetVtkProp ( mitk::BaseRenderer renderer)
overridevirtual

returns the a prop assembly

Implements mitk::VtkMapper.

Definition at line 129 of file mitkPointSetVtkMapper2D.cpp.

References mitk::PointSetVtkMapper2D::LocalStorage::m_PropAssembly.

static Pointer mitk::PointSetVtkMapper2D::New ( )
static
void mitk::PointSetVtkMapper2D::ResetMapper ( BaseRenderer )
overrideprotectedvirtual

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)

To be implemented in sub-classes.

Reimplemented from mitk::Mapper.

Definition at line 122 of file mitkPointSetVtkMapper2D.cpp.

References mitk::PointSetVtkMapper2D::LocalStorage::m_PropAssembly.

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

Member Data Documentation

bool mitk::PointSetVtkMapper2D::m_CloseContour
protected

Definition at line 224 of file mitkPointSetVtkMapper2D.h.

int mitk::PointSetVtkMapper2D::m_DistancesDecimalDigits
protected

Definition at line 227 of file mitkPointSetVtkMapper2D.h.

float mitk::PointSetVtkMapper2D::m_DistanceToPlane
protected

Definition at line 235 of file mitkPointSetVtkMapper2D.h.

bool mitk::PointSetVtkMapper2D::m_FillShape
protected

Definition at line 234 of file mitkPointSetVtkMapper2D.h.

int mitk::PointSetVtkMapper2D::m_IDShapeProperty
protected

Definition at line 233 of file mitkPointSetVtkMapper2D.h.

int mitk::PointSetVtkMapper2D::m_LineWidth
protected

Definition at line 230 of file mitkPointSetVtkMapper2D.h.

mitk::LocalStorageHandler<LocalStorage> mitk::PointSetVtkMapper2D::m_LSH

The LocalStorageHandler holds all (three) LocalStorages for the three 2D render windows.

Definition at line 194 of file mitkPointSetVtkMapper2D.h.

float mitk::PointSetVtkMapper2D::m_Point2DSize
protected

Definition at line 232 of file mitkPointSetVtkMapper2D.h.

int mitk::PointSetVtkMapper2D::m_PointLineWidth
protected

Definition at line 231 of file mitkPointSetVtkMapper2D.h.

bool mitk::PointSetVtkMapper2D::m_ShowAngles
protected

Definition at line 228 of file mitkPointSetVtkMapper2D.h.

bool mitk::PointSetVtkMapper2D::m_ShowContour
protected

Definition at line 223 of file mitkPointSetVtkMapper2D.h.

bool mitk::PointSetVtkMapper2D::m_ShowDistances
protected

Definition at line 226 of file mitkPointSetVtkMapper2D.h.

bool mitk::PointSetVtkMapper2D::m_ShowDistantLines
protected

Definition at line 229 of file mitkPointSetVtkMapper2D.h.

bool mitk::PointSetVtkMapper2D::m_ShowPoints
protected

Definition at line 225 of file mitkPointSetVtkMapper2D.h.


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