#include "vector.hpp" #include "memory.hpp" #include "file.hpp" /******************************************************************************* ** VectorDegreeFix *******************************************************************************/ void VectorDegreeFix(Vector dst) { while (dst[0] < 0.0f) dst[0] += 360.0f; while (dst[0] >= 360.0f) dst[0] -= 360.0f; while (dst[1] < 0.0f) dst[1] += 360.0f; while (dst[1] >= 360.0f) dst[1] -= 360.0f; while (dst[2] < 0.0f) dst[2] += 360.0f; while (dst[2] >= 360.0f) dst[2] -= 360.0f; } /******************************************************************************* ** VectorAngleBetween *******************************************************************************/ float VectorAngleBetween(Vector A, Vector B) { Vector C, D; VectorNormalize(C, A); VectorNormalize(D, B); return VectorDotProduct(C, D); } /******************************************************************************* ** VectorArrayRegister *******************************************************************************/ /* int VectorArrayRegister(Vector** array, Vector vector) { int i; for (i = 0; i < SizeOf(array); i++) { if (VectorEqual(array[i], vector)) { return i; } } MEMORY_RESIZE(array, i + 1); VectorCopy(array[i], vector); return i; } */ /******************************************************************************* ** VectorArrayArrayCreate *******************************************************************************/ VectorArrayArray VectorArrayArrayCreate(int n) { return (VectorArrayArray) MemoryAlloc(n, sizeof(Vector*)); } /******************************************************************************* ** VectorArrayArrayRead *******************************************************************************/ VectorArrayArray VectorArrayArrayRead(FILE* file) { VectorArrayArray array = VectorArrayArrayCreate(IntRead(file)); for (int i = 0; i < NumberOf(array); i++) { array[i] = (Vector*) MemoryRead(file); } return array; }