mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-27 16:53:43 +00:00
0aa7f13c32
# Conflicts: # src/animation/AnimBlendAssociation.h # src/animation/AnimBlendClumpData.h # src/animation/AnimManager.h # src/animation/FrameUpdate.cpp # src/control/AutoPilot.h # src/control/PathFind.h # src/core/PlayerInfo.h # src/entities/Building.h # src/entities/Dummy.h # src/entities/Entity.h # src/entities/Physical.h # src/entities/Treadable.h # src/modelinfo/BaseModelInfo.h # src/modelinfo/ClumpModelInfo.cpp # src/modelinfo/ClumpModelInfo.h # src/modelinfo/PedModelInfo.h # src/modelinfo/SimpleModelInfo.h # src/modelinfo/TimeModelInfo.h # src/modelinfo/VehicleModelInfo.h # src/objects/CutsceneHead.h # src/objects/CutsceneObject.h # src/objects/DummyObject.h # src/objects/Object.h # src/peds/DummyPed.h # src/peds/PedIK.cpp # src/rw/VisibilityPlugins.cpp # src/vehicles/Automobile.h # src/vehicles/Boat.h # src/vehicles/Heli.h # src/vehicles/Plane.h # src/vehicles/Train.h # src/vehicles/Vehicle.h
33 lines
881 B
C++
33 lines
881 B
C++
#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 NextKeyFrame(void);
|
|
bool FindKeyFrame(float t);
|
|
bool SetupKeyFrameCompressed(void);
|
|
void CalcDeltas(void);
|
|
void CalcDeltasCompressed(void);
|
|
void GetCurrentTranslation(CVector &trans, float weight);
|
|
void GetEndTranslation(CVector &trans, float weight);
|
|
};
|
|
|
|
|
|
VALIDATE_SIZE(CAnimBlendNode, 0x1C);
|