remove tex_size defaults for textured_tile, vnf_vertex_array

This commit is contained in:
Adrian Mariano
2025-04-22 18:23:06 -04:00
parent 51d1951e72
commit 4c80be0feb
3 changed files with 9 additions and 9 deletions

View File

@@ -1334,10 +1334,9 @@ function textured_tile(
) =
assert(is_undef(tex_reps) || is_int(tex_reps) || (all_integer(tex_reps) && len(tex_reps)==2), "tex_reps must be an integer or list of two integers")
assert(is_undef(tex_size) || is_vector(tex_size,2) || is_finite(tex_size))
assert(num_defined([tex_size, tex_reps])<2, "Cannot give both tex_size and tex_reps")
assert(num_defined([tex_size, tex_reps])==1, "Must give exactly one of tex_size and tex_reps")
assert(is_undef(size) || is_num(size) || is_vector(size,2) || is_vector(size,3), "size must be a 2-vector or 3-vector")
assert(is_undef(size) || num_defined([ysize,h, height, thickness, w1,w2,ang])==0, "Cannot combine size with any other dimensional specifications")
let(
inset = is_num(tex_inset)? tex_inset : tex_inset? 1 : 0,
default_thick = inset>0 ? 0.1+abs(tex_depth)*inset : 0.1,
@@ -1362,7 +1361,7 @@ function textured_tile(
texture = _get_texture(texture, tex_rot),
tex_reps = is_def(tex_reps) ? force_list(tex_reps,2)
: let(tex_size=is_undef(tex_size)? [5,5] : force_list(tex_size,2))
: let(tex_size=force_list(tex_size,2))
[round(size.x/tex_size.x), round(size.y/tex_size.y)],
extra = is_undef(extra)? tex_reps == [1,1] ? [0,0] : [1,1]
: force_list(tex_extra,2),

View File

@@ -1182,7 +1182,7 @@ function rotate_sweep(
style="min_edge", cp="centroid",
atype="hull", anchor="origin",
spin=0, orient=UP, start=0,
_tex_inhibit_y_slicing=false
_tex_inhibit_y_slicing
) =
assert(num_defined([tex_reps,tex_counts])<2, "In rotate_sweep() the 'tex_counts' parameters has been replaced by 'tex_reps'. You cannot give both.")
assert(num_defined([tex_scale,tex_depth])<2, "In linear_sweep() the 'tex_scale' parameter has been replaced by 'tex_depth'. You cannot give both.")
@@ -4498,7 +4498,7 @@ function _tile_edge_path_list(vnf, axis, maxopen=1) =
/// Arguments:
/// shape = The path or region to sweep/extrude.
/// texture = A texture name string, or a rectangular array of scalar height values (0.0 to 1.0), or a VNF tile that defines the texture to apply to the revolution surface. See {{texture()}} for what named textures are supported.
/// tex_size = An optional 2D target size for the textures. Actual texture sizes are scaled somewhat to evenly fit the available surface. Default: `[5,5]`
/// tex_size = An optional 2D target size for the textures. Actual texture sizes are scaled somewhat to evenly fit the available surface.
/// tex_scale = Scaling multiplier for the texture depth.
/// ---
/// inset = If numeric, lowers the texture into the surface by that amount, before the tex_scale multiplier is applied. If `true`, insets by exactly `1`. Default: `false`
@@ -4522,7 +4522,7 @@ function _textured_revolution(
shape, texture, tex_size, tex_scale=1,
inset=false, rot=false, shift=[0,0],
taper, closed=true, angle=360,
inhibit_y_slicing=false,tex_aspect, pixel_aspect,
inhibit_y_slicing,tex_aspect, pixel_aspect,
counts, samples, start=0,tex_extra,
style="min_edge", atype="intersect",
anchor=CENTER, spin=0, orient=UP
@@ -4541,6 +4541,7 @@ function _textured_revolution(
assert(num_defined([tex_aspect, pixel_aspect])<=1, "Cannot give both tex_aspect and pixel_aspect")
//assert(num_defined([tex_aspect, pixel_aspect])==0 || is_undef(angle), "Cannot give tex_aspect or pixel_aspect if you give angle")
let(
inhibit_y_slicing = default(inhibit_y_slicing, is_path(shape) && len(path)==2 ? true : false),
regions = !is_path(shape,2)? region_parts(shape)
: closed? region_parts([shape])
: let(
@@ -4861,7 +4862,7 @@ function _textured_point_array(points, texture, tex_reps, tex_size, tex_samples,
col_wrap=false, tex_depth=1, row_wrap=false, caps, cap1, cap2, reverse=false, style="min_edge", tex_extra, tex_skip, sidecaps,sidecap1,sidecap2,normals) =
assert(tex_reps==undef || is_int(tex_reps) || (all_integer(tex_reps) && len(tex_reps)==2), "tex_reps must be an integer or list of two integers")
assert(tex_size==undef || is_num(tex_size) || is_vector(tex_size,2), "tex_size must be a scalar or 2-vector")
assert(num_defined([tex_size, tex_reps])<2, "Cannot give both tex_size and tex_reps")
assert(num_defined([tex_size, tex_reps])==1, "Must give exactly one of tex_size and tex_reps")
assert(in_list(style,["default","alt","quincunx", "convex","concave", "min_edge","min_area","flip1","flip2"]))
assert(is_matrix(points[0], n=3),"Point array has the wrong shape or points are not 3d")
assert(is_consistent(points), "Non-rectangular or invalid point array")
@@ -4877,7 +4878,7 @@ function _textured_point_array(points, texture, tex_reps, tex_size, tex_samples,
ptsize=[len(points[0]), len(points)],
tex_reps = is_def(tex_reps) ? force_list(tex_reps,2)
: let(
tex_size = is_undef(tex_size) ? [5,5] : force_list(tex_size,2),
tex_size = force_list(tex_size,2),
xsize = norm(points[0][0]-points[0][1])*(ptsize.x+(col_wrap?1:0)),
ysize = norm(points[0][0]-points[1][0])*(ptsize.y+(row_wrap?1:0))
)

View File

@@ -86,7 +86,7 @@ EMPTY_VNF = [[],[]]; // The standard empty VNF with no vertices or faces.
// triangulate = If true, triangulates endcaps to resolve possible CGAL issues. This can be an expensive operation if the endcaps are complex. Default: false
// convexity = (module) Max number of times a line could intersect a wall of the shape.
// texture = A texture name string, or a rectangular array of scalar height values (0.0 to 1.0), or a VNF tile that defines the texture to apply to vertical surfaces. See {{texture()}} for what named textures are supported.
// tex_size = An optional 2D target size for the textures at `points[0][0]`. Actual texture sizes are scaled somewhat to evenly fit the available surface. Default: `[5,5]`
// tex_size = An optional 2D target size for the textures at `points[0][0]`. Actual texture sizes are scaled somewhat to evenly fit the available surface.
// tex_reps = If given instead of tex_size, a 2-vector giving the number of texture tile repetitions in the horizontal and vertical directions.
// tex_inset = If numeric, lowers the texture into the surface by the specified proportion, e.g. 0.5 would lower it half way into the surface. If `true`, insets by exactly its full depth. Default: `false`
// tex_rot = Rotate texture by specified angle, which must be a multiple of 90 degrees. Default: 0