diff options
Diffstat (limited to 'public/vphysics/virtualmesh.h')
| -rw-r--r-- | public/vphysics/virtualmesh.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/public/vphysics/virtualmesh.h b/public/vphysics/virtualmesh.h new file mode 100644 index 0000000..41da4ea --- /dev/null +++ b/public/vphysics/virtualmesh.h @@ -0,0 +1,46 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//============================================================================= + +#ifndef VIRTUALMESH_H +#define VIRTUALMESH_H +#ifdef _WIN32 +#pragma once +#endif + +// NOTE: These are fixed length to make it easy to fill these out without memory allocation or storage +const int MAX_VIRTUAL_TRIANGLES = 1024; +struct virtualmeshlist_t +{ + Vector *pVerts; + int indexCount; + int triangleCount; + int vertexCount; + int surfacePropsIndex; + byte *pHull; + unsigned short indices[MAX_VIRTUAL_TRIANGLES*3]; +}; + +struct virtualmeshtrianglelist_t +{ + int triangleCount; + unsigned short triangleIndices[MAX_VIRTUAL_TRIANGLES*3]; +}; + +class IVirtualMeshEvent +{ +public: + virtual void GetVirtualMesh( void *userData, virtualmeshlist_t *pList ) = 0; + virtual void GetWorldspaceBounds( void *userData, Vector *pMins, Vector *pMaxs ) = 0; + virtual void GetTrianglesInSphere( void *userData, const Vector ¢er, float radius, virtualmeshtrianglelist_t *pList ) = 0; +}; +struct virtualmeshparams_t +{ + IVirtualMeshEvent *pMeshEventHandler; + void *userData; + bool buildOuterHull; +}; + +#endif // VIRTUALMESH_H |