Open Source Tomb Raider Engine
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

Mesh.h 806B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*!
  2. * \file include/Mesh.h
  3. * \brief OpenGL Mesh
  4. *
  5. * \author xythobuz
  6. */
  7. #ifndef _MESH_H_
  8. #define _MESH_H_
  9. #include <map>
  10. #include <glm/vec2.hpp>
  11. #include <glm/vec3.hpp>
  12. class Mesh {
  13. };
  14. // --------------------------------------
  15. struct PackedVertex {
  16. glm::vec3 pos;
  17. glm::vec2 uv;
  18. unsigned int tex;
  19. PackedVertex(glm::vec3 p, glm::vec2 u, unsigned int t) : pos(p), uv(u), tex(t) { }
  20. bool operator<(const PackedVertex& v) const { return memcmp(this, &v, sizeof(PackedVertex)) > 0; }
  21. };
  22. template <typename T>
  23. bool findSimilarVertex(T& v,
  24. std::map<T, unsigned short> m,
  25. unsigned short& s) {
  26. auto it = m.find(v);
  27. if (it == m.end())
  28. return false;
  29. else {
  30. s = it->second;
  31. return true;
  32. }
  33. }
  34. #endif