Package org.robwork.sdurw_math
Class Rotation3Dd
- java.lang.Object
-
- org.robwork.sdurw_math.Rotation3Dd
-
public class Rotation3Dd extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description Rotation3Dd()
A rotation matrix with uninitialized storage.Rotation3Dd(double r11, double r12, double r13, double r21, double r22, double r23, double r31, double r32, double r33)
Rotation3Dd(long cPtr, boolean cMemoryOwn)
Rotation3Dd(Vector3Dd i, Vector3Dd j, Vector3Dd k)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
delete()
EigenMatrix3d
e()
Returns a Eigen 3x3 matrix \mathbf{M}\in SO(3) that represents this rotation
boolean
equal(Rotation3Dd rot)
Compares rotations with a given precision
Performs an element wise comparison.boolean
equal(Rotation3Dd rot, double precision)
Compares rotations with a given precision
Performs an element wise comparison.boolean
equals(Rotation3Dd rhs)
Comparison operator.
The comparison operator makes a element wise comparison.
Returns true only if all elements are equal.
double
get(long row, long column)
Vector3Dd
getCol(long i)
Returns the i'th column of the rotation matrixstatic long
getCPtr(Rotation3Dd obj)
Vector3Dd
getRow(long i)
Returns the i'th row of the rotation matrixstatic Rotation3Dd
identity()
Rotation3Dd
inverse()
Rotation3Dd
inverse(boolean copy)
Calculate the inverse.boolean
isProperRotation()
Verify that this rotation is a proper rotation
boolean
isProperRotation(double precision)
Verify that this rotation is a proper rotation
EAAd
multiply(EAAd rhs)
InertiaMatrixd
multiply(InertiaMatrixd rhs)
Rotation3Dd
multiply(Rotation3Dd bRc)
Calculates \robabx{a}{c}{\mathbf{R}} = \robabx{a}{b}{\mathbf{R}} \robabx{b}{c}{\mathbf{R}}
static void
multiply(Rotation3Dd a, Rotation3Dd b, Rotation3Dd result)
Write to result the product a * b.static void
multiply(Rotation3Dd a, Vector3Dd b, Vector3Dd result)
Write to result the product a * b.Vector3Dd
multiply(Vector3Dd bVc)
Calculates \robabx{a}{c}{\mathbf{v}} = \robabx{a}{b}{\mathbf{R}} \robabx{b}{c}{\mathbf{v}}
VelocityScrew6Dd
multiply(VelocityScrew6Dd rhs)
Wrench6Dd
multiply(Wrench6Dd rhs)
void
normalize()
Normalizes the rotation matrix to satisfy SO(3).
Makes a normalization of the rotation matrix such that the columns
are normalized and othogonal s.t.boolean
notEqual(Rotation3Dd rhs)
Comparison operator.
The comparison operator makes a element wise comparison.
Returns true if any of the elements are different.
void
set(long row, long column, double d)
static Rotation3Dd
skew(Vector3Dd v)
Creates a skew symmetric matrix from a Vector3D.java.lang.String
toString()
double
tr()
-
-
-
Constructor Detail
-
Rotation3Dd
public Rotation3Dd(long cPtr, boolean cMemoryOwn)
-
Rotation3Dd
public Rotation3Dd()
A rotation matrix with uninitialized storage.
-
Rotation3Dd
public Rotation3Dd(double r11, double r12, double r13, double r21, double r22, double r23, double r31, double r32, double r33)
-
-
Method Detail
-
getCPtr
public static long getCPtr(Rotation3Dd obj)
-
delete
public void delete()
-
identity
public static Rotation3Dd identity()
-
normalize
public void normalize()
Normalizes the rotation matrix to satisfy SO(3).
Makes a normalization of the rotation matrix such that the columns
are normalized and othogonal s.t. it belongs to SO(3).
-
get
public double get(long row, long column)
-
set
public void set(long row, long column, double d)
-
getRow
public Vector3Dd getRow(long i)
Returns the i'th row of the rotation matrix- Parameters:
i
- [in] Index of the row to return. Only valid indices are 0, 1 and 2.
-
getCol
public Vector3Dd getCol(long i)
Returns the i'th column of the rotation matrix- Parameters:
i
- [in] Index of the column to return. Only valid indices are 0, 1 and 2.
-
equals
public boolean equals(Rotation3Dd rhs)
Comparison operator.
The comparison operator makes a element wise comparison.
Returns true only if all elements are equal.
- Parameters:
rhs
- [in] Rotation to compare with- Returns:
- True if equal.
-
notEqual
public boolean notEqual(Rotation3Dd rhs)
Comparison operator.
The comparison operator makes a element wise comparison.
Returns true if any of the elements are different.
- Parameters:
rhs
- [in] Rotation to compare with- Returns:
- True if not equal.
-
equal
public boolean equal(Rotation3Dd rot, double precision)
Compares rotations with a given precision
Performs an element wise comparison. Two elements are considered equal if the difference
are less than precision.
- Parameters:
rot
- [in] Rotation to compare withprecision
- [in] The precision to use for testing- Returns:
- True if all elements are less than precision apart.
-
equal
public boolean equal(Rotation3Dd rot)
Compares rotations with a given precision
Performs an element wise comparison. Two elements are considered equal if the difference
are less than precision.
- Parameters:
rot
- [in] Rotation to compare with
- Returns:
- True if all elements are less than precision apart.
-
isProperRotation
public boolean isProperRotation()
Verify that this rotation is a proper rotation
- Returns:
- True if this rotation is considered a proper rotation
-
isProperRotation
public boolean isProperRotation(double precision)
Verify that this rotation is a proper rotation
- Returns:
- True if this rotation is considered a proper rotation
-
e
public EigenMatrix3d e()
Returns a Eigen 3x3 matrix \mathbf{M}\in SO(3) that represents this rotation
- Returns:
- \mathbf{M}\in SO(3)
-
multiply
public Rotation3Dd multiply(Rotation3Dd bRc)
Calculates \robabx{a}{c}{\mathbf{R}} = \robabx{a}{b}{\mathbf{R}} \robabx{b}{c}{\mathbf{R}}
- Parameters:
bRc
- [in] \robabx{b}{c}{\mathbf{R}}
- Returns:
- \robabx{a}{c}{\mathbf{R}}
-
multiply
public Vector3Dd multiply(Vector3Dd bVc)
Calculates \robabx{a}{c}{\mathbf{v}} = \robabx{a}{b}{\mathbf{R}} \robabx{b}{c}{\mathbf{v}}
- Parameters:
bVc
- [in] \robabx{b}{c}{\mathbf{v}}- Returns:
- \robabx{a}{c}{\mathbf{v}}
-
skew
public static Rotation3Dd skew(Vector3Dd v)
Creates a skew symmetric matrix from a Vector3D. Also
known as the cross product matrix of v.
- Parameters:
v
- [in] vector to create Skew matrix from
-
multiply
public static void multiply(Rotation3Dd a, Rotation3Dd b, Rotation3Dd result)
Write to result the product a * b.
-
multiply
public static void multiply(Rotation3Dd a, Vector3Dd b, Vector3Dd result)
Write to result the product a * b.
-
inverse
public Rotation3Dd inverse()
-
inverse
public Rotation3Dd inverse(boolean copy)
Calculate the inverse.- Parameters:
copy
- [in] if coopy is false, This function changes the object that it is invoked
on, but this is about x5 faster than rot = inverse( rot ). else it changes the object,
making it a bit slower.- Returns:
- the inverse rotation.
-
tr
public double tr()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
multiply
public InertiaMatrixd multiply(InertiaMatrixd rhs)
-
multiply
public VelocityScrew6Dd multiply(VelocityScrew6Dd rhs)
-
-