diff options
| author | claude-bot <[email protected]> | 2026-07-13 12:27:07 +0000 |
|---|---|---|
| committer | claude-bot <[email protected]> | 2026-07-13 12:27:07 +0000 |
| commit | 9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686 (patch) | |
| tree | a84756b82513739a2672db3a1f0ec579db6d18ff /src/animation/AnimBlendNode.h | |
| download | re3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.tar.gz re3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.zip | |
Snapshot import (no upstream history) into git.ancap.in.ua/claude, per @lzcnt.
Source: https://github.com/Cai1Hsu/re3 branch miami.
Diffstat (limited to 'src/animation/AnimBlendNode.h')
| -rw-r--r-- | src/animation/AnimBlendNode.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/animation/AnimBlendNode.h b/src/animation/AnimBlendNode.h new file mode 100644 index 0000000..99a657a --- /dev/null +++ b/src/animation/AnimBlendNode.h @@ -0,0 +1,37 @@ +#pragma once + +#include "AnimBlendSequence.h" + +class CAnimBlendAssociation; + +// The interpolated state between two key frames in a sequence +class CAnimBlendNode +{ +public: + // for slerp + float theta; // angle between quaternions + float invSin; // 1/Sin(theta) + // indices into array in sequence + int32 frameA; // next key frame + int32 frameB; // previous key frame + float remainingTime; // time until frames have to advance + CAnimBlendSequence *sequence; + CAnimBlendAssociation *association; + + void Init(void); + bool Update(CVector &trans, CQuaternion &rot, float weight); + bool UpdateCompressed(CVector &trans, CQuaternion &rot, float weight); + bool NextKeyFrame(void); + bool NextKeyFrameCompressed(void); + bool FindKeyFrame(float t); + bool SetupKeyFrameCompressed(void); + void CalcDeltas(void); + void CalcDeltasCompressed(void); + void GetCurrentTranslation(CVector &trans, float weight); + void GetCurrentTranslationCompressed(CVector &trans, float weight); + void GetEndTranslation(CVector &trans, float weight); + void GetEndTranslationCompressed(CVector &trans, float weight); +}; + + +VALIDATE_SIZE(CAnimBlendNode, 0x1C); |
