Medical Imaging Interaction Toolkit
2023.12.00
Medical Imaging Interaction Toolkit
|
Data structure which stores a set of points. More...
#include <mitkPointSet.h>
Classes | |
struct | CellDataType |
struct | PointDataType |
struct for data of a point More... | |
Public Types | |
typedef PointSet | Self |
typedef BaseData | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef mitk::ScalarType | CoordinateType |
typedef mitk::ScalarType | InterpolationWeightType |
typedef std::vector< unsigned int > | SelectedLinesType |
cellDataType, that stores all indexes of the lines, that are selected e.g.: points A,B and C.Between A and B there is a line with index 0. If vector of cellData contains 1 and 2, then the lines between B and C and C and A is selected. More... | |
typedef SelectedLinesType::iterator | SelectedLinesIter |
typedef itk::DefaultDynamicMeshTraits< PointDataType, PointDimension, MaxTopologicalDimension, CoordinateType, InterpolationWeightType, CellDataType > | MeshTraits |
typedef itk::Mesh< PointDataType, PointDimension, MeshTraits > | MeshType |
typedef MeshType | DataType |
typedef Point3D | PointType |
typedef DataType::PointIdentifier | PointIdentifier |
typedef DataType::PointsContainer | PointsContainer |
typedef DataType::PointsContainerIterator | PointsIterator |
typedef DataType::PointsContainer::ConstIterator | PointsConstIterator |
typedef DataType::PointDataContainer | PointDataContainer |
typedef DataType::PointDataContainerIterator | PointDataIterator |
typedef DataType::PointDataContainerIterator | PointDataConstIterator |
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 |
Public Member Functions | |
virtual std::vector< std::string > | GetClassHierarchy () const override |
virtual const char * | GetClassName () const |
Pointer | Clone () const |
void | Expand (unsigned int timeSteps) override |
Expands the TimeGeometry to a number of TimeSteps. More... | |
void | ExecuteOperation (Operation *operation) override |
executes the given Operation More... | |
virtual int | GetSize (unsigned int t=0) const |
returns the current size of the point-list More... | |
virtual unsigned int | GetPointSetSeriesSize () const |
virtual DataType::Pointer | GetPointSet (int t=0) const |
returns the pointset More... | |
PointsIterator | Begin (int t=0) |
PointsConstIterator | Begin (int t=0) const |
PointsIterator | End (int t=0) |
PointsConstIterator | End (int t=0) const |
PointsIterator | GetMaxId (int t=0) |
Get an iterator to the max ID element if existent. Return End() otherwise. More... | |
PointType | GetPoint (PointIdentifier id, int t=0) const |
Get the point with ID id in world coordinates. More... | |
bool | GetPointIfExists (PointIdentifier id, PointType *point, int t=0) const |
Get the point with ID id in world coordinates. More... | |
void | SetPoint (PointIdentifier id, PointType point, int t=0) |
Set the given point in world coordinate system into the itkPointSet. More... | |
void | SetPoint (PointIdentifier id, PointType point, PointSpecificationType spec, int t=0) |
Set the given point in world coordinate system with the given PointSpecificationType. More... | |
void | InsertPoint (PointIdentifier id, PointType point, int t=0) |
Set the given point in world coordinate system into the itkPointSet. More... | |
void | InsertPoint (PointIdentifier id, PointType point, PointSpecificationType spec, int t) |
Set the given point in world coordinate system with given PointSpecificationType. More... | |
PointIdentifier | InsertPoint (PointType point, int t=0) |
Insert the given point in world coordinate system with incremented max id at time step t. More... | |
bool | RemovePointIfExists (PointIdentifier id, int t=0) |
Remove point with given id at timestep t, if existent. More... | |
PointsIterator | RemovePointAtEnd (int t=0) |
Remove max id point at timestep t and return iterator to precedent point. More... | |
bool | SwapPointPosition (PointIdentifier id, bool moveUpwards, int t=0) |
Swap a point at the given position (id) with the upper point (moveUpwards=true) or with the lower point (moveUpwards=false). If upper or lower index does not exist false is returned, if swap was successful true. More... | |
virtual int | SearchSelectedPoint (int t=0) const |
searches a selected point and returns the id of that point. If no point is found, then -1 is returned More... | |
virtual bool | IndexExists (int position, int t=0) const |
returns true if a point exists at this position More... | |
virtual bool | GetSelectInfo (int position, int t=0) const |
to get the state selected/unselected of the point on the position More... | |
virtual void | SetSelectInfo (int position, bool selected, int t=0) |
virtual PointSpecificationType | GetSpecificationTypeInfo (int position, int t) const |
to get the type of the point at the position and the moment More... | |
virtual int | GetNumberOfSelected (int t=0) const |
returns the number of selected points More... | |
int | SearchPoint (Point3D point, ScalarType distance, int t=0) const |
searches a point in the list == point +/- distance More... | |
bool | IsEmptyTimeStep (unsigned int t) const override |
Check whether object contains data (at a specified time), e.g., a set of points may be empty. More... | |
void | UpdateOutputInformation () override |
void | SetRequestedRegionToLargestPossibleRegion () override |
Set the RequestedRegion to the LargestPossibleRegion. More... | |
bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
Determine whether the RequestedRegion is outside of the BufferedRegion. More... | |
bool | VerifyRequestedRegion () override |
Verify that the RequestedRegion is within the LargestPossibleRegion. More... | |
void | SetRequestedRegion (const itk::DataObject *data) override |
Set the requested region from this data object to match the requested region of the data object passed in as a parameter. More... | |
virtual void | OnPointSetChange () |
Public Member Functions inherited from mitk::BaseData | |
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... | |
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::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 | IsEmpty () const |
Check whether object contains data (at least at one point in time), e.g., a set of points may be empty. 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... | |
itk::ModifiedTimeType | 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 |
virtual 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 const char * | GetStaticNameOfClass () |
static Pointer | New () |
Static Public Member Functions inherited from mitk::BaseData | |
static const char * | GetStaticNameOfClass () |
Static Public Attributes | |
static const unsigned int | PointDimension |
static const unsigned int | MaxTopologicalDimension |
Protected Types | |
typedef std::vector< DataType::Pointer > | PointSetSeries |
Protected Member Functions | |
virtual itk::LightObject::Pointer | InternalClone () const override |
PointSet () | |
PointSet (const PointSet &other) | |
~PointSet () override | |
void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
print content of the object to os More... | |
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... | |
bool | SwapPointContents (PointIdentifier id1, PointIdentifier id2, int t=0) |
swaps point coordinates and point data of the points with identifiers id1 and id2 More... | |
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... | |
void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
Protected Member Functions inherited from mitk::Identifiable | |
virtual void | SetUID (const UIDType &uid) |
Protected Attributes | |
PointSetSeries | m_PointSetSeries |
DataType::PointsContainer::Pointer | m_EmptyPointsContainer |
bool | m_CalculateBoundingBox |
flag to indicate the right time to call SetBounds More... | |
Protected Attributes inherited from mitk::BaseData | |
bool | m_LastRequestedRegionWasOutsideOfTheBufferedRegion |
unsigned int | m_SourceOutputIndexDuplicate |
bool | m_Initialized |
Data structure which stores a set of points.
3D points are grouped within a point set; for time resolved usage, one point set is created and maintained per time step. A point entry consists of the point coordinates and point data.
The point data includes a point ID (unique identifier to address this point within the point set), the selection state of the point and the type of the point.
For further information about different point types see mitk::PointSpecificationType in mitkVector.h.
Inserting a point is accompanied by an event, containing an index. The new point is inserted into the list at the specified position. At the same time an internal ID is generated and stored for the point. Points at specific time steps are accessed by specifying the time step number (which defaults to 0).
The points of itk::PointSet stores the points in a pointContainer (MapContainer). The points are best accessed by using a ConstIterator (as defined in MapContainer); avoid access via index.
The class internally uses an itk::Mesh for each time step.
The default mappers for this data structure are mitk::PointSetGLMapper2D and mitk::PointSetVtkMapper3D. See these classes for display options which can can be set via properties.
PointSet issues the following events, for which observers can register (the below events are grouped into a class hierarchy as indicated by indentation level; e.g. PointSetSizeChangeEvent comprises PointSetAddEvent and PointSetRemoveEvent):
PointSetEvent subsumes all PointSet events PointSetMoveEvent issued when a point of the PointSet is moved PointSetSizeChangeEvent subsumes add and remove events PointSetAddEvent issued when a point is added to the PointSet PointSetRemoveEvent issued when a point is removed from the PointSet
Definition at line 71 of file mitkPointSet.h.
typedef itk::SmartPointer<const Self> mitk::PointSet::ConstPointer |
Definition at line 74 of file mitkPointSet.h.
Definition at line 78 of file mitkPointSet.h.
typedef MeshType mitk::PointSet::DataType |
Definition at line 127 of file mitkPointSet.h.
Definition at line 81 of file mitkPointSet.h.
typedef itk::DefaultDynamicMeshTraits<PointDataType, PointDimension, MaxTopologicalDimension, CoordinateType, InterpolationWeightType, CellDataType> mitk::PointSet::MeshTraits |
Definition at line 124 of file mitkPointSet.h.
typedef itk::Mesh<PointDataType, PointDimension, MeshTraits> mitk::PointSet::MeshType |
Definition at line 125 of file mitkPointSet.h.
typedef DataType::PointDataContainerIterator mitk::PointSet::PointDataConstIterator |
Definition at line 135 of file mitkPointSet.h.
typedef DataType::PointDataContainer mitk::PointSet::PointDataContainer |
Definition at line 133 of file mitkPointSet.h.
typedef DataType::PointDataContainerIterator mitk::PointSet::PointDataIterator |
Definition at line 134 of file mitkPointSet.h.
typedef itk::SmartPointer<Self> mitk::PointSet::Pointer |
Definition at line 74 of file mitkPointSet.h.
typedef DataType::PointIdentifier mitk::PointSet::PointIdentifier |
Definition at line 129 of file mitkPointSet.h.
typedef DataType::PointsContainer::ConstIterator mitk::PointSet::PointsConstIterator |
Definition at line 132 of file mitkPointSet.h.
typedef DataType::PointsContainer mitk::PointSet::PointsContainer |
Definition at line 130 of file mitkPointSet.h.
|
protected |
Definition at line 281 of file mitkPointSet.h.
typedef DataType::PointsContainerIterator mitk::PointSet::PointsIterator |
Definition at line 131 of file mitkPointSet.h.
typedef Point3D mitk::PointSet::PointType |
Definition at line 128 of file mitkPointSet.h.
typedef SelectedLinesType::iterator mitk::PointSet::SelectedLinesIter |
Definition at line 105 of file mitkPointSet.h.
typedef std::vector<unsigned int> mitk::PointSet::SelectedLinesType |
cellDataType, that stores all indexes of the lines, that are selected e.g.: points A,B and C.Between A and B there is a line with index 0. If vector of cellData contains 1 and 2, then the lines between B and C and C and A is selected.
Definition at line 104 of file mitkPointSet.h.
typedef PointSet mitk::PointSet::Self |
Definition at line 74 of file mitkPointSet.h.
typedef BaseData mitk::PointSet::Superclass |
Definition at line 74 of file mitkPointSet.h.
|
protected |
|
protected |
|
overrideprotected |
PointsIterator mitk::PointSet::Begin | ( | int | t = 0 | ) |
PointsConstIterator mitk::PointSet::Begin | ( | int | t = 0 | ) | const |
|
overrideprotectedvirtual |
reset to non-initialized state, release memory
Reimplemented from mitk::BaseData.
Pointer mitk::PointSet::Clone | ( | ) | const |
PointsIterator mitk::PointSet::End | ( | int | t = 0 | ) |
PointsConstIterator mitk::PointSet::End | ( | int | t = 0 | ) | const |
|
overridevirtual |
executes the given Operation
Reimplemented from mitk::BaseData.
|
overridevirtual |
Expands the TimeGeometry to a number of TimeSteps.
The method expands the TimeGeometry to the given number of TimeSteps, filling newly created elements with empty geometries. Sub-classes should override this method to handle the elongation of their data vectors, too. Note that a shrinking is neither possible nor intended.
Reimplemented from mitk::BaseData.
|
inlineoverridevirtual |
Reimplemented from mitk::BaseData.
Definition at line 74 of file mitkPointSet.h.
|
virtual |
Reimplemented from mitk::BaseData.
PointsIterator mitk::PointSet::GetMaxId | ( | int | t = 0 | ) |
Get an iterator to the max ID element if existent. Return End() otherwise.
|
virtual |
returns the number of selected points
PointType mitk::PointSet::GetPoint | ( | PointIdentifier | id, |
int | t = 0 |
||
) | const |
Get the point with ID id in world coordinates.
check if the ID exists. If it doesn't exist, then return 0,0,0
bool mitk::PointSet::GetPointIfExists | ( | PointIdentifier | id, |
PointType * | point, | ||
int | t = 0 |
||
) | const |
Get the point with ID id in world coordinates.
If a point exists for the ID id, the point is returned in the parameter point and the method returns true. If the ID does not exist, the method returns false
|
virtual |
returns the pointset
|
virtual |
|
virtual |
to get the state selected/unselected of the point on the position
|
virtual |
returns the current size of the point-list
|
virtual |
to get the type of the point at the position and the moment
|
inlinestatic |
Definition at line 74 of file mitkPointSet.h.
|
virtual |
returns true if a point exists at this position
|
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.
void mitk::PointSet::InsertPoint | ( | PointIdentifier | id, |
PointType | point, | ||
int | t = 0 |
||
) |
Set the given point in world coordinate system into the itkPointSet.
void mitk::PointSet::InsertPoint | ( | PointIdentifier | id, |
PointType | point, | ||
PointSpecificationType | spec, | ||
int | t | ||
) |
Set the given point in world coordinate system with given PointSpecificationType.
PointIdentifier mitk::PointSet::InsertPoint | ( | PointType | point, |
int | t = 0 |
||
) |
Insert the given point in world coordinate system with incremented max id at time step t.
|
inlineoverrideprotectedvirtual |
Definition at line 266 of file mitkPointSet.h.
|
overridevirtual |
Check whether object contains data (at a specified time), e.g., a set of points may be empty.
Reimplemented from mitk::BaseData.
|
static |
Referenced by mitk::ToFTestingCommon::VtkPolyDataToMitkPointSet().
|
inlinevirtual |
Definition at line 263 of file mitkPointSet.h.
|
overrideprotected |
print content of the object to os
PointsIterator mitk::PointSet::RemovePointAtEnd | ( | int | t = 0 | ) |
Remove max id point at timestep t and return iterator to precedent point.
bool mitk::PointSet::RemovePointIfExists | ( | PointIdentifier | id, |
int | t = 0 |
||
) |
Remove point with given id at timestep t, if existent.
|
overridevirtual |
Determine whether the RequestedRegion is outside of the BufferedRegion.
This method returns true if the RequestedRegion is outside the BufferedRegion (true if at least one pixel is outside). This is used by the pipeline mechanism to determine whether a filter needs to re-execute in order to satisfy the current request. If the current RequestedRegion is already inside the BufferedRegion from the previous execution (and the current filter is up to date), then a given filter does not need to re-execute
Implements mitk::BaseData.
int mitk::PointSet::SearchPoint | ( | Point3D | point, |
ScalarType | distance, | ||
int | t = 0 |
||
) | const |
searches a point in the list == point +/- distance
point | is in world coordinates. |
distance | is in mm. |
t | returns -1 if no point is found or the position in the list of the first match |
|
virtual |
searches a selected point and returns the id of that point. If no point is found, then -1 is returned
void mitk::PointSet::SetPoint | ( | PointIdentifier | id, |
PointType | point, | ||
int | t = 0 |
||
) |
Set the given point in world coordinate system into the itkPointSet.
void mitk::PointSet::SetPoint | ( | PointIdentifier | id, |
PointType | point, | ||
PointSpecificationType | spec, | ||
int | t = 0 |
||
) |
Set the given point in world coordinate system with the given PointSpecificationType.
|
overridevirtual |
Set the requested region from this data object to match the requested region of the data object passed in as a parameter.
This method is implemented in the concrete subclasses of BaseData.
Implements mitk::BaseData.
|
overridevirtual |
Set the RequestedRegion to the LargestPossibleRegion.
This forces a filter to produce all of the output in one execution (i.e. not streaming) on the next call to Update().
Implements mitk::BaseData.
|
virtual |
|
protected |
swaps point coordinates and point data of the points with identifiers id1 and id2
bool mitk::PointSet::SwapPointPosition | ( | PointIdentifier | id, |
bool | moveUpwards, | ||
int | t = 0 |
||
) |
Swap a point at the given position (id) with the upper point (moveUpwards=true) or with the lower point (moveUpwards=false). If upper or lower index does not exist false is returned, if swap was successful true.
|
override |
|
overridevirtual |
Verify that the RequestedRegion is within the LargestPossibleRegion.
If the RequestedRegion is not within the LargestPossibleRegion, then the filter cannot possibly satisfy the request. This method returns true if the request can be satisfied (even if it will be necessary to process the entire LargestPossibleRegion) and returns false otherwise. This method is used by PropagateRequestedRegion(). PropagateRequestedRegion() throws a InvalidRequestedRegionError exception if the requested region is not within the LargestPossibleRegion.
Implements mitk::BaseData.
|
protected |
flag to indicate the right time to call SetBounds
Definition at line 290 of file mitkPointSet.h.
|
protected |
Definition at line 285 of file mitkPointSet.h.
|
protected |
Definition at line 283 of file mitkPointSet.h.
|
static |
Definition at line 84 of file mitkPointSet.h.
|
static |
Definition at line 83 of file mitkPointSet.h.