MCPcopy Create free account
hub / github.com/PacktPublishing/3D-Graphics-Rendering-Cookbook / loadMeshData

Function loadMeshData

shared/scene/VtxData.cpp:7–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5#include <stdio.h>
6
7MeshFileHeader loadMeshData(const char* meshFile, MeshData& out)
8{
9 MeshFileHeader header;
10
11 FILE* f = fopen(meshFile, "rb");
12
13 assert(f); // Did you forget to run "Ch5_Tool05_MeshConvert"?
14
15 if (!f)
16 {
17 printf("Cannot open %s. Did you forget to run \"Ch5_Tool05_MeshConvert\"?\n", meshFile);
18 exit(EXIT_FAILURE);
19 }
20
21 if (fread(&header, 1, sizeof(header), f) != sizeof(header))
22 {
23 printf("Unable to read mesh file header\n");
24 exit(EXIT_FAILURE);
25 }
26
27 out.meshes_.resize(header.meshCount);
28 if (fread(out.meshes_.data(), sizeof(Mesh), header.meshCount, f) != header.meshCount)
29 {
30 printf("Could not read mesh descriptors\n");
31 exit(EXIT_FAILURE);
32 }
33 out.boxes_.resize(header.meshCount);
34 if (fread(out.boxes_.data(), sizeof(BoundingBox), header.meshCount, f) != header.meshCount)
35 {
36 printf("Could not read bounding boxes\n");
37 exit(255);
38 }
39
40 out.indexData_.resize(header.indexDataSize / sizeof(uint32_t));
41 out.vertexData_.resize(header.vertexDataSize / sizeof(float));
42
43 if ((fread(out.indexData_.data(), 1, header.indexDataSize, f) != header.indexDataSize) ||
44 (fread(out.vertexData_.data(), 1, header.vertexDataSize, f) != header.vertexDataSize))
45 {
46 printf("Unable to read index/vertex data\n");
47 exit(255);
48 }
49
50 fclose(f);
51
52 return header;
53}
54
55void saveMeshData(const char* fileName, const MeshData& m)
56{

Callers 6

mergeBistroFunction · 0.85
loadMeshesMethod · 0.85
MultiMeshRendererMethod · 0.85
GLSceneDataLazyMethod · 0.85
GLSceneDataMethod · 0.85
mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected