| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
- //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
- #pragma once
- #include "Prerequisites/BsPrerequisitesUtil.h"
- namespace bs
- {
- /** @addtogroup Math
- * @{
- */
- /** A four dimensional vector with integer coordinates. */
- struct BS_SCRIPT_EXPORT(m:Math,pl:true) Vector4I
- {
- INT32 x = 0;
- INT32 y = 0;
- INT32 z = 0;
- INT32 w = 0;
- Vector4I()
- { }
- Vector4I(INT32 x, INT32 y, INT32 z, INT32 w)
- :x(x), y(y), z(z), w(w)
- { }
- INT32 operator[] (size_t i) const
- {
- assert(i < 4);
- switch (i)
- {
- case 0: return x;
- case 1: return y;
- case 2: return z;
- case 3: return w;
- default: return 0;
- }
- }
- INT32& operator[] (size_t i)
- {
- assert(i < 4);
- switch (i)
- {
- case 0: return x;
- case 1: return y;
- case 2: return z;
- case 3: return w;
- default: return x;
- }
- }
- Vector4I& operator= (const Vector4I& rhs)
- {
- x = rhs.x;
- y = rhs.y;
- z = rhs.z;
- w = rhs.w;
- return *this;
- }
- bool operator== (const Vector4I& rhs) const
- {
- return x == rhs.x && y == rhs.y && z == rhs.z && w == rhs.w;
- }
- bool operator!= (const Vector4I& rhs) const
- {
- return !operator==(rhs);
- }
- };
- /** @} */
- BS_ALLOW_MEMCPY_SERIALIZATION(Vector4I)
- }
|