mirror of
https://github.com/BelfrySCAD/BOSL2.git
synced 2024-12-29 16:29:40 +00:00
bug fixes
This commit is contained in:
parent
3d6c3fca89
commit
f035df980a
2 changed files with 7 additions and 10 deletions
15
lists.scad
15
lists.scad
|
@ -336,20 +336,17 @@ function list_tail(list, from=1) =
|
|||
// Topics: List Handling
|
||||
// See Also: list_bset()
|
||||
// Description:
|
||||
// Returns the items in `list` whose matching element in `index` is true.
|
||||
// Returns the items in `list` whose matching element in `index` evaluates as true.
|
||||
// Arguments:
|
||||
// list = Initial list to extract items from.
|
||||
// index = List of booleans.
|
||||
// list = Initial list (or string) to extract items from.
|
||||
// index = List of values that will be evaluated as boolean, same length as `list`.
|
||||
// Example:
|
||||
// a = bselect([3,4,5,6,7], [false,true,true,false,true]); // Returns: [4,5,7]
|
||||
function bselect(list,index) =
|
||||
assert(is_list(list)||is_string(list), "Improper list." )
|
||||
assert(is_list(index) && len(index)>=len(list) , "Improper index list." )
|
||||
assert(is_list(list)||is_string(list), "First argument must be a list or string." )
|
||||
assert(is_list(index) && len(index)==len(list) , "Second argument must have same length as the first." )
|
||||
is_string(list)? str_join(bselect( [for (x=list) x], index)) :
|
||||
[for(i=[0:len(list)-1]) if (index[i]) list[i]];
|
||||
|
||||
|
||||
|
||||
[for(i=idx(list)) if (index[i]) list[i]];
|
||||
|
||||
|
||||
// Section: List Construction
|
||||
|
|
2
vnf.scad
2
vnf.scad
|
@ -1049,7 +1049,7 @@ function vnf_halfspace(plane, vnf, closed=true) =
|
|||
assert(_valid_plane(plane), "Invalid plane")
|
||||
assert(is_vnf(vnf), "Invalid vnf")
|
||||
let(
|
||||
inside = [for(x=vnf[0]) plane*[each x,-1] >= 0 ? 1 : 0],
|
||||
inside = [for(x=vnf[0]) plane*[each x,-1] >= -EPSILON ? 1 : 0],
|
||||
vertexmap = [0,each cumsum(inside)],
|
||||
faces_edges_vertices = _vnfcut(plane, vnf[0],vertexmap,inside, vnf[1], last(vertexmap)),
|
||||
newvert = concat(bselect(vnf[0],inside), faces_edges_vertices[2])
|
||||
|
|
Loading…
Reference in a new issue