Files
FC1/CryPhysics/physicalplaceholder.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

76 lines
2.1 KiB
C++

//////////////////////////////////////////////////////////////////////
//
// Physical Placeholder header
//
// File: physicalplaceholder.h
// Description : PhysicalPlaceholder class declarations
//
// History:
// -:Created by Anton Knyazev
//
//////////////////////////////////////////////////////////////////////
#ifndef physicalplaceholder_h
#define physicalplaceholder_h
#pragma once
struct pe_gridthunk {
pe_gridthunk *next;
pe_gridthunk *prev;
class CPhysicalPlaceholder *pent;
};
class CPhysicalEntity;
class CPhysicalPlaceholder : public IPhysicalEntity {
public:
vectorf m_BBox[2];
void *m_pForeignData;
int m_iForeignData : 16;
int m_iForeignFlags : 16;
struct vec2dpacked {
int x : 16;
int y : 16;
};
vec2dpacked m_ig[2];
pe_gridthunk *m_pGridThunks;
int m_nGridThunks : 16;
int m_nGridThunksAlloc : 16;
CPhysicalPlaceholder *m_pEntBuddy;
unsigned int m_bProcessed : 1;
int m_id : 23;
int m_iSimClass : 8;
virtual CPhysicalEntity *GetEntity();
virtual CPhysicalEntity *GetEntityFast() { return (CPhysicalEntity*)m_pEntBuddy; }
virtual pe_type GetType();
virtual int SetParams(pe_params* params);
virtual int GetParams(pe_params* params);
virtual int GetStatus(pe_status* status);
virtual int Action(pe_action* action);
virtual int AddGeometry(phys_geometry *pgeom, pe_geomparams* params,int id=-1);
virtual void RemoveGeometry(int id);
virtual void *GetForeignData(int itype=0) { return m_iForeignData==itype ? m_pForeignData : 0; }
virtual int GetiForeignData() { return m_iForeignData; }
virtual int GetStateSnapshot(class CStream &stm, float time_back=0, int flags=0);
virtual int SetStateFromSnapshot(class CStream &stm, int flags=0);
virtual int PostSetStateFromSnapshot();
virtual int GetStateSnapshotTxt(char *txtbuf,int szbuf, float time_back=0);
virtual void SetStateFromSnapshotTxt(const char *txtbuf,int szbuf);
virtual unsigned int GetStateChecksum();
virtual void StartStep(float time_interval);
virtual int Step(float time_interval);
virtual void StepBack(float time_interval);
virtual IPhysicalWorld *GetWorld();
virtual void GetMemoryStatistics(ICrySizer *pSizer) {};
};
#endif