#include #include "typedefs.h" double normalize(t_3d *a) { double d; d = sqrt(a->x * a->x + a->y * a->y + a->z * a->z); a->x /= d; a->y /= d; a->z /= d; return d; } double dotp(t_3d *a, t_3d *b) { double d; d = (a->x * b->x) + (a->y * b->y) + (a->z * b->z); return d; } int crossp(t_3d *o, t_3d *a, t_3d *b) { double d; o->x = (a->y * b->z) - (a->z * b->y); o->y = (a->z * b->x) - (a->x * b->z); o->z = (a->x * b->y) - (a->y * b->x); d = sqrt(o->x * o->x + o->y * o->y + o->z * o->z); o->x /= d; o->y /= d; o->z /= d; return d; }