Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'xs/src/slic3r/GUI/3DScene.cpp')
-rw-r--r--xs/src/slic3r/GUI/3DScene.cpp52
1 files changed, 12 insertions, 40 deletions
diff --git a/xs/src/slic3r/GUI/3DScene.cpp b/xs/src/slic3r/GUI/3DScene.cpp
index ab12f7d07..9929655f5 100644
--- a/xs/src/slic3r/GUI/3DScene.cpp
+++ b/xs/src/slic3r/GUI/3DScene.cpp
@@ -512,20 +512,12 @@ static void thick_lines_to_indexed_vertex_array(
idx_a[RIGHT] = idx_prev[RIGHT];
} else if (cross(v_prev, v) > 0.) {
// Right turn. Fill in the right turn wedge.
- volume.triangle_indices.push_back(idx_prev[RIGHT]);
- volume.triangle_indices.push_back(idx_a [RIGHT]);
- volume.triangle_indices.push_back(idx_prev[TOP]);
- volume.triangle_indices.push_back(idx_prev[RIGHT]);
- volume.triangle_indices.push_back(idx_prev[BOTTOM]);
- volume.triangle_indices.push_back(idx_a [RIGHT]);
+ volume.push_triangle(idx_prev[RIGHT], idx_a [RIGHT], idx_prev[TOP] );
+ volume.push_triangle(idx_prev[RIGHT], idx_prev[BOTTOM], idx_a [RIGHT] );
} else {
// Left turn. Fill in the left turn wedge.
- volume.triangle_indices.push_back(idx_prev[LEFT]);
- volume.triangle_indices.push_back(idx_prev[TOP]);
- volume.triangle_indices.push_back(idx_a [LEFT]);
- volume.triangle_indices.push_back(idx_prev[LEFT]);
- volume.triangle_indices.push_back(idx_a [LEFT]);
- volume.triangle_indices.push_back(idx_prev[BOTTOM]);
+ volume.push_triangle(idx_prev[LEFT], idx_prev[TOP], idx_a [LEFT] );
+ volume.push_triangle(idx_prev[LEFT], idx_a [LEFT], idx_prev[BOTTOM]);
}
if (ii == lines.size()) {
if (! sharp) {
@@ -575,42 +567,22 @@ static void thick_lines_to_indexed_vertex_array(
if (! closed) {
// Terminate open paths with caps.
- if (i == 0) {
- volume.quad_indices.push_back(idx_a[BOTTOM]);
- volume.quad_indices.push_back(idx_a[RIGHT]);
- volume.quad_indices.push_back(idx_a[TOP]);
- volume.quad_indices.push_back(idx_a[LEFT]);
- }
+ if (i == 0)
+ volume.push_quad(idx_a[BOTTOM], idx_a[RIGHT], idx_a[TOP], idx_a[LEFT]);
// We don't use 'else' because both cases are true if we have only one line.
- if (i + 1 == lines.size()) {
- volume.quad_indices.push_back(idx_b[BOTTOM]);
- volume.quad_indices.push_back(idx_b[LEFT]);
- volume.quad_indices.push_back(idx_b[TOP]);
- volume.quad_indices.push_back(idx_b[RIGHT]);
- }
+ if (i + 1 == lines.size())
+ volume.push_quad(idx_b[BOTTOM], idx_b[LEFT], idx_b[TOP], idx_b[RIGHT]);
}
// Add quads for a straight hollow tube-like segment.
// bottom-right face
- volume.quad_indices.push_back(idx_a[BOTTOM]);
- volume.quad_indices.push_back(idx_b[BOTTOM]);
- volume.quad_indices.push_back(idx_b[RIGHT]);
- volume.quad_indices.push_back(idx_a[RIGHT]);
+ volume.push_quad(idx_a[BOTTOM], idx_b[BOTTOM], idx_b[RIGHT], idx_a[RIGHT]);
// top-right face
- volume.quad_indices.push_back(idx_a[RIGHT]);
- volume.quad_indices.push_back(idx_b[RIGHT]);
- volume.quad_indices.push_back(idx_b[TOP]);
- volume.quad_indices.push_back(idx_a[TOP]);
+ volume.push_quad(idx_a[RIGHT], idx_b[RIGHT], idx_b[TOP], idx_a[TOP]);
// top-left face
- volume.quad_indices.push_back(idx_a[TOP]);
- volume.quad_indices.push_back(idx_b[TOP]);
- volume.quad_indices.push_back(idx_b[LEFT]);
- volume.quad_indices.push_back(idx_a[LEFT]);
+ volume.push_quad(idx_a[TOP], idx_b[TOP], idx_b[LEFT], idx_a[LEFT]);
// bottom-left face
- volume.quad_indices.push_back(idx_a[LEFT]);
- volume.quad_indices.push_back(idx_b[LEFT]);
- volume.quad_indices.push_back(idx_b[BOTTOM]);
- volume.quad_indices.push_back(idx_a[BOTTOM]);
+ volume.push_quad(idx_a[LEFT], idx_b[LEFT], idx_b[BOTTOM], idx_a[BOTTOM]);
}
#undef LEFT