#ifndef VEC_H #define VEC_H namespace New3D { namespace V3 { typedef float Vec3[3]; void subtract (const Vec3 a, const Vec3 b, Vec3 out); void subtract (Vec3 a, const Vec3 b); void add (const Vec3 a, const Vec3 b, Vec3 out); void add (Vec3 a, const Vec3 b); void divide (Vec3 a, float number); void multiply (Vec3 a, float number); void multiply (Vec3 a, const Vec3 b); void multiply (const Vec3 a, const Vec3 b, Vec3 out); void crossProduct (const Vec3 v1, const Vec3 v2, Vec3 cross); float dotProduct (const Vec3 v1, const Vec3 v2); void copy (const Vec3 in, Vec3 out); void inverse (Vec3 v); float length (const Vec3 v); void normalise (Vec3 v); void multiplyAdd (const Vec3 a, float scale, const Vec3 b, Vec3 out); void reset (Vec3 v); void set (Vec3 v, float value); void set (Vec3 v, float x, float y, float z); void reflect (const Vec3 a, const Vec3 b, Vec3 out); void createNormal (const Vec3 a, const Vec3 b, const Vec3 c, Vec3 outNormal); // assume a,b,c are wound clockwise void _max (Vec3 a, const Vec3 compare); void _min (Vec3 a, const Vec3 compare); bool cmp (const Vec3 a, float b); bool cmp (const Vec3 a, const Vec3 b); void clamp (Vec3 a, float _min, float _max); } } // New3D #endif