Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
numeric::HomogeneousTransform_Double Class Reference

#include <HomogeneousTransform.hh>

Inheritance diagram for numeric::HomogeneousTransform_Double:
Inheritance graph
[legend]

Public Member Functions

 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)
 
- Public Member Functions inherited from numeric::HomogeneousTransform< double >
 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...
 
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< doublexaxis () const
 
xyzVector< doubleyaxis () const
 
xyzVector< doublezaxis () const
 
xyzVector< doublepoint () const
 
xyzMatrix< doublerotation_matrix () const
 
void set_identity_rotation ()
 Mutators. More...
 
void set_identity_transform ()
 
void set_identity ()
 
void set_xaxis_rotation_deg (doubleangle)
 
void set_yaxis_rotation_deg (doubleangle)
 
void set_zaxis_rotation_deg (doubleangle)
 
void set_xaxis_rotation_rad (doubleangle)
 
void set_yaxis_rotation_rad (doubleangle)
 
void set_zaxis_rotation_rad (doubleangle)
 
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 (doubledelta)
 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 (doubledelta)
 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 (doubledelta)
 Right multiply this coordinate frame by the frame 1 0 0 0 0 1 0 0 0 0 1 delta. More...
 
HomogeneousTransform< doubleoperator* (HomogeneousTransform< double > const &rmat) const
 Multiplication. More...
 
xyzVector< doubleoperator* (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< doubleinverse () const
 Invert this matrix. More...
 
xyzVector< doubleto_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< doubleeuler_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< doubleeuler_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 (doubleradius_of_gyration)
 Less accurate functions. More...
 
std::ostream & show (std::ostream &stream=std::cout) const
 

Additional Inherited Members

- Public Types inherited from numeric::HomogeneousTransform< double >
typedef double value_type
 

Constructor & Destructor Documentation

numeric::HomogeneousTransform_Double::HomogeneousTransform_Double ( )
inline
numeric::HomogeneousTransform_Double::HomogeneousTransform_Double ( xyzVector< double > const &  p1,
xyzVector< double > const &  p2,
xyzVector< double > const &  p3 
)
inline
numeric::HomogeneousTransform_Double::HomogeneousTransform_Double ( xyzVector< double > const &  xaxis,
xyzVector< double > const &  yaxis,
xyzVector< double > const &  zaxis,
xyzVector< double > const &  point 
)
inline
numeric::HomogeneousTransform_Double::HomogeneousTransform_Double ( xyzMatrix< double > const &  axes,
xyzVector< double > const &  point 
)
inline

The documentation for this class was generated from the following file: