1 #ifndef MATH3D_INTERPOLATE_H 2 #define MATH3D_INTERPOLATE_H 9 inline void interpolate(
const Vector2& a,
const Vector2& b, Real u, Vector2& x)
15 inline void interpolate(
const Vector3& a,
const Vector3& b, Real u, Vector3& x)
21 inline void interpolate(
const Vector4& a,
const Vector4& b, Real u, Vector4& x)
49 void interpolateRotation(
const Matrix2& a,
const Matrix2& b, Real u, Matrix2& x);
51 void interpolateRotation(
const Matrix3& a,
const Matrix3& b, Real u, Matrix3& x);
53 inline void interpolate(
const RigidTransform2D& a,
const RigidTransform2D& b, Real u, RigidTransform2D& x)
55 interpolate(a.t,b.t,u,x.t);
56 interpolateRotation(a.R,b.R,u,x.R);
59 inline void interpolate(
const RigidTransform& a,
const RigidTransform& b, Real u, RigidTransform& x)
61 interpolate(a.t,b.t,u,x.t);
62 interpolateRotation(a.R,b.R,u,x.R);
67 template <
class VectorT>
68 void interpolateDirection(
const VectorT& a,
const VectorT& b,Real u,VectorT& out)
76 interpolate(a,b,u,out);
81 Real sininv = Sin(theta);
85 Real a_coeff = Sin((One-u)*theta)*sininv;
86 Real b_coeff = Sin(u*theta)*sininv;
94 if(a == b)
return Zero;
101 if(a == b)
return Zero;
Real SegmentCrossing(Real a, Real b, Real x0)
if segment is x = a + u*(b-a), returns the value u s.t. x=x0
Definition: d/interpolate.h:99
Class declarations for useful 3D math types.
Contains all the definitions in the Math3D package.
Definition: AnyGeometry.h:13
Real SegmentZeroCrossing(Real a, Real b)
if segment is x = a + u*(b-a), returns the value u s.t. x=0
Definition: d/interpolate.h:92
Convenience functions for linear interpolation of vectors and matrices.