You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.3 KiB
72 lines
1.3 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef PHYSMESH_H |
|
#define PHYSMESH_H |
|
|
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "datacache/imdlcache.h" |
|
#include "vphysics_interface.h" |
|
#include "vcollide_parse.h" |
|
|
|
|
|
struct studiohdr_t; |
|
|
|
struct hlmvsolid_t : public solid_t |
|
{ |
|
float massBias; |
|
int surfacePropIndex; |
|
}; |
|
|
|
struct merge_t |
|
{ |
|
int parent; |
|
int child; |
|
}; |
|
|
|
struct editparams_t |
|
{ |
|
float totalMass; |
|
char rootName[128]; |
|
int concave; |
|
int mergeCount; |
|
merge_t mergeList[32]; // there are never very many of these, so don't bother doing anything dynamic |
|
}; |
|
|
|
class CPhysmesh |
|
{ |
|
public: |
|
void Clear( void ); |
|
|
|
char m_boneName[64]; |
|
int m_vertCount; |
|
Vector *m_pVerts; |
|
matrix3x4_t m_matrix; |
|
|
|
hlmvsolid_t m_solid; |
|
constraint_ragdollparams_t m_constraint; |
|
ICollisionQuery *m_pCollisionModel; |
|
}; |
|
|
|
class IStudioPhysics |
|
{ |
|
public: |
|
virtual ~IStudioPhysics( void ) {} |
|
|
|
virtual char *DumpQC( void ) = 0; |
|
virtual int Count( void ) = 0; |
|
virtual CPhysmesh *GetMesh( int index ) = 0; |
|
virtual float GetMass( void ) = 0; |
|
}; |
|
|
|
IStudioPhysics *LoadPhysics( MDLHandle_t mdlHandle ); |
|
void DestroyPhysics( IStudioPhysics *pStudioPhysics ); |
|
|
|
#endif // PHYSMESH_H
|
|
|