23#ifndef VCL_BGFX_DRAWABLE_UNIFORMS_DRAWABLE_MESH_UNIFORMS_H
24#define VCL_BGFX_DRAWABLE_UNIFORMS_DRAWABLE_MESH_UNIFORMS_H
26#include <vclib/bgfx/uniform.h>
27#include <vclib/mesh.h>
40 inline static std::array<float, 4> sMeshColor = {0.5, 0.5, 0.5, 1.0};
44 inline static std::array<float, 4> sMeshData = {0.0, 0.0, 0.0, 0.0};
46 inline static Uniform sMeshColorUniform;
47 inline static Uniform sMeshDataUniform;
52 template<MeshConcept MeshType>
53 static void setColor(
const MeshType&
m)
56 sMeshColor[0] =
m.color().redF();
57 sMeshColor[1] =
m.color().greenF();
58 sMeshColor[2] =
m.color().blueF();
59 sMeshColor[3] =
m.color().alphaF();
65 sMeshData[0] = std::bit_cast<float>(
meshId);
77 if (!sMeshColorUniform.
isValid())
78 sMeshColorUniform =
Uniform(
"u_meshColor", bgfx::UniformType::Vec4);
79 if (!sMeshDataUniform.
isValid())
80 sMeshDataUniform =
Uniform(
"u_meshData", bgfx::UniformType::Vec4);
81 sMeshColorUniform.
bind(sMeshColor.data());
82 sMeshDataUniform.
bind(sMeshData.data());
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:41
Concept that is evaluated true if a Mesh has the Color component.
Definition mesh_requirements.h:62