openage
openage copied to clipboard
Vector Curve container
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 |