blob: 699d6fbb1621f7041894dbc4a3fe17690463b9a0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#pragma once
#include "scenedata.h"
#include <vector>
#include <string>
#include "rgba.h"
// Struct which contains data for a single primitive, to be used for rendering
struct RenderShapeData {
ScenePrimitive primitive;
glm::mat4 ctm; // the cumulative transformation matrix
glm::mat4 inverseCTM;
};
// Struct which contains all the data needed to render a scene
struct RenderData {
SceneGlobalData globalData;
SceneCameraData cameraData;
std::vector<SceneLightData> lights;
std::vector<RenderShapeData> shapes;
};
class SceneParser {
public:
// Parse the scene and store the results in renderData.
// @param filepath The path of the scene file to load.
// @param renderData On return, this will contain the metadata of the loaded scene.
// @return A boolean value indicating whether the parse was successful.
static bool parse(std::string filepath, RenderData &renderData);
};
|