Clone of PhatAC @ https://github.com/floaterxk/PhatAC

Vertex.h 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #pragma once
  2. #include "MathLib.h"
  3. class CVertexArray
  4. {
  5. public:
  6. CVertexArray();
  7. ~CVertexArray();
  8. static void SetVertexSize(DWORD Size);
  9. BOOL UnPack(BYTE** ppData, ULONG iSize);
  10. BOOL AllocateVertex(DWORD VertexCount, DWORD VertexType);
  11. void DestroyVertex();
  12. LPVOID m_pAlloc; // 0x00
  13. DWORD m_VertexType; // 0x04
  14. DWORD m_VertexCount; // 0x08
  15. LPVOID m_pVertexBuffer; // 0x0C
  16. static DWORD vertex_size;
  17. #define VERTEX_NUM(vertbuffer, vertindex) \
  18. ((CSWVertex *)((BYTE *)vertbuffer + ((CVertexArray::vertex_size) * (vertindex))))
  19. };
  20. class CSWVertexUV
  21. {
  22. public:
  23. CSWVertexUV();
  24. BOOL UnPack(BYTE **ppData, ULONG iSize);
  25. float u, v;
  26. };
  27. class CSWVertex
  28. {
  29. public:
  30. void Init();
  31. void Destroy();
  32. BOOL UnPack(BYTE **ppData, ULONG iSize);
  33. Vector origin; // 0x00 0x04 0x08
  34. short index; // 0x0C Identifier
  35. short uvcount; // 0x0E
  36. CSWVertexUV* uvarray; // 0x10 UV Array data
  37. Vector normal; // 0x14 0x18 0x1C
  38. float unk20; // 0x20
  39. float unk24; // 0x24
  40. };
  41. class BBox
  42. {
  43. public:
  44. BBox();
  45. void CalcBBox(Vector& Point);
  46. Vector m_Min, m_Max;
  47. };