This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

47 lines
1.3 KiB
C++

//========= 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