ImFusion C++ SDK 4.4.0
ImFusion::CT::ParametricGeometryGenerator Class Reference

#include <ImFusion/CT/Geometry/ParametricGeometryGenerator.h>

Parametric geometry generator for regular CBCT acquisition trajectories. More...

Inheritance diagram for ImFusion::CT::ParametricGeometryGenerator:

Detailed Description

Parametric geometry generator for regular CBCT acquisition trajectories.

Defines cone-beam geometry using parametric description (angular range, source-detector distance, etc.).

Public Member Functions

 ParametricGeometryGenerator (const ConeBeamGeometry &geom)
 ParametricGeometryGenerator (const SharedImageSet &sis)
std::unique_ptr< GeometryGeneratorclone () const override
 Factory method to create a clone of the generator.
std::string id () const override
 Provides a unique identifier for the generator.
std::vector< GeometryUtils::FullGeometryRepresentationcomputeFullGeometryRepresentation (const SharedImageSet &sis) const
 Compute the full geometry representation for all frames in the SharedImageSet.
GeometryUtils::FullGeometryRepresentation computeFullGeometryRepresentation (const SharedImageSet &sis, int frame) const
 Compute the full geometry representation for a single frame in the SharedImageSet.
Public Member Functions inherited from ImFusion::CT::detail::GlobalTransformationGeneratorBase
 GlobalTransformationGeneratorBase (const SharedImageSet &sis)
Public Member Functions inherited from ImFusion::CT::GeometryGenerator
 GeometryGenerator (const SharedImageSet &sis)
void configuration (Properties *p) const override
 Serialize the current object configuration into the given Properties object.
std::vector< GeometryUtils::FullGeometryRepresentationcomputeFullGeometryRepresentation (const SharedImageSet &sis) const
 Compute the full geometry representation for all frames in the SharedImageSet.
GeometryUtils::FullGeometryRepresentation computeFullGeometryRepresentation (const SharedImageSet &sis, int frame) const
 Compute the full geometry representation for a single frame in the SharedImageSet.
std::unique_ptr< ParameterWrapperBasecreateParameterWrapper (SharedImageSet &sis) const
 Generates a ParameterWrapperBase for the generator.
bool operator== (const GeometryGenerator &other)
 Compares members for equality.
Public Member Functions inherited from ImFusion::Configurable
virtual void configure (const Properties *p)
 Configure this object instance by de-serializing the given Properties.
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

Static Public Member Functions

static ParametricGeometryGenerator getOrFitParametricGeometry (const SharedImageSet &sis)
 If:

Trajectory parameters

Parameter< double > p_sourceDetDistance = {"sourceDetDistance", 0.0, this}
 Source to center of detector distance (in mm).
Parameter< double > p_sourcePatDistance = {"sourcePatDistance", 0.0, this}
 Source to patient distance (in mm).
Parameter< double > p_angleRange = {"angleRange", 0.0, this}
 Entire rotation range in degrees.

Detector parameters

Parameter< double > p_detSrcXShift = {"detSrcXShift", 0.0, this}
 Horizontal detector AND source shift in x direction (in mm).
Parameter< double > p_detRotation = {"detRotation", 0.0, this}
 Detector rotation in degrees.
Parameter< vec2 > p_detShear
 Detector shear, i.e. principal point offset x in mm.

Additional Inherited Members

Public Attributes inherited from ImFusion::CT::detail::GlobalTransformationGeneratorBase
SubProperty< RelativeTransformationSetupWrapperp_transformationSetup
 The transformation.
Public Attributes inherited from ImFusion::Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
Protected Attributes inherited from ImFusion::Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.

Member Function Documentation

◆ getOrFitParametricGeometry()

ParametricGeometryGenerator ImFusion::CT::ParametricGeometryGenerator::getOrFitParametricGeometry ( const SharedImageSet & sis)
static

If:

  • the geometry is legacy, return the legacy geometry converted to parametric geometry
  • the geometry is parametric, return the parametric geometry
  • the geometry is not parametric, fit a parametric geometry and return it

◆ clone()

std::unique_ptr< GeometryGenerator > ImFusion::CT::ParametricGeometryGenerator::clone ( ) const
overridevirtual

Factory method to create a clone of the generator.

Implements ImFusion::CT::GeometryGenerator.

◆ id()

std::string ImFusion::CT::ParametricGeometryGenerator::id ( ) const
inlineoverridevirtual

Provides a unique identifier for the generator.

Implements ImFusion::CT::GeometryGenerator.

◆ computeFullGeometryRepresentation() [1/2]

Compute the full geometry representation for all frames in the SharedImageSet.

Parameters
sisThe SharedImageSet to compute the geometry for.
Returns
A vector of FullGeometryRepresentation for each frame in the SharedImageSet.
Note
Can utilize DetectorDataComponent::p_persistentIndex to keep track of the original index of the frame.
The implementation calls computeFullGeometryRepresentation(const SharedImageSet&, int) for each frame.

◆ computeFullGeometryRepresentation() [2/2]

Compute the full geometry representation for a single frame in the SharedImageSet.

Parameters
sisThe SharedImageSet to compute the geometry for.
frameThe frame to compute the geometry for.
Returns
The FullGeometryRepresentation for the given frame.

Member Data Documentation

◆ p_detShear

Parameter<vec2> ImFusion::CT::ParametricGeometryGenerator::p_detShear
Initial value:
= {
"detShear",
vec2::Zero(),
this}

Detector shear, i.e. principal point offset x in mm.

Note
In contrast to the legacy ConeBeamGeometry, the offset in y is pointing down.

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