ImFusion C++ SDK 4.4.0
ImFusion::AnatomicalStructure Class Referenceabstract

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

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

Inheritance diagram for ImFusion::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< 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< 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 ImFusion::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 ImFusion::AnatomicalStructure::describe ( ) const
inlinevirtual

◆ identifier()

virtual std::string ImFusion::AnatomicalStructure::identifier ( ) const
pure virtual

◆ serializationID()

virtual std::string ImFusion::AnatomicalStructure::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 ImFusion::GenericAnatomicalStructure, ImFusion::GenericASC, ImFusion::Ilium, ImFusion::IntervertebralDisc, ImFusion::OrientedVertebra, ImFusion::Sacrum, and ImFusion::SpineData.

◆ setMatrixToWorld()

virtual void ImFusion::AnatomicalStructure::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 ImFusion::AnatomicalStructureCollection, ImFusion::GenericASC, and ImFusion::SpineData.

◆ empty()

virtual bool ImFusion::AnatomicalStructure::empty ( ) const
virtual

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

Reimplemented in ImFusion::AnatomicalStructureCollection, and ImFusion::Sacrum.

◆ attributes() [1/2]

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

◆ attributes() [2/2]

Properties const & ImFusion::AnatomicalStructure::attributes ( ) const
inline

Returns
The general properties object for the Anatomical Structure.

◆ clear()

virtual void ImFusion::AnatomicalStructure::clear ( )
virtual

Clear all data contained in this structure.

Reimplemented in ImFusion::AnatomicalStructureCollection, and ImFusion::SpineData.

◆ configure()

void ImFusion::AnatomicalStructure::configure ( const Properties * p)
overridevirtual

Configure attributes and parameters.

Reimplemented from ImFusion::Configurable.

◆ configuration()

void ImFusion::AnatomicalStructure::configuration ( Properties * p) const
overridevirtual

Retrieve configuration of attributes and parameters.

Reimplemented from ImFusion::Configurable.

◆ cloneImpl()

virtual std::unique_ptr< AnatomicalStructure > ImFusion::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 ImFusion::GenericAnatomicalStructure, ImFusion::GenericASC, ImFusion::OrientedVertebra, and ImFusion::SpineData.


The documentation for this class was generated from the following file:
  • AnatomyPlugin/include/ImFusion/AnatomyPlugin/AnatomicalStructure.h
Search Tab / S to search, Esc to close