From a767c658cb603de9ec9f0577627b9b32cbf82b2b Mon Sep 17 00:00:00 2001 From: pacien Date: Fri, 22 Dec 2017 01:53:55 +0100 Subject: Simplify and add geom. and matrix utility functions Signed-off-by: pacien --- include/common/geom.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'include/common/geom.h') diff --git a/include/common/geom.h b/include/common/geom.h index a843c76..b3564a5 100644 --- a/include/common/geom.h +++ b/include/common/geom.h @@ -38,6 +38,46 @@ typedef struct { CartesianVector origin, target; } CartesianMapping; + +/** + * Function: m + * Shorthand for an identity mapping. + * + * Parameters: + * x - the x-coordinate + * y - the y-coordinate + * + * Returns: + * A cartesian identity mapping + */ +CartesianMapping m(int x, int y); + +/** + * Function: v + * Shorthand for a vector. + * + * Parameters: + * x - the x-coordinate + * y - the y-coordinate + * + * Returns: + * An integer vector + */ +CartesianVector v(int x, int y); + +/** + * Function: mappings_equals + * Compares two cartesian mappings. + * + * Parameters: + * m1 - the first mapping + * m2 - the second mapping + * + * Returns: + * T(m1 is equal to m2) + */ +bool mappings_equals(CartesianMapping m1, CartesianMapping m2); + /** * Function: vector_equals * Compares two cartesian vectors. @@ -51,4 +91,18 @@ typedef struct { */ bool vector_equals(CartesianVector v1, CartesianVector v2); +/** + * Function: triangle_area + * Computes the area of a triangle. + * + * Parameters: + * v1 - first vertex + * v2 - second vertex + * v3 - third vertex + * + * Returns: + * The area of the triangle spawned by the three supplied vertices + */ +IntVector triangle_area(CartesianVector v1, CartesianVector v2, CartesianVector v3); + #endif -- cgit v1.2.3