forked from gameprogcpp/code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBoneTransform.cpp
More file actions
25 lines (21 loc) · 826 Bytes
/
BoneTransform.cpp
File metadata and controls
25 lines (21 loc) · 826 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// ----------------------------------------------------------------
// From Game Programming in C++ by Sanjay Madhav
// Copyright (C) 2017 Sanjay Madhav. All rights reserved.
//
// Released under the BSD License
// See LICENSE in root directory for full details.
// ----------------------------------------------------------------
#include "BoneTransform.h"
Matrix4 BoneTransform::ToMatrix() const
{
Matrix4 rot = Matrix4::CreateFromQuaternion(mRotation);
Matrix4 trans = Matrix4::CreateTranslation(mTranslation);
return rot * trans;
}
BoneTransform BoneTransform::Interpolate(const BoneTransform& a, const BoneTransform& b, float f)
{
BoneTransform retVal;
retVal.mRotation = Quaternion::Slerp(a.mRotation, b.mRotation, f);
retVal.mTranslation = Vector3::Lerp(a.mTranslation, b.mTranslation, f);
return retVal;
}