2022-10-28 21:06:29 +00:00
|
|
|
#ifndef _CBONETRACKING
|
|
|
|
#define _CBONETRACKING
|
|
|
|
|
|
|
|
#include "Kyoto/Animation/CSegId.hpp"
|
|
|
|
#include "Kyoto/Math/CQuaternion.hpp"
|
|
|
|
#include "Kyoto/Math/CVector3f.hpp"
|
|
|
|
|
|
|
|
#include "rstl/optional_object.hpp"
|
2022-10-30 19:47:50 +00:00
|
|
|
|
|
|
|
enum EBoneTrackingFlags {
|
|
|
|
kBTF_None = 0,
|
|
|
|
kBTF_NoParent = 1,
|
|
|
|
kBTF_NoParentOrigin = 2,
|
|
|
|
kBTF_NoHorizontalAim = 4,
|
|
|
|
kBTF_ParentIk = 8,
|
|
|
|
};
|
|
|
|
|
2022-10-28 21:06:29 +00:00
|
|
|
class CBoneTracking {
|
2022-10-30 19:47:50 +00:00
|
|
|
public:
|
|
|
|
CBoneTracking(const CAnimData& animData, const rstl::string& bone, float maxTrackingAngle,
|
|
|
|
float angSpeed, EBoneTrackingFlags flags);
|
|
|
|
|
|
|
|
void SetActive(bool v);
|
|
|
|
|
2022-10-28 21:06:29 +00:00
|
|
|
private:
|
|
|
|
CQuaternion x0_rotation;
|
|
|
|
float x10_;
|
|
|
|
CSegId x14_segId;
|
|
|
|
float x18_time;
|
|
|
|
float x1c_maxTrackingAngle;
|
|
|
|
float x20_angSpeed;
|
2022-10-30 19:47:50 +00:00
|
|
|
rstl::optional_object< CVector3f > x24_targetPosition;
|
2022-10-28 21:06:29 +00:00
|
|
|
TUniqueId x34_target;
|
|
|
|
uchar x36_flags;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _CBONETRACKING
|