summaryrefslogtreecommitdiff
path: root/src/render_assets.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/render_assets.h')
-rw-r--r--src/render_assets.h34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/render_assets.h b/src/render_assets.h
index 2dfff07..8c28ead 100644
--- a/src/render_assets.h
+++ b/src/render_assets.h
@@ -9,10 +9,14 @@ namespace iris {
struct Mesh {
std::string name;
- std::vector<float> vertices;
- std::vector<float> normals;
- std::vector<float> texcoords;
+ std::vector<glm::vec3> vertices;
+ std::vector<glm::vec3> normals;
+ std::vector<glm::vec2> texcoords;
std::vector<uint32_t> indices;
+
+ // AABB
+ glm::vec3 p_min;
+ glm::vec3 p_max;
};
struct Material {
@@ -23,6 +27,28 @@ struct Texture {
};
struct Camera {
+ enum struct Tag {
+ Perspective,
+ Orthographic,
+ } intrinsic_tag;
+ struct PerspectiveCamera {
+ float fovx;
+ float fovy;
+ float aspect;
+ float znear;
+ float zfar;
+ };
+
+ struct OrthographicCamera {
+ float xmag;
+ float ymag;
+ float znear;
+ float zfar;
+ };
+ union {
+ PerspectiveCamera perspective;
+ OrthographicCamera orthographic;
+ } intrinsic;
glm::vec3 position;
glm::vec3 direction;
glm::vec3 up;
@@ -33,7 +59,7 @@ struct Scene {
std::vector<Material> materials;
std::vector<Texture> textures;
- Camera camera_position;
+ Camera camera;
};
} // namespace iris \ No newline at end of file