#include <archon/math/coord_system.H>
Collaboration diagram for Archon::Math::CoordSystem3x3:
Public Member Functions | |
CoordSystem3x3 () | |
CoordSystem3x3 (Vector3 origin, Matrix3x3 basis) | |
CoordSystem3x3 (const double openGLMatrix4x4[]) | |
Construct a coordinate system from an OpenGL 4x4 matrix. | |
void | setOpenGLMatrix (double openGLMatrix4x4[]) |
CoordSystem3x3 & | operator *= (const CoordSystem3x3 &s) |
Combine with the given coordinate system such that (*this * s) * v = *this * (s * v). | |
CoordSystem3x3 & | operator/= (const CoordSystem3x3 &s) |
CoordSystem3x3 | operator * (const CoordSystem3x3 &s) const |
CoordSystem3x3 | operator/ (const CoordSystem3x3 &s) const |
void | map (Vector3 &v) const |
Vector3 | operator() (const Vector3 &v) const |
Let v be a vector described in the coordinates of this coordinate system. | |
Vector3 | operator * (const Vector3 &v) const |
void | translate (const Vector3 &p) |
Let p be a vector described in the coordinates of this coordinate system. | |
void | setInverseOf (const CoordSystem3x3 &s) |
Make this coordinate system the inverse of the argument. | |
void | minimalTurn (const Vector3 &point) |
Rotate the righthanded orthonormal coordinate system around one axis to make its negative z-axis run through the specified point. | |
Static Public Member Functions | |
static const CoordSystem3x3 & | identity () |
Public Attributes | |
Vector3 | origin |
Matrix3x3 | basis |
The basis of the new coordinate system is described by a 3x3 matrix whos columns define the unit axis vectors of the new system in the coordinates of the reference system. The origin of the new system is described by a vector in the reference system. Thus an instance of CoordSystem imediately describes the transformation or map from the new coordinate system into the reference system.
Definition at line 51 of file coord_system.H.
|
Definition at line 64 of file coord_system.H. |
|
Rotate the righthanded orthonormal coordinate system around one axis to make its negative z-axis run through the specified point. The rotation axis will be perpendicular to the plane containing both the old z-axis and the vector from the origin to the specified point. The point must be given in reference coordinates and must not coincide with the origin of this coordinate system. If it points in the exact opposite direction, the system is turned around its y-axis. Definition at line 73 of file coord_system.C. References Archon::Math::angle(), basis, Archon::Math::dot(), Archon::Math::BasicVector< T, N >::normalize(), origin, Archon::Math::Matrix3x3::rotateRightHandedOrthoNormal(), Archon::Math::Matrix3x3::y, and Archon::Math::Matrix3x3::z. |
|
Let v be a vector described in the coordinates of this coordinate system. Then 'operator*' or 'operator()' maps v into the reference system. Definition at line 87 of file coord_system.H. References map(). Referenced by operator *(). |
|
Let p be a vector described in the coordinates of this coordinate system. Thus, not in the coordinates of its reference system. Then 'translate' relocates the origin of this coordinate system to the point described by p. Definition at line 96 of file coord_system.H. References basis, Archon::Math::Matrix3x3::map(), and origin. Referenced by Archon::Raytracer::Cylinder::Cylinder(), Archon::Raytracer::SceneLoader::doTransform(), Archon::X3D::Viewer::renderFrame(), Archon::Raytracer::ViewState::trackballRoll(), Archon::Console3d::ViewState::trackballRoll(), Archon::Raytracer::ViewState::travel(), and Archon::Console3d::ViewState::travel(). |