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

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

#include <JCircle2D.hh>

Inheritance diagram for JGEOMETRY2D::JCircle2D:
JGEOMETRY2D::JPosition2D JGEOMETRY2D::JVector2D JMATH::JMath< JFirst_t, JSecond_t > JGEOMETRY3D::JCylinder3D

Public Member Functions

 JCircle2D ()
 Default constructor. More...
 
 JCircle2D (const JVector2D &point, const double r)
 Constructor. More...
 
 JCircle2D (const JVector2D &p0, const JVector2D &p1)
 Constructor. More...
 
 JCircle2D (const JVector2D &p0, const JVector2D &p1, const JVector2D &p2, const double precision=std::numeric_limits< double >::epsilon())
 Constructor. More...
 
template<class T >
 JCircle2D (T __begin, T __end, const double precision=std::numeric_limits< double >::epsilon())
 Constructor. More...
 
template<class JElement_t , class JAllocator_t >
 JCircle2D (const array_type< JElement_t, JAllocator_t > &buffer, const double precision=std::numeric_limits< double >::epsilon())
 Constructor. More...
 
double getRadius () const
 Get radius. More...
 
void set (const JVector2D &p0, const JVector2D &p1)
 Set circle. More...
 
void set (const JVector2D &p0, const JVector2D &p1, const JVector2D &p2, const double precision=std::numeric_limits< double >::epsilon())
 Set circle. More...
 
template<class T >
void set (T __begin, T __end, const double precision=std::numeric_limits< double >::epsilon())
 Set circle. More...
 
bool is_inside (const JVector2D &pos, const double precision=std::numeric_limits< double >::min()) const
 Check whether given point is inside circle. 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 getDot (const JVector2D &point) 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 getPerpDot (const JVector2D &point) const
 Get perpendicular dot product. 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...
 
JFirst_t & mul (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...
 

Protected Attributes

double __r
 
double __x
 
double __y
 

Private Member Functions

template<class T >
void configure (T __begin, T __end, const JVector2D &p0, const double precision)
 Determine smallest enclosing circle. More...
 
template<class T >
void configure (T __begin, T __end, const JVector2D &p0, const JVector2D &p1, const double precision)
 Determine smallest enclosing circle. More...
 

Friends

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

Detailed Description

Data structure for circle in two dimensions.

Definition at line 32 of file JCircle2D.hh.

Constructor & Destructor Documentation

JGEOMETRY2D::JCircle2D::JCircle2D ( )
inline

Default constructor.

Definition at line 39 of file JCircle2D.hh.

39  :
40  JPosition2D(),
41  __r(0.0)
42  {}
JPosition2D()
Default constructor.
Definition: JPosition2D.hh:43
JGEOMETRY2D::JCircle2D::JCircle2D ( const JVector2D point,
const double  r 
)
inline

Constructor.

Parameters
pointpoint
rradius

Definition at line 51 of file JCircle2D.hh.

52  :
53  JPosition2D(point),
54  __r(r)
55  {}
JPosition2D()
Default constructor.
Definition: JPosition2D.hh:43
data_type r[M+1]
Definition: JPolint.hh:742
JGEOMETRY2D::JCircle2D::JCircle2D ( const JVector2D p0,
const JVector2D p1 
)
inline

Constructor.

Determines circle through two points.

Parameters
p0first point
p1second point

Definition at line 65 of file JCircle2D.hh.

66  :
67  JPosition2D(),
68  __r(0.0)
69  {
70  set(p0, p1);
71  }
JPosition2D()
Default constructor.
Definition: JPosition2D.hh:43
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
Definition: JCircle2D.hh:156
JGEOMETRY2D::JCircle2D::JCircle2D ( const JVector2D p0,
const JVector2D p1,
const JVector2D p2,
const double  precision = std::numeric_limits<double>::epsilon() 
)
inline

Constructor.

Determines circle through three points.

Parameters
p0first point
p1second point
p2third point
precisionprecision

Definition at line 83 of file JCircle2D.hh.

86  :
87  JPosition2D(),
88  __r(0.0)
89  {
90  set(p0, p1, p2, precision);
91  }
JPosition2D()
Default constructor.
Definition: JPosition2D.hh:43
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
Definition: JCircle2D.hh:156
template<class T >
JGEOMETRY2D::JCircle2D::JCircle2D ( T  __begin,
T  __end,
const double  precision = std::numeric_limits<double>::epsilon() 
)
inline

Constructor.

Determines smallest enclosing circle around set of points.
The type of data should have the following member methods:

    double getX();   // x coordinate
    double getY();   // y coordinate

Reference:
Computational Geometry Algorithms and Applications
Authors: de Berg, M., Cheong, O., van Kreveld, M., Overmars, M.

Parameters
__beginbegin of data
__endend of data
precisionprecision

Definition at line 113 of file JCircle2D.hh.

115  :
116  JPosition2D(),
117  __r(0.0)
118  {
119  set(__begin, __end, precision);
120  }
JPosition2D()
Default constructor.
Definition: JPosition2D.hh:43
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
Definition: JCircle2D.hh:156
template<class JElement_t , class JAllocator_t >
JGEOMETRY2D::JCircle2D::JCircle2D ( const array_type< JElement_t, JAllocator_t > &  buffer,
const double  precision = std::numeric_limits<double>::epsilon() 
)
inline

Constructor.

Parameters
bufferinput data
precisionprecision

Definition at line 129 of file JCircle2D.hh.

130  :
131  JPosition2D(),
132  __r(0.0)
133  {
134  set(buffer.begin(), buffer.end(), precision);
135  }
JPosition2D()
Default constructor.
Definition: JPosition2D.hh:43
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
Definition: JCircle2D.hh:156

Member Function Documentation

double JGEOMETRY2D::JCircle2D::getRadius ( ) const
inline

Get radius.

Returns
radius

Definition at line 143 of file JCircle2D.hh.

144  {
145  return __r;
146  }
void JGEOMETRY2D::JCircle2D::set ( const JVector2D p0,
const JVector2D p1 
)
inline

Set circle.

Determines circle through two points.

Parameters
p0first point
p1second point

Definition at line 156 of file JCircle2D.hh.

158  {
159  __x = 0.5 * (p0.getX() + p1.getX());
160  __y = 0.5 * (p0.getY() + p1.getY());
161  __r = this->getDistance(p0);
162  }
double getDistance(const JVector2D &point) const
Get distance to point.
Definition: JVector2D.hh:223
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
void JGEOMETRY2D::JCircle2D::set ( const JVector2D p0,
const JVector2D p1,
const JVector2D p2,
const double  precision = std::numeric_limits<double>::epsilon() 
)
inline

Set circle.

Determines circle through three points.

Parameters
p0first point
p1second point
p2third point
precisionprecision

Definition at line 174 of file JCircle2D.hh.

178  {
179  const double x0 = p2.getX() - p1.getX();
180  const double x1 = p0.getX() - p2.getX();
181  const double x2 = p1.getX() - p0.getX();
182 
183  const double y0 = p1.getY() - p2.getY();
184  const double y1 = p2.getY() - p0.getY();
185  const double y2 = p0.getY() - p1.getY();
186 
187  const double D = 2.0 * (p0.getX()*y0 + p1.getX()*y1 + p2.getX()*y2);
188 
189  if (fabs(D) > precision) {
190 
191  const double a = p0.getLengthSquared();
192  const double b = p1.getLengthSquared();
193  const double c = p2.getLengthSquared();
194 
195  __x = (a*y0 + b*y1 + c*y2) / D;
196  __y = (a*x0 + b*x1 + c*x2) / D;
197  __r = this->getDistance(p0);
198 
199  } else {
200 
201  set(p0, p1);
202 
203  const JCircle2D c1(p1, p2);
204  const JCircle2D c2(p0, p2);
205 
206  if (c1.getRadius() > this->getRadius()) { *this = c1; }
207  if (c2.getRadius() > this->getRadius()) { *this = c2; }
208  }
209  }
double getLengthSquared() const
Get length squared.
Definition: JVector2D.hh:188
do echo Generating $dir eval D
Definition: JDrawLED.sh:50
double getRadius() const
Get radius.
Definition: JCircle2D.hh:143
Data structure for circle in two dimensions.
Definition: JCircle2D.hh:32
double getDistance(const JVector2D &point) const
Get distance to point.
Definition: JVector2D.hh:223
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
TCanvas * c1
Global variables to handle mouse events.
then JCalibrateToT a
Definition: JTuneHV.sh:116
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
Definition: JCircle2D.hh:156
template<class T >
void JGEOMETRY2D::JCircle2D::set ( T  __begin,
T  __end,
const double  precision = std::numeric_limits<double>::epsilon() 
)
inline

Set circle.

Determines smallest enclosing circle around set of points.

    double getX();   // x coordinate
    double getY();   // y coordinate
Parameters
__beginbegin of data
__endend of data
precisionprecision

Definition at line 225 of file JCircle2D.hh.

228  {
229  if (__begin != __end) {
230 
231  __x = __begin->getX();
232  __y = __begin->getY();
233  __r = 0.0;
234 
235  T i = __begin;
236 
237  const JVector2D p0(i->getX(), i->getY());
238 
239  while (++i != __end && p0.getDistance(JVector2D(i->getX(), i->getY())) <= precision) {}
240 
241  if (i != __end) {
242 
243  const JVector2D p1(i->getX(), i->getY());
244 
245  set(p0, p1);
246 
247  while (++i != __end) {
248 
249  const JVector2D p2(i->getX(), i->getY());
250 
251  if (this->getDistance(p2) > this->getRadius() + precision &&
252  p0.getDistance(p2) > precision &&
253  p1.getDistance(p2) > precision) {
254  configure(__begin, i, p2, precision);
255  }
256  }
257  }
258  }
259  }
Data structure for vector in two dimensions.
Definition: JVector2D.hh:32
double getRadius() const
Get radius.
Definition: JCircle2D.hh:143
TPaveText * p1
double getDistance(const JVector2D &point) const
Get distance to point.
Definition: JVector2D.hh:223
do set_variable OUTPUT_DIRECTORY $WORKDIR T
void configure(T __begin, T __end, const JVector2D &p0, const double precision)
Determine smallest enclosing circle.
Definition: JCircle2D.hh:355
p2
Definition: module-Z:fit.sh:72
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
Definition: JCircle2D.hh:156
bool JGEOMETRY2D::JCircle2D::is_inside ( const JVector2D pos,
const double  precision = std::numeric_limits<double>::min() 
) const
inline

Check whether given point is inside circle.

Parameters
posposition
precisionprecision
Returns
true if inside; else false

Definition at line 269 of file JCircle2D.hh.

271  {
272  return (this->getDistance(pos) <= this->getRadius() + precision);
273  }
double getRadius() const
Get radius.
Definition: JCircle2D.hh:143
double getDistance(const JVector2D &point) const
Get distance to point.
Definition: JVector2D.hh:223
template<class T >
void JGEOMETRY2D::JCircle2D::configure ( T  __begin,
T  __end,
const JVector2D p0,
const double  precision 
)
inlineprivate

Determine smallest enclosing circle.

Parameters
__beginbegin of data
__endend of data
p0point on circle
precisionprecision

Definition at line 355 of file JCircle2D.hh.

359  {
360  this->set(JVector2D(__begin->getX(), __begin->getY()), p0);
361 
362  for (T i = __begin; ++i != __end; ) {
363 
364  const JVector2D p1(i->getX(), i->getY());
365 
366  if (this->getDistance(p1) > this->getRadius() + precision &&
367  p0.getDistanceSquared(p1) > precision) {
368  configure(__begin, i, p0, p1, precision);
369  }
370  }
371  }
Data structure for vector in two dimensions.
Definition: JVector2D.hh:32
double getRadius() const
Get radius.
Definition: JCircle2D.hh:143
TPaveText * p1
JVector2D()
Default constructor.
Definition: JVector2D.hh:39
double getDistanceSquared(const JVector2D &point) const
Get squared of distance to point.
Definition: JVector2D.hh:211
double getDistance(const JVector2D &point) const
Get distance to point.
Definition: JVector2D.hh:223
do set_variable OUTPUT_DIRECTORY $WORKDIR T
void configure(T __begin, T __end, const JVector2D &p0, const double precision)
Determine smallest enclosing circle.
Definition: JCircle2D.hh:355
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
Definition: JCircle2D.hh:156
template<class T >
void JGEOMETRY2D::JCircle2D::configure ( T  __begin,
T  __end,
const JVector2D p0,
const JVector2D p1,
const double  precision 
)
inlineprivate

Determine smallest enclosing circle.

Parameters
__beginbegin of data
__endend of data
p0point on circle
p1point on circle
precisionprecision

Definition at line 384 of file JCircle2D.hh.

389  {
390  this->set(p0, p1);
391 
392  for (T i = __begin; i != __end; ++i) {
393 
394  const JVector2D p2(i->getX(), i->getY());
395 
396  if (this->getDistance(p2) > this->getRadius() + precision &&
397  p0.getDistanceSquared(p2) > precision &&
398  p1.getDistanceSquared(p2) > precision) {
399  this->set(p0, p1, p2, precision);
400  }
401  }
402  }
Data structure for vector in two dimensions.
Definition: JVector2D.hh:32
double getRadius() const
Get radius.
Definition: JCircle2D.hh:143
double getDistanceSquared(const JVector2D &point) const
Get squared of distance to point.
Definition: JVector2D.hh:211
double getDistance(const JVector2D &point) const
Get distance to point.
Definition: JVector2D.hh:223
do set_variable OUTPUT_DIRECTORY $WORKDIR T
p2
Definition: module-Z:fit.sh:72
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
Definition: JCircle2D.hh:156
const JPosition2D& JGEOMETRY2D::JPosition2D::getPosition ( ) const
inlineinherited

Get position.

Returns
position

Definition at line 97 of file JPosition2D.hh.

98  {
99  return static_cast<const JPosition2D&>(*this);
100  }
Data structure for position in two dimensions.
Definition: JPosition2D.hh:30
JPosition2D& JGEOMETRY2D::JPosition2D::getPosition ( )
inlineinherited

Get position.

Returns
position

Definition at line 108 of file JPosition2D.hh.

109  {
110  return static_cast<JPosition2D&>(*this);
111  }
Data structure for position in two dimensions.
Definition: JPosition2D.hh:30
void JGEOMETRY2D::JPosition2D::setPosition ( const JVector2D pos)
inlineinherited

Set position.

Parameters
posposition

Definition at line 119 of file JPosition2D.hh.

120  {
121  static_cast<JVector2D&>(*this) = pos;
122  }
Data structure for vector in two dimensions.
Definition: JVector2D.hh:32
JGEOMETRY2D::JPosition2D::operator JAngle2D ( ) const
inlineinherited

Type conversion operator.

Returns
angle

Definition at line 130 of file JPosition2D.hh.

131  {
132  return JAngle2D(getX(), getY());
133  }
Data structure for angle in two dimensions.
Definition: JAngle2D.hh:32
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
JGEOMETRY2D::JPosition2D::operator JVersor2D ( ) const
inlineinherited

Type conversion operator.

Returns
direction

Definition at line 141 of file JPosition2D.hh.

142  {
143  return JVersor2D(getX(), getY());
144  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
Data structure for normalised vector in two dimensions.
Definition: JVersor2D.hh:20
double getX() const
Get x position.
Definition: JVector2D.hh:63
JPosition2D& JGEOMETRY2D::JPosition2D::rotate ( const JRotation2D R)
inlineinherited

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  }
void rotate(double &__x, double &__y) const
Rotate.
Definition: JRotation2D.hh:96
JPosition2D& JGEOMETRY2D::JPosition2D::rotate_back ( const JRotation2D R)
inlineinherited

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  }
void rotate_back(double &__x, double &__y) const
Rotate back.
Definition: JRotation2D.hh:112
double JGEOMETRY2D::JPosition2D::getDot ( const JAngle2D angle) const
inlineinherited

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  }
double getDX() const
Get x direction.
Definition: JAngle2D.hh:82
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
double getDY() const
Get y direction.
Definition: JAngle2D.hh:93
double JGEOMETRY2D::JPosition2D::getDot ( const JVersor2D versor) const
inlineinherited

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  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getDX() const
Get x direction.
Definition: JVersor2D.hh:53
double getX() const
Get x position.
Definition: JVector2D.hh:63
double getDY() const
Get y direction.
Definition: JVersor2D.hh:64
double JGEOMETRY2D::JVector2D::getDot ( const JVector2D point) const
inlineinherited

Get dot product.

Parameters
pointvector
Returns
dot product

Definition at line 235 of file JVector2D.hh.

236  {
237  return
238  getX() * point.getX() +
239  getY() * point.getY();
240  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
double JGEOMETRY2D::JPosition2D::getPerpDot ( const JAngle2D angle) const
inlineinherited

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  }
double getDX() const
Get x direction.
Definition: JAngle2D.hh:82
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
double getDY() const
Get y direction.
Definition: JAngle2D.hh:93
double JGEOMETRY2D::JPosition2D::getPerpDot ( const JVersor2D dir) const
inlineinherited

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  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getDX() const
Get x direction.
Definition: JVersor2D.hh:53
double getX() const
Get x position.
Definition: JVector2D.hh:63
double getDY() const
Get y direction.
Definition: JVersor2D.hh:64
double JGEOMETRY2D::JVector2D::getPerpDot ( const JVector2D point) const
inlineinherited

Get perpendicular dot product.

Parameters
pointvector
Returns
perpendicular dot product

Definition at line 249 of file JVector2D.hh.

250  {
251  return
252  getX() * point.getY() -
253  getY() * point.getX();
254  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
double JGEOMETRY2D::JVector2D::getX ( ) const
inlineinherited

Get x position.

Returns
x position

Definition at line 63 of file JVector2D.hh.

64  {
65  return __x;
66  }
double JGEOMETRY2D::JVector2D::getY ( ) const
inlineinherited

Get y position.

Returns
y position

Definition at line 74 of file JVector2D.hh.

75  {
76  return __y;
77  }
JVector2D& JGEOMETRY2D::JVector2D::negate ( )
inlineinherited

Negate vector.

Returns
this vector

Definition at line 85 of file JVector2D.hh.

86  {
87  __x = -__x;
88  __y = -__y;
89 
90  return *this;
91  }
JVector2D& JGEOMETRY2D::JVector2D::add ( const JVector2D vector)
inlineinherited

Add vector.

Parameters
vectorvector
Returns
this vector

Definition at line 100 of file JVector2D.hh.

101  {
102  __x += vector.getX();
103  __y += vector.getY();
104 
105  return *this;
106  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
JVector2D& JGEOMETRY2D::JVector2D::sub ( const JVector2D vector)
inlineinherited

Subtract vector.

Parameters
vectorvector
Returns
this vector

Definition at line 115 of file JVector2D.hh.

116  {
117  __x -= vector.getX();
118  __y -= vector.getY();
119 
120  return *this;
121  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
JVector2D& JGEOMETRY2D::JVector2D::mul ( const double  factor)
inlineinherited

Scale vector.

Parameters
factormultiplication factor
Returns
this vector

Definition at line 130 of file JVector2D.hh.

131  {
132  __x *= factor;
133  __y *= factor;
134 
135  return *this;
136  }
template<class JFirst_t, class JSecond_t = JNullType>
JFirst_t& JMATH::JMath< JFirst_t, JSecond_t >::mul ( const JSecond_t &  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
JVector2D& JGEOMETRY2D::JVector2D::div ( const double  factor)
inlineinherited

Scale vector.

Parameters
factordivision factor
Returns
this vector

Definition at line 145 of file JVector2D.hh.

146  {
147  __x /= factor;
148  __y /= factor;
149 
150  return *this;
151  }
JVector2D& JGEOMETRY2D::JVector2D::transform ( const JMatrix2D T)
inlineinherited

Transform.

Parameters
Tmatrix
Returns
this vector

Definition at line 160 of file JVector2D.hh.

161  {
162  T.transform(__x, __y);
163 
164  return *this;
165  }
do set_variable OUTPUT_DIRECTORY $WORKDIR T
bool JGEOMETRY2D::JVector2D::equals ( const JVector2D vector,
const double  precision = std::numeric_limits<double>::min() 
) const
inlineinherited

Check equality.

Parameters
vectorvector
precisionprecision
Returns
true if vectors are equal; else false

Definition at line 175 of file JVector2D.hh.

177  {
178  return (fabs(getX() - vector.getX()) <= precision &&
179  fabs(getY() - vector.getY()) <= precision);
180  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
double JGEOMETRY2D::JVector2D::getLengthSquared ( ) const
inlineinherited

Get length squared.

Returns
square of length

Definition at line 188 of file JVector2D.hh.

189  {
190  return getX()*getX() + getY()*getY();
191  }
double getY() const
Get y position.
Definition: JVector2D.hh:74
double getX() const
Get x position.
Definition: JVector2D.hh:63
double JGEOMETRY2D::JVector2D::getLength ( ) const
inlineinherited

Get length.

Returns
length

Definition at line 199 of file JVector2D.hh.

200  {
201  return sqrt(getLengthSquared());
202  }
double getLengthSquared() const
Get length squared.
Definition: JVector2D.hh:188
double JGEOMETRY2D::JVector2D::getDistanceSquared ( const JVector2D point) const
inlineinherited

Get squared of distance to point.

Parameters
pointpoint
Returns
square of distance

Definition at line 211 of file JVector2D.hh.

212  {
213  return JVector2D(point).sub(*this).getLengthSquared();
214  }
JVector2D()
Default constructor.
Definition: JVector2D.hh:39
double JGEOMETRY2D::JVector2D::getDistance ( const JVector2D point) const
inlineinherited

Get distance to point.

Parameters
pointpoint
Returns
distance

Definition at line 223 of file JVector2D.hh.

224  {
225  return sqrt(getDistanceSquared(point));
226  }
double getDistanceSquared(const JVector2D &point) const
Get squared of distance to point.
Definition: JVector2D.hh:211

Friends And Related Function Documentation

std::istream& operator>> ( std::istream &  in,
JCircle2D circle 
)
friend

Read circle from input stream.

Parameters
ininput stream
circlecircle
Returns
input stream

Definition at line 283 of file JCircle2D.hh.

284  {
285  in >> static_cast<JPosition2D&>(circle);
286  in >> circle.__r;
287 
288  return in;
289  }
Data structure for position in two dimensions.
Definition: JPosition2D.hh:30
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:38
std::ostream& operator<< ( std::ostream &  out,
const JCircle2D circle 
)
friend

Write circle to output stream.

Parameters
outoutput stream
circlecircle
Returns
output stream

Definition at line 299 of file JCircle2D.hh.

300  {
301  out << static_cast<const JPosition2D&>(circle);
302  out << ' ';
303  out << circle.__r;
304 
305  return out;
306  }
JReader& operator>> ( JReader in,
JCircle2D circle 
)
friend

Read circle from input.

Parameters
inreader
circlecircle
Returns
reader

Definition at line 316 of file JCircle2D.hh.

317  {
318  in >> static_cast<JPosition2D&>(circle);
319  in >> circle.__r;
320 
321  return in;
322  }
Data structure for position in two dimensions.
Definition: JPosition2D.hh:30
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:38
JWriter& operator<< ( JWriter out,
const JCircle2D circle 
)
friend

Write circle to output.

Parameters
outwriter
circlecircle
Returns
writer

Definition at line 332 of file JCircle2D.hh.

333  {
334  out << static_cast<const JPosition2D&>(circle);
335  out << circle.__r;
336 
337  return out;
338  }

Member Data Documentation

double JGEOMETRY2D::JCircle2D::__r
protected

Definition at line 342 of file JCircle2D.hh.

double JGEOMETRY2D::JVector2D::__x
protectedinherited

Definition at line 257 of file JVector2D.hh.

double JGEOMETRY2D::JVector2D::__y
protectedinherited

Definition at line 258 of file JVector2D.hh.


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