6#ifndef ACTIVE_GEOMETRY_LINEAR_EQUATION
7#define ACTIVE_GEOMETRY_LINEAR_EQUATION
9#include "Active/Geometry/Point.h"
10#include "Active/Geometry/XPoint.h"
25 using Unique = std::unique_ptr<LinEquation>;
27 using Shared = std::shared_ptr<LinEquation>;
29 using Option = std::optional<LinEquation>;
179 bool xAtY(
double y,
double& x)
const;
186 bool yAtX(
double x,
double& y)
const;
208 void calculate(
const Point& start =
Point(),
double dx = 1.0,
double dy = 0.0);
Class to represent a linear equation.
Definition LinEquation.h:19
double angleTo(const LinEquation &ref) const
Definition LinEquation.cpp:283
Position positionOf(const Point &ref, double prec=math::eps) const
Definition LinEquation.cpp:315
Option getFlipped() const
Definition LinEquation.cpp:235
double azimuthAngle() const
Definition LinEquation.cpp:216
Point closestPointTo(const Point &ref) const
Definition LinEquation.cpp:365
std::shared_ptr< LinEquation > Shared
Shared pointer.
Definition LinEquation.h:27
bool yAtX(double x, double &y) const
Definition LinEquation.cpp:350
static Option create(const Point &source)
Definition LinEquation.cpp:25
bool isPerpendicularTo(const LinEquation &ref, double prec=math::eps) const
Definition LinEquation.cpp:189
bool xAtY(double y, double &x) const
Definition LinEquation.cpp:334
bool operator<(const LinEquation &ref) const
Definition LinEquation.cpp:176
XPoint::Option intersectionWith(const LinEquation &ref) const
Definition LinEquation.cpp:298
double lengthTo(const Point &ref) const
Definition LinEquation.cpp:381
bool isXAxis(double prec=math::eps) const
Definition LinEquation.h:111
std::unique_ptr< LinEquation > Unique
Unique pointer.
Definition LinEquation.h:25
LinEquation()
Definition LinEquation.cpp:58
bool operator==(const LinEquation &ref) const
Definition LinEquation.cpp:150
Option getParallel(const Point &ref) const
Definition LinEquation.cpp:267
LinEquation & operator=(const LinEquation &source)
Definition LinEquation.cpp:133
bool isParallelTo(const LinEquation &ref, double prec=math::eps) const
Definition LinEquation.cpp:203
Option getPerpendicular(const Point &ref) const
Definition LinEquation.cpp:251
bool isYAxis(double prec=math::eps) const
Definition LinEquation.h:117
bool operator!=(const LinEquation &ref) const
Definition LinEquation.h:96
std::optional< LinEquation > Option
Optional.
Definition LinEquation.h:29
Class to represent a line.
Definition Line.h:21
std::optional< XPoint > Option
Optional.
Definition XPoint.h:41
Position
Relative spatial position.
Definition Position.h:12
@ end
On the end of an edge.
constexpr double eps
Default length precision (0.01mm)
Definition MathFunctions.h:22