#include <transform.h>
Public Member Functions | |
AnimatedTransform (const Transform *transform1, float time1, const Transform *transform2, float time2) | |
void | Interpolate (float time, Transform *t) const |
void | InterpolateInverse (float time, Transform *t) const |
void | operator() (const Ray &r, Ray *tr) const |
void | operator() (const RayDifferential &r, RayDifferential *tr) const |
Point | operator() (float time, const Point &p) const |
Vector | operator() (float time, const Vector &v) const |
Ray | operator() (const Ray &r) const |
BBox | MotionBounds (const BBox &b, bool useInverse) const |
bool | HasScale () const |
Static Public Member Functions | |
static void | Decompose (const Matrix4x4 &m, Vector *T, Quaternion *R, Matrix4x4 *S) |
Private Attributes | |
const float | startTime |
const float | endTime |
const Transform * | startTransform |
const Transform * | endTransform |
const bool | actuallyAnimated |
Vector | T [2] |
Quaternion | R [2] |
Matrix4x4 | S [2] |
Definition at line 288 of file transform.h.
AnimatedTransform::AnimatedTransform | ( | const Transform * | transform1, | |
float | time1, | |||
const Transform * | transform2, | |||
float | time2 | |||
) | [inline] |
Definition at line 291 of file transform.h.
References Decompose(), endTransform, Transform::m, R, S, startTransform, and T.
void AnimatedTransform::Decompose | ( | const Matrix4x4 & | m, | |
Vector * | T, | |||
Quaternion * | R, | |||
Matrix4x4 * | S | |||
) | [static] |
Definition at line 313 of file transform.cpp.
References Inverse(), M, Matrix4x4::m, R, Transpose(), Vector::x, Vector::y, and Vector::z.
Referenced by AnimatedTransform().
bool AnimatedTransform::HasScale | ( | ) | const [inline] |
Definition at line 308 of file transform.h.
References endTransform, Transform::HasScale(), and startTransform.
Referenced by Camera::Camera().
void AnimatedTransform::Interpolate | ( | float | time, | |
Transform * | t | |||
) | const |
Definition at line 356 of file transform.cpp.
References actuallyAnimated, endTime, endTransform, Lerp(), Matrix4x4::m, R, S, Slerp(), startTime, startTransform, T, Quaternion::ToTransform(), and Translate().
Referenced by TransformedPrimitive::Intersect(), MotionBounds(), and operator()().
void AnimatedTransform::InterpolateInverse | ( | float | time, | |
Transform * | t | |||
) | const |
Definition at line 384 of file transform.cpp.
References actuallyAnimated, endTime, Interpolate(), Inverse(), Lerp(), startTime, startTransform, and Union().
Referenced by TransformedPrimitive::WorldBound().
Definition at line 451 of file transform.cpp.
Definition at line 440 of file transform.cpp.
References actuallyAnimated, endTime, endTransform, Interpolate(), startTime, and startTransform.
Definition at line 429 of file transform.cpp.
References actuallyAnimated, endTime, endTransform, Interpolate(), startTime, and startTransform.
void AnimatedTransform::operator() | ( | const RayDifferential & | r, | |
RayDifferential * | tr | |||
) | const |
Definition at line 414 of file transform.cpp.
References actuallyAnimated, endTime, Interpolate(), startTime, and Ray::time.
Definition at line 400 of file transform.cpp.
References actuallyAnimated, endTime, Interpolate(), startTime, and Ray::time.
const bool AnimatedTransform::actuallyAnimated [private] |
Definition at line 313 of file transform.h.
Referenced by Interpolate(), MotionBounds(), and operator()().
const float AnimatedTransform::endTime [private] |
Definition at line 311 of file transform.h.
Referenced by Interpolate(), MotionBounds(), and operator()().
const Transform * AnimatedTransform::endTransform [private] |
Definition at line 312 of file transform.h.
Referenced by AnimatedTransform(), HasScale(), Interpolate(), and operator()().
Quaternion AnimatedTransform::R[2] [private] |
Definition at line 315 of file transform.h.
Referenced by AnimatedTransform(), Decompose(), and Interpolate().
Matrix4x4 AnimatedTransform::S[2] [private] |
Definition at line 316 of file transform.h.
Referenced by AnimatedTransform(), and Interpolate().
const float AnimatedTransform::startTime [private] |
Definition at line 311 of file transform.h.
Referenced by Interpolate(), MotionBounds(), and operator()().
const Transform* AnimatedTransform::startTransform [private] |
Definition at line 312 of file transform.h.
Referenced by AnimatedTransform(), HasScale(), Interpolate(), MotionBounds(), and operator()().
Vector AnimatedTransform::T[2] [private] |
Definition at line 314 of file transform.h.
Referenced by AnimatedTransform(), and Interpolate().