79 lines
2.1 KiB
C++
79 lines
2.1 KiB
C++
|
|
||
|
#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;
|
||
|
}
|
||
|
|
||
|
|
||
|
|