47 Vector3(
float newX,
float newY,
float newZ):
83 return Vector3(x + vec.
x, y + vec.
y, z + vec.
z);
88 return Vector3(x - vec.
x, y - vec.
y, z - vec.
z);
93 return Vector3(x * value, y * value, z * value);
98 if (value == 0.0f)
return Vector3(0.0f, 0.0f, 0.0f);
99 return Vector3(x / value, y / value, z / value);
104 return !((*this) == vec);
109 return Vector3(x + vec.
x, y + vec.
y, z + vec.
z);
114 return Vector3(x - vec.
x, y - vec.
y, z - vec.
z);
117 inline Vector3 operator + (
const float & value)
const
119 return Vector3(x + value, y + value, z + value);
122 inline Vector3 operator - (
const float & value)
const
124 return Vector3(x - value, y - value, z - value);
127 inline Vector3 operator * (
const float value)
const
129 return Vector3(x * value, y * value, z * value);
134 return Vector3(x * vec.
x, y * vec.
y, z * vec.
z);
139 return Vector3(x / vec.
x, y / vec.
y, z / vec.
z);
142 inline Vector3 operator / (
const float value)
const
144 if(value == 0)
return Vector3(0.0f, 0.0f, 0.0f);
145 float i = 1.0f / value;
154 inline bool operator == (
const Vector3 & vec)
const
156 if(x == vec.
x && y == vec.
y && z == vec.
z)
162 inline bool operator != (
const Vector3 & vec)
const
164 return !((*this) == vec);
181 inline void operator *= (
const float value)
188 inline void operator = (
const float value)
195 inline void operator /= (
const float value)
200 float i = 1.0f / value;
216 inline operator float* ()
const
218 return (
float*)
this;
221 inline operator const float* ()
const
223 return (
const float*)
this;
228 inline void set(
const float newX,
const float newY,
const float newZ)
244 return Vector3((y*vec.
z) - (z*vec.
y), (z*vec.
x) - (x*vec.
z), (x*vec.
y) - (y*vec.
x));
249 return (x*vec.
x) + (y*vec.
y) + (z*vec.
z);
258 return sqrtf((x*x) + (y*y) + (z*z));
263 return (x*x) + (y*y) + (z*z);
266 void rotateX(
double angle);
267 void rotateY(
double angle);
268 void rotateZ(
double angle);
269 void rotateAxis(
double angle,
const Vector3 & axis);
271 Vector3 getRotatedX(
double angle)
const;
272 Vector3 getRotatedY(
double angle)
const;
273 Vector3 getRotatedZ(
double angle)
const;
278 return ((*
this) * (1.0f - factor)) + (vec * factor);
Vector3(void)
Definition: Vector3.h:41
Vector3 divide(const float value) const
Definition: Vector3.h:96
Vector3 lerp(const Vector3 &vec, float factor) const
Definition: Vector3.h:276
Vector3 multiply(const float value) const
Definition: Vector3.h:91
bool equals(const Vector3 &vec) const
Definition: Vector3.h:102
Vector3(float newX, float newY, float newZ)
Definition: Vector3.h:47
Vector3 crossProduct(const Vector3 &vec) const
Definition: Vector3.h:242
float getSquaredLength() const
Definition: Vector3.h:261
Vector3 substract(const Vector3 &vec) const
Definition: Vector3.h:86
Vector3(const Vector2 &vec)
Definition: Vector3.h:73
Vector3(const float *values)
Definition: Vector3.h:59
float dotProduct(const Vector3 &vec) const
Definition: Vector3.h:247
Vector3 add(const Vector3 &vec) const
Definition: Vector3.h:81
float y
Definition: Vector3.h:36
float getLength() const
Definition: Vector3.h:256
Vector3(const Vector3 &vec)
Definition: Vector3.h:65
Vector3(const float value)
Definition: Vector3.h:53
void set(const float newX, const float newY, const float newZ)
Definition: Vector3.h:228
float x
Definition: Vector3.h:35
void loadIdentity(void)
Definition: Vector3.h:235
float z
Definition: Vector3.h:37