#define _GNU_SOURCE #include #include #include "Point.h" Point point_new(double initialX, double initialY) { Point p = (Point)malloc(1 * sizeof(*p)); if ( p == NULL ) return NULL; _tuple_constructor((Tuple)p); return _point_constructor(p, initialX, initialY); } Point _point_constructor(Point p, double initialX, double initialY) { p->x = initialX; p->y = initialY; return p; } void point_delete(Point p) { free(p); } char *point_toString(const Point p) { char *resultStr; asprintf( &resultStr, "Point(%lf, %lf)", p->x, p->y ); return resultStr; } Point point_addVector(Point p, const Vector v) { return (Point)_tuple_add((Tuple)p, (Tuple)v); }