14 glm::vec3 default_color { 1.0F, 1.0F, 1.0F };
15 float default_size { 3.0F };
16 float default_thickness { 1.0F };
17 float default_weight { 0.0F };
18 glm::vec2 default_uv { 0.0F, 0.0F };
19 glm::vec3 default_normal { 0.0F, 0.0F, 1.0F };
20 glm::vec3 default_tangent { 1.0F, 0.0F, 0.0F };
53 const void* data_ptr =
nullptr;
54 size_t byte_count = 0;
63 return !conversion_buffer.empty();
85[[nodiscard]] MAYAFLUX_API std::optional<VertexAccess>
105[[nodiscard]] MAYAFLUX_API std::optional<VertexAccess>
122[[nodiscard]] MAYAFLUX_API std::optional<VertexAccess>
124 const VertexAccessConfig& config = {});
139[[nodiscard]] MAYAFLUX_API std::optional<VertexAccess>
141 const VertexAccessConfig& config = {});
std::optional< VertexAccess > as_line_vertex_access(const DataVariant &variant, const VertexAccessConfig &config)
Convert DataVariant to line-vertex-compatible bytes.
std::optional< VertexAccess > as_mesh_vertex_access(const DataVariant &variant, const VertexAccessConfig &config)
Convert DataVariant to mesh-vertex-compatible bytes.
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
std::optional< VertexAccess > as_vertex_access(const DataVariant &variant)
Extract a VertexAccess from a DataVariant.
std::optional< VertexAccess > as_point_vertex_access(const DataVariant &variant, const VertexAccessConfig &config)
Convert DataVariant to point-vertex-compatible bytes.
Default attribute values for shader-compatible vertex conversion.
std::vector< std::byte > conversion_buffer
Conversion buffer.
bool was_converted() const noexcept
True when data_ptr points into conversion_buffer rather than the original variant storage.
Memory-compatible view of a DataVariant for vertex buffer upload.
Complete description of vertex data layout in a buffer.