MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / GetKeyframeInterpolationData

Method GetKeyframeInterpolationData

TombEngine/Game/Animation/Animation.cpp:34–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32 }
33
34 KeyframeInterpolationData AnimData::GetKeyframeInterpolationData(int frameNumber) const
35 {
36 // FAILSAFE: Clamp frame number.
37 frameNumber = std::clamp(frameNumber, 0, EndFrameNumber);
38
39 // Calculate keyframes defining interpolated frame.
40 float keyframeNumber = frameNumber / (float)Interpolation;
41 const auto& keyframe0 = Keyframes[(int)floor(keyframeNumber)];
42 const auto& keyframe1 = Keyframes[(int)ceil(keyframeNumber)];
43
44 // Calculate interpolation alpha between keyframes.
45 float alpha = (1.0f / Interpolation) * (frameNumber % Interpolation);
46
47 // Return keyframe interpolation data.
48 return KeyframeInterpolationData(keyframe0, keyframe1, alpha);
49 }
50
51 const KeyframeData& AnimData::GetClosestKeyframe(int frameNumber) const
52 {

Callers 2

UpdateLaraAnimationsMethod · 0.80
GetFrameInterpDataFunction · 0.80

Calls 2

floorFunction · 0.85

Tested by

no test coverage detected