ImFusion SDK 4.3
AnatomicalStructuresCollider Class Reference

#include <SpinePlugin/include/ImFusion/Spine/AnatomicalStructuresCollider.h>

Helper class for visualizing overlaps of AnatomicalStructures in a Spine. More...

+ Inheritance diagram for AnatomicalStructuresCollider:

Detailed Description

Helper class for visualizing overlaps of AnatomicalStructures in a Spine.

Will automatically compute the pairwise overlap of structures whenever one has moved and visualize it in the provided views, for as long as this object exists. Can be used in a fast voxel based mode that does not match the meshes exactly, or a slower direct mesh intersection mode. To directly obtain just the overlap meshes for a given pair of structures using the fast mode, use the predictionBasedIntersection member function. For testing purposes, this object can be created in the Suite using the AnatomicalStructuresColliderAlgorithm below.

Public Member Functions

 AnatomicalStructuresCollider (const SpineData &input, const std::vector< InteractiveView * > &viewsToShowIn)
 
- Public Member Functions inherited from Configurable
virtual void configure (const Properties *p)
 Configure this object instance by de-serializing the given Properties.
 
virtual void configuration (Properties *p) const
 Serialize the current object configuration into the given Properties object.
 
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 Member Functions inherited from SignalReceiver
 SignalReceiver ()=default
 Default constructor.
 
 SignalReceiver (const SignalReceiver &other)
 Copy constructor, does not copy any existing signal connections from other.
 
SignalReceiveroperator= (SignalReceiver rhs)
 Assignment operator, disconnects all existing connections, does not copy any existing signal connections from rhs.
 
virtual ~SignalReceiver ()
 Virtual destructor disconnects from all connected signals.
 

Static Public Member Functions

static bool couldPotentiallyCollide (const AnatomicalStructure &structure1, const AnatomicalStructure &structure2)
 Increases sampling rate of segmentation maps, requires voxel based mode.
 
static std::unique_ptr< MeshpredictionBasedIntersection (const AnatomicalStructure &structure1, const AnatomicalStructure &structure, int upsamplingFactor, std::unique_ptr< GL::ImageProgram > &shaderProgram)
 Intersection computation using the ML prediction volumes.
 
static const SharedImagepredictionVolume (const AnatomicalStructure &structure)
 Returns the ML prediction volume created during segmentation or nullptr if none has been stored.
 

Public Attributes

Parameter< bool > p_collideProbabilityMaps
 
Parameter< int > p_upsamplingFactor
 If enabled the segmentation map overlap is meshed instead of doing a mesh-mesh intersection.
 
- Public Attributes inherited from Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
 

Additional Inherited Members

- Protected Member Functions inherited from SignalReceiver
void disconnectAll ()
 Disconnects all existing connections.
 
- Protected Attributes inherited from Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.
 

Member Function Documentation

◆ couldPotentiallyCollide()

static bool couldPotentiallyCollide ( const AnatomicalStructure & structure1,
const AnatomicalStructure & structure2 )
static

Increases sampling rate of segmentation maps, requires voxel based mode.

Quick preliminary check using bounding box

◆ predictionBasedIntersection()

static std::unique_ptr< Mesh > predictionBasedIntersection ( const AnatomicalStructure & structure1,
const AnatomicalStructure & structure,
int upsamplingFactor,
std::unique_ptr< GL::ImageProgram > & shaderProgram )
static

Intersection computation using the ML prediction volumes.

Both inputs need to have a prediction volume stored, use predictionVolume member function to check. Upsampling factor increases the resolution during computation mode, increasing accuracy at cost of performance. shaderProgram allows recycling an OpenGL shader to avoid the performance hit from creating it each time. If the unique_ptr is empty, a new shader will be created and kept there for usage in later invocations. Returns nullptr on failure.

Member Data Documentation

◆ p_collideProbabilityMaps

Parameter<bool> p_collideProbabilityMaps
Initial value:
= {
"collideProbabilityMaps",
true,
*this}

◆ p_upsamplingFactor

Parameter<int> p_upsamplingFactor
Initial value:
= {"upsamplingFactor",
1,
*this}

If enabled the segmentation map overlap is meshed instead of doing a mesh-mesh intersection.


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