New vector functions: Vector2i_New, Vector2i_Compare and use bool instead of BOOL
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5264 4a71c877-e1ca-e34f-864e-861f7616d084master
parent
c9b9e98dc9
commit
419aa5a56b
|
@ -31,6 +31,19 @@ typedef struct { float x, y, z; } Vector3f;
|
||||||
typedef struct { uint16_t x, y, z; } Vector3uw; //Only used for basedef.h BASE_ELEMENTS1.
|
typedef struct { uint16_t x, y, z; } Vector3uw; //Only used for basedef.h BASE_ELEMENTS1.
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Create a Vector from x and y
|
||||||
|
* Needed for MSVC which doesn't support C99 struct assignments.
|
||||||
|
* \param x,y Coordinates
|
||||||
|
* \return New Vector
|
||||||
|
*/
|
||||||
|
static inline WZ_DECL_CONST Vector2i Vector2i_New(const int x, const int y)
|
||||||
|
{
|
||||||
|
Vector2i dest = { x, y };
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Convert an integer vector to float
|
* Convert an integer vector to float
|
||||||
* \param v Vector to convert
|
* \param v Vector to convert
|
||||||
|
@ -43,6 +56,15 @@ static inline WZ_DECL_CONST Vector2f Vector2i_To2f(const Vector2i v)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \return true if both vectors are equal
|
||||||
|
*/
|
||||||
|
static inline WZ_DECL_CONST bool Vector2i_Compare(const Vector2i a, const Vector2i b)
|
||||||
|
{
|
||||||
|
return a.x == b.x && a.y == b.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Add op2 to op1.
|
* Add op2 to op1.
|
||||||
* \param[in] op1,op2 Operands
|
* \param[in] op1,op2 Operands
|
||||||
|
@ -120,7 +142,7 @@ static inline WZ_DECL_CONST int Vector2i_Length(const Vector2i v)
|
||||||
* \param r The radius of the circle
|
* \param r The radius of the circle
|
||||||
* \return If v falls within the circle
|
* \return If v falls within the circle
|
||||||
*/
|
*/
|
||||||
static inline WZ_DECL_CONST BOOL Vector2i_InCircle(const Vector2i v, const Vector2i c, const unsigned int r)
|
static inline WZ_DECL_CONST bool Vector2i_InCircle(const Vector2i v, const Vector2i c, const unsigned int r)
|
||||||
{
|
{
|
||||||
Vector2i delta = Vector2i_Sub(v, c);
|
Vector2i delta = Vector2i_Sub(v, c);
|
||||||
// Explictily cast to "unsigned int" because this number never can be
|
// Explictily cast to "unsigned int" because this number never can be
|
||||||
|
@ -133,6 +155,7 @@ static inline WZ_DECL_CONST BOOL Vector2i_InCircle(const Vector2i v, const Vecto
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Create a Vector from x and y
|
* Create a Vector from x and y
|
||||||
|
* Needed for MSVC which doesn't support C99 struct assignments.
|
||||||
* \param x,y Coordinates
|
* \param x,y Coordinates
|
||||||
* \return New Vector
|
* \return New Vector
|
||||||
*/
|
*/
|
||||||
|
@ -245,7 +268,7 @@ static inline WZ_DECL_CONST Vector3i Vector3f_To3i(const Vector3f v)
|
||||||
/*!
|
/*!
|
||||||
* \return true if both vectors are equal
|
* \return true if both vectors are equal
|
||||||
*/
|
*/
|
||||||
static inline WZ_DECL_CONST BOOL Vector3f_Compare(const Vector3f a, const Vector3f b)
|
static inline WZ_DECL_CONST bool Vector3f_Compare(const Vector3f a, const Vector3f b)
|
||||||
{
|
{
|
||||||
return a.x == b.x && a.y == b.y && a.z == b.z;
|
return a.x == b.x && a.y == b.y && a.z == b.z;
|
||||||
}
|
}
|
||||||
|
@ -254,8 +277,8 @@ static inline WZ_DECL_CONST BOOL Vector3f_Compare(const Vector3f a, const Vector
|
||||||
/*!
|
/*!
|
||||||
* Set the vector field by field, same as v = (Vector3f){x, y, z};
|
* Set the vector field by field, same as v = (Vector3f){x, y, z};
|
||||||
* Needed for MSVC which doesn't support C99 struct assignments.
|
* Needed for MSVC which doesn't support C99 struct assignments.
|
||||||
* \param[out] v Vector to set
|
* \param x,y,z Values to set to
|
||||||
* \param[in] x,y,z Values to set to
|
* \return New vector
|
||||||
*/
|
*/
|
||||||
static inline WZ_DECL_CONST Vector3f Vector3f_New(const float x, const float y, const float z)
|
static inline WZ_DECL_CONST Vector3f Vector3f_New(const float x, const float y, const float z)
|
||||||
{
|
{
|
||||||
|
@ -384,7 +407,7 @@ static inline WZ_DECL_CONST Vector3f Vector3i_To3f(const Vector3i v)
|
||||||
/*!
|
/*!
|
||||||
* \return true if both vectors are equal
|
* \return true if both vectors are equal
|
||||||
*/
|
*/
|
||||||
static inline WZ_DECL_CONST BOOL Vector3i_Compare(const Vector3i a, const Vector3i b)
|
static inline WZ_DECL_CONST bool Vector3i_Compare(const Vector3i a, const Vector3i b)
|
||||||
{
|
{
|
||||||
return a.x == b.x && a.y == b.y && a.z == b.z;
|
return a.x == b.x && a.y == b.y && a.z == b.z;
|
||||||
}
|
}
|
||||||
|
@ -503,7 +526,7 @@ static inline WZ_DECL_CONST Vector3i Vector3i_Normalise(const Vector3i v)
|
||||||
* \param r The radius of the sphere
|
* \param r The radius of the sphere
|
||||||
* \return If v falls within the sphere
|
* \return If v falls within the sphere
|
||||||
*/
|
*/
|
||||||
static inline WZ_DECL_CONST BOOL Vector3i_InSphere (const Vector3i v, const Vector3i c, const unsigned int r)
|
static inline WZ_DECL_CONST bool Vector3i_InSphere (const Vector3i v, const Vector3i c, const unsigned int r)
|
||||||
{
|
{
|
||||||
Vector3i delta = Vector3i_Sub(v, c);
|
Vector3i delta = Vector3i_Sub(v, c);
|
||||||
// Explictily cast to "unsigned int" because this number never can be
|
// Explictily cast to "unsigned int" because this number never can be
|
||||||
|
@ -517,8 +540,8 @@ static inline WZ_DECL_CONST BOOL Vector3i_InSphere (const Vector3i v, const Vect
|
||||||
/*!
|
/*!
|
||||||
* Set the vector field by field, same as v = (Vector3i){x, y, z};
|
* Set the vector field by field, same as v = (Vector3i){x, y, z};
|
||||||
* Needed for MSVC which doesn't support C99 struct assignments.
|
* Needed for MSVC which doesn't support C99 struct assignments.
|
||||||
* \param[out] v Vector to set
|
* \param x,y,z Coordinates
|
||||||
* \param[in] x,y,z Values to set to
|
* \return New Vector
|
||||||
*/
|
*/
|
||||||
static inline WZ_DECL_CONST Vector3i Vector3i_New(const int x, const int y, const int z)
|
static inline WZ_DECL_CONST Vector3i Vector3i_New(const int x, const int y, const int z)
|
||||||
{
|
{
|
||||||
|
@ -530,8 +553,8 @@ static inline WZ_DECL_CONST Vector3i Vector3i_New(const int x, const int y, cons
|
||||||
/*!
|
/*!
|
||||||
* Set the vector field by field, same as v = (Vector3uw){x, y, z};
|
* Set the vector field by field, same as v = (Vector3uw){x, y, z};
|
||||||
* Needed for MSVC which doesn't support C99 struct assignments.
|
* Needed for MSVC which doesn't support C99 struct assignments.
|
||||||
* \param[out] v Vector to set
|
* \param x,y,z Coordinates
|
||||||
* \param[in] x,y,z Values to set to
|
* \return New Vector
|
||||||
*/
|
*/
|
||||||
static inline WZ_DECL_CONST Vector3uw Vector3uw_New(const unsigned int x, const unsigned int y, const unsigned int z)
|
static inline WZ_DECL_CONST Vector3uw Vector3uw_New(const unsigned int x, const unsigned int y, const unsigned int z)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue