|
Medical Imaging Interaction Toolkit
2018.4.99-389bf124
Medical Imaging Interaction Toolkit
|
Implementation of PlanarFigure representing a polygon with two or more control points. More...
#include <mitkPlanarSubdivisionPolygon.h>


Public Member Functions | |
| mitkClassMacro (PlanarSubdivisionPolygon, PlanarFigure) | |
| Pointer | Clone () const |
| unsigned int | GetMinimumNumberOfControlPoints () const override |
| Subdivision Polygon has 3 control points per definition. More... | |
| unsigned int | GetMaximumNumberOfControlPoints () const override |
| Polygon maximum number of control points is principally not limited. More... | |
| unsigned int | GetSubdivisionRounds () const |
| How many times should we generate a round of subdivisions? More... | |
| void | SetSubdivisionRounds (int subdivisionRounds) |
| int | GetControlPointForPolylinePoint (int indexOfPolylinePoint, int polyLineIndex) const override |
| Returns the id of the control-point that corresponds to the given polyline-point. More... | |
| float | GetTensionParameter () const |
| Parameter w_tension defines the tension. the higher w_tension, the lower the "tension" on points. Rule: 0 < w_tension < 0.1 0.0625 (1 / 16) seems to be a good value. More... | |
| void | SetTensionParameter (float tensionParameter) |
| std::vector< mitk::Point2D > | CheckForLineIntersection (const Point2D &p1, const Point2D &p2) const |
| void | IncreaseSubdivisions () |
| void | DecreaseSubdivisions () |
| bool | Equals (const mitk::PlanarFigure &other) const override |
| Compare two PlanarFigure objects Note: all subclasses have to implement the method on their own. More... | |
Public Member Functions inherited from mitk::PlanarPolygon | |
| mitkClassMacro (PlanarPolygon, PlanarFigure) | |
| Pointer | Clone () const |
| virtual void | SetClosed (bool closed) |
| Set whether the polygon should be closed between first and last control point or not. More... | |
| virtual void | ClosedOn () |
| virtual void | ClosedOff () |
| std::vector< mitk::Point2D > | CheckForLineIntersection (const Point2D &p1, const Point2D &p2) const |
Public Member Functions inherited from mitk::PlanarFigure | |
| mitkClassMacro (PlanarFigure, BaseData) | |
| Pointer | Clone () const |
| virtual void | SetPlaneGeometry (mitk::PlaneGeometry *geometry) |
| Sets the 2D geometry on which this figure will be placed. More... | |
| virtual const PlaneGeometry * | GetPlaneGeometry () const |
| Returns (previously set) 2D geometry of this figure. More... | |
| virtual bool | IsClosed () const |
| True if the planar figure is closed. More... | |
| virtual bool | IsPlaced () const |
| True if the planar figure has been placed (and can be displayed/interacted with). More... | |
| virtual void | PlaceFigure (const Point2D &point) |
| Place figure at the given point (in 2D index coordinates) onto the given 2D geometry. More... | |
| virtual bool | AddControlPoint (const Point2D &point, int index=-1) |
| Adds / inserts new control-points. More... | |
| virtual bool | SetControlPoint (unsigned int index, const Point2D &point, bool createIfDoesNotExist=false) |
| virtual bool | SetCurrentControlPoint (const Point2D &point) |
| unsigned int | GetNumberOfControlPoints () const |
| Returns the current number of 2D control points defining this figure. More... | |
| virtual bool | SelectControlPoint (unsigned int index) |
| Selects currently active control points. More... | |
| virtual bool | DeselectControlPoint () |
| Deselect control point; no control point active. More... | |
| virtual int | GetSelectedControlPoint () const |
| Return currently selected control point. More... | |
| Point2D | GetControlPoint (unsigned int index) const |
| Returns specified control point in 2D world coordinates. More... | |
| Point3D | GetWorldControlPoint (unsigned int index) const |
| Returns specified control point in world coordinates. More... | |
| const PolyLineType | GetPolyLine (unsigned int index) |
| Returns the polyline representing the planar figure (for rendering, measurements, etc.). More... | |
| const PolyLineType | GetPolyLine (unsigned int index) const |
| Returns the polyline representing the planar figure (for rendering, measurments, etc.). More... | |
| const PolyLineType | GetHelperPolyLine (unsigned int index, double mmPerDisplayUnit, unsigned int displayHeight) |
| Returns the polyline that should be drawn the same size at every scale (for text, angles, etc.). More... | |
| void | SetPreviewControlPoint (const Point2D &point) |
| Sets the position of the PreviewControlPoint. Automatically sets it visible. More... | |
| void | ResetPreviewContolPoint () |
| Marks the PreviewControlPoint as invisible. More... | |
| bool | IsPreviewControlPointVisible () const |
| Returns whether or not the PreviewControlPoint is visible. More... | |
| Point2D | GetPreviewControlPoint () const |
| Returns the coordinates of the PreviewControlPoint. More... | |
| virtual unsigned int | GetNumberOfFeatures () const |
| Returns the number of features available for this PlanarFigure (such as, radius, area, ...). More... | |
| const char * | GetFeatureName (unsigned int index) const |
| Returns the name (identifier) of the specified features. More... | |
| const char * | GetFeatureUnit (unsigned int index) const |
| Returns the physical unit of the specified features. More... | |
| double | GetQuantity (unsigned int index) const |
| bool | IsFeatureActive (unsigned int index) const |
| Returns true if the feature with the specified index exists and is active (an inactive feature may e.g. be the area of a non-closed polygon. More... | |
| bool | IsFeatureVisible (unsigned int index) const |
| Returns true if the feature with the specified index exists and is set visible. More... | |
| void | SetFeatureVisible (unsigned int index, bool visible) |
| Defines if the feature with the specified index will be shown as an Annotation in the RenderWindow. More... | |
| virtual void | EvaluateFeatures () |
| Calculates quantities of all features of this planar figure. More... | |
| void | UpdateOutputInformation () override |
| Intherited from parent. More... | |
| void | SetRequestedRegionToLargestPossibleRegion () override |
| Intherited from parent. More... | |
| bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
| Intherited from parent. More... | |
| bool | VerifyRequestedRegion () override |
| Intherited from parent. More... | |
| void | SetRequestedRegion (const itk::DataObject *data) override |
| Intherited from parent. More... | |
| virtual unsigned short | GetPolyLinesSize () |
| Returns the current number of polylines. More... | |
| virtual unsigned short | GetHelperPolyLinesSize () const |
| Returns the current number of helperpolylines. More... | |
| virtual bool | IsHelperToBePainted (unsigned int index) const |
| Returns whether a helper polyline should be painted or not. More... | |
| virtual bool | ResetOnPointSelect () |
| Returns true if the planar figure is reset to "add points" mode when a point is selected. More... | |
| virtual bool | ResetOnPointSelectNeeded () const |
| virtual void | RemoveControlPoint (unsigned int index) |
| removes the point with the given index from the list of controlpoints. More... | |
| virtual void | RemoveLastControlPoint () |
| Removes last control point. More... | |
| virtual Point2D | ApplyControlPointConstraints (unsigned int, const Point2D &point) |
| Allow sub-classes to apply constraints on control points. More... | |
| void | ResetNumberOfControlPoints (int numberOfControlPoints) |
| Set the initial number of control points of the planar figure. More... | |
Public Member Functions inherited from mitk::BaseData | |
| virtual std::vector< std::string > | GetClassHierarchy () const |
| virtual const char * | GetClassName () const |
| BaseProperty::ConstPointer | GetConstProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=true) const override |
| Get property by its key. More... | |
| std::vector< std::string > | GetPropertyKeys (const std::string &contextName="", bool includeDefaultContext=false) const override |
| Query keys of existing properties. More... | |
| std::vector< std::string > | GetPropertyContextNames () const override |
| Query names of existing contexts. More... | |
| BaseProperty * | GetNonConstProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=true) override |
| Get property by its key. More... | |
| void | SetProperty (const std::string &propertyKey, BaseProperty *property, const std::string &contextName="", bool fallBackOnDefaultContext=false) override |
| Add new or change existent property. More... | |
| void | RemoveProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=false) override |
| Removes a property. If the property does not exist, nothing will be done. More... | |
| const mitk::TimeGeometry * | GetTimeGeometry () const |
| Return the TimeGeometry of the data as const pointer. More... | |
| const mitk::TimeGeometry * | GetTimeSlicedGeometry () const |
| Return the TimeGeometry of the data as const pointer. More... | |
| mitk::TimeGeometry * | GetTimeGeometry () |
| Return the TimeGeometry of the data as pointer. More... | |
| const mitk::TimeGeometry * | GetUpdatedTimeGeometry () |
| Return the TimeGeometry of the data. More... | |
| const mitk::TimeGeometry * | GetUpdatedTimeSliceGeometry () |
| Return the TimeGeometry of the data. More... | |
| virtual void | Expand (unsigned int timeSteps) |
| Expands the TimeGeometry to a number of TimeSteps. More... | |
| const mitk::BaseGeometry * | GetUpdatedGeometry (int t=0) |
| Return the BaseGeometry of the data at time t. More... | |
| mitk::BaseGeometry * | GetGeometry (int t=0) const |
| Return the geometry, which is a TimeGeometry, of the data as non-const pointer. More... | |
| void | UpdateOutputInformation () override |
| Update the information for this BaseData (the geometry in particular) so that it can be used as an output of a BaseProcess. More... | |
| void | CopyInformation (const itk::DataObject *data) override |
| Copy information from the specified data set. More... | |
| virtual bool | IsInitialized () const |
| Check whether the data has been initialized, i.e., at least the Geometry and other header data has been set. More... | |
| virtual void | Clear () |
| Calls ClearData() and InitializeEmpty();. More... | |
| virtual bool | IsEmptyTimeStep (unsigned int t) const |
| Check whether object contains data (at a specified time), e.g., a set of points may be empty. More... | |
| virtual bool | IsEmpty () const |
| Check whether object contains data (at least at one point in time), e.g., a set of points may be empty. More... | |
| void | ExecuteOperation (Operation *operation) override |
| overwrite if the Data can be called by an Interactor (StateMachine). More... | |
| virtual void | SetGeometry (BaseGeometry *aGeometry3D) |
| Set the BaseGeometry of the data, which will be referenced (not copied!). Assumes the data object has only 1 time step ( is a 3D object ) and creates a new TimeGeometry which saves the given BaseGeometry. If an TimeGeometry has already been set for the object, it will be replaced after calling this function. More... | |
| virtual void | SetTimeGeometry (TimeGeometry *geometry) |
| Set the TimeGeometry of the data, which will be referenced (not copied!). More... | |
| virtual void | SetClonedGeometry (const BaseGeometry *aGeometry3D) |
| Set a clone of the provided Geometry as Geometry of the data. Assumes the data object has only 1 time step ( is a 3D object ) and creates a new TimeGeometry. If an TimeGeometry has already been set for the object, it will be replaced after calling this function. More... | |
| virtual void | SetClonedTimeGeometry (const TimeGeometry *geometry) |
| Set a clone of the provided TimeGeometry as TimeGeometry of the data. More... | |
| virtual void | SetClonedGeometry (const BaseGeometry *aGeometry3D, unsigned int time) |
| Set a clone of the provided geometry as BaseGeometry of a given time step. More... | |
| mitk::PropertyList::Pointer | GetPropertyList () const |
| Get the data's property list. More... | |
| void | SetPropertyList (PropertyList *propertyList) |
| Set the data's property list. More... | |
| mitk::BaseProperty::Pointer | GetProperty (const char *propertyKey) const |
| Get the property (instance of BaseProperty) with key propertyKey from the PropertyList, and set it to this, respectively;. More... | |
| void | SetProperty (const char *propertyKey, BaseProperty *property) |
| virtual void | SetOrigin (const Point3D &origin) |
| Convenience method for setting the origin of the BaseGeometry instances of all time steps. More... | |
| itk::SmartPointer< mitk::BaseDataSource > | GetSource () const |
| Get the process object that generated this data object. More... | |
| unsigned int | GetTimeSteps () const |
| Get the number of time steps from the TimeGeometry As the base data has not a data vector given by itself, the number of time steps is defined over the time sliced geometry. In sub classes, a better implementation could be over the length of the data vector. More... | |
| unsigned long | GetMTime () const override |
| Get the modified time of the last change of the contents this data object or its geometry. More... | |
| void | Graft (const DataObject *) override |
Public Member Functions inherited from mitk::OperationActor | |
| itkTypeMacroNoParent (OperationActor) virtual ~OperationActor() | |
Public Member Functions inherited from mitk::Identifiable | |
| Identifiable () | |
| Identifiable (const UIDType &uid) | |
| Identifiable (const Identifiable &)=delete | |
| Identifiable (Identifiable &&) noexcept | |
| virtual | ~Identifiable () |
| Identifiable & | operator= (const Identifiable &)=delete |
| Identifiable & | operator= (Identifiable &&other) noexcept |
| UIDType | GetUID () const |
| Get unique ID of an object. More... | |
Public Member Functions inherited from mitk::IPropertyOwner | |
| ~IPropertyOwner () override | |
Public Member Functions inherited from mitk::IPropertyProvider | |
| virtual | ~IPropertyProvider () |
Static Public Member Functions | |
| static Pointer | New () |
Static Public Member Functions inherited from mitk::PlanarPolygon | |
| static Pointer | New () |
Static Public Member Functions inherited from mitk::BaseData | |
| static const char * | GetStaticNameOfClass () |
Protected Member Functions | |
| PlanarSubdivisionPolygon () | |
| mitkCloneMacro (Self) | |
| void | GeneratePolyLine () override |
| Generates the poly-line representation of the planar figure. More... | |
Protected Member Functions inherited from mitk::PlanarPolygon | |
| PlanarPolygon () | |
| mitkCloneMacro (Self) | |
| void | GenerateHelperPolyLine (double mmPerDisplayUnit, unsigned int displayHeight) override |
| Generates the poly-lines that should be drawn the same size regardless of zoom. More... | |
| void | EvaluateFeaturesInternal () override |
| Calculates feature quantities of the planar figure. More... | |
| bool | CheckForLineIntersection (const mitk::Point2D &p1, const mitk::Point2D &p2, const mitk::Point2D &p3, const mitk::Point2D &p4, Point2D &intersection) const |
| bool | CheckForLineIntersection (const mitk::Point2D &p1, const mitk::Point2D &p2, const mitk::Point2D &p3, const mitk::Point2D &p4) const |
| void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
Protected Member Functions inherited from mitk::PlanarFigure | |
| PlanarFigure () | |
| PlanarFigure (const Self &other) | |
| virtual unsigned int | AddFeature (const char *featureName, const char *unitName) |
| void | SetFeatureName (unsigned int index, const char *featureName) |
| void | SetFeatureUnit (unsigned int index, const char *unitName) |
| void | SetQuantity (unsigned int index, double quantity) |
| void | ActivateFeature (unsigned int index) |
| void | DeactivateFeature (unsigned int index) |
| void | InitializeTimeGeometry (unsigned int timeSteps=1) override |
| Initializes the TimeGeometry describing the (time-resolved) geometry of this figure. Note that each time step holds one PlaneGeometry. More... | |
| void | SetNumberOfPolyLines (unsigned int numberOfPolyLines) |
| defines the number of PolyLines that will be available More... | |
| void | AppendPointToPolyLine (unsigned int index, PolyLineElement element) |
| Append a point to the PolyLine # index. More... | |
| void | ClearPolyLines () |
| clears the list of PolyLines. Call before re-calculating a new Polyline. More... | |
| void | SetNumberOfHelperPolyLines (unsigned int numberOfHelperPolyLines) |
| defines the number of HelperPolyLines that will be available More... | |
| void | AppendPointToHelperPolyLine (unsigned int index, PolyLineElement element) |
| Append a point to the HelperPolyLine # index. More... | |
| void | ClearHelperPolyLines () |
| clears the list of HelperPolyLines. Call before re-calculating a new HelperPolyline. More... | |
| void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
Protected Member Functions inherited from mitk::BaseData | |
| BaseData () | |
| BaseData (const BaseData &other) | |
| ~BaseData () override | |
| virtual void | InitializeTimeSlicedGeometry (unsigned int timeSteps=1) |
| Initialize the TimeGeometry for a number of time steps. The TimeGeometry is initialized empty and evenly timed. In many cases it will be necessary to overwrite this in sub-classes. More... | |
| virtual void | ClearData () |
| reset to non-initialized state, release memory More... | |
| virtual void | InitializeEmpty () |
| Pure virtual; Must be used in subclasses to get a data object to a valid state. Should at least create one empty object and call Superclass::InitializeTimeGeometry() to ensure an existing valid geometry. More... | |
| void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
Protected Attributes | |
| float | m_TensionParameter |
| int | m_SubdivisionRounds |
Protected Attributes inherited from mitk::PlanarPolygon | |
| const unsigned int | FEATURE_ID_CIRCUMFERENCE |
| const unsigned int | FEATURE_ID_AREA |
Protected Attributes inherited from mitk::PlanarFigure | |
| ControlPointListType | m_ControlPoints |
| unsigned int | m_NumberOfControlPoints |
| int | m_SelectedControlPoint |
| std::vector< PolyLineType > | m_PolyLines |
| std::vector< PolyLineType > | m_HelperPolyLines |
| BoolContainerType::Pointer | m_HelperPolyLinesToBePainted |
| Point2D | m_PreviewControlPoint |
| bool | m_PreviewControlPointVisible |
| bool | m_FigurePlaced |
Protected Attributes inherited from mitk::BaseData | |
| bool | m_LastRequestedRegionWasOutsideOfTheBufferedRegion |
| unsigned int | m_SourceOutputIndexDuplicate |
| bool | m_Initialized |
Additional Inherited Members | |
Public Types inherited from mitk::PlanarFigure | |
| typedef Point2D | PolyLineElement |
| typedef itk::VectorContainer< unsigned long, bool > | BoolContainerType |
| typedef std::deque< Point2D > | ControlPointListType |
| typedef std::vector< PolyLineElement > | PolyLineType |
Public Types inherited from mitk::BaseData | |
| typedef BaseData | Self |
| typedef itk::DataObject | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer< const Self > | ConstPointer |
Public Types inherited from mitk::Identifiable | |
| using | UIDType = std::string |
Implementation of PlanarFigure representing a polygon with two or more control points.
Definition at line 28 of file mitkPlanarSubdivisionPolygon.h.
|
protected |
Definition at line 20 of file mitkPlanarSubdivisionPolygon.cpp.
References mitk::BoolProperty::New(), and mitk::BaseData::SetProperty().
| std::vector<mitk::Point2D> mitk::PlanarSubdivisionPolygon::CheckForLineIntersection | ( | const Point2D & | p1, |
| const Point2D & | p2 | ||
| ) | const |
| Pointer mitk::PlanarSubdivisionPolygon::Clone | ( | ) | const |
| void mitk::PlanarSubdivisionPolygon::DecreaseSubdivisions | ( | ) |
|
overridevirtual |
Compare two PlanarFigure objects Note: all subclasses have to implement the method on their own.
Reimplemented from mitk::PlanarPolygon.
Definition at line 117 of file mitkPlanarSubdivisionPolygon.cpp.
References mitk::eps, m_SubdivisionRounds, and m_TensionParameter.
|
overrideprotectedvirtual |
Generates the poly-line representation of the planar figure.
Reimplemented from mitk::PlanarPolygon.
Definition at line 29 of file mitkPlanarSubdivisionPolygon.cpp.
References mitk::PlanarFigure::AppendPointToPolyLine(), mitk::PlanarFigure::ClearPolyLines(), GetMinimumNumberOfControlPoints(), mitk::BaseData::GetProperty(), GetSubdivisionRounds(), GetTensionParameter(), and mitk::PlanarFigure::m_ControlPoints.
|
overridevirtual |
Returns the id of the control-point that corresponds to the given polyline-point.
Reimplemented from mitk::PlanarFigure.
Definition at line 134 of file mitkPlanarSubdivisionPolygon.cpp.
References mitk::PlanarFigure::GetNumberOfControlPoints(), mitk::PlanarFigure::GetPolyLine(), and mitk::PlanarFigure::m_ControlPoints.
|
inlineoverridevirtual |
Polygon maximum number of control points is principally not limited.
Reimplemented from mitk::PlanarPolygon.
Definition at line 44 of file mitkPlanarSubdivisionPolygon.h.
|
inlineoverridevirtual |
Subdivision Polygon has 3 control points per definition.
Reimplemented from mitk::PlanarPolygon.
Definition at line 38 of file mitkPlanarSubdivisionPolygon.h.
Referenced by GeneratePolyLine().
|
inline |
How many times should we generate a round of subdivisions?
Definition at line 46 of file mitkPlanarSubdivisionPolygon.h.
Referenced by GeneratePolyLine().
|
inline |
Parameter w_tension defines the tension. the higher w_tension, the lower the "tension" on points. Rule: 0 < w_tension < 0.1 0.0625 (1 / 16) seems to be a good value.
Definition at line 59 of file mitkPlanarSubdivisionPolygon.h.
Referenced by GeneratePolyLine().
| void mitk::PlanarSubdivisionPolygon::IncreaseSubdivisions | ( | ) |
| mitk::PlanarSubdivisionPolygon::mitkClassMacro | ( | PlanarSubdivisionPolygon | , |
| PlanarFigure | |||
| ) |
|
protected |
|
static |
Referenced by Clone(), mitk::PlanarFigureReader::GenerateData(), and mitkPlanarSubdivisionPolygonTest().
|
inline |
Definition at line 47 of file mitkPlanarSubdivisionPolygon.h.
|
inline |
Definition at line 60 of file mitkPlanarSubdivisionPolygon.h.
References mitkCloneMacro.
|
protected |
Definition at line 77 of file mitkPlanarSubdivisionPolygon.h.
Referenced by Equals().
|
protected |
Definition at line 76 of file mitkPlanarSubdivisionPolygon.h.
Referenced by Equals().