scaddy/vector.scad
Tony Tkacik 85ceeaee95 Initial Drop of Scaddy.
Signed-off-by: Tony Tkacik <tonydamage@gmail.com>
2017-12-01 13:55:57 +01:00

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 ];