ImFusion SDK 4.3
AnatomicalStructure Class Referenceabstract

#include <AnatomyPlugin/include/ImFusion/AnatomyPlugin/AnatomicalStructure.h>

Interface for storing information (points, meshes, images, ...) about anatomical structures. More...

+ Inheritance diagram for AnatomicalStructure:

Detailed Description

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,

See also
ImpliedImageCoordiantes Derived classes of this class must override the construct() function.

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.
 
Propertiesattributes ()
 
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< AnatomicalStructureconstruct () 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
 
Configurableoperator= (const Configurable &)
 
Configurableoperator= (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< AnatomicalStructurecloneImpl () 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
 
NotCopyableoperator= (NotCopyable &&) noexcept=default
 
 NotCopyable (const NotCopyable &)=delete
 
NotCopyableoperator= (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< AnatomicalStructureDeformationm_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< Paramm_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
 

Member Function Documentation

◆ describe()

virtual std::string describe ( ) const
inlinevirtual

A (human-readable) description of this anatomy.

Reimplemented in GenericAnatomicalStructure, GenericASC, Ilium, IntervertebralDisc, OrientedVertebra, Sacrum, and SpineData.

◆ identifier()

virtual std::string identifier ( ) const
pure virtual

A (machine-readable) name of the anatomy.

Implemented in GenericAnatomicalStructure, GenericASC, Ilium, IntervertebralDisc, OrientedVertebra, Sacrum, and SpineData.

◆ serializationID()

virtual std::string serializationID ( ) const
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.

◆ setMatrixToWorld()

virtual void setMatrixToWorld ( const mat4 & m,
bool synchronizeWorld = true )
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,

See also
ImpliedImageCoordinates Derived classes should call the parent version.

Reimplemented in AnatomicalStructureCollection, GenericASC, and SpineData.

◆ empty()

virtual bool empty ( ) const
virtual

Retuns true if all members are empty, i.e. this structure has no associated information.

Reimplemented in AnatomicalStructureCollection, and Sacrum.

◆ attributes() [1/2]

Properties & attributes ( )
inline
Returns
The general properties object for the Anatomical Structure.

◆ attributes() [2/2]

Properties const & attributes ( ) const
inline

Returns
The general properties object for the Anatomical Structure.

◆ clear()

virtual void clear ( )
virtual

Clear all data contained in this structure.

Reimplemented in AnatomicalStructureCollection, and SpineData.

◆ configure()

void configure ( const Properties * p)
overridevirtual

Configure attributes and parameters.

Reimplemented from Configurable.

◆ configuration()

void configuration ( Properties * p) const
overridevirtual

Retrieve configuration of attributes and parameters.

Reimplemented from Configurable.

◆ cloneImpl()

virtual std::unique_ptr< AnatomicalStructure > cloneImpl ( ) const
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.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close