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));
	}

};