NDEVR
API Documentation
GeometryRegistrationabstract

A service that contains registered algorithms for registering geometry such that the input is adjusted to match the output. More...

Inheritance diagram for GeometryRegistration:
[legend]
Collaboration diagram for GeometryRegistration:
[legend]

Public Member Functions

 GeometryRegistration (const GeometryRegistration &&filter)=delete
 Deleted move constructor — registration engines are non-movable.
 GeometryRegistration (const GeometryRegistration &filter)=delete
 Deleted copy constructor — registration engines are non-copyable.
virtual ~GeometryRegistration ()=default
 Virtual destructor.
virtual bool canRunRegistration (const GeometryRegistrationParameters &)
 Returns whether the registration engine can run given the target parameters.
virtual Buffer< GeometryRegistrationDescriptiondefaultRegistrationArguments ()
 Returns the default set of registration argument descriptions for this engine.
const StringregistrationID () const
 Returns the unique string identifier of this registration engine.
const TranslatedStringregistrationName () const
 Returns the translated display name of this registration engine.
virtual bool runRegistration (GeometryRegistrationParameters &parameters)=0
 Runs the registration algorithm on the provided parameters.

Static Public Member Functions

static void AddAvailableRegistrationEngine (GeometryRegistration *filter)
 Registers a new GeometryRegistration engine in the global dictionary of available engines.
static const Dictionary< String, GeometryRegistration * > & AvailableRegistrationEngines ()
 Returns the global dictionary of all available registration engines, keyed by engine ID.
static void ExecuteRegistration (const JSONNode &active_filters, const Buffer< Model > &models_to_register, const Buffer< Model > &reference_models, LogPtr log, const void *lock)
 Executes a registration pass using the specified filters, aligning the given models to the reference models.
static Buffer< GeometryRegistrationDescriptionGetAvailableDescriptions ()
 Collects and returns the default description/option sets from all available registration engines.
static DynamicPointer< ManagedDesignCommandRegistrationCommand (const UUID &reference, const GeometryRegistrationDescription &filter)
 Creates a managed design command for performing registration with the given reference and filter.
static String ToCommandString (const Buffer< GeometryRegistrationDescription > &descriptions)
 Serializes a set of registration descriptions into a command string representation.

Protected Member Functions

 GeometryRegistration (const StringView &name, const StringView &id)
 Constructs a GeometryRegistration engine with the given display name and unique identifier.

Static Protected Member Functions

static void FinishRegistration (const Matrix< fltp08 > &transform, Geometry &geo, const GeometryRegistrationParameters &params)
 Applies the final computed registration transform back to the geometry.
static void PrepareForRegistration (const Matrix< fltp08 > &transform, const Geometry &geo, GeometryRegistrationParameters &params, bool is_reference)
 Extracts and prepares geometry vertices from a Geometry object for use in registration.

Protected Attributes

String m_id
 The unique string identifier of this registration engine.
TranslatedString m_name
 The translated display name of this registration engine.

Static Protected Attributes

static Dictionary< String, GeometryRegistration * > s_global_available_registration_engines
 Global dictionary of all registered GeometryRegistration engines, keyed by engine ID.

Detailed Description

A service that contains registered algorithms for registering geometry such that the input is adjusted to match the output.


See https://en.wikipedia.org/wiki/Point-set_registration.

GeometryRegistration serves as both a service manager (discovering and storing available registration engines) and a base class that concrete engines inherit from to provide their specific alignment algorithm (e.g., ICP variants).

See also
Geometry, GeometryFilter

Definition at line 72 of file GeometryRegistration.h.

Constructor & Destructor Documentation

◆ GeometryRegistration()

GeometryRegistration::GeometryRegistration ( const StringView & name,
const StringView & id )
explicitprotected

Constructs a GeometryRegistration engine with the given display name and unique identifier.


Parameters
[in]nameThe human-readable name for this registration engine.
[in]idA unique string identifier for this registration engine.

Referenced by GeometryRegistration(), GeometryRegistration(), and AddAvailableRegistrationEngine().

Member Function Documentation

◆ AddAvailableRegistrationEngine()

void GeometryRegistration::AddAvailableRegistrationEngine ( GeometryRegistration * filter)
static

Registers a new GeometryRegistration engine in the global dictionary of available engines.


Parameters
[in]filterThe registration engine to add. Ownership is not transferred.

References GeometryRegistration().

◆ AvailableRegistrationEngines()

const Dictionary< String, GeometryRegistration * > & GeometryRegistration::AvailableRegistrationEngines ( )
static

Returns the global dictionary of all available registration engines, keyed by engine ID.


Returns
A const reference to the dictionary mapping engine IDs to their GeometryRegistration pointers.

◆ canRunRegistration()

virtual bool GeometryRegistration::canRunRegistration ( const GeometryRegistrationParameters & )
inlinevirtual

Returns whether the registration engine can run given the target parameters.


Override to impose preconditions (e.g., minimum point count). Default returns true.

Parameters
[in]parametersThe registration parameters to validate.
Returns
True if this engine can handle the given parameters, false otherwise.

Definition at line 151 of file GeometryRegistration.h.

◆ defaultRegistrationArguments()

virtual Buffer< GeometryRegistrationDescription > GeometryRegistration::defaultRegistrationArguments ( )
virtual

Returns the default set of registration argument descriptions for this engine.


Returns
A buffer of GeometryRegistrationDescription objects describing this engine's options.

Reimplemented in PCLRegistration.

◆ ExecuteRegistration()

void GeometryRegistration::ExecuteRegistration ( const JSONNode & active_filters,
const Buffer< Model > & models_to_register,
const Buffer< Model > & reference_models,
LogPtr log,
const void * lock )
static

Executes a registration pass using the specified filters, aligning the given models to the reference models.


Parameters
[in]active_filtersJSON node describing which registration engines and options to use.
[in]models_to_registerThe models whose geometry will be transformed to align with the reference.
[in]reference_modelsThe fixed reference models to align against.
[in]logLog target for progress and diagnostic output.
[in]lockOptional mutex/lock pointer for thread-safe access.

◆ FinishRegistration()

void GeometryRegistration::FinishRegistration ( const Matrix< fltp08 > & transform,
Geometry & geo,
const GeometryRegistrationParameters & params )
staticprotected

Applies the final computed registration transform back to the geometry.


Parameters
[in]transformThe original world-space transform of the geometry.
[in]geoThe geometry to update with the registration result.
[in]paramsThe registration parameters containing the computed alignment.

◆ GetAvailableDescriptions()

Buffer< GeometryRegistrationDescription > GeometryRegistration::GetAvailableDescriptions ( )
static

Collects and returns the default description/option sets from all available registration engines.


Returns
A buffer of GeometryRegistrationDescription objects, one per available engine.

◆ PrepareForRegistration()

void GeometryRegistration::PrepareForRegistration ( const Matrix< fltp08 > & transform,
const Geometry & geo,
GeometryRegistrationParameters & params,
bool is_reference )
staticprotected

Extracts and prepares geometry vertices from a Geometry object for use in registration.


Populates the registration parameters with the vertex data from the given geometry, applying the provided transform.

Parameters
[in]transformThe world-space transform of the geometry.
[in]geoThe geometry to extract vertices from.
[in]paramsThe registration parameters to populate.
[in]is_referenceWhether this geometry is the fixed reference (true) or a movable source (false).

◆ RegistrationCommand()

DynamicPointer< ManagedDesignCommand > GeometryRegistration::RegistrationCommand ( const UUID & reference,
const GeometryRegistrationDescription & filter )
static

Creates a managed design command for performing registration with the given reference and filter.


Parameters
[in]referenceThe UUID of the reference model or object.
[in]filterThe registration description specifying engine and options.
Returns
A DynamicPointer to the created ManagedDesignCommand.

◆ registrationID()

const String & GeometryRegistration::registrationID ( ) const
inlinenodiscard

Returns the unique string identifier of this registration engine.


Returns
A const reference to the engine ID.

Definition at line 169 of file GeometryRegistration.h.

References m_id.

◆ registrationName()

const TranslatedString & GeometryRegistration::registrationName ( ) const
inlinenodiscard

Returns the translated display name of this registration engine.


Returns
A const reference to the translated name.

Definition at line 163 of file GeometryRegistration.h.

References m_name.

◆ runRegistration()

virtual bool GeometryRegistration::runRegistration ( GeometryRegistrationParameters & parameters)
pure virtual

Runs the registration algorithm on the provided parameters.


Subclasses must implement this to perform their specific point-set registration.

Parameters
[in]parametersThe registration parameters including reference and movable point sets.
Returns
True if registration succeeded, false otherwise.

Implemented in PCLRegistration.

◆ ToCommandString()

String GeometryRegistration::ToCommandString ( const Buffer< GeometryRegistrationDescription > & descriptions)
static

Serializes a set of registration descriptions into a command string representation.


Parameters
[in]descriptionsThe registration descriptions to serialize.
Returns
A String encoding of the descriptions suitable for command storage or transmission.

The documentation for this class was generated from the following file: