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

#include <RMatrix2D.hh>

Inheritance diagram for RMatrix2D:
RAffine2D RContourBaseEllipse

Public Types

enum  RMatrixDef { columnVector = 0, lineVector = 1, axisVector = 2 }
 Interprétation des vecteurs à la création d'une matrice. More...
 

Public Member Functions

 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 RMatrix2Doperator= (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)
 
virtual void SetAxis (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)
 

Static Public Member Functions

static RMatrix2D Rotation (const Double_t angle)
 

Static Public Attributes

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
 

Protected Attributes

Double_t me [4]
 Eléménts de matrice.
 

Private Member Functions

 GObject (RMatrix2D)
 

Detailed Description

Matrice dans un espace à 2 dimensions

Une matrice correspond à la transformation des coordonnées dans un changement de repère (cf. Algèbre 2D).

Note
  • la matrice par défaut est la matrice identité

Member Enumeration Documentation

Enumerator
columnVector 

Définition de la matrice par vecteurs colonnes.

lineVector 

Définition de la matrice par vecteurs lignes.

axisVector 

Définition de la matrice par vecteurs d'axes du nouveau repère

Constructor & Destructor Documentation

RMatrix2D::RMatrix2D ( const Double_t  diag = 1.)

Diagonal matrix constructor.

Parameters
diagdiagonal elements value

Referenced by Inverse(), and SetAxis().

RMatrix2D::RMatrix2D ( const Double_t  m00,
const Double_t  m01,
const Double_t  m10,
const Double_t  m11 
)

Matrix constructor from elements.

Parameters
m00matrix element ligne 0 column 0
m01matrix element ligne 0 column 1
m10matrix element ligne 1 column 0
m11matrix element ligne 1 column 1

References me.

RMatrix2D::RMatrix2D ( const RVector2D  v1,
const RVector2D  v2,
const RMatrixDef  type = columnVector 
)

Matrix constructor from 2 vectors. Depending on type parameters, the vectors are used in a different way to create the matrix:

  • RMatrixDef::columnVector : column vectors
  • RMatrixDef::lineVector : line vectors
  • RMatrixDef::axisVector : vectors (i', j') of axis from the transformation
    Parameters
    v1first definition vector
    v2second definition vector
    typevectors interpretation

References axisVector, lineVector, me, RVector2D::X(), and RVector2D::Y().

RMatrix2D::RMatrix2D ( const RMatrix2D m)

Copy constructor.

Parameters
mmatrix to copy

References me.

Member Function Documentation

RMatrix2D::GObject ( RMatrix2D  )
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.
RMatrix2D & RMatrix2D::operator= ( const RMatrix2D m)
virtual

Affectation operator.

Parameters
mmatrix to copy

Reimplemented in RAffine2D.

References me.

RVector2D RMatrix2D::operator[] ( const u_int  n) const
virtual

Get a matrix line vector.

Parameters
nline number

References me.

RVector2D RMatrix2D::GetColumn ( const u_int  n) const
virtual

Get a matrix column vector.

Parameters
ncolumn number

References me.

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

RVector2D RMatrix2D::GetLine ( const u_int  n) const
virtual

Get a matrix line vector.

Parameters
nline number

References me.

Referenced by RContourBaseEllipse::GetAxisA(), RContourBaseEllipse::GetAxisB(), and operator*().

RVector2D RMatrix2D::GetAxis ( const u_int  n) const
virtual

Return one of the transformation axis (see class description).

Parameters
naxis number

References Determinant(), and me.

Referenced by Inverse(), RAffine2D::SetAxis(), and SetAxis().

void RMatrix2D::SetColumn ( const u_int  n,
const RPoint2D  v 
)
virtual

Set a matrix column vector.

Parameters
ncolumn number (0 ou 1)
vvector

References me.

void RMatrix2D::SetLine ( const u_int  n,
const RPoint2D  v 
)
virtual

Set a matrix line vector.

Parameters
nline number (0 ou 1)
vvector

References me.

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

Set a transformation axis vector.

Parameters
naxis number (0 ou 1)
vvector

Reimplemented in RAffine2D.

References axisVector, GetAxis(), and RMatrix2D().

Double_t RMatrix2D::Determinant ( ) const
inline

Determinant calculation.

References me.

Referenced by GetAxis(), RContourBaseEllipse::GetAxisA(), RContourBaseEllipse::GetAxisB(), and Inverse().

RMatrix2D RMatrix2D::Inverse ( ) const
inline

Return invert matrix.

References columnVector, Determinant(), GetAxis(), RMatrix2D(), and zero.

Referenced by RAffine2D::Inverse().

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

Apply transformation to a vector.

Parameters
voperand vector
RMatrix2D RMatrix2D::operator+ ( ) const
inline

Unary sign operator +.

RMatrix2D RMatrix2D::operator- ( ) const
inline

Unary sign operator -.

References me.

RMatrix2D RMatrix2D::operator+= ( const RMatrix2D m)
inline

Addition and affectation.

Parameters
moperand matrix
RMatrix2D RMatrix2D::operator-= ( const RMatrix2D m)
inline

Subtraction and affectation.

Parameters
moperand matrix
RMatrix2D RMatrix2D::operator*= ( const RMatrix2D m)
inline

Matrix product and affectation.

Parameters
moperand matrix
RMatrix2D RMatrix2D::operator*= ( const Double_t  r)
inline

Multiplication by scalar value and affectation.

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

Division by a scalar value and affectation.

Parameters
rreal value (scalar)
RMatrix2D RMatrix2D::operator+ ( const RMatrix2D m) const
inline

Matrices addition.

Parameters
moperand matrix

References me.

RMatrix2D RMatrix2D::operator- ( const RMatrix2D m) const
inline

Matrices subtraction.

Parameters
moperand matrix

References me.

RMatrix2D RMatrix2D::operator* ( const RMatrix2D m) const
inline

Matrices product.

Parameters
moperand matrix

References GetColumn(), and GetLine().

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

Linear application to a vector

Parameters
voperand vector

References GetLine().

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

Multiplication by a scalar value.

Parameters
rreal value (scalar)

References me.

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

Division by a scalar value.

Parameters
rreal value (scalar)
RMatrix2D RMatrix2D::Rotation ( const Double_t  angle)
inlinestatic

Get a rotation matrix.

Parameters
anglerotation angle
RMatrix2D::ClassDef ( RMatrix2D  ,
 
)

For ROOT dictionary.


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