Added Vector3i::Move().
This commit is contained in:
parent
e6305d29a5
commit
93f0de521a
@ -1,6 +1,11 @@
|
|||||||
|
|
||||||
|
// Vector3i.cpp
|
||||||
|
|
||||||
|
// Implements the Vector3i class representing an int-based 3D vector
|
||||||
|
|
||||||
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "Vector3i.h"
|
#include "Vector3i.h"
|
||||||
#include "Vector3d.h"
|
#include "Vector3d.h"
|
||||||
|
|
||||||
@ -8,9 +13,46 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Vector3i::Vector3i( const Vector3d & v )
|
Vector3i::Vector3i(const Vector3d & v) :
|
||||||
: x( (int)v.x )
|
x((int)v.x),
|
||||||
, y( (int)v.y )
|
y((int)v.y),
|
||||||
, z( (int)v.z )
|
z((int)v.z)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Vector3i::Vector3i(void) :
|
||||||
|
x(0),
|
||||||
|
y(0),
|
||||||
|
z(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Vector3i::Vector3i(int a_x, int a_y, int a_z) :
|
||||||
|
x(a_x),
|
||||||
|
y(a_y),
|
||||||
|
z(a_z)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void Vector3i::Move(int a_MoveX, int a_MoveY, int a_MoveZ)
|
||||||
|
{
|
||||||
|
x += a_MoveX;
|
||||||
|
y += a_MoveY;
|
||||||
|
z += a_MoveZ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,22 +1,45 @@
|
|||||||
|
|
||||||
|
// Vector3i.h
|
||||||
|
|
||||||
|
// Declares the Vector3i class representing an int-based 3D vector
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// fwd:
|
||||||
class Vector3d;
|
class Vector3d;
|
||||||
class Vector3i // tolua_export
|
|
||||||
{ // tolua_export
|
|
||||||
public: // tolua_export
|
|
||||||
Vector3i( const Vector3d & v ); // tolua_export
|
|
||||||
|
|
||||||
Vector3i() : x(0), y(0), z(0) {} // tolua_export
|
|
||||||
Vector3i(int a_x, int a_y, int a_z) : x(a_x), y(a_y), z(a_z) {} // tolua_export
|
|
||||||
|
|
||||||
inline void Set(int a_x, int a_y, int a_z) { x = a_x, y = a_y, z = a_z; } // tolua_export
|
|
||||||
inline float Length() const { return sqrtf( (float)( x * x + y * y + z * z) ); } // tolua_export
|
|
||||||
inline int SqrLength() const { return x * x + y * y + z * z; } // tolua_export
|
|
||||||
|
|
||||||
inline bool Equals( const Vector3i & v ) const { return (x == v.x && y == v.y && z == v.z ); } // tolua_export
|
|
||||||
inline bool Equals( const Vector3i * v ) const { return (x == v->x && y == v->y && z == v->z ); } // tolua_export
|
|
||||||
|
// tolua_begin
|
||||||
|
class Vector3i
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/** Creates an int vector based on the floor()-ed coords of a double vector. */
|
||||||
|
Vector3i(const Vector3d & v);
|
||||||
|
|
||||||
|
Vector3i(void);
|
||||||
|
Vector3i(int a_x, int a_y, int a_z);
|
||||||
|
|
||||||
|
inline void Set(int a_x, int a_y, int a_z) { x = a_x, y = a_y, z = a_z; }
|
||||||
|
inline float Length() const { return sqrtf( (float)( x * x + y * y + z * z) ); }
|
||||||
|
inline int SqrLength() const { return x * x + y * y + z * z; }
|
||||||
|
|
||||||
|
inline bool Equals( const Vector3i & v ) const { return (x == v.x && y == v.y && z == v.z ); }
|
||||||
|
inline bool Equals( const Vector3i * v ) const { return (x == v->x && y == v->y && z == v->z ); }
|
||||||
|
|
||||||
|
void Move(int a_MoveX, int a_MoveY, int a_MoveZ);
|
||||||
|
|
||||||
|
// tolua_end
|
||||||
|
|
||||||
void operator += ( const Vector3i& a_V ) { x += a_V.x; y += a_V.y; z += a_V.z; }
|
void operator += ( const Vector3i& a_V ) { x += a_V.x; y += a_V.y; z += a_V.z; }
|
||||||
void operator += ( Vector3i* a_V ) { x += a_V->x; y += a_V->y; z += a_V->z; }
|
void operator += ( Vector3i* a_V ) { x += a_V->x; y += a_V->y; z += a_V->z; }
|
||||||
|
Loading…
Reference in New Issue
Block a user