Fix stroke() for 1 point paths.

This commit is contained in:
Revar Desmera 2020-06-10 00:03:48 -07:00
parent 527fea1cf3
commit 620a536dbc
2 changed files with 22 additions and 13 deletions

View File

@ -114,7 +114,10 @@ module stroke(
) * linewidth;
assert(is_bool(closed));
assert(is_list(path));
if (len(path) > 1) {
assert(is_path(path,[2,3]), "The path argument must be a list of 2D or 3D points.");
}
path = deduplicate( closed? close_path(path) : path );
assert(is_num(width) || (is_vector(width) && len(width)==len(path)));
@ -164,6 +167,13 @@ module stroke(
]);
assert(is_num(trim2));
if (len(path) == 1) {
if (len(path[0]) == 2) {
translate(path[0]) circle(d=width[0]);
} else {
translate(path[0]) sphere(d=width[0]);
}
} else if (len(path[0]) == 2) {
spos = path_pos_from_start(path,trim1,closed=false);
epos = path_pos_from_end(path,trim2,closed=false);
path2 = path_subselect(path, spos[0], spos[1], epos[0], epos[1]);
@ -175,7 +185,6 @@ module stroke(
start_vec = select(path,0) - select(path,1);
end_vec = select(path,-1) - select(path,-2);
if (len(path[0]) == 2) {
// Straight segments
for (i = idx(path2,end=-2)) {
seg = select(path2,i,i+1);

View File

@ -8,7 +8,7 @@
//////////////////////////////////////////////////////////////////////
BOSL_VERSION = [2,0,332];
BOSL_VERSION = [2,0,333];
// Section: BOSL Library Version Functions