Stores a three-dimensional orthonormal coordinate frame. More...
#include <frame.h>
Public Member Functions | |
Frame () | |
Default constructor – performs no initialization! | |
Frame (const Vector3f &s, const Vector3f &t, const Normal3f &n) | |
Given a normal and tangent vectors, construct a new coordinate frame. | |
Frame (const Vector3f &x, const Vector3f &y, const Vector3f &z) | |
Construct a frame from the given orthonormal vectors. | |
Frame (const Vector3f &n) | |
Construct a new coordinate frame from a single vector. | |
Vector3f | toLocal (const Vector3f &v) const |
Convert from world coordinates to local coordinates. | |
Vector3f | toWorld (const Vector3f &v) const |
Convert from local coordinates to world coordinates. | |
bool | operator== (const Frame &frame) const |
Equality test. | |
bool | operator!= (const Frame &frame) const |
Inequality test. | |
std::string | toString () const |
Return a human-readable string summary of this frame. | |
Static Public Member Functions | |
static float | cosTheta (const Vector3f &v) |
Assuming that the given direction is in the local coordinate system, return the cosine of the angle between the normal and v. | |
static float | sinTheta (const Vector3f &v) |
Assuming that the given direction is in the local coordinate system, return the sine of the angle between the normal and v. | |
static float | tanTheta (const Vector3f &v) |
Assuming that the given direction is in the local coordinate system, return the tangent of the angle between the normal and v. | |
static float | sinTheta2 (const Vector3f &v) |
Assuming that the given direction is in the local coordinate system, return the squared sine of the angle between the normal and v. | |
static float | sinPhi (const Vector3f &v) |
Assuming that the given direction is in the local coordinate system, return the sine of the phi parameter in spherical coordinates. | |
static float | cosPhi (const Vector3f &v) |
Assuming that the given direction is in the local coordinate system, return the cosine of the phi parameter in spherical coordinates. | |
static float | sinPhi2 (const Vector3f &v) |
Assuming that the given direction is in the local coordinate system, return the squared sine of the phi parameter in spherical coordinates. | |
static float | cosPhi2 (const Vector3f &v) |
Assuming that the given direction is in the local coordinate system, return the squared cosine of the phi parameter in spherical coordinates. | |
Public Attributes | |
Vector3f | s |
Vector3f | t |
Normal3f | n |
Stores a three-dimensional orthonormal coordinate frame.
This class is mostly used to quickly convert between different cartesian coordinate systems and to efficiently compute certain quantities (e.g. cosTheta(), tanTheta, ..).