![]() |
ImFusion C++ SDK 4.4.0
|
#include <AnatomyPlugin/include/ImFusion/AnatomyPlugin/AnatomicalStructure.h>
Interface for storing information (points, meshes, images, ...) about anatomical structures. More...
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 ImFusion::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 ImFusion::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 ImFusion::Utils::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 ImFusion::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 ImFusion::GenericAnatomicalStructure, ImFusion::GenericASC, ImFusion::Ilium, ImFusion::IntervertebralDisc, ImFusion::OrientedVertebra, ImFusion::Sacrum, and ImFusion::SpineData.
|
pure virtual |
A (machine-readable) name of the anatomy.
Implemented in ImFusion::GenericAnatomicalStructure, ImFusion::GenericASC, ImFusion::Ilium, ImFusion::IntervertebralDisc, ImFusion::OrientedVertebra, ImFusion::Sacrum, and ImFusion::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 ImFusion::GenericAnatomicalStructure, ImFusion::GenericASC, ImFusion::Ilium, ImFusion::IntervertebralDisc, ImFusion::OrientedVertebra, ImFusion::Sacrum, and ImFusion::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 ImFusion::AnatomicalStructureCollection, ImFusion::GenericASC, and ImFusion::SpineData.
|
virtual |
Retuns true if all members are empty, i.e. this structure has no associated information.
Reimplemented in ImFusion::AnatomicalStructureCollection, and ImFusion::Sacrum.
|
inline |
|
inline |
|
virtual |
Clear all data contained in this structure.
Reimplemented in ImFusion::AnatomicalStructureCollection, and ImFusion::SpineData.
|
overridevirtual |
Configure attributes and parameters.
Reimplemented from ImFusion::Configurable.
|
overridevirtual |
Retrieve configuration of attributes and parameters.
Reimplemented from ImFusion::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 ImFusion::GenericAnatomicalStructure, ImFusion::GenericASC, ImFusion::OrientedVertebra, and ImFusion::SpineData.