NDEVR
API Documentation

A unit that has a complex rotational offset. More...

Collaboration diagram for MatrixUnit:
[legend]

Public Member Functions

 MatrixUnit (StringView name, const TranslatedString &translated_id, const Matrix< fltp08 > &mat, const Unit &base)
 Constructs a MatrixUnit with a rotational transformation applied to a base unit.
virtual Unitclone (const StringView &name, const TranslatedString &translated_id) const override
 Creates a copy of this unit with a new name and display name.
virtual fltp08 convertFromUnit (const fltp08 &program_space, const uint01 direction=X) const override
 Converts a scalar from this unit back to program space using the inverse matrix transformation.
virtual Ray< 3, fltp08convertFromUnit (const Ray< 3, fltp08 > &program_space) const override
 Converts a 3D ray from this unit back to program space using the inverse matrix transformation.
virtual Vertex< 3, fltp08convertFromUnit (const Vertex< 3, fltp08 > &program_space) const override
 Converts a 3D vertex from this unit back to program space using the inverse matrix transformation.
virtual fltp08 convertToUnit (const fltp08 &program_space, const uint01 direction=X) const override
 Converts a scalar from program space to this unit using the matrix transformation.
virtual Ray< 3, fltp08convertToUnit (const Ray< 3, fltp08 > &program_space) const override
 Converts a 3D ray from program space to this unit using the matrix transformation.
virtual Vertex< 3, fltp08convertToUnit (const Vertex< 3, fltp08 > &program_space) const override
 Converts a 3D vertex from program space to this unit using the matrix transformation.
virtual fltp08 epsilon (fltp08 value, uint01 direction=X) const override
 Returns the smallest meaningful difference for a value in this unit.
virtual Matrix< fltp08matrix () const override
 Returns the combined transformation matrix for this unit.
virtual const UnitsubUnit (uint01) const override
 Returns the sub-unit for the given axis direction.

Public Attributes

const Matrix< fltp08local_matrix
 The combined transformation matrix (rotation * base matrix).

Detailed Description

A unit that has a complex rotational offset.


Think northing-easting vs easting-southing

Definition at line 547 of file UnitTypes.h.

Constructor & Destructor Documentation

◆ MatrixUnit()

MatrixUnit::MatrixUnit ( StringView name,
const TranslatedString & translated_id,
const Matrix< fltp08 > & mat,
const Unit & base )
inline

Constructs a MatrixUnit with a rotational transformation applied to a base unit.

Parameters
[in]nameThe internal identifier for this unit.
[in]translated_idThe translated display name for this unit.
[in]matThe rotational transformation matrix to apply.
[in]baseThe base unit to which the rotation is applied.

Definition at line 558 of file UnitTypes.h.

References local_matrix, matrix(), Unit::name, and Unit::translated_id.

Member Function Documentation

◆ clone()

virtual Unit * MatrixUnit::clone ( const StringView & name,
const TranslatedString & translated_id ) const
nodiscardoverridevirtual

Creates a copy of this unit with a new name and display name.

Parameters
[in]nameThe internal identifier for the cloned unit.
[in]translated_idThe translated display name for the cloned unit.
Returns
A newly allocated clone of this unit.

Implements Unit.

References Unit::name, and Unit::translated_id.

◆ convertFromUnit() [1/3]

virtual fltp08 MatrixUnit::convertFromUnit ( const fltp08 & program_space,
const uint01 direction = X ) const
nodiscardoverridevirtual

Converts a scalar from this unit back to program space using the inverse matrix transformation.

Parameters
[in]program_spaceThe value in this unit's space.
[in]directionThe axis direction for the conversion.
Returns
The value converted back into program space.

Implements Unit.

◆ convertFromUnit() [2/3]

virtual Ray< 3, fltp08 > MatrixUnit::convertFromUnit ( const Ray< 3, fltp08 > & program_space) const
nodiscardoverridevirtual

Converts a 3D ray from this unit back to program space using the inverse matrix transformation.

Parameters
[in]program_spaceThe ray in this unit's space.
Returns
The ray converted back into program space.

Implements Unit.

◆ convertFromUnit() [3/3]

virtual Vertex< 3, fltp08 > MatrixUnit::convertFromUnit ( const Vertex< 3, fltp08 > & program_space) const
nodiscardoverridevirtual

Converts a 3D vertex from this unit back to program space using the inverse matrix transformation.

Parameters
[in]program_spaceThe vertex in this unit's space.
Returns
The vertex converted back into program space.

Implements Unit.

◆ convertToUnit() [1/3]

virtual fltp08 MatrixUnit::convertToUnit ( const fltp08 & program_space,
const uint01 direction = X ) const
nodiscardoverridevirtual

Converts a scalar from program space to this unit using the matrix transformation.

Parameters
[in]program_spaceThe value in program space.
[in]directionThe axis direction for the conversion.
Returns
The value converted into this unit's space.

Implements Unit.

◆ convertToUnit() [2/3]

virtual Ray< 3, fltp08 > MatrixUnit::convertToUnit ( const Ray< 3, fltp08 > & program_space) const
nodiscardoverridevirtual

Converts a 3D ray from program space to this unit using the matrix transformation.

Parameters
[in]program_spaceThe ray in program space.
Returns
The ray converted into this unit's space.

Implements Unit.

◆ convertToUnit() [3/3]

virtual Vertex< 3, fltp08 > MatrixUnit::convertToUnit ( const Vertex< 3, fltp08 > & program_space) const
nodiscardoverridevirtual

Converts a 3D vertex from program space to this unit using the matrix transformation.

Parameters
[in]program_spaceThe vertex in program space.
Returns
The vertex converted into this unit's space.

Implements Unit.

◆ epsilon()

virtual fltp08 MatrixUnit::epsilon ( fltp08 value,
uint01 direction = X ) const
nodiscardoverridevirtual

Returns the smallest meaningful difference for a value in this unit.

Parameters
[in]valueThe value to compute epsilon for.
[in]directionThe axis direction.
Returns
The epsilon value for the given input.

Reimplemented from Unit.

◆ matrix()

virtual Matrix< fltp08 > MatrixUnit::matrix ( ) const
inlinenodiscardoverridevirtual

Returns the combined transformation matrix for this unit.

Returns
The local transformation matrix.

Implements Unit.

Definition at line 619 of file UnitTypes.h.

References local_matrix.

Referenced by MatrixUnit().

◆ subUnit()

virtual const Unit * MatrixUnit::subUnit ( uint01 ) const
inlinenodiscardoverridevirtual

Returns the sub-unit for the given axis direction.

Parameters
[in]directionThe axis direction.
Returns
A pointer to the base reference unit.

Implements Unit.

Definition at line 629 of file UnitTypes.h.


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