29#ifndef _CEGUIVector_h_
30#define _CEGUIVector_h_
32#include "CEGUI/UDim.h"
64 inline Vector2(
const T x,
const T y):
108 return Vector2(d_x + vec.d_x, d_y + vec.d_y);
113 return Vector2(d_x - vec.d_x, d_y - vec.d_y);
118 return Vector2(d_x * vec.d_x, d_y * vec.d_y);
123 return Vector2(d_x / vec.d_x, d_y / vec.d_y);
126 inline Vector2 operator*(
const T c)
const
128 return Vector2(d_x * c, d_y * c);
131 inline Vector2& operator*=(
const T c)
139 inline Vector2 operator/(
const T c)
const
141 return Vector2(d_x / c, d_y / c);
144 inline bool operator==(
const Vector2& vec)
const
146 return ((d_x == vec.d_x) && (d_y == vec.d_y));
149 inline bool operator!=(
const Vector2& vec)
const
151 return !(operator==(vec));
159 s <<
"CEGUI::Vector2<" <<
typeid(T).name() <<
">(" << v.d_x <<
", " << v.d_y <<
")";
192typedef Vector2<float> Vector2f;
195inline Vector2<UDim> operator * (
const Vector2<UDim>& v,
const float c)
197 return Vector2<UDim>(v.d_x * c, v.d_y * c);
200typedef Vector2<UDim> UVector2;
219 typedef T value_type;
224 inline Vector3(
const T x,
const T y,
const T z):
242 inline bool operator==(
const Vector3& vec)
const
244 return ((d_x == vec.d_x) && (d_y == vec.d_y) && (d_z == vec.d_z));
247 inline bool operator!=(
const Vector3& vec)
const
249 return !(operator==(vec));
252 inline Vector3 operator*(
const T c)
const
254 return Vector3(d_x * c, d_y * c, d_z * c);
259 return Vector3(d_x + v.d_x, d_y + v.d_y, d_z + v.d_z);
264 return Vector3(d_x - v.d_x, d_y - v.d_y, d_z - v.d_z);
272 s <<
"CEGUI::Vector3<" <<
typeid(T).name() <<
">(" << v.d_x <<
", " << v.d_y <<
", " << v.d_z <<
")";
312typedef Vector3<float> Vector3f;
Definition MemoryAllocatedObject.h:110
Class used as a two dimensional vector (aka a Point)
Definition Vector.h:55
static Vector2 zero()
finger saving alias for Vector2(0, 0)
Definition Vector.h:164
static Vector2 one_x()
finger saving alias for Vector2(1, 0)
Definition Vector.h:176
static Vector2 one()
finger saving alias for Vector2(1, 1)
Definition Vector.h:170
friend std::ostream & operator<<(std::ostream &s, const Vector2 &v)
allows writing the vector2 to std ostream
Definition Vector.h:157
static Vector2 one_y()
finger saving alias for Vector2(0, 1)
Definition Vector.h:182
Class used as a three dimensional vector.
Definition Vector.h:217
static Vector3 one_x()
finger saving alias for Vector3(1, 0, 0)
Definition Vector.h:289
static Vector3 one()
finger saving alias for Vector3(1, 1, 1)
Definition Vector.h:283
static Vector3 one_z()
finger saving alias for Vector3(0, 0, 1)
Definition Vector.h:301
static Vector3 one_y()
finger saving alias for Vector3(0, 1, 0)
Definition Vector.h:295
friend std::ostream & operator<<(std::ostream &s, const Vector3 &v)
allows writing the vector3 to std ostream
Definition Vector.h:270
static Vector3 zero()
finger saving alias for Vector3(0, 0, 0)
Definition Vector.h:277
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1
T TypeSensitiveZero()
allows you to get UDim(0, 0) if you pass UDim or just 0 if you pass anything else
Definition UDim.h:343
T TypeSensitiveOne()
allows you to get UDim::relative() if you pass UDim or just 1 if you pass anything else
Definition UDim.h:360