Model Railroad System  2.2.1
Public Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
Parsers::TrackGraph::Transform2D Class Reference

Two dimensional transform class. More...

#include <TrackGraph.h>

Public Member Functions

 Transform2D ()
 Default constructor. More...
 
 Transform2D (float r11, float r12, float tx, float r21, float r22, float ty, float a0=0.0, float a1=0.0, float s=1.0)
 Full fledged constructor. More...
 
 Transform2D (const Transform2D *ts)
 Copy constructor. More...
 
float Determinant () const
 Return the determinant. More...
 
float Minor (int, int) const
 Return the minor. More...
 
Transform2DInverse () const
 Return the inverse. More...
 
void Apply (float x, float y, float s, float &tx, float &ty, float &ts) const
 Apply a scaled transformation. More...
 
int Apply (float x, float y, float &tx, float &ty) const
 Apply a normal transformation/. More...
 
int operator== (const Transform2D &other) const
 Equality operator. More...
 
int operator!= (const Transform2D &other) const
 Inequality operator. More...
 

Private Attributes

float matrix [3][3]
 Transform matrix. More...
 

Static Private Attributes

constexpr static float FUZZ = .00001
 Fuzz factor. More...
 

Friends

Transform2Doperator* (const Transform2D &t1, const Transform2D &t2)
 Matrix multiplication. More...
 

Detailed Description

Two dimensional transform class.

Author
Robert Heller <heller@deepsoft.com>

Constructor & Destructor Documentation

◆ Transform2D() [1/3]

Parsers::TrackGraph::Transform2D::Transform2D ( )

Default constructor.

Creates an identity tranform.

◆ Transform2D() [2/3]

Parsers::TrackGraph::Transform2D::Transform2D ( float  r11,
float  r12,
float  tx,
float  r21,
float  r22,
float  ty,
float  a0 = 0.0,
float  a1 = 0.0,
float  s = 1.0 
)

Full fledged constructor.

◆ Transform2D() [3/3]

Parsers::TrackGraph::Transform2D::Transform2D ( const Transform2D ts)

Copy constructor.

Member Function Documentation

◆ Apply() [1/2]

int Parsers::TrackGraph::Transform2D::Apply ( float  x,
float  y,
float &  tx,
float &  ty 
) const

Apply a normal transformation/.

◆ Apply() [2/2]

void Parsers::TrackGraph::Transform2D::Apply ( float  x,
float  y,
float  s,
float &  tx,
float &  ty,
float &  ts 
) const

Apply a scaled transformation.

◆ Determinant()

float Parsers::TrackGraph::Transform2D::Determinant ( ) const

Return the determinant.

◆ Inverse()

Transform2D* Parsers::TrackGraph::Transform2D::Inverse ( ) const

Return the inverse.

◆ Minor()

float Parsers::TrackGraph::Transform2D::Minor ( int  ,
int   
) const

Return the minor.

◆ operator!=()

int Parsers::TrackGraph::Transform2D::operator!= ( const Transform2D other) const
inline

Inequality operator.

◆ operator==()

int Parsers::TrackGraph::Transform2D::operator== ( const Transform2D other) const

Equality operator.

Friends And Related Function Documentation

◆ operator*

Transform2D* operator* ( const Transform2D t1,
const Transform2D t2 
)
friend

Matrix multiplication.

Member Data Documentation

◆ FUZZ

constexpr static float Parsers::TrackGraph::Transform2D::FUZZ = .00001
staticconstexprprivate

Fuzz factor.

◆ matrix

float Parsers::TrackGraph::Transform2D::matrix[3][3]
private

Transform matrix.