6#ifndef ACTIVE_GEOMETRY_VECTOR_4
7#define ACTIVE_GEOMETRY_VECTOR_4
9#include "Active/Geometry/Point.h"
26 using Unique = std::unique_ptr<Vector4>;
28 using Shared = std::shared_ptr<Vector4>;
30 using Option = std::optional<Vector4>;
44 Vector4(
const double& x,
const double& y,
const double& z);
155 const double operator[](
int row)
const {
return m_vector[row % 4]; }
160 operator Point()
const;
226 std::array<double, 4> m_vector;
Class to represent a line.
Definition Line.h:21
A 4x4 matrix class.
Definition Matrix4x4.h:14
A 1x3 vector class.
Definition Vector3.h:20
A 1x4 vector class.
Definition Vector4.h:20
Vector4 operator-(const Vector4 &vect) const
Definition Vector4.cpp:179
double magnitude() const
Definition Vector4.cpp:328
double dotProduct(const Vector4 &ref) const
Definition Vector4.cpp:341
const double operator[](int row) const
Definition Vector4.h:155
double modulus() const
Definition Vector4.h:207
bool isSameSense(const Vector4 &ref, double prec=math::eps) const
Definition Vector4.cpp:301
Vector4 & operator-=(const Vector4 &vect)
Definition Vector4.cpp:190
Vector4 & operator*=(double scale)
Definition Vector4.cpp:229
Vector4 & operator+=(const Vector4 &vect)
Definition Vector4.cpp:164
bool isParallelTo(const Vector4 &ref, double prec=math::eps) const
Definition Vector4.cpp:275
Vector4()
Definition Vector4.cpp:21
Vector4 operator*(double scale) const
Definition Vector4.cpp:205
std::unique_ptr< Vector4 > Unique
Unique pointer.
Definition Vector4.h:26
Vector4 operator+(const Vector4 &vect) const
Definition Vector4.cpp:152
Vector4 vectorProduct(const Vector4 &ref) const
Definition Vector4.cpp:354
Vector4 & operator=(const Point &source)
Definition Vector4.cpp:89
bool isPerpendicularTo(const Vector4 &ref, double prec=math::eps) const
Definition Vector4.cpp:288
double & operator[](int row)
Definition Vector4.h:149
virtual ~Vector4()=default
Vector4 normalised() const
Definition Vector4.cpp:366
bool isEmpty(double prec=math::eps) const
Definition Vector4.cpp:317
std::optional< Vector4 > Option
Optional.
Definition Vector4.h:30
double angleTo(const Vector4 &ref) const
Definition Vector4.cpp:386
std::shared_ptr< Vector4 > Shared
Shared pointer.
Definition Vector4.h:28
constexpr double eps
Default length precision (0.01mm)
Definition MathFunctions.h:22