15 {
t.xyz_positions } -> std::convertible_to<std::vector<glm::vec3>>;
16 {
t.indices } -> std::convertible_to<std::vector<unsigned int>>;
17 {
t.id } -> std::convertible_to<unsigned int>;
20 {
t.buffer_modification_tracker };
31 has_data_in_buffer_ =
true;
32 has_been_modified_since_last_buffered_ =
false;
39 if (has_data_in_buffer_) {
40 return has_been_modified_since_last_buffered_;
48 return "BufferModificationTracker { " + std::string(
"has_data_in_buffer = ") +
49 (has_data_in_buffer_ ?
"true" :
"false") +
", " +
50 std::string(
"has_been_modified_since_last_buffered_ = ") +
51 (has_been_modified_since_last_buffered_ ?
"true" :
"false") +
" }";
55 bool has_data_in_buffer_ =
false;
56 bool has_been_modified_since_last_buffered_ =
false;
77 os <<
"IndexedVertexPositions("
78 <<
"indices.size=" << ivp.
indices.size() <<
", "
100 os <<
"IndexedVertexPositions("
101 <<
"indices.size=" << ivp.
indices.size() <<
", "
103 <<
"normals.size=" << ivp.
normals.size() <<
", "
109IndexedVertexPositions
ivpn_to_ivpn(
const IVPNormals &ivpn);
116 std::vector<IndexedVertexPositions>
ivps;
153 std::vector<glm::vec3>
colors,
int id = -1)
165 os <<
"IndexedVertexPositions("
166 <<
"indices.size=" << ivp.
indices.size() <<
", "
168 <<
"normals.size=" << ivp.
normals.size() <<
", "
169 <<
"rgb_colors.size=" << ivp.
rgb_colors.size() <<
", "
197 const std::string &texture =
"")
256 id = tig_id_generator.
get_id();
257 for (
auto &ivptp :
ivptps) {
258 ivptp.id = ivptp_id_generator.
get_id();
301 std::vector<VertexBoneData>
bone_data,
int id)
375std::vector<IndexedVertexPositions>
377std::vector<IndexedVertexPositions>
static int get_id()
Retrieves the next unique ID.
Definition unique_id_generator.cpp:6
Definition unique_id_generator.hpp:10
Definition draw_info.hpp:27
bool has_been_modified_since_last_buffering() const
Definition draw_info.hpp:38
bool has_data_in_buffer()
Definition draw_info.hpp:36
void just_modified()
Definition draw_info.hpp:29
void free_buffered_data()
Definition draw_info.hpp:35
void just_buffered_data()
Definition draw_info.hpp:30
std::string to_string() const
Definition draw_info.hpp:47
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:138
Transform transform
Definition draw_info.hpp:135
std::vector< unsigned int > indices
Definition draw_info.hpp:137
BufferModificationTracker buffer_modification_tracker
Definition draw_info.hpp:141
IVPColor(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec3 > rgb_colors, int id=-1)
Definition draw_info.hpp:130
std::vector< glm::vec3 > rgb_colors
Definition draw_info.hpp:139
IVPColor(draw_info::IndexedVertexPositions ivp, std::vector< glm::vec3 > rgb_colors, int id=-1)
Definition draw_info.hpp:127
IVPColor()
Definition draw_info.hpp:122
IVPColor(draw_info::IndexedVertexPositions ivp, glm::vec3 color)
Definition draw_info.hpp:124
int id
Definition draw_info.hpp:136
IVPNColor(IVPNormals ivpn, std::vector< glm::vec3 > rgb_colors)
Definition draw_info.hpp:149
std::vector< unsigned int > indices
Definition draw_info.hpp:157
BufferModificationTracker buffer_modification_tracker
Definition draw_info.hpp:162
Transform transform
Definition draw_info.hpp:155
friend std::ostream & operator<<(std::ostream &os, const IVPNColor &ivp)
Definition draw_info.hpp:164
std::vector< glm::vec3 > normals
Definition draw_info.hpp:159
IVPNColor(IVPNormals ivpn, glm::vec3 color)
Definition draw_info.hpp:146
std::vector< glm::vec3 > rgb_colors
Definition draw_info.hpp:160
int id
Definition draw_info.hpp:156
IVPNColor(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec3 > normals, std::vector< glm::vec3 > colors, int id=-1)
Definition draw_info.hpp:152
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:158
int packed_texture_bounding_box_index
Definition draw_info.hpp:332
std::vector< unsigned int > indices
Definition draw_info.hpp:327
int packed_texture_index
Definition draw_info.hpp:331
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:328
std::vector< VertexBoneData > bone_data
Definition draw_info.hpp:334
std::vector< glm::vec3 > normals
Definition draw_info.hpp:329
std::vector< glm::vec2 > packed_texture_coordinates
Definition draw_info.hpp:330
std::string texture
Definition draw_info.hpp:333
Transform transform
Definition draw_info.hpp:325
IVPNTPRigged(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec3 > normals, std::vector< glm::vec2 > packed_texture_coordinates, int packed_texture_index, int packed_texture_bounding_box_index, const std::string &texture, std::vector< VertexBoneData > bone_data)
Definition draw_info.hpp:317
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:306
std::vector< VertexBoneData > bone_data
Definition draw_info.hpp:310
std::vector< unsigned int > indices
Definition draw_info.hpp:305
std::vector< glm::vec2 > texture_coordinates
Definition draw_info.hpp:308
IVPNTRigged(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec3 > normals, std::vector< glm::vec2 > texture_coordinates, const std::string &texture, std::vector< VertexBoneData > bone_data, int id)
Definition draw_info.hpp:299
Transform transform
Definition draw_info.hpp:304
std::string texture_path
Definition draw_info.hpp:309
std::vector< glm::vec3 > normals
Definition draw_info.hpp:307
int id
Definition draw_info.hpp:311
IVPNTexturePacked(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec3 > normals, std::vector< glm::vec2 > original_texture_coordinates, std::vector< glm::vec2 > packed_texture_coordinates, int packed_texture_index, int packed_texture_bounding_box_index, const std::string &texture)
Definition draw_info.hpp:265
int packed_texture_index
Definition draw_info.hpp:281
std::vector< glm::vec2 > original_texture_coordinates
Definition draw_info.hpp:279
std::string texture_path
Definition draw_info.hpp:283
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:276
std::vector< glm::vec3 > normals
Definition draw_info.hpp:277
std::vector< glm::vec2 > packed_texture_coordinates
Definition draw_info.hpp:280
BufferModificationTracker buffer_modification_tracker
Definition draw_info.hpp:285
Transform transform
Definition draw_info.hpp:273
int packed_texture_bounding_box_index
Definition draw_info.hpp:282
std::vector< unsigned int > indices
Definition draw_info.hpp:275
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:202
std::string texture_path
Definition draw_info.hpp:205
BufferModificationTracker buffer_modification_tracker
Definition draw_info.hpp:207
Transform transform
Definition draw_info.hpp:200
IVPNTextured(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec3 > normals, std::vector< glm::vec2 > texture_coordinates, const std::string &texture="")
Definition draw_info.hpp:195
std::vector< glm::vec3 > normals
Definition draw_info.hpp:203
std::vector< unsigned int > indices
Definition draw_info.hpp:201
std::vector< glm::vec2 > texture_coordinates
Definition draw_info.hpp:204
Definition draw_info.hpp:85
Transform transform
Definition draw_info.hpp:91
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:94
int id
Definition draw_info.hpp:92
IVPNormals()
Definition draw_info.hpp:87
std::vector< glm::vec3 > normals
Definition draw_info.hpp:95
std::vector< unsigned int > indices
Definition draw_info.hpp:93
friend std::ostream & operator<<(std::ostream &os, const IVPNormals &ivp)
Definition draw_info.hpp:99
BufferModificationTracker buffer_modification_tracker
Definition draw_info.hpp:97
IVPNormals(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec3 > normals, int id=-1)
Definition draw_info.hpp:88
Definition draw_info.hpp:210
std::string texture_path
Definition draw_info.hpp:240
std::vector< glm::vec2 > packed_texture_coordinates
Definition draw_info.hpp:237
int packed_texture_bounding_box_index
Definition draw_info.hpp:239
int id
Definition draw_info.hpp:231
IVPTexturePacked(const IndexedVertexPositions &ivp, std::vector< glm::vec2 > original_texture_coordinates, std::vector< glm::vec2 > packed_texture_coordinates, int packed_texture_index, int packed_texture_bounding_box_index, const std::string &texture, int id=GlobalUIDGenerator::get_id())
Definition draw_info.hpp:220
std::vector< unsigned int > indices
Definition draw_info.hpp:232
Transform transform
Definition draw_info.hpp:230
int packed_texture_index
Definition draw_info.hpp:238
BufferModificationTracker buffer_modification_tracker
Definition draw_info.hpp:242
std::vector< glm::vec2 > original_texture_coordinates
Definition draw_info.hpp:236
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:233
IVPTexturePacked(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec2 > original_texture_coordinates, std::vector< glm::vec2 > packed_texture_coordinates, int packed_texture_index, int packed_texture_bounding_box_index, const std::string &texture, int id=-1)
Definition draw_info.hpp:212
Definition draw_info.hpp:175
IVPTextured(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, std::vector< glm::vec2 > texture_coordinates, const std::string &texture="", int id=GlobalUIDGenerator::get_id())
Definition draw_info.hpp:177
std::string texture_path
Definition draw_info.hpp:188
std::vector< unsigned int > indices
Definition draw_info.hpp:185
std::vector< glm::vec2 > texture_coordinates
Definition draw_info.hpp:187
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:186
Transform transform
Definition draw_info.hpp:183
int id
Definition draw_info.hpp:184
BufferModificationTracker buffer_modification_tracker
Definition draw_info.hpp:190
Definition draw_info.hpp:61
std::vector< unsigned int > indices
Definition draw_info.hpp:71
BufferModificationTracker buffer_modification_tracker
Definition draw_info.hpp:74
IndexedVertexPositions()
Definition draw_info.hpp:63
friend std::ostream & operator<<(std::ostream &os, const IndexedVertexPositions &ivp)
Definition draw_info.hpp:76
Transform transform
Definition draw_info.hpp:69
IndexedVertexPositions(std::vector< unsigned int > indices, std::vector< glm::vec3 > xyz_positions, int id=-1)
Definition draw_info.hpp:64
int id
Definition draw_info.hpp:70
std::vector< glm::vec3 > xyz_positions
Definition draw_info.hpp:72
Definition draw_info.hpp:13
Definition draw_info.cpp:3
std::vector< IndexedVertexPositions > extract_indexed_vertex_positions_vector(const std::vector< IVPTextured > &ivp_textured_vector)
Definition draw_info.cpp:19
IndexedVertexPositions extract_indexed_vertex_positions(const IVPTextured &ivp_textured)
Definition draw_info.cpp:10
IndexedVertexPositions ivpn_to_ivpn(const IVPNormals &ivpn)
Definition draw_info.cpp:8
Definition glm_printing.hpp:28
glm::mat4 local_space_to_bone_space_in_bind_pose_transformation
Definition draw_info.hpp:356
BoneInfo(const glm::mat4 &lstbst)
Definition draw_info.hpp:360
glm::mat4 local_space_animated_transform_upto_this_bone
Definition draw_info.hpp:358
VertexBoneData()
Definition draw_info.hpp:292
unsigned int indices_of_bones_that_affect_this_vertex[4]
Definition draw_info.hpp:289
float weight_value_of_this_vertex_wrt_bone[4]
Definition draw_info.hpp:290
void add_bone_data(unsigned int BoneID, float Weight)
Definition draw_info.cpp:44