次のように、クォータニオンに特化したいlerp()
クラス テンプレート内に静的メンバー関数があります。AnimCurve
template<>
inline Quatf AnimCurve<Quatf>::lerp(
const Quatf& start,
const Quatf& end,
float time
)
{
return start.slerp(time, end);
}
ただし、 も使用できるため、これは十分に一般的ではありませんQuatd
。と の両方が の型定義であるため、両方で機能する関数を作成することは可能Quatf
ですか?Quatd
Quaternion<T>
の現在の定義は次のAnimCurve
とおりです。
template< typename T >
class AnimCurve {
public:
AnimCurve() {}
void addKeyframe(float time, T value);
T getvalue(float time) const;
private:
static inline T lerp( const T& start, const T& end, float time );
std::map<float, T> mKeyframes;
};