34#ifndef LIB2GEOM_SEEN_CIRCLE_H
35#define LIB2GEOM_SEEN_CIRCLE_H
50 : boost::equality_comparable1< Circle
51 , MultipliableNoncommutative< Circle, Translate
52 , MultipliableNoncommutative< Circle, Rotate
53 , MultipliableNoncommutative< Circle, Zoom
102 std::vector<ShapeIntersection>
intersect(
Line const &other)
const;
133 bool operator==(
Circle const &other)
const;
137 void fit(std::vector<Point>
const &points);
142std::ostream &operator<<(std::ostream &out, Circle
const &
c);
Cartesian point / 2D vector and related operations.
Set of all points at a fixed distance from the center.
Coord center(Dim2 d) const
Circle & operator*=(Rotate const &)
Circle & operator*=(Translate const &t)
Point initialPoint() const
EllipticalArc * arc(Point const &initial, Point const &inner, Point const &final) const
Circle & operator*=(Zoom const &z)
Zoom inverseUnitCircleTransform() const
std::vector< ShapeIntersection > intersect(Line const &other) const
Coord valueAt(Coord t, Dim2 d) const
D2< SBasis > toSBasis() const
bool isDegenerate() const
Coord timeAt(Point const &p) const
Zoom unitCircleTransform() const
void setCenter(Point const &p)
bool contains(Point const &p) const
Coord nearestTime(Point const &p) const
Circle(Coord A, Coord B, Coord C, Coord D)
Circle(Point const ¢er, Coord r)
bool intersects(LineSegment const &l) const
std::vector< Coord > coefficients() const
Circle(Coord cx, Coord cy, Coord r)
void setCoefficients(Coord A, Coord B, Coord C, Coord D)
Point pointAt(Coord t) const
Adaptor that creates 2D functions from 1D ones.
Set of points with a constant sum of distances from two foci.
Intersection between two shapes.
Range of real numbers that is never empty.
Infinite line on a plane.
Two-dimensional point that doubles as a vector.
Axis aligned, non-empty rectangle.
Rotation around the origin.
Combination of a translation and uniform scale.
double inner(valarray< double > const &x, valarray< double > const &y)
Contains forward declarations of 2geom types.
Dim2
2D axis enumeration (X or Y).
double Coord
Floating point type used to store coordinates.
constexpr Coord EPSILON
Default "acceptably small" value.
Various utility functions.
Angle distance(Angle const &a, Angle const &b)
bool are_near(Affine const &a1, Affine const &a2, Coord eps=EPSILON)
Ellipse AffineClosureType
Intersection IntersectionType