|
| HomogeneousTransform_Double () |
|
| HomogeneousTransform_Double (xyzVector< double > const &p1, xyzVector< double > const &p2, xyzVector< double > const &p3) |
|
| HomogeneousTransform_Double (xyzVector< double > const &xaxis, xyzVector< double > const &yaxis, xyzVector< double > const &zaxis, xyzVector< double > const &point) |
|
| HomogeneousTransform_Double (xyzMatrix< double > const &axes, xyzVector< double > const &point) |
|
| HomogeneousTransform () |
| Default constructor: axis aligned with the global coordinate frame and the point located at the origin. More...
|
|
| HomogeneousTransform (xyzVector< double > const &p1, xyzVector< double > const &p2, xyzVector< double > const &p3) |
| Construct the coordinate frame from the points defined such that. More...
|
|
| HomogeneousTransform (xyzVector< double > const &xaxis, xyzVector< double > const &yaxis, xyzVector< double > const &zaxis, xyzVector< double > const &point) |
| Constructor from xyzVectors: trust that the axis are indeed orthoganol. More...
|
|
| HomogeneousTransform (xyzMatrix< double > const &axes, xyzVector< double > const &point) |
| Constructor from an xyzMatrix and xyzVectors: trust that the axis are indeed orthoganol. More...
|
|
bool | is_close (HomogeneousTransform< double > const &other, platform::Real const threshold=1.0e-6) |
|
value_type | xx () const |
|
value_type | xy () const |
|
value_type | xz () const |
|
value_type | yx () const |
|
value_type | yy () const |
|
value_type | yz () const |
|
value_type | zx () const |
|
value_type | zy () const |
|
value_type | zz () const |
|
value_type | px () const |
|
value_type | py () const |
|
value_type | pz () const |
|
xyzVector< double > | xaxis () const |
|
xyzVector< double > | yaxis () const |
|
xyzVector< double > | zaxis () const |
|
xyzVector< double > | point () const |
|
xyzMatrix< double > | rotation_matrix () const |
|
void | set_identity_rotation () |
| Mutators. More...
|
|
void | set_identity_transform () |
|
void | set_identity () |
|
void | set_xaxis_rotation_deg (double angle) |
|
void | set_yaxis_rotation_deg (double angle) |
|
void | set_zaxis_rotation_deg (double angle) |
|
void | set_xaxis_rotation_rad (double angle) |
|
void | set_yaxis_rotation_rad (double angle) |
|
void | set_zaxis_rotation_rad (double angle) |
|
void | set_transform (xyzVector< double > const &t) |
| Set this HT to describe a transformation along the three axes. This has the size effect of setting the axes to the global axes. More...
|
|
void | set_point (xyzVector< double > const &p) |
| Set the point that this HT is centered at. This leaves the axes untouched. More...
|
|
void | walk_along_x (double delta) |
| Right multiply this coordinate frame by the frame 1 0 0 delta 0 1 0 0 0 0 1 0. More...
|
|
void | walk_along_y (double delta) |
| Right multiply this coordinate frame by the frame 1 0 0 0 0 1 0 delta 0 0 1 0. More...
|
|
void | walk_along_z (double delta) |
| Right multiply this coordinate frame by the frame 1 0 0 0 0 1 0 0 0 0 1 delta. More...
|
|
HomogeneousTransform< double > | operator* (HomogeneousTransform< double > const &rmat) const |
| Multiplication. More...
|
|
xyzVector< double > | operator* (xyzVector< double > const &vect) const |
| Transform a point. The input point is a location in this coordinate frame the output point is the location in global coordinate frame. More...
|
|
HomogeneousTransform< double > | inverse () const |
| Invert this matrix. More...
|
|
xyzVector< double > | to_local_coordinate (xyzVector< double > const &v) const |
| Convert a point in the global coordinate system to a point in this coordinate frame. If this frame is F and the point is p, then this solves for x st: F x = p. Equivalent to computing (F.inverse() * p).point(). More...
|
|
xyzVector< double > | euler_angles_rad () const |
| Return the three euler angles (in radians) that describe this HomogeneousTransform as the series of a Z axis rotation by the angle phi (returned in position 1 of the output vector), followed by an X axis rotation by the angle theta (returned in position 3 of the output vector), followed by another Z axis rotation by the angle psi (returned in position 2 of the output vector). This code is a modified version of Alex Z's code from r++. More...
|
|
xyzVector< double > | euler_angles_ZYX_rad () const |
| Return the three euler angles (in radians) that describe this HomogeneousTransform as the series of a Z axis rotation by the angle psi (returned in position 1 of the output vector), followed by an Y axis rotation by the angle theta (returned in position 2 of the output vector), followed by an X axis rotation by the angle phi (returned in position 3 of the output vector). This convention of Euler angles is added for use in iterative algorithms that aim to minimize Euler angle errors. When Euler angle error between two vectors approaches zero, the three Euler axes of that error become increasingly orthogonal, which benefits stability and speed of conversion Equations adopted from http://web.mit.edu/2.05/www/Handout/HO2.PDF (by Olivier Chocron) More...
|
|
xyzVector< double > | euler_angles_deg () const |
|
void | from_euler_angles_rad (xyzVector< double > const &euler) |
| Construct the coordinate frame from three euler angles that describe the frame. Keep the point fixed. See the description for euler_angles_rad() to understand the Z-X-Z transformation convention. More...
|
|
void | from_euler_angles_deg (xyzVector< double > const &euler) |
|
double | xform_magnitude (double radius_of_gyration) |
| Less accurate functions. More...
|
|
std::ostream & | show (std::ostream &stream=std::cout) const |
|