32 (
double x,
double y,
double z,
double vx,
double vy,
double vz):
33 V(x, y, z),
R(vx, vy, vz), is_identity(
false)
38 V(vec),
R(rot), is_identity(false)
43 return (
V == rhs.
V) && (
R == rhs.
R);
48 return (
V != rhs.
V) || (
R != rhs.
R);
53 double &vx,
double &vy,
double &vz)
const {
98 return result.
dotBy(rhs);
112 return result.
dotBy(rhs);
Euclid3D dot(const Euclid3D &rhs) const
Dot product.
static Euclid3D XRotation(double angle)
Make rotation.
void setDisplacement(const Vector3D &V)
Set displacement.
const Euclid3D & operator*=(const Euclid3D &rhs)
Dot product with assign.
bool isPureYRotation() const
Test for rotation.
static Euclid3D translation(double x, double y, double z)
Make translation.
bool isIdentity() const
Test for identity.
void setY(double y)
Set displacement.
bool isPureYRotation() const
Test for rotation.
Euclid3D()
Default constructor.
Euclid3D inverse() const
Inverse.
Rotation3D inverse() const
Inversion.
bool operator!=(const Euclid3D &) const
void setRotation(const Rotation3D &R)
Set rotation.
bool isPureZRotation() const
Test for rotation.
static Rotation3D Identity()
Make identity.
static Euclid3D YRotation(double angle)
Make rotation.
static Euclid3D identity()
Make identity.
void setZ(double)
Set component.
bool operator==(const Euclid3D &) const
bool isPureZRotation() const
Test for rotation.
void getAll(double &x, double &y, double &z, double &vx, double &vy, double &vz) const
Unpack.
bool isZero() const
Test for zero.
const Euclid3D & dotBy(const Euclid3D &rhs)
Dot product with assign.
Displacement and rotation in space.
bool isPureXRotation() const
Test for rotation.
static Rotation3D ZRotation(double angle)
Make rotation.
void setY(double)
Set component.
void setZ(double z)
Set displacement.
const Rotation3D & getRotation() const
Get rotation.
void getComponents(double &x, double &y, double &z) const
Get components.
void setX(double x)
Set displacement.
Euclid3D operator*(const Euclid3D &rhs) const
Dot product.
static Rotation3D YRotation(double angle)
Make rotation.
static Rotation3D XRotation(double angle)
Make rotation.
bool isPureXRotation() const
Test for rotation.
bool isPureTranslation() const
Test for translation.
void setX(double)
Set component.
Rotation in 3-dimensional space.
static Euclid3D ZRotation(double angle)
Make rotation.
Vector3D getAxis() const
Get axis vector.
const Vector3D & getVector() const
Get displacement.