From 121fef582d3dfd215c1506f7376e69721d45ec25 Mon Sep 17 00:00:00 2001 From: supermerill Date: Wed, 9 Jan 2019 20:49:58 +0100 Subject: [PATCH] brim ears rounder & cleaner --- src/libslic3r/Print.cpp | 32 +++++--------------------------- src/libslic3r/libslic3r.h | 2 ++ 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 9a210abaa..613bcd7f8 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1740,31 +1740,11 @@ void Print::_make_brim_ears() { //create ear pattern coord_t size_ear = (scale_(m_config.brim_width.value) - flow.scaled_spacing()); - Polygon point_round; - point_round.points.push_back(Point(size_ear * 1, 0 * size_ear)); - point_round.points.push_back(Point(size_ear*0.966, 0.26*size_ear)); - point_round.points.push_back(Point(size_ear*0.87, 0.5*size_ear)); - point_round.points.push_back(Point(size_ear*0.7, 0.7*size_ear)); - point_round.points.push_back(Point(size_ear*0.5, 0.87*size_ear)); - point_round.points.push_back(Point(size_ear*0.26, 0.966*size_ear)); - point_round.points.push_back(Point(size_ear * 0, 1 * size_ear)); - point_round.points.push_back(Point(size_ear*-0.26, 0.966*size_ear)); - point_round.points.push_back(Point(size_ear*-0.5, 0.87*size_ear)); - point_round.points.push_back(Point(size_ear*-0.7, 0.7*size_ear)); - point_round.points.push_back(Point(size_ear*-0.87, 0.5*size_ear)); - point_round.points.push_back(Point(size_ear*-0.966, 0.26*size_ear)); - point_round.points.push_back(Point(size_ear*-1, 0 * size_ear)); - point_round.points.push_back(Point(size_ear*-0.966, -0.26*size_ear)); - point_round.points.push_back(Point(size_ear*-0.87, -0.5*size_ear)); - point_round.points.push_back(Point(size_ear*-0.7, -0.7*size_ear)); - point_round.points.push_back(Point(size_ear*-0.5, -0.87*size_ear)); - point_round.points.push_back(Point(size_ear*-0.26, -0.966*size_ear)); - point_round.points.push_back(Point(size_ear * 0, -1 * size_ear)); - point_round.points.push_back(Point(size_ear*0.26, -0.966*size_ear)); - point_round.points.push_back(Point(size_ear*0.5, -0.87*size_ear)); - point_round.points.push_back(Point(size_ear*0.7, -0.7*size_ear)); - point_round.points.push_back(Point(size_ear*0.87, -0.5*size_ear)); - point_round.points.push_back(Point(size_ear*0.966, -0.26*size_ear)); + Polygon point_round; + for (size_t i = 0; i < POLY_SIDES; i++) { + double angle = (2.0 * PI * i) / POLY_SIDES; + point_round.points.emplace_back(size_ear * cos(angle), size_ear * sin(angle)); + } //create ears Polygons mouse_ears; @@ -1840,8 +1820,6 @@ void Print::_make_brim_ears() { //update last position previous = &lines_sorted.back(); - } else { - previous == NULL; } } diff --git a/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index fb5972ddc..af98c866f 100644 --- a/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h @@ -35,6 +35,8 @@ typedef double coordf_t; // RESOLUTION, SCALED_RESOLUTION: Used as an error threshold for a Douglas-Peucker polyline simplification algorithm. #define RESOLUTION 0.0125 #define SCALED_RESOLUTION (RESOLUTION / SCALING_FACTOR) +//for creating circles (for brim_ear) +#define POLY_SIDES 24 #define PI 3.141592653589793238 // When extruding a closed loop, the loop is interrupted and shortened a bit to reduce the seam. #define LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER 0.15