Jpp  16.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
JGEOMETRY2D::JRotation2D Class Reference

Rotation matrix. More...

#include <JRotation2D.hh>

Inheritance diagram for JGEOMETRY2D::JRotation2D:
JMATH::JMatrix2D JMATH::JMath< JMatrix2D > JLANG::JEquals< JFirst_t, JSecond_t > JGEOMETRY3D::JRotation3X JGEOMETRY3D::JRotation3Y JGEOMETRY3D::JRotation3Z

Public Member Functions

 JRotation2D ()
 Default constructor (= identity matrix). More...
 
 JRotation2D (const JAngle2D &dir)
 Constructor. More...
 
const JRotation2DgetRotation () const
 Get rotation. More...
 
JRotation2Dtranspose ()
 Transpose. More...
 
JRotation2Dmul (const JRotation2D &A)
 Matrix multiplication. More...
 
void rotate (double &__x, double &__y) const
 Rotate. More...
 
void rotate_back (double &__x, double &__y) const
 Rotate back. More...
 
JMatrix2DsetIdentity ()
 Set to identity matrix. More...
 
void set (const JMatrix2D &A)
 Set matrix. More...
 
JMatrix2Dreset ()
 Set matrix to the null matrix. More...
 
JMatrix2Dnegate ()
 Negate matrix. More...
 
JMatrix2Dadd (const JMatrix2D &A)
 Matrix addition. More...
 
JMatrix2Dsub (const JMatrix2D &A)
 Matrix subtraction. More...
 
JMatrix2Dmul (const double factor)
 Scale matrix. More...
 
JMatrix2Dmul (const JMatrix2D &A, const JMatrix2D &B)
 Matrix multiplication. More...
 
JMatrix2Dmul (const JNullType &object)
 Multiply with object. More...
 
JMatrix2Ddiv (const double factor)
 Scale matrix. More...
 
bool equals (const JMatrix2D &A, const double eps=std::numeric_limits< double >::min()) const
 Equality. More...
 
bool isIdentity (const double eps=std::numeric_limits< double >::min()) const
 Test identity. More...
 
double getDeterminant () const
 Get determinant of matrix. More...
 
void transform (double &__x, double &__y) const
 Transform. More...
 

Static Public Member Functions

static const JMatrix2DgetInstance ()
 Get reference to unique instance of this class object. More...
 
static const JMatrix2DgetIdentity ()
 Get reference to unique instance of this class object. More...
 

Public Attributes

double a00
 
double a01
 
double a10
 
double a11
 

Detailed Description

Rotation matrix.

Definition at line 23 of file JRotation2D.hh.

Constructor & Destructor Documentation

JGEOMETRY2D::JRotation2D::JRotation2D ( )
inline

Default constructor (= identity matrix).

Definition at line 30 of file JRotation2D.hh.

30  :
31  JMatrix2D()
32  {
33  setIdentity();
34  }
JMatrix2D()
Default constructor.
JMatrix2D & setIdentity()
Set to identity matrix.
JGEOMETRY2D::JRotation2D::JRotation2D ( const JAngle2D dir)
inline

Constructor.

The rotation is around the origin and anti-clockwise.

Parameters
dirdirection

Definition at line 43 of file JRotation2D.hh.

43  :
44  JMatrix2D()
45  {
46  const double cp = cos(dir.getPhi());
47  const double sp = sin(dir.getPhi());
48 
49  a00 = cp; a01 = -sp;
50  a10 = sp; a11 = cp;
51  }
JMatrix2D()
Default constructor.
double getPhi() const
Get phi angle.
Definition: JAngle2D.hh:72
then cp

Member Function Documentation

const JRotation2D& JGEOMETRY2D::JRotation2D::getRotation ( ) const
inline

Get rotation.

Returns
rotation

Definition at line 59 of file JRotation2D.hh.

60  {
61  return static_cast<const JRotation2D&>(*this);
62  }
Rotation matrix.
Definition: JRotation2D.hh:23
JRotation2D& JGEOMETRY2D::JRotation2D::transpose ( )
inline

Transpose.

Definition at line 68 of file JRotation2D.hh.

69  {
71 
72  return *this;
73  }
JMatrix2D & transpose()
Transpose.
JRotation2D& JGEOMETRY2D::JRotation2D::mul ( const JRotation2D A)
inline

Matrix multiplication.

Parameters
Amatrix
Returns
this * A

Definition at line 82 of file JRotation2D.hh.

83  {
84  JMatrix2D::mul(A);
85 
86  return *this;
87  }
JMatrix2D & mul(const double factor)
Scale matrix.
void JGEOMETRY2D::JRotation2D::rotate ( double &  __x,
double &  __y 
) const
inline

Rotate.

Parameters
__xx value
__yy value

Definition at line 96 of file JRotation2D.hh.

97  {
98  const double x = a00 * __x + a01 * __y;
99  const double y = a10 * __x + a11 * __y;
100 
101  __x = x;
102  __y = y;
103  }
void JGEOMETRY2D::JRotation2D::rotate_back ( double &  __x,
double &  __y 
) const
inline

Rotate back.

Parameters
__xx value
__yy value

Definition at line 112 of file JRotation2D.hh.

113  {
114  const double x = a00 * __x + a10 * __y;
115  const double y = a01 * __x + a11 * __y;
116 
117  __x = x;
118  __y = y;
119  }
static const JMatrix2D& JMATH::JMatrix2D::getInstance ( )
inlinestaticinherited

Get reference to unique instance of this class object.

Returns
zero matrix

Definition at line 70 of file JMath/JMatrix2D.hh.

71  {
72  static JMatrix2D matrix;
73 
74  return matrix;
75  }
2 x 2 matrix
JMatrix2D& JMATH::JMatrix2D::setIdentity ( )
inlineinherited

Set to identity matrix.

Returns
this matrix

Definition at line 83 of file JMath/JMatrix2D.hh.

84  {
85  a00 = 1.0; a01 = 0.0;
86  a10 = 0.0; a11 = 1.0;
87 
88  return *this;
89  }
static const JMatrix2D& JMATH::JMatrix2D::getIdentity ( )
inlinestaticinherited

Get reference to unique instance of this class object.

Returns
identity matrix

Definition at line 97 of file JMath/JMatrix2D.hh.

98  {
99  static JMatrix2D matrix(JMatrix2D().setIdentity());
100 
101  return matrix;
102  }
JMatrix2D()
Default constructor.
2 x 2 matrix
JMatrix2D & setIdentity()
Set to identity matrix.
void JMATH::JMatrix2D::set ( const JMatrix2D A)
inlineinherited

Set matrix.

Parameters
Amatrix

Definition at line 110 of file JMath/JMatrix2D.hh.

111  {
112  static_cast<JMatrix2D&>(*this) = A;
113  }
2 x 2 matrix
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
JMatrix2D& JMATH::JMatrix2D::reset ( )
inlineinherited

Set matrix to the null matrix.

Returns
this matrix

Definition at line 121 of file JMath/JMatrix2D.hh.

122  {
123  *this = JMatrix2D();
124 
125  return *this;
126  }
JMatrix2D()
Default constructor.
JMatrix2D& JMATH::JMatrix2D::negate ( )
inlineinherited

Negate matrix.

Returns
-this matrix

Definition at line 149 of file JMath/JMatrix2D.hh.

150  {
151  a00 = -a00; a01 = -a01;
152  a10 = -a10; a11 = -a11;
153 
154  return *this;
155  }
JMatrix2D& JMATH::JMatrix2D::add ( const JMatrix2D A)
inlineinherited

Matrix addition.

Parameters
Amatrix
Returns
this matrix + A

Definition at line 164 of file JMath/JMatrix2D.hh.

165  {
166  a00 += A.a00; a01 += A.a01;
167  a10 += A.a10; a11 += A.a11;
168 
169  return *this;
170  }
JMatrix2D& JMATH::JMatrix2D::sub ( const JMatrix2D A)
inlineinherited

Matrix subtraction.

Parameters
Amatrix
Returns
this matrix - A

Definition at line 179 of file JMath/JMatrix2D.hh.

180  {
181  a00 -= A.a00; a01 -= A.a01;
182  a10 -= A.a10; a11 -= A.a11;
183 
184  return *this;
185  }
JMatrix2D& JMATH::JMatrix2D::mul ( const double  factor)
inlineinherited

Scale matrix.

Parameters
factorfactor
Returns
this matrix * factor

Definition at line 194 of file JMath/JMatrix2D.hh.

195  {
196  a00 *= factor; a01 *= factor;
197  a10 *= factor; a11 *= factor;
198 
199  return *this;
200  }
JMatrix2D& JMATH::JMatrix2D::mul ( const JMatrix2D A,
const JMatrix2D B 
)
inlineinherited

Matrix multiplication.

Parameters
Amatrix
Bmatrix
Returns
this matrix

Definition at line 225 of file JMath/JMatrix2D.hh.

227  {
228  a00 = A.a00 * B.a00 + A.a01 * B.a10;
229  a01 = A.a00 * B.a01 + A.a01 * B.a11;
230 
231  a10 = A.a10 * B.a00 + A.a11 * B.a10;
232  a11 = A.a10 * B.a01 + A.a11 * B.a11;
233 
234  return *this;
235  }
JMatrix2D & JMATH::JMath< JMatrix2D , JNullType >::mul ( const JNullType object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 357 of file JMath.hh.

358  {
359  return static_cast<JFirst_t&>(*this) = JCalculator<JFirst_t>::calculator.mul(static_cast<const JFirst_t&>(*this), object);
360  }
Auxiliary class for arithmetic operations on objects.
Definition: JCalculator.hh:18
JMatrix2D& JMATH::JMatrix2D::div ( const double  factor)
inlineinherited

Scale matrix.

Parameters
factorfactor
Returns
this matrix / factor

Definition at line 209 of file JMath/JMatrix2D.hh.

210  {
211  a00 /= factor; a01 /= factor;
212  a10 /= factor; a11 /= factor;
213 
214  return *this;
215  }
bool JMATH::JMatrix2D::equals ( const JMatrix2D A,
const double  eps = std::numeric_limits<double>::min() 
) const
inlineinherited

Equality.

Parameters
Amatrix
epsnumerical precision
Returns
true if matrices identical; else false

Definition at line 245 of file JMath/JMatrix2D.hh.

247  {
248  return (fabs(a00 - A.a00) <= eps &&
249  fabs(a01 - A.a01) <= eps &&
250  fabs(a10 - A.a10) <= eps &&
251  fabs(a11 - A.a11) <= eps);
252  }
bool JMATH::JMatrix2D::isIdentity ( const double  eps = std::numeric_limits<double>::min()) const
inlineinherited

Test identity.

Parameters
epsnumerical precision
Returns
true if identity matrix; else false

Definition at line 261 of file JMath/JMatrix2D.hh.

262  {
263  return equals(getIdentity(), eps);
264  }
static const JMatrix2D & getIdentity()
Get reference to unique instance of this class object.
bool equals(const JMatrix2D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.
double JMATH::JMatrix2D::getDeterminant ( ) const
inlineinherited

Get determinant of matrix.

Returns
determinant of matrix

Definition at line 272 of file JMath/JMatrix2D.hh.

273  {
274  return a00 * a11 - a01 * a10;
275  }
void JMATH::JMatrix2D::transform ( double &  __x,
double &  __y 
) const
inlineinherited

Transform.

Parameters
__xx value
__yy value

Definition at line 284 of file JMath/JMatrix2D.hh.

285  {
286  const double x = a00 * __x + a01 * __y;
287  const double y = a10 * __x + a11 * __y;
288 
289  __x = x;
290  __y = y;
291  }

Member Data Documentation

double JMATH::JMatrix2D::a00
inherited

Definition at line 346 of file JMath/JMatrix2D.hh.

double JMATH::JMatrix2D::a01
inherited

Definition at line 346 of file JMath/JMatrix2D.hh.

double JMATH::JMatrix2D::a10
inherited

Definition at line 347 of file JMath/JMatrix2D.hh.

double JMATH::JMatrix2D::a11
inherited

Definition at line 347 of file JMath/JMatrix2D.hh.


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