HeapsIO/domkit

Transitions

ncannasse opened this issue · 1 comments

Add transitions on int/float values:

xxx {
    transition : [property] [time] [speed-value-ref?] [curve?];
}
  • property : any domkit property (int/float) color ?
  • time : fixed time (1s)
  • speed-value-ref : can be used to adjust speed based on distance (ex : 1s 100 means move by 100 per 1s)
  • curve : easing curve (extensible framework for custom curves) -- allow parameters such as vibrate(10)

Interpolation of values:

  • we start at S, target value is E, time is T
  • if we have speed-value-ref R value, duration is adjusted as T' = abs(E - S) * T / R
  • we update progress P% each frame
  • if there is a change during a transition, we update progress to account for current value (example : [0,100,1s] -> break at 50% (value=50) -> set new target 25 --> [100,25,1s] at 66%) (TODO:how this works on colors?)
  • transitions are set on the target class, not on the source one (transitions on source are lost when class gets updated)

This has been merged already.