1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2024-12-23 01:59:43 +08:00
hl2sdk/public/vphysics/virtualmesh.h

47 lines
1.2 KiB
C
Raw Permalink Normal View History

2013-06-27 06:22:04 +08:00
//========= 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 &center, float radius, virtualmeshtrianglelist_t *pList ) = 0;
};
struct virtualmeshparams_t
{
IVirtualMeshEvent *pMeshEventHandler;
void *userData;
bool buildOuterHull;
};
#endif // VIRTUALMESH_H