candlewick 0.1.0
A renderer
Loading...
Searching...
No Matches
Components.h
Go to the documentation of this file.
1#pragma once
2#include "math_types.h"
3#include "Mesh.h"
4#include "MaterialUniform.h"
5
6namespace candlewick {
7
9struct Opaque {};
10
12struct Disable {};
13
14// Tag environment entities
16
18 using Mat4f::Mat4f;
19 using Mat4f::operator=;
20};
21
24 std::vector<PbrMaterial> materials;
25 MeshMaterialComponent(Mesh &&mesh, std::vector<PbrMaterial> &&materials)
26 : mesh(std::move(mesh)), materials(std::move(materials)) {
27 assert(mesh.numViews() == materials.size());
28 }
29};
30
38bool updateTransparencyClassification(entt::registry &reg, entt::entity entity,
39 const MeshMaterialComponent &mmc);
40
41} // namespace candlewick
Handle class for meshes (vertex buffers and an optional index buffer) on the GPU.
Definition Mesh.h:57
Definition Camera.h:8
bool updateTransparencyClassification(entt::registry &reg, entt::entity entity, const MeshMaterialComponent &mmc)
Updates (adds or removes) the Opaque tag component for a given entity.
Eigen::Matrix4f Mat4f
Definition math_types.h:11
Tag struct for disabled (invisible) entities.
Definition Components.h:12
Definition Components.h:15
Definition Components.h:22
Mesh mesh
Definition Components.h:23
MeshMaterialComponent(Mesh &&mesh, std::vector< PbrMaterial > &&materials)
Definition Components.h:25
std::vector< PbrMaterial > materials
Definition Components.h:24
Tag struct for denoting an entity as opaque, for render pass organization.
Definition Components.h:9
Definition Components.h:17