# CoordinateSystem2D

### Description

Represents a bounded local coordinate system consisting of a reference point, rotation and scale. Typically used to store results of template-matching routines.

struct CoordinateSystem2D
{
CoordinateSystem2D();
CoordinateSystem2D( const Point2D& origin_, float angle_, float scale_ = 1.0f );
CoordinateSystem2D( const Vector2D& delta, float angle_, float scale_ = 1.0f )'
CoordinateSystem2D( float x_, float y_, float angle_, float scale_ = 1.0f );

Point2D origin;
float angle;
float scale;

Point2D Origin( void ) const;
float Angle( void ) const;
float Scale( void ) const;
float X( void ) const;
float Y( void ) const;

bool operator == ( const CoordinateSystem2D& rhs ) const;
bool operator != ( const CoordinateSystem2D& rhs ) const;
};


Structure fields and default values (if defined) are described below:

struct CoordinateSystem2D
{
Point2D	Origin;
Real	Angle;
float	Scale;

explicit CoordinateSystem2D
(
float Scale_ = 1.0f
) :
Scale(Scale_)
{}

Point2D Origin() const	{ return Origin;	};
Real Angle() const		{ return Angle;		};
float Scale() const		{ return Scale;		};

bool operator == ( const avl::CoordinateSystem2D& rhs ) const
{
return Origin == rhs.Origin &&
Angle == rhs.Angle &&
Scale == rhs.Scale;
}

bool operator != ( const avl::CoordinateSystem2D& rhs ) const
{
return !(operator==(rhs));
}

};