Medical Imaging Interaction Toolkit  2018.4.99-12ad79a3
Medical Imaging Interaction Toolkit
mitk::ContourModel Class Reference

ContourModel is a structure of linked vertices defining a contour in 3D space. The vertices are stored in a mitk::ContourElement is stored for each timestep. The contour line segments are implicitly defined by the given linked vertices. By default two control points are are linked by a straight line.It is possible to add vertices at front and end of the contour and to iterate in both directions. More...

#include <mitkContourModel.h>

Inheritance diagram for mitk::ContourModel:
Collaboration diagram for mitk::ContourModel:

Public Types

enum  LineSegmentInterpolation { LINEAR, B_SPLINE }
 Possible interpolation of the line segments between control points. More...
 
typedef mitk::ContourElement::VertexType VertexType
 
typedef mitk::ContourElement::VertexListType VertexListType
 
typedef mitk::ContourElement::VertexIterator VertexIterator
 
typedef mitk::ContourElement::ConstVertexIterator ConstVertexIterator
 
typedef std::vector< mitk::ContourElement::Pointer > ContourModelSeries
 
- Public Types inherited from mitk::BaseData
typedef BaseData Self
 
typedef itk::DataObject Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Public Types inherited from mitk::Identifiable
using UIDType = std::string
 

Public Member Functions

 mitkClassMacro (ContourModel, BaseData)
 
Pointer Clone () const
 
VertexTypeGetSelectedVertex ()
 Get the current selected vertex. More...
 
void Deselect ()
 Deselect vertex. More...
 
void SetSelectedVertexAsControlPoint (bool isControlPoint=true)
 Set selected vertex as control point. More...
 
void SetLineSegmentInterpolation (LineSegmentInterpolation interpolation)
 Set the interpolation of the line segments between control points. More...
 
LineSegmentInterpolation GetLineSegmentInterpolation ()
 Get the interpolation of the line segments between control points. More...
 
void AddVertex (mitk::Point3D &vertex, int timestep=0)
 Add a vertex to the contour at given timestep. The vertex is added at the end of contour. More...
 
void AddVertex (VertexType &vertex, int timestep=0)
 Add a vertex to the contour at given timestep. The vertex is added at the end of contour. More...
 
void AddVertex (const VertexType *vertex, int timestep=0)
 Add a vertex to the contour at given timestep. The vertex is added at the end of contour. More...
 
void AddVertex (mitk::Point3D &vertex, bool isControlPoint, int timestep=0)
 Add a vertex to the contour. More...
 
void AddVertexAtFront (mitk::Point3D &vertex, int timestep=0)
 Add a vertex to the contour at given timestep AT THE FRONT of the contour. The vertex is added at the FRONT of contour. More...
 
void AddVertexAtFront (VertexType &vertex, int timestep=0)
 Add a vertex to the contour at given timestep AT THE FRONT of the contour. The vertex is added at the FRONT of contour. More...
 
void AddVertexAtFront (mitk::Point3D &vertex, bool isControlPoint, int timestep=0)
 Add a vertex to the contour at given timestep AT THE FRONT of the contour. More...
 
void InsertVertexAtIndex (mitk::Point3D &vertex, int index, bool isControlPoint=false, int timestep=0)
 Insert a vertex at given index. More...
 
bool SetVertexAt (int pointId, const mitk::Point3D &point, unsigned int timestep=0)
 Set a coordinates for point at given index. More...
 
bool SetVertexAt (int pointId, const VertexType *vertex, unsigned int timestep=0)
 Set a coordinates for point at given index. More...
 
bool IsClosed (int timestep=0) const
 Return if the contour is closed or not. More...
 
void Concatenate (mitk::ContourModel *other, int timestep=0, bool check=false)
 Concatenate two contours. The starting control point of the other will be added at the end of the contour. timestep - the timestep at which the vertex will be add ( default 0) check - check for intersections ( default false) More...
 
VertexIterator Begin (int timestep=0) const
 Returns a const VertexIterator at the start element of the contour. More...
 
VertexIterator IteratorBegin (int timestep=0) const
 Returns a const VertexIterator at the start element of the contour. More...
 
VertexIterator End (int timestep=0) const
 Returns a const VertexIterator at the end element of the contour. More...
 
VertexIterator IteratorEnd (int timestep=0) const
 Returns a const VertexIterator at the end element of the contour. More...
 
virtual void Close (int timestep=0)
 Close the contour. The last control point will be linked with the first point. More...
 
virtual void Open (int timestep=0)
 Set isClosed to false contour. The link between the last control point the first point will be removed. More...
 
virtual void SetClosed (bool isClosed, int timestep=0)
 Set closed property to given boolean. More...
 
int GetNumberOfVertices (int timestep=0) const
 Returns the number of vertices at a given timestep. More...
 
virtual bool IsEmpty (int timestep) const
 Returns whether the contour model is empty at a given timestep. timestep - default = 0. More...
 
bool IsEmpty () const override
 Returns whether the contour model is empty. More...
 
virtual const VertexTypeGetVertexAt (int index, int timestep=0) const
 Returns the vertex at the index position within the container. More...
 
int GetIndex (const VertexType *vertex, int timestep=0)
 Remove a vertex at given timestep within the container. More...
 
bool IsEmptyTimeStep (unsigned int t) const override
 Check if there isn't something at this timestep. More...
 
virtual bool IsNearContour (mitk::Point3D &point, float eps, int timestep)
 Check if mouse cursor is near the contour. More...
 
bool SelectVertexAt (int index, int timestep=0)
 Mark a vertex at an index in the container as selected. More...
 
bool SetControlVertexAt (int index, int timestep=0)
 Mark a vertex at an index in the container as control point. More...
 
bool SelectVertexAt (mitk::Point3D &point, float eps, int timestep=0)
 Mark a vertex at a given position in 3D space. More...
 
bool SetControlVertexAt (mitk::Point3D &point, float eps, int timestep=0)
 
bool RemoveVertexAt (int index, int timestep=0)
 Remove a vertex at given index within the container. More...
 
bool RemoveVertex (const VertexType *vertex, int timestep=0)
 Remove a vertex at given timestep within the container. More...
 
bool RemoveVertexAt (mitk::Point3D &point, float eps, int timestep=0)
 Remove a vertex at a query position in 3D space. More...
 
void ShiftSelectedVertex (mitk::Vector3D &translate)
 Shift the currently selected vertex by a translation vector. More...
 
void ShiftContour (mitk::Vector3D &translate, int timestep=0)
 Shift the whole contour by a translation vector at given timestep. More...
 
virtual void Clear (int timestep)
 Clear the storage container at given timestep. More...
 
void Initialize () override
 Initialize all data objects. More...
 
void Initialize (mitk::ContourModel &other)
 Initialize object with specs of other contour. Note: No data will be copied. More...
 
void SetRequestedRegionToLargestPossibleRegion () override
 Inherit from base data - no region support available for contourModel objects. More...
 
bool RequestedRegionIsOutsideOfTheBufferedRegion () override
 Inherit from base data - no region support available for contourModel objects. More...
 
bool VerifyRequestedRegion () override
 Inherit from base data - no region support available for contourModel objects. More...
 
virtual const mitk::BaseGeometryGetUpdatedGeometry (int t=0)
 Get the updated geometry with recomputed bounds. More...
 
virtual mitk::BaseGeometryGetGeometry (int t=0) const
 Get the BaseGeometry for timestep t. More...
 
void SetRequestedRegion (const itk::DataObject *data) override
 Inherit from base data - no region support available for contourModel objects. More...
 
void Expand (unsigned int timeSteps) override
 Expand the timebounds of the TimeGeometry to given number of timesteps. More...
 
void UpdateOutputInformation () override
 Update the OutputInformation of a ContourModel object. More...
 
void Clear () override
 Clear the storage container. More...
 
void ExecuteOperation (Operation *operation) override
 overwrite if the Data can be called by an Interactor (StateMachine). More...
 
virtual void RedistributeControlVertices (int period, int timestep)
 Redistributes ontrol vertices with a given period (as number of vertices) 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...
 
BasePropertyGetNonConstProperty (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::TimeGeometryGetTimeGeometry () const
 Return the TimeGeometry of the data as const pointer. More...
 
const mitk::TimeGeometryGetTimeSlicedGeometry () const
 Return the TimeGeometry of the data as const pointer. More...
 
mitk::TimeGeometryGetTimeGeometry ()
 Return the TimeGeometry of the data as pointer. More...
 
const mitk::TimeGeometryGetUpdatedTimeGeometry ()
 Return the TimeGeometry of the data. More...
 
const mitk::TimeGeometryGetUpdatedTimeSliceGeometry ()
 Return the TimeGeometry of the data. More...
 
const mitk::BaseGeometryGetUpdatedGeometry (int t=0)
 Return the BaseGeometry of the data at time t. More...
 
mitk::BaseGeometryGetGeometry (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...
 
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::BaseDataSourceGetSource () 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 ()
 
Identifiableoperator= (const Identifiable &)=delete
 
Identifiableoperator= (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::BaseData
static const char * GetStaticNameOfClass ()
 

Protected Member Functions

 mitkCloneMacro (Self)
 
 ContourModel ()
 
 ContourModel (const mitk::ContourModel &other)
 
 ~ContourModel () override
 
void ClearData () override
 reset to non-initialized state, release memory More...
 
void InitializeEmpty () override
 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 ShiftVertex (VertexType *vertex, mitk::Vector3D &vector)
 
- Protected Member Functions inherited from mitk::BaseData
 BaseData ()
 
 BaseData (const BaseData &other)
 
 ~BaseData () override
 
virtual void InitializeTimeGeometry (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 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...
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 

Protected Attributes

ContourModelSeries m_ContourSeries
 
VertexTypem_SelectedVertex
 
LineSegmentInterpolation m_lineInterpolation
 
bool m_UpdateBoundingBox
 
- Protected Attributes inherited from mitk::BaseData
bool m_LastRequestedRegionWasOutsideOfTheBufferedRegion
 
unsigned int m_SourceOutputIndexDuplicate
 
bool m_Initialized
 

Detailed Description

ContourModel is a structure of linked vertices defining a contour in 3D space. The vertices are stored in a mitk::ContourElement is stored for each timestep. The contour line segments are implicitly defined by the given linked vertices. By default two control points are are linked by a straight line.It is possible to add vertices at front and end of the contour and to iterate in both directions.

Points are specified containing coordinates and additional (data) information, see mitk::ContourElement. For accessing a specific vertex either an index or a position in 3D Space can be used. The vertices are best accessed by using a VertexIterator. Interaction with the contour is thus available without any mitk interactor class using the api of ContourModel. It is possible to shift single vertices also as shifting the whole contour.

A contour can be either open like a single curved line segment or closed. A closed contour can for example represent a jordan curve.

Display Options

The default mappers for this data structure are mitk::ContourModelGLMapper2D and mitk::ContourModelMapper3D. See these classes for display options which can can be set via properties.

Definition at line 47 of file mitkContourModel.h.

Member Typedef Documentation

◆ ConstVertexIterator

◆ ContourModelSeries

typedef std::vector<mitk::ContourElement::Pointer> mitk::ContourModel::ContourModelSeries

Definition at line 59 of file mitkContourModel.h.

◆ VertexIterator

◆ VertexListType

◆ VertexType

Member Enumeration Documentation

◆ LineSegmentInterpolation

Possible interpolation of the line segments between control points.

Enumerator
LINEAR 
B_SPLINE 

Definition at line 63 of file mitkContourModel.h.

Constructor & Destructor Documentation

◆ ContourModel() [1/2]

mitk::ContourModel::ContourModel ( )
protected

Definition at line 15 of file mitkContourModel.cpp.

References InitializeEmpty().

◆ ContourModel() [2/2]

mitk::ContourModel::ContourModel ( const mitk::ContourModel other)
protected

Definition at line 21 of file mitkContourModel.cpp.

References m_SelectedVertex.

◆ ~ContourModel()

mitk::ContourModel::~ContourModel ( )
overrideprotected

Definition at line 27 of file mitkContourModel.cpp.

References m_ContourSeries, and m_SelectedVertex.

Member Function Documentation

◆ AddVertex() [1/4]

void mitk::ContourModel::AddVertex ( mitk::Point3D vertex,
int  timestep = 0 
)

Add a vertex to the contour at given timestep. The vertex is added at the end of contour.

Parameters
vertex- coordinate representation of a control point
timestep- the timestep at which the vertex will be add ( default 0)

Adding a vertex to a timestep which exceeds the timebounds of the contour will not be added, the TimeGeometry will not be expanded.

Definition at line 33 of file mitkContourModel.cpp.

References IsEmptyTimeStep().

Referenced by mitk::ContourTool::OnMouseMoved(), mitk::CorrectorTool2D::OnMouseMoved(), mitk::ContourTool::OnMousePressed(), mitk::CorrectorTool2D::OnMousePressed(), and mitk::ContourModelLiveWireInteractor::SplitContourFromSelectedVertex().

◆ AddVertex() [2/4]

void mitk::ContourModel::AddVertex ( VertexType vertex,
int  timestep = 0 
)

Add a vertex to the contour at given timestep. The vertex is added at the end of contour.

Parameters
vertex- coordinate representation of a control point
timestep- the timestep at which the vertex will be add ( default 0)

Adding a vertex to a timestep which exceeds the timebounds of the contour will not be added, the TimeGeometry will not be expanded.

Definition at line 52 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ AddVertex() [3/4]

void mitk::ContourModel::AddVertex ( const VertexType vertex,
int  timestep = 0 
)

Add a vertex to the contour at given timestep. The vertex is added at the end of contour.

Parameters
vertex- coordinate representation of a control point
timestep- the timestep at which the vertex will be add ( default 0)

Adding a vertex to a timestep which exceeds the timebounds of the contour will not be added, the TimeSlicedGeometry will not be expanded.

Definition at line 63 of file mitkContourModel.cpp.

References m_ContourSeries.

◆ AddVertex() [4/4]

void mitk::ContourModel::AddVertex ( mitk::Point3D vertex,
bool  isControlPoint,
int  timestep = 0 
)

Add a vertex to the contour.

Parameters
vertex- coordinate representation of a control point
timestep- the timestep at which the vertex will be add ( default 0)
isControlPoint- specifies the vertex to be handled in a special way (e.g. control points will be rendered).

Adding a vertex to a timestep which exceeds the timebounds of the contour will not be added, the TimeGeometry will not be expanded.

Definition at line 41 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ AddVertexAtFront() [1/3]

void mitk::ContourModel::AddVertexAtFront ( mitk::Point3D vertex,
int  timestep = 0 
)

Add a vertex to the contour at given timestep AT THE FRONT of the contour. The vertex is added at the FRONT of contour.

Parameters
vertex- coordinate representation of a control point
timestep- the timestep at which the vertex will be add ( default 0)

Adding a vertex to a timestep which exceeds the timebounds of the contour will not be added, the TimeGeometry will not be expanded.

Definition at line 71 of file mitkContourModel.cpp.

References IsEmptyTimeStep().

◆ AddVertexAtFront() [2/3]

void mitk::ContourModel::AddVertexAtFront ( VertexType vertex,
int  timestep = 0 
)

Add a vertex to the contour at given timestep AT THE FRONT of the contour. The vertex is added at the FRONT of contour.

Parameters
vertex- coordinate representation of a control point
timestep- the timestep at which the vertex will be add ( default 0)

Adding a vertex to a timestep which exceeds the timebounds of the contour will not be added, the TimeGeometry will not be expanded.

Definition at line 90 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ AddVertexAtFront() [3/3]

void mitk::ContourModel::AddVertexAtFront ( mitk::Point3D vertex,
bool  isControlPoint,
int  timestep = 0 
)

Add a vertex to the contour at given timestep AT THE FRONT of the contour.

Parameters
vertex- coordinate representation of a control point
timestep- the timestep at which the vertex will be add ( default 0)
isControlPoint- specifies the vertex to be handled in a special way (e.g. control points will be rendered).

Adding a vertex to a timestep which exceeds the timebounds of the contour will not be added, the TimeGeometry will not be expanded.

Definition at line 79 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ Begin()

mitk::ContourModel::VertexIterator mitk::ContourModel::Begin ( int  timestep = 0) const

◆ Clear() [1/2]

void mitk::ContourModel::Clear ( int  timestep)
virtual

Clear the storage container at given timestep.

All control points are removed at timestep.

Definition at line 426 of file mitkContourModel.cpp.

References InitializeEmpty(), IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

Referenced by mitk::ContourModelLiveWireInteractor::OnFinishEditing().

◆ Clear() [2/2]

void mitk::ContourModel::Clear ( )
overridevirtual

Clear the storage container.

The object is set to initial state. All control points are removed and the number of timesteps are set to 1.

Reimplemented from mitk::BaseData.

Definition at line 488 of file mitkContourModel.cpp.

References ClearData(), InitializeEmpty(), and m_UpdateBoundingBox.

◆ ClearData()

void mitk::ContourModel::ClearData ( )
overrideprotectedvirtual

reset to non-initialized state, release memory

Reimplemented from mitk::BaseData.

Definition at line 508 of file mitkContourModel.cpp.

References m_ContourSeries.

Referenced by Clear().

◆ Clone()

Pointer mitk::ContourModel::Clone ( ) const

◆ Close()

void mitk::ContourModel::Close ( int  timestep = 0)
virtual

Close the contour. The last control point will be linked with the first point.

Definition at line 191 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ Concatenate()

void mitk::ContourModel::Concatenate ( mitk::ContourModel other,
int  timestep = 0,
bool  check = false 
)

Concatenate two contours. The starting control point of the other will be added at the end of the contour. timestep - the timestep at which the vertex will be add ( default 0) check - check for intersections ( default false)

Definition at line 238 of file mitkContourModel.cpp.

References IsClosed(), IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ Deselect()

void mitk::ContourModel::Deselect ( )
inline

◆ End()

mitk::ContourModel::VertexIterator mitk::ContourModel::End ( int  timestep = 0) const

◆ ExecuteOperation()

void mitk::ContourModel::ExecuteOperation ( mitk::Operation operation)
overridevirtual

overwrite if the Data can be called by an Interactor (StateMachine).

Implements mitk::OperationActor.

Definition at line 632 of file mitkContourModel.cpp.

◆ Expand()

void mitk::ContourModel::Expand ( unsigned int  timeSteps)
overridevirtual

Expand the timebounds of the TimeGeometry to given number of timesteps.

Reimplemented from mitk::BaseData.

Definition at line 438 of file mitkContourModel.cpp.

References m_ContourSeries, and mitk::ContourElement::New().

Referenced by mitk::ContourTool::OnMousePressed(), and mitk::CorrectorTool2D::OnMousePressed().

◆ GetGeometry()

mitk::BaseGeometry * mitk::ContourModel::GetGeometry ( int  t = 0) const
virtual

Get the BaseGeometry for timestep t.

Definition at line 478 of file mitkContourModel.cpp.

Referenced by UpdateOutputInformation().

◆ GetIndex()

int mitk::ContourModel::GetIndex ( const VertexType vertex,
int  timestep = 0 
)

Remove a vertex at given timestep within the container.

Returns
index of vertex. -1 if not found.

Definition at line 182 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), and m_ContourSeries.

◆ GetLineSegmentInterpolation()

LineSegmentInterpolation mitk::ContourModel::GetLineSegmentInterpolation ( )
inline

Get the interpolation of the line segments between control points.

Definition at line 98 of file mitkContourModel.h.

References mitk::eps, and mitkCloneMacro.

◆ GetNumberOfVertices()

int mitk::ContourModel::GetNumberOfVertices ( int  timestep = 0) const

◆ GetSelectedVertex()

VertexType* mitk::ContourModel::GetSelectedVertex ( )
inline

◆ GetUpdatedGeometry()

const mitk::BaseGeometry * mitk::ContourModel::GetUpdatedGeometry ( int  t = 0)
virtual

Get the updated geometry with recomputed bounds.

Definition at line 473 of file mitkContourModel.cpp.

◆ GetVertexAt()

const mitk::ContourModel::VertexType * mitk::ContourModel::GetVertexAt ( int  index,
int  timestep = 0 
) const
virtual

◆ Initialize() [1/2]

void mitk::ContourModel::Initialize ( )
override

Initialize all data objects.

Definition at line 517 of file mitkContourModel.cpp.

References InitializeEmpty(), and m_UpdateBoundingBox.

Referenced by mitk::ContourTool::OnMousePressed(), and mitk::CorrectorTool2D::OnMousePressed().

◆ Initialize() [2/2]

void mitk::ContourModel::Initialize ( mitk::ContourModel other)

◆ InitializeEmpty()

void mitk::ContourModel::InitializeEmpty ( )
overrideprotectedvirtual

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.

Reimplemented from mitk::BaseData.

Definition at line 541 of file mitkContourModel.cpp.

References mitk::BaseData::InitializeTimeGeometry(), LINEAR, m_ContourSeries, m_lineInterpolation, m_SelectedVertex, and mitk::ContourElement::New().

Referenced by Clear(), ContourModel(), and Initialize().

◆ InsertVertexAtIndex()

void mitk::ContourModel::InsertVertexAtIndex ( mitk::Point3D vertex,
int  index,
bool  isControlPoint = false,
int  timestep = 0 
)

Insert a vertex at given index.

Definition at line 136 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ IsClosed()

bool mitk::ContourModel::IsClosed ( int  timestep = 0) const

◆ IsEmpty() [1/2]

bool mitk::ContourModel::IsEmpty ( int  timestep) const
virtual

Returns whether the contour model is empty at a given timestep. timestep - default = 0.

Definition at line 150 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), and m_ContourSeries.

Referenced by mitk::ContourModelLiveWireInteractor::OnDeletePoint().

◆ IsEmpty() [2/2]

bool mitk::ContourModel::IsEmpty ( ) const
overridevirtual

Returns whether the contour model is empty.

Reimplemented from mitk::BaseData.

Definition at line 159 of file mitkContourModel.cpp.

◆ IsEmptyTimeStep()

◆ IsNearContour()

bool mitk::ContourModel::IsNearContour ( mitk::Point3D point,
float  eps,
int  timestep 
)
virtual

Check if mouse cursor is near the contour.

Definition at line 229 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), and m_ContourSeries.

◆ IteratorBegin()

◆ IteratorEnd()

◆ mitkClassMacro()

mitk::ContourModel::mitkClassMacro ( ContourModel  ,
BaseData   
)

◆ mitkCloneMacro()

mitk::ContourModel::mitkCloneMacro ( Self  )
protected

◆ New()

◆ Open()

void mitk::ContourModel::Open ( int  timestep = 0)
virtual

Set isClosed to false contour. The link between the last control point the first point will be removed.

Definition at line 202 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ RedistributeControlVertices()

void mitk::ContourModel::RedistributeControlVertices ( int  period,
int  timestep 
)
virtual

Redistributes ontrol vertices with a given period (as number of vertices)

Parameters
period- the number of vertices between control points.
timestep- at this timestep all lines will be rebuilt.

Definition at line 497 of file mitkContourModel.cpp.

References GetSelectedVertex(), IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ RemoveVertex()

bool mitk::ContourModel::RemoveVertex ( const VertexType vertex,
int  timestep = 0 
)

Remove a vertex at given timestep within the container.

Returns
true = the vertex was successfuly removed.

Definition at line 343 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

Referenced by mitk::ContourModelInteractor::OnDeletePoint().

◆ RemoveVertexAt() [1/2]

bool mitk::ContourModel::RemoveVertexAt ( int  index,
int  timestep = 0 
)

Remove a vertex at given index within the container.

Returns
true = the vertex was successfuly removed; false = wrong index.

Definition at line 358 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

Referenced by mitk::ContourModelLiveWireInteractor::OnDeletePoint(), and RemoveVertexAt().

◆ RemoveVertexAt() [2/2]

bool mitk::ContourModel::RemoveVertexAt ( mitk::Point3D point,
float  eps,
int  timestep = 0 
)

Remove a vertex at a query position in 3D space.

The vertex to be removed will be search by nearest neighbour search. Note that possibly no vertex at this position and eps is stored inside the contour.

Returns
true = the vertex was successfuly removed; false = no vertex found.

Definition at line 373 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, m_UpdateBoundingBox, and RemoveVertexAt().

◆ RequestedRegionIsOutsideOfTheBufferedRegion()

bool mitk::ContourModel::RequestedRegionIsOutsideOfTheBufferedRegion ( )
overridevirtual

Inherit from base data - no region support available for contourModel objects.

Implements mitk::BaseData.

Definition at line 461 of file mitkContourModel.cpp.

◆ SelectVertexAt() [1/2]

bool mitk::ContourModel::SelectVertexAt ( int  index,
int  timestep = 0 
)

Mark a vertex at an index in the container as selected.

Definition at line 306 of file mitkContourModel.cpp.

References GetVertexAt(), IsEmptyTimeStep(), m_ContourSeries, and m_SelectedVertex.

◆ SelectVertexAt() [2/2]

bool mitk::ContourModel::SelectVertexAt ( mitk::Point3D point,
float  eps,
int  timestep = 0 
)

Mark a vertex at a given position in 3D space.

Parameters
point- query point in 3D space
eps- radius for nearest neighbour search (error bound).
timestep- search at this timestep
Returns
true = vertex found; false = no vertex found

Definition at line 297 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_SelectedVertex.

◆ SetClosed()

void mitk::ContourModel::SetClosed ( bool  isClosed,
int  timestep = 0 
)
virtual

Set closed property to given boolean.

false - The link between the last control point the first point will be removed. true - The last control point will be linked with the first point.

Definition at line 213 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

Referenced by mitk::CorrectorTool2D::CorrectorTool2D(), Initialize(), mitk::ContourTool::OnMousePressed(), and mitk::CorrectorTool2D::OnMousePressed().

◆ SetControlVertexAt() [1/2]

bool mitk::ContourModel::SetControlVertexAt ( int  index,
int  timestep = 0 
)

Mark a vertex at an index in the container as control point.

Definition at line 329 of file mitkContourModel.cpp.

References mitk::ContourElement::ContourModelVertex::IsControlPoint, IsEmptyTimeStep(), and m_ContourSeries.

◆ SetControlVertexAt() [2/2]

bool mitk::ContourModel::SetControlVertexAt ( mitk::Point3D point,
float  eps,
int  timestep = 0 
)

◆ SetLineSegmentInterpolation()

void mitk::ContourModel::SetLineSegmentInterpolation ( LineSegmentInterpolation  interpolation)
inline

Set the interpolation of the line segments between control points.

Definition at line 90 of file mitkContourModel.h.

◆ SetRequestedRegion()

void mitk::ContourModel::SetRequestedRegion ( const itk::DataObject *  data)
overridevirtual

Inherit from base data - no region support available for contourModel objects.

Implements mitk::BaseData.

Definition at line 483 of file mitkContourModel.cpp.

◆ SetRequestedRegionToLargestPossibleRegion()

void mitk::ContourModel::SetRequestedRegionToLargestPossibleRegion ( )
overridevirtual

Inherit from base data - no region support available for contourModel objects.

Implements mitk::BaseData.

Definition at line 456 of file mitkContourModel.cpp.

◆ SetSelectedVertexAsControlPoint()

void mitk::ContourModel::SetSelectedVertexAsControlPoint ( bool  isControlPoint = true)
inline

Set selected vertex as control point.

Definition at line 79 of file mitkContourModel.h.

◆ SetVertexAt() [1/2]

bool mitk::ContourModel::SetVertexAt ( int  pointId,
const mitk::Point3D point,
unsigned int  timestep = 0 
)

Set a coordinates for point at given index.

Definition at line 101 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ SetVertexAt() [2/2]

bool mitk::ContourModel::SetVertexAt ( int  pointId,
const VertexType vertex,
unsigned int  timestep = 0 
)

Set a coordinates for point at given index.

Definition at line 117 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, and m_UpdateBoundingBox.

◆ ShiftContour()

void mitk::ContourModel::ShiftContour ( mitk::Vector3D translate,
int  timestep = 0 
)

Shift the whole contour by a translation vector at given timestep.

Parameters
translate- the translation vector.
timestep- at this timestep the contour will be shifted.

Definition at line 398 of file mitkContourModel.cpp.

References IsEmptyTimeStep(), m_ContourSeries, m_UpdateBoundingBox, and ShiftVertex().

◆ ShiftSelectedVertex()

void mitk::ContourModel::ShiftSelectedVertex ( mitk::Vector3D translate)

Shift the currently selected vertex by a translation vector.

Parameters
translate- the translation vector.

Definition at line 388 of file mitkContourModel.cpp.

References m_SelectedVertex, m_UpdateBoundingBox, and ShiftVertex().

◆ ShiftVertex()

void mitk::ContourModel::ShiftVertex ( VertexType vertex,
mitk::Vector3D vector 
)
protected

◆ UpdateOutputInformation()

void mitk::ContourModel::UpdateOutputInformation ( )
override

◆ VerifyRequestedRegion()

bool mitk::ContourModel::VerifyRequestedRegion ( )
overridevirtual

Inherit from base data - no region support available for contourModel objects.

Implements mitk::BaseData.

Definition at line 467 of file mitkContourModel.cpp.

Member Data Documentation

◆ m_ContourSeries

◆ m_lineInterpolation

LineSegmentInterpolation mitk::ContourModel::m_lineInterpolation
protected

Definition at line 436 of file mitkContourModel.h.

Referenced by Initialize(), and InitializeEmpty().

◆ m_SelectedVertex

VertexType* mitk::ContourModel::m_SelectedVertex
protected

◆ m_UpdateBoundingBox


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