87 const double precision = std::numeric_limits<double>::epsilon()) :
91 set(p0,
p1, p2, precision);
116 const double precision = std::numeric_limits<double>::epsilon()) :
120 set(__begin, __end, precision);
129 template<
class JElement_t,
class JAllocator_t>
131 const double precision = std::numeric_limits<double>::epsilon()) :
135 set(buffer.begin(), buffer.end(), precision);
178 const double precision = std::numeric_limits<double>::epsilon())
180 const double x0 = p2.
getX() -
p1.getX();
181 const double x1 = p0.
getX() - p2.
getX();
182 const double x2 =
p1.getX() - p0.
getX();
184 const double y0 =
p1.getY() - p2.
getY();
185 const double y1 = p2.
getY() - p0.
getY();
186 const double y2 = p0.
getY() -
p1.getY();
188 const double D = 2.0 * (p0.
getX()*y0 +
p1.getX()*y1 + p2.
getX()*y2);
190 if (fabs(D) > precision) {
193 const double b =
p1.getLengthSquared();
196 __x = (a*y0 + b*y1 + c*y2) / D;
197 __y = (a*x0 + b*x1 + c*x2) / D;
207 if (
c1.getRadius() > this->getRadius()) { *
this =
c1; }
208 if (c2.
getRadius() > this->getRadius()) { *
this = c2; }
228 const double precision = std::numeric_limits<double>::epsilon())
230 if (__begin != __end) {
232 __x = __begin->getX();
233 __y = __begin->getY();
238 const JVector2D p0(i->getX(), i->getY());
248 while (++i != __end) {
250 const JVector2D p2(i->getX(), i->getY());
254 p1.getDistance(p2) > precision) {
271 const double precision = std::numeric_limits<double>::min())
const
304 out << static_cast<const JPosition2D&>(circle);
337 out << static_cast<const JPosition2D&>(circle);
361 const double precision)
363 this->
set(
JVector2D(__begin->getX(), __begin->getY()), p0);
365 for (T i = __begin; ++i != __end; ) {
391 const double precision)
395 for (T i = __begin; i != __end; ++i) {
397 const JVector2D p2(i->getX(), i->getY());
401 p1.getDistanceSquared(p2) > precision) {
402 this->
set(p0,
p1, p2, precision);
TCanvas * c1
Global variables to handle mouse events.
JFormat_t & getFormat()
Get format for given type.
Auxiliary methods to convert data members or return values of member methods of a set of objects to a...
Data structure for circle in two dimensions.
friend JReader & operator>>(JReader &in, JCircle2D &circle)
Read circle from input.
void set(T __begin, T __end, const double precision=std::numeric_limits< double >::epsilon())
Set circle.
bool is_inside(const JVector2D &pos, const double precision=std::numeric_limits< double >::min()) const
Check whether given point is inside circle.
void set(const JVector2D &p0, const JVector2D &p1)
Set circle.
friend std::istream & operator>>(std::istream &in, JCircle2D &circle)
Read circle from input stream.
void configure(T __begin, T __end, const JVector2D &p0, const JVector2D &p1, const double precision)
Determine smallest enclosing circle.
JCircle2D(const JVector2D &point, const double r)
Constructor.
JCircle2D(const array_type< JElement_t, JAllocator_t > &buffer, const double precision=std::numeric_limits< double >::epsilon())
Constructor.
void configure(T __begin, T __end, const JVector2D &p0, const double precision)
Determine smallest enclosing circle.
JCircle2D(const JVector2D &p0, const JVector2D &p1)
Constructor.
JCircle2D(T __begin, T __end, const double precision=std::numeric_limits< double >::epsilon())
Constructor.
double getRadius() const
Get radius.
JCircle2D()
Default constructor.
void set(const JVector2D &p0, const JVector2D &p1, const JVector2D &p2, const double precision=std::numeric_limits< double >::epsilon())
Set circle.
friend JWriter & operator<<(JWriter &out, const JCircle2D &circle)
Write circle to output.
JCircle2D(const JVector2D &p0, const JVector2D &p1, const JVector2D &p2, const double precision=std::numeric_limits< double >::epsilon())
Constructor.
friend std::ostream & operator<<(std::ostream &out, const JCircle2D &circle)
Write circle to output stream.
Data structure for position in two dimensions.
Data structure for vector in two dimensions.
double getDistance(const JVector2D &point) const
Get distance to point.
double getY() const
Get y position.
double getDistanceSquared(const JVector2D &point) const
Get squared of distance to point.
double getX() const
Get x position.
JVector2D()
Default constructor.
double getLengthSquared() const
Get length squared.
Interface for binary input.
Interface for binary output.
Auxiliary classes and methods for 2D geometrical objects and operations.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for return type of make methods.