36 lines
816 B
OpenSCAD
36 lines
816 B
OpenSCAD
/**
|
|
* Returns [n,0,0] vector.
|
|
*
|
|
* @param n Size of vector in specified direction
|
|
*/
|
|
function x(n)=[n,0,0];
|
|
function y(n)=[0,n,0];
|
|
function z(n)=[0,0,n];
|
|
|
|
/**
|
|
* Checks if vector (list) contains specified value.
|
|
*
|
|
* @param vec Vector to be checked
|
|
* @param vec Value to be checked
|
|
*/
|
|
function contains(vec, val)=len([for (i = list) if (i==val) i]) > 0;
|
|
|
|
/**
|
|
* Reverses supplied vector
|
|
*/
|
|
function reverse_vector(vec) = let(n=len(vec)) [for (i= [1:1:n]) vec[n-i]];
|
|
|
|
function scale_vec(sv,vec2)= let(l=len(sv))
|
|
[ for(v = vec2)
|
|
[for(i = [0:1:l-1]) v[i]*sv[i] ]];
|
|
|
|
/**
|
|
* Moves each vector by given offset
|
|
*
|
|
* @param vec2 set of vectors
|
|
* @param mov Movement vector
|
|
*
|
|
*/
|
|
function move_vectors(vec2,mov)=[ for(v = vec2) v+mov];
|
|
|
|
function flatten_vec(list) = [ for (i = list, v = i) v ];
|