5#include "coot-utils/vertex.hh"
6#include "coot-utils/g_triangle.hh"
7#include "coot-utils/simple-mesh.hh"
12 class instancing_data_type_A_t {
17 instancing_data_type_A_t(
const glm::vec3 &position_in,
const glm::vec4 &colour_in,
const glm::vec3 &size_in) :
18 position(position_in), colour(colour_in), size(size_in) {}
19 instancing_data_type_A_t() {}
23 class instancing_data_type_B_t {
30 instancing_data_type_B_t(
const glm::vec3 &position_in,
const glm::vec4 &colour_in,
const glm::vec3 &size_in,
const glm::mat4 &ori) :
31 position(position_in), colour(colour_in), size(size_in),
orientation(ori) {}
36 class instanced_geometry_t {
44 instanced_geometry_t() {}
46 instanced_geometry_t(
const std::vector<api::vn_vertex> &v,
const std::vector<g_triangle> &t) :
58 class instanced_mesh_t {
60 instanced_mesh_t() {};
61 std::vector<instanced_geometry_t> geom;
70 void export_to_glTF(
const std::string &file_name,
bool use_binary_format)
const;
75 simple_mesh_t instanced_mesh_to_simple_mesh(
const instanced_mesh_t &im);
instancing container for vertices, triangles and instancing data
Definition instancing.hh:36
std::vector< api::vn_vertex > vertices
vertices (containing positions and normals)
Definition instancing.hh:39
std::vector< g_triangle > triangles
triangle indices
Definition instancing.hh:41
std::vector< instancing_data_type_B_t > instancing_data_B
a vector of type B instancing
Definition instancing.hh:53
std::vector< instancing_data_type_A_t > instancing_data_A
a vector of type A instancing
Definition instancing.hh:51
void clear()
clear
Definition instancing.hh:68
simple_mesh_t markup
cis-peptide markup can't be drawn instanced
Definition instancing.hh:65
class for B type instancing data - this does contain an orientation matrix
Definition instancing.hh:23
glm::mat4 orientation
the orientation matrix rotates the vector away from "z is up"
Definition instancing.hh:29
The basic mesh for transfering mesh geometry and colours.
Definition simple-mesh.hh:38