openage icon indicating copy to clipboard operation
openage copied to clipboard

Vector Curve container

Open heinezen opened this issue 1 year ago • 0 comments

We should add a curve::Vector type to our curve container classes to record changes to sequences over time.

The new vector type should implement these methods:

Read

Method Description
get(t, i) Get value of index i at time t
get(t) Get vector at time t
size(t) Get size of the vector at time t
frame(t, i) Get the previous keyframe (time and value) of index i before or at t
next_frame(t, i) Get the next keyframe (time and value) of index i after t

There should also be an iterator type to iterate over the vector at time t.

Modify

Method Description
insert(t, i, value) Insert a new element at index i at time t
erase(t, i) Erase element at index i at time t
set_insert(t, i, value) Insert a new keyframe value at time t at index i
set_last(t, i, value) Insert a new keyframe value at time t; delete all keyframes after time t at index i
set_replace(t, i, value) Insert a new keyframe value at time t at index i; remove all other keyframes with time t at index i

heinezen avatar Aug 25 '24 03:08 heinezen