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);
void setX(double x)
Set displacement.
Rotation in 3-dimensional space.
static Euclid3D XRotation(double angle)
Make rotation.
void setDisplacement(const Vector3D &V)
Set displacement.
const Euclid3D & operator*=(const Euclid3D &rhs)
Dot product with assign.
Euclid3D operator*(const Euclid3D &rhs) const
Dot product.
item[EANGLE] Entrance edge angle(radians).\item[ROTATION] Rotation of the magnet about its central axis(radians
bool isPureYRotation() const
Test for rotation.
Euclid3D()
Default constructor.
static Rotation3D ZRotation(double angle)
Make rotation.
bool isPureXRotation() const
Test for rotation.
Euclid3D inverse() const
Inverse.
bool operator!=(const Euclid3D &) const
bool isPureZRotation() const
Test for rotation.
void setZ(double z)
Set displacement.
const Rotation3D & getRotation() const
Get rotation.
static Euclid3D ZRotation(double angle)
Make rotation.
bool isZero() const
Test for zero.
void getComponents(double &x, double &y, double &z) const
Get components.
bool operator==(const Euclid3D &) const
static Euclid3D YRotation(double angle)
Make rotation.
void setY(double)
Set component.
static Euclid3D translation(double x, double y, double z)
Make translation.
Rotation3D inverse() const
Inversion.
bool isPureTranslation() const
Test for translation.
void getAll(double &x, double &y, double &z, double &vx, double &vy, double &vz) const
Unpack.
static Rotation3D YRotation(double angle)
Make rotation.
void setY(double y)
Set displacement.
const Euclid3D & dotBy(const Euclid3D &rhs)
Dot product with assign.
bool isPureXRotation() const
Test for rotation.
static Rotation3D XRotation(double angle)
Make rotation.
bool isIdentity() const
Test for identity.
Euclid3D dot(const Euclid3D &rhs) const
Dot product.
void setX(double)
Set component.
static Euclid3D identity()
Make identity.
Displacement and rotation in space.
Vector3D getAxis() const
Get axis vector.
bool isPureYRotation() const
Test for rotation.
bool isPureZRotation() const
Test for rotation.
void setRotation(const Rotation3D &R)
Set rotation.
void setZ(double)
Set component.
static Rotation3D Identity()
Make identity.
const Vector3D & getVector() const
Get displacement.