Holodisk/anim.scad

30 行
787 B
OpenSCAD

// animation
function get_anim_keys() = [
0, // initial
0.1, // resting
0.25, // holodisk free-inserted
0.3, // holodisk click-inserted
0.4, // laser raised, waiting
0.5, // start playing
0.7, // stop playing, start lowering laser
0.75, // laser lowered, holodisk removing
0.8, // holodisk click-removed
0.95, // holodisk free-removed, NOPing
1 // final
];
function ANIM_START()=0;
function ANIM_RESTING()=0;
function ANIM_INSERTING()=1;
function ANIM_OPENING()=2;
function ANIM_RAISING()=3;
function ANIM_WAITING()=4;
function ANIM_PLAYING()=5;
function ANIM_LOWERING()=6;
function ANIM_CLOSING()=7;
function ANIM_REMOVING()=8;
function ANIM_END()=9;
function anim(key_from, key_to, KEYS=get_anim_keys())
= max(0, min(($t - KEYS[key_from]) / (KEYS[key_to] - KEYS[key_from]), 1));