Brenta Engine 1.2
Loading...
Searching...
No Matches
model_node_component.hpp
1// SPDX-License-Identifier: MIT
2// Author: Giovanni Santini
3// Mail: giovanni.santini@proton.me
4
5
6#pragma once
7
8#include <brenta/node.hpp>
9#include <brenta/renderer/model.hpp>
10
11#include <tenno/memory.hpp>
12
13namespace brenta
14{
15
17{
18public:
19
20 tenno::shared_ptr<Model> model;
21 bool transparent = false;
22
23 ModelNodeComponent() = default;
24 ModelNodeComponent(tenno::shared_ptr<Model> m, bool transparent = false)
25 : model(m), transparent(transparent) {}
26 ModelNodeComponent(Model&& m, bool transparent = false)
27 : transparent(transparent)
28 {
29 this->model = tenno::make_shared<Model>(tenno::move(m));
30 }
31 ModelNodeComponent(Model::Builder& m, bool transparent = false)
32 : transparent(transparent)
33 {
34 this->model = tenno::make_shared<Model>(m.build());
35 }
36
37 void update(float delta_time) override;
38 void draw(const glm::mat4& world_matrix) override;
39
40};
41
42} // namespace brenta