#include #include #include "Vector.h" int cleanVector(struct Vector *vector) { if (vector == NULL) return 1; vector->x = 0; vector->y = 0; vector->z = 0; return 0; } struct Vector addVector(struct Vector dst, struct Vector src) { dst.x += src.x; dst.y += src.y; dst.z += src.z; return dst; } struct Vector subVector(struct Vector dst, struct Vector src) { dst.x -= src.x; dst.y -= src.y; dst.z -= src.z; return dst; } struct Vector mulVector(struct Vector dst, double mul) { dst.x *= mul; dst.y *= mul; dst.z *= mul; return dst; } struct Vector divVector(struct Vector dst, double div) { dst.x /= div; dst.y /= div; dst.z /= div; return dst; } float dotVectors(struct Vector dst, struct Vector src) { dst.x *= src.x; dst.y *= src.y; dst.z *= src.z; return dst.x + dst.y + dst.z; } float magVector(struct Vector dst) { return sqrt(dst.x*dst.x + dst.y*dst.y); } Vector normVector(struct Vector dst) { double magnitude = sqrt(dst.x*dst.x + dst.y*dst.y); if (magnitude != 0) { dst = divVector(dst, magnitude); } return dst; }