Jpp
Public Member Functions | Protected Attributes | Friends | List of all members
JGEOMETRY2D::JPosition2D Class Reference

Data structure for position in two dimensions. More...

#include <JPosition2D.hh>

Inheritance diagram for JGEOMETRY2D::JPosition2D:
JGEOMETRY2D::JVector2D JMATH::JMath< JVector2D > JDETECTOR::JAnchor JGEOMETRY2D::JAxis2D JGEOMETRY2D::JCircle2D JGEOMETRY3D::JCylinder3D

Public Member Functions

 JPosition2D ()
 Default constructor. More...
 
 JPosition2D (const JVector2D &pos)
 Constructor. More...
 
 JPosition2D (const JAngle2D &angle)
 Constructor. More...
 
 JPosition2D (const JVersor2D &dir)
 Constructor. More...
 
 JPosition2D (const double x, const double y)
 Constructor. More...
 
const JPosition2DgetPosition () const
 Get position. More...
 
JPosition2DgetPosition ()
 Get position. More...
 
void setPosition (const JVector2D &pos)
 Set position. More...
 
 operator JAngle2D () const
 Type conversion operator. More...
 
 operator JVersor2D () const
 Type conversion operator. More...
 
JPosition2Drotate (const JRotation2D &R)
 Rotate. More...
 
JPosition2Drotate_back (const JRotation2D &R)
 Rotate back. More...
 
double getDot (const JAngle2D &angle) const
 Get dot product. More...
 
double getDot (const JVersor2D &versor) const
 Get dot product. More...
 
double getPerpDot (const JAngle2D &angle) const
 Get perpendicular dot product. More...
 
double getPerpDot (const JVersor2D &dir) const
 Get perpendicular dot product. More...
 
double getDot (const JVector2D &point) const
 Get dot product. More...
 
double getPerpDot (const JVector2D &point) const
 Get perpendicular dot product. More...
 
JVector2Dtransform (const JMatrix2D &T)
 Transform. More...
 
double getX () const
 Get x position. More...
 
double getY () const
 Get y position. More...
 
JVector2Dnegate ()
 Negate vector. More...
 
JVector2Dadd (const JVector2D &vector)
 Add vector. More...
 
JVector2Dsub (const JVector2D &vector)
 Subtract vector. More...
 
JVector2Dmul (const double factor)
 Scale vector. More...
 
JVector2Dmul (const JSecond_t &object)
 Multiply with object. More...
 
JVector2Ddiv (const double factor)
 Scale vector. More...
 
JVector2Dtransform (const JMatrix2D &T)
 Transform. More...
 
bool equals (const JVector2D &vector, const double precision=std::numeric_limits< double >::min()) const
 Check equality. More...
 
double getLengthSquared () const
 Get length squared. More...
 
double getLength () const
 Get length. More...
 
double getDistanceSquared (const JVector2D &point) const
 Get squared of distance to point. More...
 
double getDistance (const JVector2D &point) const
 Get distance to point. More...
 
double getDot (const JVector2D &point) const
 Get dot product. More...
 
double getPerpDot (const JVector2D &point) const
 Get perpendicular dot product. More...
 

Protected Attributes

double __x
 
double __y
 

Friends

std::istream & operator>> (std::istream &in, JPosition2D &position)
 Read position from input. More...
 
std::ostream & operator<< (std::ostream &out, const JPosition2D &position)
 Write position to output. More...
 
JReaderoperator>> (JReader &in, JPosition2D &position)
 Read position from input. More...
 
JWriteroperator<< (JWriter &out, const JPosition2D &position)
 Write position to output. More...
 

Detailed Description

Data structure for position in two dimensions.

Definition at line 30 of file JPosition2D.hh.

Constructor & Destructor Documentation

◆ JPosition2D() [1/5]

JGEOMETRY2D::JPosition2D::JPosition2D ( )
inline

Default constructor.

Definition at line 43 of file JPosition2D.hh.

43  :
44  JVector2D()
45  {}

◆ JPosition2D() [2/5]

JGEOMETRY2D::JPosition2D::JPosition2D ( const JVector2D pos)
inline

Constructor.

Parameters
posposition

Definition at line 53 of file JPosition2D.hh.

53  :
54  JVector2D(pos)
55  {}

◆ JPosition2D() [3/5]

JGEOMETRY2D::JPosition2D::JPosition2D ( const JAngle2D angle)
inline

Constructor.

Parameters
angleangle

Definition at line 63 of file JPosition2D.hh.

63  :
64  JVector2D(angle.getDX(),
65  angle.getDY())
66  {}

◆ JPosition2D() [4/5]

JGEOMETRY2D::JPosition2D::JPosition2D ( const JVersor2D dir)
inline

Constructor.

Parameters
dirdirection

Definition at line 74 of file JPosition2D.hh.

74  :
75  JVector2D(dir.getDX(),
76  dir.getDY())
77  {}

◆ JPosition2D() [5/5]

JGEOMETRY2D::JPosition2D::JPosition2D ( const double  x,
const double  y 
)
inline

Constructor.

Parameters
xx value
yy value

Definition at line 86 of file JPosition2D.hh.

87  :
88  JVector2D(x,y)
89  {}

Member Function Documentation

◆ getPosition() [1/2]

const JPosition2D& JGEOMETRY2D::JPosition2D::getPosition ( ) const
inline

Get position.

Returns
position

Definition at line 97 of file JPosition2D.hh.

98  {
99  return static_cast<const JPosition2D&>(*this);
100  }

◆ getPosition() [2/2]

JPosition2D& JGEOMETRY2D::JPosition2D::getPosition ( )
inline

Get position.

Returns
position

Definition at line 108 of file JPosition2D.hh.

109  {
110  return static_cast<JPosition2D&>(*this);
111  }

◆ setPosition()

void JGEOMETRY2D::JPosition2D::setPosition ( const JVector2D pos)
inline

Set position.

Parameters
posposition

Definition at line 119 of file JPosition2D.hh.

120  {
121  static_cast<JVector2D&>(*this) = pos;
122  }

◆ operator JAngle2D()

JGEOMETRY2D::JPosition2D::operator JAngle2D ( ) const
inline

Type conversion operator.

Returns
angle

Definition at line 130 of file JPosition2D.hh.

131  {
132  return JAngle2D(getX(), getY());
133  }

◆ operator JVersor2D()

JGEOMETRY2D::JPosition2D::operator JVersor2D ( ) const
inline

Type conversion operator.

Returns
direction

Definition at line 141 of file JPosition2D.hh.

142  {
143  return JVersor2D(getX(), getY());
144  }

◆ rotate()

JPosition2D& JGEOMETRY2D::JPosition2D::rotate ( const JRotation2D R)
inline

Rotate.

Parameters
Rrotation matrix
Returns
this position

Definition at line 153 of file JPosition2D.hh.

154  {
155  R.rotate(__x, __y);
156 
157  return *this;
158  }

◆ rotate_back()

JPosition2D& JGEOMETRY2D::JPosition2D::rotate_back ( const JRotation2D R)
inline

Rotate back.

Parameters
Rrotation matrix
Returns
this position

Definition at line 167 of file JPosition2D.hh.

168  {
169  R.rotate_back(__x, __y);
170 
171  return *this;
172  }

◆ getDot() [1/4]

double JGEOMETRY2D::JPosition2D::getDot ( const JAngle2D angle) const
inline

Get dot product.

Parameters
angleangle
Returns
dot product

Definition at line 181 of file JPosition2D.hh.

182  {
183  return
184  getX() * angle.getDX() +
185  getY() * angle.getDY();
186  }

◆ getDot() [2/4]

double JGEOMETRY2D::JPosition2D::getDot ( const JVersor2D versor) const
inline

Get dot product.

Parameters
versorversor
Returns
dot product

Definition at line 195 of file JPosition2D.hh.

196  {
197  return
198  getX() * versor.getDX() +
199  getY() * versor.getDY();
200  }

◆ getPerpDot() [1/4]

double JGEOMETRY2D::JPosition2D::getPerpDot ( const JAngle2D angle) const
inline

Get perpendicular dot product.

Parameters
angleangle
Returns
perpendicular dot product

Definition at line 209 of file JPosition2D.hh.

210  {
211  return
212  getX() * angle.getDY() -
213  getY() * angle.getDX();
214  }

◆ getPerpDot() [2/4]

double JGEOMETRY2D::JPosition2D::getPerpDot ( const JVersor2D dir) const
inline

Get perpendicular dot product.

Parameters
dirdirection
Returns
perpendicular dot product

Definition at line 223 of file JPosition2D.hh.

224  {
225  return
226  getX() * dir.getDY() -
227  getY() * dir.getDX();
228  }

◆ getDot() [3/4]

double JGEOMETRY2D::JVector2D::getDot
inline

Get dot product.

Parameters
pointvector
Returns
dot product

Definition at line 233 of file JVector2D.hh.

234  {
235  return
236  getX() * point.getX() +
237  getY() * point.getY();
238  }

◆ getPerpDot() [3/4]

double JGEOMETRY2D::JVector2D::getPerpDot
inline

Get perpendicular dot product.

Parameters
pointvector
Returns
perpendicular dot product

Definition at line 247 of file JVector2D.hh.

248  {
249  return
250  getX() * point.getY() -
251  getY() * point.getX();
252  }

◆ transform() [1/2]

JVector2D& JGEOMETRY2D::JVector2D::transform
inline

Transform.

Parameters
Tmatrix
Returns
this vector

Definition at line 159 of file JVector2D.hh.

160  {
161  T.transform(__x, __y);
162 
163  return *this;
164  }

◆ getX()

double JGEOMETRY2D::JVector2D::getX ( ) const
inlineinherited

Get x position.

Returns
x position

Definition at line 62 of file JVector2D.hh.

63  {
64  return __x;
65  }

◆ getY()

double JGEOMETRY2D::JVector2D::getY ( ) const
inlineinherited

Get y position.

Returns
y position

Definition at line 73 of file JVector2D.hh.

74  {
75  return __y;
76  }

◆ negate()

JVector2D& JGEOMETRY2D::JVector2D::negate ( )
inlineinherited

Negate vector.

Returns
this vector

Definition at line 84 of file JVector2D.hh.

85  {
86  __x = -__x;
87  __y = -__y;
88 
89  return *this;
90  }

◆ add()

JVector2D& JGEOMETRY2D::JVector2D::add ( const JVector2D vector)
inlineinherited

Add vector.

Parameters
vectorvector
Returns
this vector

Definition at line 99 of file JVector2D.hh.

100  {
101  __x += vector.getX();
102  __y += vector.getY();
103 
104  return *this;
105  }

◆ sub()

JVector2D& JGEOMETRY2D::JVector2D::sub ( const JVector2D vector)
inlineinherited

Subtract vector.

Parameters
vectorvector
Returns
this vector

Definition at line 114 of file JVector2D.hh.

115  {
116  __x -= vector.getX();
117  __y -= vector.getY();
118 
119  return *this;
120  }

◆ mul() [1/2]

JVector2D& JGEOMETRY2D::JVector2D::mul ( const double  factor)
inlineinherited

Scale vector.

Parameters
factormultiplication factor
Returns
this vector

Definition at line 129 of file JVector2D.hh.

130  {
131  __x *= factor;
132  __y *= factor;
133 
134  return *this;
135  }

◆ mul() [2/2]

JVector2D & JMATH::JMath< JVector2D , JSecond_t >::mul ( const JSecond_t &  object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 273 of file JMath.hh.

274  {
275  return static_cast<JFirst_t&>(*this) = JCalculator<JFirst_t>::calculator.mul(static_cast<const JFirst_t&>(*this), object);
276  }

◆ div()

JVector2D& JGEOMETRY2D::JVector2D::div ( const double  factor)
inlineinherited

Scale vector.

Parameters
factordivision factor
Returns
this vector

Definition at line 144 of file JVector2D.hh.

145  {
146  __x /= factor;
147  __y /= factor;
148 
149  return *this;
150  }

◆ transform() [2/2]

JVector2D& JGEOMETRY2D::JVector2D::transform ( const JMatrix2D T)
inlineinherited

Transform.

Parameters
Tmatrix
Returns
this vector

Definition at line 159 of file JVector2D.hh.

160  {
161  T.transform(__x, __y);
162 
163  return *this;
164  }

◆ equals()

bool JGEOMETRY2D::JVector2D::equals ( const JVector2D vector,
const double  precision = std::numeric_limits<double>::min() 
) const
inlineinherited

Check equality.

Parameters
vectorvector
Returns
true if vectors are equal; else false

Definition at line 173 of file JVector2D.hh.

175  {
176  return (fabs(getX() - vector.getX()) <= precision &&
177  fabs(getY() - vector.getY()) <= precision);
178  }

◆ getLengthSquared()

double JGEOMETRY2D::JVector2D::getLengthSquared ( ) const
inlineinherited

Get length squared.

Returns
square of length

Definition at line 186 of file JVector2D.hh.

187  {
188  return getX()*getX() + getY()*getY();
189  }

◆ getLength()

double JGEOMETRY2D::JVector2D::getLength ( ) const
inlineinherited

Get length.

Returns
length

Definition at line 197 of file JVector2D.hh.

198  {
199  return sqrt(getLengthSquared());
200  }

◆ getDistanceSquared()

double JGEOMETRY2D::JVector2D::getDistanceSquared ( const JVector2D point) const
inlineinherited

Get squared of distance to point.

Parameters
pointpoint
Returns
square of distance

Definition at line 209 of file JVector2D.hh.

210  {
211  return JVector2D(point).sub(*this).getLengthSquared();
212  }

◆ getDistance()

double JGEOMETRY2D::JVector2D::getDistance ( const JVector2D point) const
inlineinherited

Get distance to point.

Parameters
pointpoint
Returns
distance

Definition at line 221 of file JVector2D.hh.

222  {
223  return sqrt(getDistanceSquared(point));
224  }

◆ getDot() [4/4]

double JGEOMETRY2D::JVector2D::getDot ( const JVector2D point) const
inlineinherited

Get dot product.

Parameters
pointvector
Returns
dot product

Definition at line 233 of file JVector2D.hh.

234  {
235  return
236  getX() * point.getX() +
237  getY() * point.getY();
238  }

◆ getPerpDot() [4/4]

double JGEOMETRY2D::JVector2D::getPerpDot ( const JVector2D point) const
inlineinherited

Get perpendicular dot product.

Parameters
pointvector
Returns
perpendicular dot product

Definition at line 247 of file JVector2D.hh.

248  {
249  return
250  getX() * point.getY() -
251  getY() * point.getX();
252  }

Friends And Related Function Documentation

◆ operator>> [1/2]

std::istream& operator>> ( std::istream &  in,
JPosition2D position 
)
friend

Read position from input.

Parameters
ininput stream
positionposition
Returns
input stream

Definition at line 238 of file JPosition2D.hh.

239  {
240  in >> position.__x >> position.__y;
241 
242  return in;
243  }

◆ operator<< [1/2]

std::ostream& operator<< ( std::ostream &  out,
const JPosition2D position 
)
friend

Write position to output.

Parameters
outoutput stream
positionposition
Returns
output stream

Definition at line 253 of file JPosition2D.hh.

254  {
255  out << position.getX() << ' ' << position.getY();
256 
257  return out;
258  }

◆ operator>> [2/2]

JReader& operator>> ( JReader in,
JPosition2D position 
)
friend

Read position from input.

Parameters
inreader
positionposition
Returns
reader

Definition at line 268 of file JPosition2D.hh.

269  {
270  in >> position.__x;
271  in >> position.__y;
272 
273  return in;
274  }

◆ operator<< [2/2]

JWriter& operator<< ( JWriter out,
const JPosition2D position 
)
friend

Write position to output.

Parameters
outwriter
positionposition
Returns
writer

Definition at line 284 of file JPosition2D.hh.

285  {
286  out << position.getX();
287  out << position.getY();
288 
289  return out;
290  }

Member Data Documentation

◆ __x

double JGEOMETRY2D::JVector2D::__x
protectedinherited

Definition at line 255 of file JVector2D.hh.

◆ __y

double JGEOMETRY2D::JVector2D::__y
protectedinherited

Definition at line 256 of file JVector2D.hh.


The documentation for this class was generated from the following file:
JGEOMETRY2D::JRotation2D::rotate_back
void rotate_back(double &__x, double &__y) const
Rotate back.
Definition: JRotation2D.hh:112
JGEOMETRY2D::JAngle2D::getDX
double getDX() const
Get x direction.
Definition: JAngle2D.hh:81
JGEOMETRY2D::JVector2D::getLengthSquared
double getLengthSquared() const
Get length squared.
Definition: JVector2D.hh:186
JGEOMETRY2D::JVector2D::getDistanceSquared
double getDistanceSquared(const JVector2D &point) const
Get squared of distance to point.
Definition: JVector2D.hh:209
JGEOMETRY2D::JRotation2D::rotate
void rotate(double &__x, double &__y) const
Rotate.
Definition: JRotation2D.hh:96
JGEOMETRY2D::JVector2D::__x
double __x
Definition: JVector2D.hh:255
JGEOMETRY2D::JAngle2D::getDY
double getDY() const
Get y direction.
Definition: JAngle2D.hh:92
JGEOMETRY2D::JAngle2D
Data structure for angle in two dimensions.
Definition: JAngle2D.hh:31
JGEOMETRY2D::JVector2D::JVector2D
JVector2D()
Default constructor.
Definition: JVector2D.hh:38
JGEOMETRY2D::JVector2D::getX
double getX() const
Get x position.
Definition: JVector2D.hh:62
JGEOMETRY2D::JVersor2D::getDX
double getDX() const
Get x direction.
Definition: JVersor2D.hh:53
JMATH::JCalculator
Auxiliary class for arithmetic operations on objects.
Definition: JCalculator.hh:18
JGEOMETRY2D::JVersor2D
Data structure for normalised vector in two dimensions.
Definition: JVersor2D.hh:20
JGEOMETRY2D::JVector2D::getY
double getY() const
Get y position.
Definition: JVector2D.hh:73
JGEOMETRY2D::JVersor2D::getDY
double getDY() const
Get y direction.
Definition: JVersor2D.hh:64
JGEOMETRY2D::JVector2D::__y
double __y
Definition: JVector2D.hh:256