6#ifndef ACTIVE_GEOMETRY_ROTATER
7#define ACTIVE_GEOMETRY_ROTATER
9#include "Active/Geometry/Point.h"
28 using Unique = std::unique_ptr<Rotater>;
30 using Shared = std::shared_ptr<Rotater>;
32 using Option = std::optional<Rotater>;
69 virtual double getAngle()
const {
return m_angle; }
74 virtual bool isActive()
const {
return m_isActive; }
130 const double& k1()
const {
return m_k1; }
131 const double& k2()
const {
return m_k2; }
Class to represent an arc.
Definition Arc.h:25
Class to represent a line.
Definition Line.h:21
Class to represent a plane.
Definition Plane.h:21
Base class for rotation classes.
Definition Rotater.h:22
Rotater(double angle=0.0, double prec=math::eps)
Definition Rotater.h:41
virtual Point & transformPt(Point &target) const =0
virtual ~Rotater()=default
std::unique_ptr< Rotater > Unique
Unique pointer.
Definition Rotater.h:28
virtual Rotater & reverse()
Definition Rotater.h:127
Rotater & operator=(const Rotater &source)
Definition Rotater.cpp:41
virtual Rotater * clonePtr() const =0
std::optional< Rotater > Option
Optional.
Definition Rotater.h:32
virtual void setAngle(double angle, double prec=math::eps)
Definition Rotater.cpp:57
virtual void transform(Arc &target) const
Definition Rotater.cpp:72
virtual double getAngle() const
Definition Rotater.h:69
std::shared_ptr< Rotater > Shared
Shared pointer.
Definition Rotater.h:30
virtual bool isActive() const
Definition Rotater.h:74
A 1x3 vector class.
Definition Vector3.h:20
A 1x4 vector class.
Definition Vector4.h:20
Class to perform rotations in the x axis.
Definition Rotater.h:142
virtual Point & transformPt(Point &target) const
Definition Rotater.cpp:174
virtual Rotater * clonePtr() const
Definition Rotater.h:163
virtual ~XRotater()=default
XRotater & operator=(const XRotater &source)
Definition Rotater.h:172
XRotater(double angle=0.0, double prec=math::eps)
Definition Rotater.h:152
XRotater(const Rotater &source)
Definition Rotater.h:157
Class to perform rotations in the y axis.
Definition Rotater.h:185
virtual void setAngle(double angle, double prec=math::eps)
Definition Rotater.h:237
YRotater & operator=(const YRotater &source)
Definition Rotater.h:215
YRotater(double angle=0.0, double prec=math::eps)
Definition Rotater.h:195
YRotater(const Rotater &source)
Definition Rotater.h:200
virtual double getAngle() const
Definition Rotater.h:223
virtual Rotater * clonePtr() const
Definition Rotater.h:206
virtual Point & transformPt(Point &target) const
Definition Rotater.cpp:189
virtual ~YRotater()=default
Class to perform rotations in the z axis.
Definition Rotater.h:242
ZRotater & operator=(const ZRotater &source)
Definition Rotater.h:272
ZRotater(const Rotater &source)
Definition Rotater.h:257
ZRotater(double angle=0.0, double prec=math::eps)
Definition Rotater.h:252
virtual Rotater * clonePtr() const
Definition Rotater.h:263
virtual ~ZRotater()=default
virtual Point & transformPt(Point &target) const
Definition Rotater.cpp:204
constexpr double eps
Default length precision (0.01mm)
Definition MathFunctions.h:22