Rewrote the OpenGL object rendering to indexed triangle / quad sets

for lower memory consumption.
Rewrote the print path 3D preview to generate these indexed triangle / quad
sets, possibly with at least as possible duplication of vertices,
with a crease angle of 45 degrees, leading to maximum 8% overshoots
at the corners.
This commit is contained in:
bubnikv 2017-03-15 16:33:25 +01:00
parent e7a920fe16
commit d18e10c7c9
6 changed files with 414 additions and 566 deletions

View file

@ -27,7 +27,6 @@
int object_idx() const;
int volume_idx() const;
int instance_idx() const;
bool empty() const;
Clone<Pointf3> origin() const
%code%{ RETVAL = THIS->origin; %};
void translate(double x, double y, double z)
@ -36,12 +35,15 @@
%code%{ RETVAL = THIS->bounding_box; %};
Clone<BoundingBoxf3> transformed_bounding_box() const;
void* qverts_to_render_ptr();
void* qnorms_to_render_ptr();
int qverts_to_render_cnt();
void* tverts_to_render_ptr();
void* tnorms_to_render_ptr();
int tverts_to_render_cnt();
bool empty() const;
bool indexed() const;
void* triangles_to_render_ptr();
size_t triangles_to_render_cnt();
void* triangle_indices_to_render_ptr();
void* quad_indices_to_render_ptr();
size_t indexed_triangles_to_render_cnt();
size_t indexed_quads_to_render_cnt();
bool has_layer_height_texture();
int layer_height_texture_width();