![]() |
ImFusion SDK 4.3
|
#include <AnatomyPlugin/include/ImFusion/AnatomyPlugin/AnatomicalStructure.h>
Interface for storing information (points, meshes, images, ...) about anatomical structures. More...
Inheritance diagram for AnatomicalStructure:Interface for storing information (points, meshes, images, ...) about anatomical structures.
A class can extend this class, the base version of which contains: a) A collection of various KeyValueStore objects (points, meshes, images, ...) b) A matrix which describes the local to world transformation for the objects in (a). Changing the matrix changes the KeyValueStore objects,
Public Types | |
| using | ContentType = AnatomyPlugin::ContentType |
Public Member Functions | |
| AnatomicalStructure (bool is2D=false) | |
| AnatomicalStructure (AnatomicalStructure &other) | |
| AnatomicalStructure (AnatomicalStructure &&other) | |
| virtual std::string | describe () const |
| A (human-readable) description of this anatomy. | |
| virtual std::string | identifier () const =0 |
| A (machine-readable) name of the anatomy. | |
| virtual std::string | serializationID () const =0 |
| String differentiating the type of Anatomical Structure For imfusion types, these strings should start with "imfusion." Used for (de)serialization. | |
| virtual void | setMatrixToWorld (const mat4 &m, bool synchronizeWorld=true) |
| Set the local to world matrix of this object. | |
| mat4 | matrixToWorld () const |
| virtual Geometry::AlignedBox | bounds (const mat4 &orientation=mat4::Identity(), const std::vector< ContentType > &toConsider={ContentType::Keypoints, ContentType::PointClouds, ContentType::Meshes, ContentType::Splines, ContentType::Graphs}) const |
| virtual bool | empty () const |
| Retuns true if all members are empty, i.e. this structure has no associated information. | |
| Properties & | attributes () |
| Properties const & | attributes () const |
| template<typename Derived> | |
| std::unique_ptr< Derived > | clone () const |
| Helper function for calling cloneImpl() and casting to a specific type. | |
| virtual void | clear () |
| Clear all data contained in this structure. | |
| void | configure (const Properties *p) override |
| Configure attributes and parameters. | |
| void | configuration (Properties *p) const override |
| Retrieve configuration of attributes and parameters. | |
| bool | is2D () const |
| Returns true if the AnatomicalStructure is 2D or false if it is 3D. | |
| virtual std::unique_ptr< AnatomicalStructure > | construct () const =0 |
Public Member Functions inherited from Configurable | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Public Attributes | |
| Signal | signalMatrixChanged |
| Signal | signalInDestructor |
| This signal is called in the destructor. Classes that inherit from AnatomicalStructure may additionally emit this signal. | |
Public Attributes inherited from Configurable | |
| Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Protected Member Functions | |
| virtual std::unique_ptr< AnatomicalStructure > | cloneImpl () const |
Derived classes may override this, but should call the base class cloneImpl to obtain a (unique-ptr) which they may assume to point to an object of the derived class. | |
Protected Member Functions inherited from NotCopyable | |
| NotCopyable (NotCopyable &&) noexcept=default | |
| NotCopyable & | operator= (NotCopyable &&) noexcept=default |
| NotCopyable (const NotCopyable &)=delete | |
| NotCopyable & | operator= (const NotCopyable &)=delete |
Protected Attributes | |
| mat4 | m_matrixToWorld = mat4::Identity() |
| KeyValueStore< vec3 > | m_keypoints {m_matrixToWorld} |
| KeyValueStore< vec4 > | m_planes {m_matrixToWorld} |
| KeyValueStore< std::unique_ptr< Spline > > | m_splines {m_matrixToWorld} |
| KeyValueStore< std::unique_ptr< SharedImageSet > > | m_images {m_matrixToWorld} |
| KeyValueStore< std::unique_ptr< Mesh > > | m_meshes {m_matrixToWorld} |
| KeyValueStore< std::unique_ptr< PointCloud > > | m_pointClouds {m_matrixToWorld} |
| KeyValueStore< std::unique_ptr< Graph > > | m_graphs {m_matrixToWorld} |
| KeyValueStore< AnatomicalStructureDeformation > | m_deformations {m_matrixToWorld} |
| Properties | m_attributes |
| General properties object for the Anatomical Structure. | |
| bool | m_is2D |
| Indicates if the AnatomicalStructure information is in 2D or, if false, in 3D. | |
Protected Attributes inherited from Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
| KeyValueStore< vec3 > & | keypoints () |
| Getters for non-Data key/value stores. | |
| const KeyValueStore< vec3 > & | keypoints () const |
| KeyValueStore< vec4 > & | planes () |
| const KeyValueStore< vec4 > & | planes () const |
| KeyValueStore< std::unique_ptr< Spline > > & | splines () |
| const KeyValueStore< std::unique_ptr< Spline > > & | splines () const |
| KeyValueStore< std::unique_ptr< SharedImageSet > > & | images () |
| Getters for Data key/value stores. | |
| const KeyValueStore< std::unique_ptr< SharedImageSet > > & | images () const |
| KeyValueStore< std::unique_ptr< Mesh > > & | meshes () |
| const KeyValueStore< std::unique_ptr< Mesh > > & | meshes () const |
| KeyValueStore< std::unique_ptr< PointCloud > > & | pointclouds () |
| const KeyValueStore< std::unique_ptr< PointCloud > > & | pointclouds () const |
| KeyValueStore< std::unique_ptr< Graph > > & | graphs () |
| const KeyValueStore< std::unique_ptr< Graph > > & | graphs () const |
| KeyValueStore< AnatomicalStructureDeformation > & | deformations () |
| const KeyValueStore< AnatomicalStructureDeformation > & | deformations () const |
|
inlinevirtual |
A (human-readable) description of this anatomy.
Reimplemented in GenericAnatomicalStructure, GenericASC, Ilium, IntervertebralDisc, OrientedVertebra, Sacrum, and SpineData.
|
pure virtual |
A (machine-readable) name of the anatomy.
Implemented in GenericAnatomicalStructure, GenericASC, Ilium, IntervertebralDisc, OrientedVertebra, Sacrum, and SpineData.
|
pure virtual |
String differentiating the type of Anatomical Structure For imfusion types, these strings should start with "imfusion." Used for (de)serialization.
Implemented in GenericAnatomicalStructure, GenericASC, Ilium, IntervertebralDisc, OrientedVertebra, Sacrum, and SpineData.
|
virtual |
Set the local to world matrix of this object.
If synchronizeWorld is true, then the local representation of all objects owned by this class are used to update the "world" representations. If synchronizeWorld is false, then the local representations are updated based on the "world" representations,
Reimplemented in AnatomicalStructureCollection, GenericASC, and SpineData.
|
virtual |
Retuns true if all members are empty, i.e. this structure has no associated information.
Reimplemented in AnatomicalStructureCollection, and Sacrum.
|
inline |
|
inline |
|
virtual |
Clear all data contained in this structure.
Reimplemented in AnatomicalStructureCollection, and SpineData.
|
overridevirtual |
Configure attributes and parameters.
Reimplemented from Configurable.
|
overridevirtual |
Retrieve configuration of attributes and parameters.
Reimplemented from Configurable.
|
protectedvirtual |
Derived classes may override this, but should call the base class cloneImpl to obtain a (unique-ptr) which they may assume to point to an object of the derived class.
This is done using the (virtual) construct function (see below).
Reimplemented in GenericAnatomicalStructure, GenericASC, OrientedVertebra, and SpineData.