5 #include "ChunkedFileFormat.h"
6 #include "VectorMath.h"
7 #include "GenericMeshData.h"
15 namespace ChunkedFileFormat
17 namespace MeshDataExtensions
20 template <
typename TVertex>
22 std::vector<Eegeo::v3> &vertices)
24 float xRange =meshData.maxVertexRange.GetX() - meshData.minVertexRange.GetX();
25 float yRange =meshData.maxVertexRange.GetY() - meshData.minVertexRange.GetY();
26 float zRange =meshData.maxVertexRange.GetZ() - meshData.minVertexRange.GetZ();
28 float uShortMax = std::numeric_limits<u16>::max();
30 float xFactor = xRange/uShortMax;
31 float yFactor = yRange/uShortMax;
32 float zFactor = zRange/uShortMax;
34 for(
int i = 0;i < meshData.numVerts; i++)
36 float x = meshData.pVertexBuffer[i].x*xFactor + meshData.minVertexRange.GetX();
37 float y = meshData.pVertexBuffer[i].y*yFactor + meshData.minVertexRange.GetY();
38 float z = meshData.pVertexBuffer[i].z*zFactor + meshData.minVertexRange.GetZ();
44 template <
typename TVertex>
47 const TVertex& v = meshData.pVertexBuffer[vertexIndex];
48 v3 source(v.x, v.y, v.z);
49 v3 scale(meshData.maxVertexRange - meshData.minVertexRange);
50 scale *= (1.0f / std::numeric_limits<u16>::max());
51 v3 result = meshData.minVertexRange + source*scale;