JG ROOT Tools libraries  version 5.0 - august 2014
RAffine2D Class Reference

#include <RAffine2D.hh>

Inheritance diagram for RAffine2D:
RMatrix2D RContourBaseEllipse

Public Member Functions

 RAffine2D ()
 
 RAffine2D (const RMatrix2D &m)
 
 RAffine2D (const RVector2D &t, const RMatrix2D &m=RMatrix2D::id)
 
 RAffine2D (const RVector2D &v0, const RVector2D &v1, const RVector2D &v2, const RMatrixDef type=axisVector)
 
 RAffine2D (const RAffine2D &a)
 
RAffine2Doperator= (const RAffine2D &a)
 
RAffine2Doperator= (const RMatrix2D &m)
 
RAffine2Doperator= (const RVector2D &v)
 
virtual ~RAffine2D ()
 
virtual RMatrix2D GetMatrix () const
 
virtual RVector2D GetTranslation () const
 
virtual RVector2D GetVector () const
 
virtual RPoint2D GetOrigin () const
 
virtual void SetOrigin (const RPoint2D ctr)
 
virtual void SetAxis (const u_int n, const RPoint2D v)
 
RAffine2D Inverse () const
 
RVector2D Transform (const RVector2D &v) const
 
RAffine2D operator+ () const
 
RAffine2D operator- () const
 
RAffine2D operator+= (const RAffine2D &t)
 
RAffine2D operator-= (const RAffine2D &t)
 
RAffine2D operator*= (const RAffine2D &t)
 
RAffine2D operator*= (const Double_t r)
 
RAffine2D operator/= (const Double_t r)
 
RAffine2D operator+ (const RAffine2D &t) const
 
RAffine2D operator- (const RAffine2D &t) const
 
RAffine2D operator* (const RAffine2D &t) const
 
RVector2D operator* (const RVector2D &v) const
 
RAffine2D operator* (const Double_t r) const
 
RAffine2D operator/ (const Double_t r) const
 
 ClassDef (RAffine2D, 0)
 
- Public Member Functions inherited from RMatrix2D
 RMatrix2D (const Double_t diag=1.)
 
 RMatrix2D (const Double_t m00, const Double_t m01, const Double_t m10, const Double_t m11)
 
 RMatrix2D (const RVector2D v1, const RVector2D v2, const RMatrixDef type=columnVector)
 
 RMatrix2D (const RMatrix2D &m)
 
virtual RVector2D operator[] (const u_int n) const
 
virtual RVector2D GetColumn (const u_int n) const
 
virtual RVector2D GetLine (const u_int n) const
 
virtual RVector2D GetAxis (const u_int n) const
 
virtual void SetColumn (const u_int n, const RPoint2D v)
 
virtual void SetLine (const u_int n, const RPoint2D v)
 
Double_t Determinant () const
 
RMatrix2D Inverse () const
 
RVector2D Transform (const RVector2D &v) const
 
RMatrix2D operator+ () const
 
RMatrix2D operator- () const
 
RMatrix2D operator+= (const RMatrix2D &m)
 
RMatrix2D operator-= (const RMatrix2D &m)
 
RMatrix2D operator*= (const RMatrix2D &m)
 
RMatrix2D operator*= (const Double_t r)
 
RMatrix2D operator/= (const Double_t r)
 
RMatrix2D operator+ (const RMatrix2D &m) const
 
RMatrix2D operator- (const RMatrix2D &m) const
 
RMatrix2D operator* (const RMatrix2D &m) const
 
RVector2D operator* (const RVector2D &v) const
 
RMatrix2D operator* (const Double_t r) const
 
RMatrix2D operator/ (const Double_t r) const
 
 ClassDef (RMatrix2D, 0)
 

Protected Attributes

RVector2D tr
 Translation vector (new center)
 
- Protected Attributes inherited from RMatrix2D
Double_t me [4]
 Eléménts de matrice.
 

Private Member Functions

 GObject (RAffine2D)
 

Additional Inherited Members

- Public Types inherited from RMatrix2D
enum  RMatrixDef { columnVector = 0, lineVector = 1, axisVector = 2 }
 Interprétation des vecteurs à la création d'une matrice. More...
 
- Static Public Member Functions inherited from RMatrix2D
static RMatrix2D Rotation (const Double_t angle)
 
- Static Public Attributes inherited from RMatrix2D
static const RMatrix2D null = RMatrix2D(0.)
 Matrice nulle.
 
static const RMatrix2D id = RMatrix2D(1.)
 Matrice identité
 
static const Double_t zero = RVector2D::zero
 Limites de test du zéro
 

Detailed Description

This class defines a transformation corresponding to a matrix product and a vector translation. It corresponds to a referential change (in position and orientation).

It can be defined from:

  • the transformation matrix and the translation vector
  • the new center and the new axis vector, expressed in the initial frame coordinates.

This transformation can also be used to define an ellipse.

Constructor & Destructor Documentation

RAffine2D::RAffine2D ( )
inline

Default constructor: identity transformation.

References RVector2D::null, and tr.

Referenced by Inverse(), and SetAxis().

RAffine2D::RAffine2D ( const RMatrix2D m)
inline

Constructor from a matrix.

Parameters
mtransformation matrix

References RVector2D::null, and tr.

RAffine2D::RAffine2D ( const RVector2D t,
const RMatrix2D m = RMatrix2D::id 
)
inline

Constructor from vector and matrix.

Parameters
ttranslation vector
mtransformation matrix

References tr.

RAffine2D::RAffine2D ( const RVector2D v0,
const RVector2D v1,
const RVector2D v2,
const RMatrixDef  type = axisVector 
)

Constructor from 3 vectors: either the translation and the matrix vectors, either the center and the axis vectors, depending on type argument (see RMatrix2D class for vectors v1 et v2 interpretation).

If v1 and v2 are axis of the new frame, v0 is considered as the center, else v0 is considered as the translation vector (which is just the opposite).

Parameters
v0translation or center
v1first axis or matrix vector
v2second axis or matrix vector
typevectors interpretation
RAffine2D::RAffine2D ( const RAffine2D a)
inline

Copy Constructor.

Parameters
atransformation to copy

References tr.

RAffine2D::~RAffine2D ( )
inlinevirtual

Destructor.

Member Function Documentation

RAffine2D::GObject ( RAffine2D  )
private

Macro from GCpp library that defines the following functions:

  • ClassName(): return the real class name of the object
  • StaticClassName(): return the used class name of the object (that may be a base class of the real object).
  • IsInstanceOf<T>(): return true if the current object is an instance of the template class name argument
  • Clone(): return an allocated copy of the object.
RAffine2D & RAffine2D::operator= ( const RAffine2D a)

Affectation operator.

Parameters
atransformation to copy

References tr.

RAffine2D & RAffine2D::operator= ( const RMatrix2D m)
virtual

Affectation from a matrix (null translation).

Parameters
mmatrix to set

Reimplemented from RMatrix2D.

References RVector2D::null, and tr.

RAffine2D & RAffine2D::operator= ( const RVector2D v)

Affectation from a vector (identity matrix).

Parameters
vvector to set

References RMatrix2D::id, and tr.

RMatrix2D RAffine2D::GetMatrix ( ) const
inlinevirtual

Get the transformation matrix.

Referenced by GetOrigin(), operator*(), operator+(), operator-(), SetOrigin(), and Transform().

RVector2D RAffine2D::GetTranslation ( ) const
inlinevirtual

Get the translation vector.

References tr.

RVector2D RAffine2D::GetVector ( ) const
inlinevirtual

Get the translation vector.

References tr.

Referenced by operator*(), and Transform().

RPoint2D RAffine2D::GetOrigin ( ) const
inlinevirtual

Get the origin point (opposite to the translation).

References GetMatrix(), Inverse(), and tr.

Referenced by RContourBaseEllipse::GetCenter(), and SetAxis().

void RAffine2D::SetOrigin ( const RPoint2D  ctr)
inlinevirtual

Set the transformation centre.

Parameters
ctrnew ellipse center

References GetMatrix(), and tr.

Referenced by RContourBaseEllipse::SetCenter().

void RAffine2D::SetAxis ( const u_int  n,
const RPoint2D  v 
)
virtual

Set transformation axis, with no change of the center (which means that the translation vector may be modified).

Parameters
naxis number (0 or 1)
vnew axis vector

Reimplemented from RMatrix2D.

References RMatrix2D::axisVector, RMatrix2D::GetAxis(), GetOrigin(), and RAffine2D().

RAffine2D RAffine2D::Inverse ( ) const
inline

Invert transformation.

References RMatrix2D::Inverse(), RAffine2D(), and tr.

Referenced by GetOrigin().

RVector2D RAffine2D::Transform ( const RVector2D v) const
inline

Applay the transformation to a vector.

Parameters
vvector

References GetMatrix(), and GetVector().

Referenced by RContourBaseEllipse::CheckPoint(), and RContourBaseEllipse::NormalisedDistance().

RAffine2D RAffine2D::operator+ ( ) const
inline

Unary sign operator +.

RAffine2D RAffine2D::operator- ( ) const
inline

Unary sign operator +.

References GetMatrix(), and tr.

RAffine2D RAffine2D::operator+= ( const RAffine2D t)
inline

Transformations addition and affectation.

Parameters
toperand transformation
RAffine2D RAffine2D::operator-= ( const RAffine2D t)
inline

Transformations subtraction and affectation.

Parameters
toperand transformation
RAffine2D RAffine2D::operator*= ( const RAffine2D t)
inline

Transformations composition and affectation.

Parameters
toperand transformation
RAffine2D RAffine2D::operator*= ( const Double_t  r)
inline

Transformations product with scalar value and affectation.

Parameters
rreal value (scalar)
RAffine2D RAffine2D::operator/= ( const Double_t  r)
inline

Transformations division by scalar value and affectation.

Parameters
rreal value (scalar)
RAffine2D RAffine2D::operator+ ( const RAffine2D t) const
inline

Transformations addition.

Parameters
toperand transformation

References GetMatrix(), and tr.

RAffine2D RAffine2D::operator- ( const RAffine2D t) const
inline

Transformations subtraction.

Parameters
toperand transformation

References GetMatrix(), and tr.

RAffine2D RAffine2D::operator* ( const RAffine2D t) const
inline

Transformations composition.

Parameters
toperand transformation

References GetMatrix(), and GetVector().

RVector2D RAffine2D::operator* ( const RVector2D v) const
inline

Linear application to a vector.

Parameters
voperand vector

References GetMatrix(), and GetVector().

RAffine2D RAffine2D::operator* ( const Double_t  r) const
inline

Multiplication with a scalar value.

Parameters
rreal value (scalar)

References GetMatrix(), and GetVector().

RAffine2D RAffine2D::operator/ ( const Double_t  r) const
inline

Division by a scalar value.

Parameters
rreal value (scalar)
RAffine2D::ClassDef ( RAffine2D  ,
 
)

For ROOT dictionary.


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