summaryrefslogtreecommitdiff
path: root/renders
diff options
context:
space:
mode:
Diffstat (limited to 'renders')
-rw-r--r--renders/anim_graph_rotate.c45
1 files changed, 27 insertions, 18 deletions
diff --git a/renders/anim_graph_rotate.c b/renders/anim_graph_rotate.c
index e0b3a61..bb7a93e 100644
--- a/renders/anim_graph_rotate.c
+++ b/renders/anim_graph_rotate.c
@@ -15,22 +15,23 @@ main() {
u32 width = 512;
u32 height = 512;
const u32 FPS = 60;
- u32 frames = FPS * 5;
+ u32 frames = FPS * 10;
- PixelCallback* child;
- TransformCenter childLeft = { .centerX = width / 4, .centerY = height * 3 / 4, };
- TransformCenter childRight = { .centerX = width * 3 / 4, .centerY = height * 3 / 4, };
+ PixelCallback *root, *child;
+ TransformCenter nodeTop = { .centerX = width / 2, .centerY = height / 4, };
+ TransformCenter nodeLeft = { .centerX = width / 4, .centerY = height * 3 / 4, };
+ TransformCenter nodeRight = { .centerX = width * 3 / 4, .centerY = height * 3 / 4, };
PixelCallback* segment;
LineSegment segmentRight = {
- .aX = width / 2, .aY = height / 4,
- .bX = width * 3 / 4, .bY = height * 3 / 4,
- .width = 20, .color = 0xFFFF00FF,
+ .aX = nodeTop.centerX, .aY = nodeTop.centerY,
+ .bX = nodeRight.centerX, .bY = nodeRight.centerY,
+ .width = 30, .color = 0xFFFF00FF,
};
LineSegment segmentLeft = {
- .aX = width / 2, .aY = height / 4,
- .bX = width / 4, .bY = height * 3 / 4,
- .width = 20, .color = 0xFF0088FF,
+ .aX = nodeLeft.centerX, .aY = nodeLeft.centerY,
+ .bX = nodeTop.centerX, .bY = nodeTop.centerY,
+ .width = 30, .color = 0xFF0088FF,
};
PixelCallback* callbacks[] = {
@@ -42,15 +43,13 @@ main() {
NULL,
segment = LineSegment_setup(segmentRight),
/* Root node */
- TransformCenter_setup((TransformCenter){
- .centerX = width / 2, .centerY = height / 4,
- }),
+ root = TransformCenter_setup(nodeTop),
Circle_setup((Circle){
.radius = 60, .color = 0xFFFF0000,
}),
/* Child node */
NULL,
- child = TransformCenter_setup(childRight),
+ child = TransformCenter_setup(nodeRight),
Circle_setup((Circle){
.radius = 60, .color = 0xFF00FF00,
}),
@@ -60,10 +59,15 @@ main() {
FrameCallback* frameCallbacks[] = {
/* Move right to left */
FrameRange_setup((FrameRange){
- .startFrame = frames / 3 - FPS, .endFrame = frames / 3,
+ .startFrame = FPS * 1, .endFrame = FPS * 3,
+ }),
+ Interpolate_setup((Interpolate){
+ .startValue = &nodeTop, .endValue = &nodeLeft,
+ .value = root->callback_self,
+ .interpolate = (f_interpolate)Interpolate_TransformCenter,
}),
Interpolate_setup((Interpolate){
- .startValue = &childRight, .endValue = &childLeft,
+ .startValue = &nodeRight, .endValue = &nodeTop,
.value = child->callback_self,
.interpolate = (f_interpolate)Interpolate_TransformCenter,
}),
@@ -75,10 +79,15 @@ main() {
/* Move left to right */
NULL,
FrameRange_setup((FrameRange){
- .startFrame = frames * 2 / 3 - FPS, .endFrame = frames * 2 / 3,
+ .startFrame = FPS * 6, .endFrame = FPS * 8,
+ }),
+ Interpolate_setup((Interpolate){
+ .startValue = &nodeLeft, .endValue = &nodeTop,
+ .value = root->callback_self,
+ .interpolate = (f_interpolate)Interpolate_TransformCenter,
}),
Interpolate_setup((Interpolate){
- .startValue = &childLeft, .endValue = &childRight,
+ .startValue = &nodeTop, .endValue = &nodeRight,
.value = child->callback_self,
.interpolate = (f_interpolate)Interpolate_TransformCenter,
}),