From c29e4ecb7de4cb10f48b2526bc1abae847c718e2 Mon Sep 17 00:00:00 2001 From: pacien Date: Thu, 28 Dec 2017 01:19:45 +0100 Subject: Add new geometry common types and functions Signed-off-by: pacien --- test/common/geom.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/common/geom.c (limited to 'test') diff --git a/test/common/geom.c b/test/common/geom.c new file mode 100644 index 0000000..f05e0a1 --- /dev/null +++ b/test/common/geom.c @@ -0,0 +1,21 @@ +#include "common/geom.h" +#include + +static void test_square_area() { + assert(square_area(v(0, 0), v(10, 0), v(10, 10)) == 100); + assert(square_area(v(0, 0), v(0, 10), v(10, 10)) == -100); +} + +static void test_cartesian_barycentric_vectors() { + Triangle t = {{v(0, 0), v(10, 0), v(10, 10)}}; + CartesianVector c = v(3, 2); + BarycentricVector bv = cartesian_to_barycentric(t, c); + assert(barycentric_vector_equals(bv, b(0.7, 0.1))); + assert(vector_equals(barycentric_to_cartesian(t, bv), c)); +} + +int main(int argc, char **argv) { + test_square_area(); + test_cartesian_barycentric_vectors(); + return 0; +} -- cgit v1.2.3 From 190449ee18bec69b2e385dccd9bd42ddc83dd418 Mon Sep 17 00:00:00 2001 From: pacien Date: Thu, 28 Dec 2017 01:22:41 +0100 Subject: Refactor and test color Signed-off-by: pacien --- test/painter/color.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 test/painter/color.c (limited to 'test') diff --git a/test/painter/color.c b/test/painter/color.c new file mode 100644 index 0000000..bdfe9b3 --- /dev/null +++ b/test/painter/color.c @@ -0,0 +1,14 @@ +#include "painter/color.h" +#include + +static void test_color_blend() { + Color a = {{1, 10, 100, 200}}, b = {{100, 1, 200, 10}}; + assert(color_equals(color_blend(a, b, TIME_ORIGIN), a)); + assert(color_equals(color_blend(a, b, TIME_UNIT), b)); + assert(color_equals(color_blend(a, b, 0.25), (Color) {{50, 9, 132, 173}})); +} + +int main(int argc, char **argv) { + test_color_blend(); + return 0; +} -- cgit v1.2.3 From 330fd85db8c89c178621d978929d911bbe93fec7 Mon Sep 17 00:00:00 2001 From: pacien Date: Thu, 28 Dec 2017 01:23:08 +0100 Subject: Refactor canvas blender into rasterizer Signed-off-by: pacien --- test/blender/blender.c | 29 ----------------------------- test/painter/rasterizer.c | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 29 deletions(-) delete mode 100644 test/blender/blender.c create mode 100644 test/painter/rasterizer.c (limited to 'test') diff --git a/test/blender/blender.c b/test/blender/blender.c deleted file mode 100644 index f42322f..0000000 --- a/test/blender/blender.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "blender/blender.h" -#include - -static void test_canvas_blending() { - Morphing *morphing; - Canvas origin, target, result; - CartesianVector sample_point = {13, 17}; - - morphing = morphing_create(64, 64); - canvas_init(&origin, 64, 64); - canvas_init(&target, 64, 64); - canvas_init(&result, 64, 64); - - canvas_set_pixel(&origin, sample_point, (Color) {{0xFF, 0xED, 0x00, 0x00}}); - canvas_set_pixel(&target, sample_point, (Color) {{0x00, 0x47, 0xAB, 0x00}}); - - blender_blend_canvas(&result, &origin, &target, morphing, 0.125); - assert(color_equals(canvas_get_pixel(&result, sample_point), (Color) {{0xEE, 0xDF, 0x3C, 0x00}})); - - canvas_free(&result); - canvas_free(&target); - canvas_free(&origin); - morphing_destroy(morphing); -} - -int main(int argc, char **argv) { - test_canvas_blending(); - return 0; -} diff --git a/test/painter/rasterizer.c b/test/painter/rasterizer.c new file mode 100644 index 0000000..99a70b4 --- /dev/null +++ b/test/painter/rasterizer.c @@ -0,0 +1,27 @@ +#include "painter/rasterizer.h" +#include + +static void test_rasterize() { + Morphing *morphing; + Canvas *origin, *target, *result; + CartesianVector sample_point = {13, 17}; + + morphing = morphing_create(100, 100); + origin = canvas_create(100, 100); + target = canvas_create(100, 100); + canvas_set_pixel(origin, sample_point, (Color) {{0xFF, 0x00, 0xED, 0xFF}}); + canvas_set_pixel(target, sample_point, (Color) {{0xFF, 0xAB, 0x47, 0x00}}); + + result = rasterize(origin, target, morphing, 0.125); + assert(color_equals(canvas_get_pixel(result, sample_point), (Color) {{0xFF, 0x3C, 0xDF, 0xEF}})); + + canvas_destroy(result); + canvas_destroy(target); + canvas_destroy(origin); + morphing_destroy(morphing); +} + +int main(int argc, char **argv) { + test_rasterize(); + return 0; +} -- cgit v1.2.3