mirror of
https://github.com/halpz/re3.git
synced 2025-07-25 19:22:44 +00:00
the great reorganization
This commit is contained in:
40
src/peds/PedIK.h
Normal file
40
src/peds/PedIK.h
Normal file
@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
#include "common.h"
|
||||
#include "PedModelInfo.h"
|
||||
#include "AnimBlendClumpData.h"
|
||||
|
||||
struct LimbOrientation
|
||||
{
|
||||
float phi;
|
||||
float theta;
|
||||
};
|
||||
|
||||
class CPed;
|
||||
|
||||
class CPedIK
|
||||
{
|
||||
public:
|
||||
// TODO
|
||||
enum {
|
||||
FLAG_1 = 1,
|
||||
FLAG_2 = 2, // related to looking somewhere
|
||||
FLAG_4 = 4, // aims with arm
|
||||
};
|
||||
|
||||
CPed *m_ped;
|
||||
LimbOrientation m_headOrient;
|
||||
LimbOrientation m_torsoOrient;
|
||||
LimbOrientation m_upperArmOrient;
|
||||
LimbOrientation m_lowerArmOrient;
|
||||
int32 m_flags;
|
||||
|
||||
CPedIK(CPed *ped);
|
||||
bool PointGunInDirection(float phi, float theta);
|
||||
bool PointGunAtPosition(CVector *position);
|
||||
void GetComponentPosition(RwV3d *pos, PedNode node);
|
||||
static RwMatrix *GetWorldMatrix(RwFrame *source, RwMatrix *destination);
|
||||
void RotateTorso(AnimBlendFrameData* animBlend, LimbOrientation* limb, bool changeRoll);
|
||||
void ExtractYawAndPitchLocal(RwMatrixTag*, float*, float*);
|
||||
void ExtractYawAndPitchWorld(RwMatrixTag*, float*, float*);
|
||||
};
|
||||
static_assert(sizeof(CPedIK) == 0x28, "CPedIK: error");
|
Reference in New Issue
Block a user