Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
multi_mesh.h
1#ifndef OE_SCENE_NODE_MULTI_MESH_H
2#define OE_SCENE_NODE_MULTI_MESH_H
3
4#include "renderable.h"
5#include "../mesh.h"
6
7namespace oe::render
8{
9 class MultiMeshNode;
10}
11
12namespace oe::scene
13{
18 {
19 public:
20 explicit MultiMeshNode(std::shared_ptr<oe::scene::Mesh> mesh = nullptr);
21
22 void addMesh(std::shared_ptr<oe::scene::Mesh> mesh, Material* material = nullptr);
23
24 virtual std::unique_ptr<oe::render::Node> generateRenderNode() override;
25
26 protected:
27 std::vector<std::shared_ptr<oe::scene::Mesh>> _meshes;
28
29 std::vector<std::vector<size_t>> _submesh_materials;
30
31 friend class oe::render::MultiMeshNode;
32 };
33}
34
35#endif
Definition multi_mesh.h:17
Render agnostic material.
Definition material.h:26
Definition multi_mesh.h:18
Definition renderable.h:16
Render related abstractions (Shader, Framebuffer, Cubemaps, Textures)
Definition opengl.h:10
Scene related management (Render-agnostic Geometry, Manger, etc...)
Definition debug.h:19