mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-24 14:16:31 +00:00
Core/Misc: update g3dlite lib (#2904)
* Core/Misc: update g3dlite lib * update Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
This commit is contained in:
83
deps/g3dlite/source/Vector3int32.cpp
vendored
83
deps/g3dlite/source/Vector3int32.cpp
vendored
@@ -4,7 +4,7 @@
|
||||
@author Morgan McGuire, http://graphics.cs.williams.edu
|
||||
|
||||
@created 2008-07-01
|
||||
@edited 2008-07-01
|
||||
@edited 2010-10-20
|
||||
*/
|
||||
|
||||
#include "G3D/platform.h"
|
||||
@@ -15,13 +15,76 @@
|
||||
#include "G3D/BinaryInput.h"
|
||||
#include "G3D/BinaryOutput.h"
|
||||
#include "G3D/format.h"
|
||||
#include "G3D/Vector2int32.h"
|
||||
#include "G3D/Vector2int16.h"
|
||||
#include "G3D/Any.h"
|
||||
|
||||
namespace G3D {
|
||||
Vector3int32 iFloor(const Vector3& v) {
|
||||
return Vector3int32(iFloor(v.x), iFloor(v.y), iFloor(v.z));
|
||||
}
|
||||
|
||||
Vector3int32::Vector3int32(const Any& any) {
|
||||
*this = Vector3int32();
|
||||
any.verifyNameBeginsWith("Vector3int32", "Point3int32");
|
||||
|
||||
switch (any.type()) {
|
||||
case Any::TABLE:
|
||||
|
||||
for (Any::AnyTable::Iterator it = any.table().begin(); it.isValid(); ++it) {
|
||||
const std::string& key = toLower(it->key);
|
||||
|
||||
if (key == "x") {
|
||||
x = it->value;
|
||||
} else if (key == "y") {
|
||||
y = it->value;
|
||||
} else if (key == "z") {
|
||||
z = it->value;
|
||||
} else {
|
||||
any.verify(false, "Illegal key: " + it->key);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case Any::ARRAY:
|
||||
|
||||
(void)any.name();
|
||||
if (any.size() == 1) {
|
||||
x = y = z = any[0];
|
||||
} else {
|
||||
any.verifySize(3);
|
||||
x = any[0];
|
||||
y = any[1];
|
||||
z = any[2];
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
any.verify(false, "Bad Vector3int32 constructor");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Any Vector3int32::toAny() const {
|
||||
Any a(Any::ARRAY, "Vector3int32");
|
||||
a.append(x, y, z);
|
||||
return a;
|
||||
}
|
||||
|
||||
|
||||
Vector3int32::Vector3int32(const class Vector3& v) {
|
||||
x = (int32)iFloor(v.x + 0.5);
|
||||
y = (int32)iFloor(v.y + 0.5);
|
||||
z = (int32)iFloor(v.z + 0.5);
|
||||
x = (int32)(v.x + 0.5);
|
||||
y = (int32)(v.y + 0.5);
|
||||
z = (int32)(v.z + 0.5);
|
||||
}
|
||||
|
||||
Vector3int32::Vector3int32(const class Vector2int32& v, int _z) : x(v.x), y(v.y), z(_z) {}
|
||||
|
||||
Vector3int32::Vector3int32(const class Vector2int16& v, int _z) : x(v.x), y(v.y), z(_z) {}
|
||||
|
||||
|
||||
Vector3int32 Vector3int32::truncate(const class Vector3& v) {
|
||||
return Vector3int32(int32(v.x), int32(v.y), int32(v.z));
|
||||
}
|
||||
|
||||
|
||||
@@ -54,4 +117,16 @@ std::string Vector3int32::toString() const {
|
||||
return G3D::format("(%d, %d, %d)", x, y, z);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// 2-char swizzles
|
||||
|
||||
Vector2int32 Vector3int32::xx() const { return Vector2int32 (x, x); }
|
||||
Vector2int32 Vector3int32::yx() const { return Vector2int32 (y, x); }
|
||||
Vector2int32 Vector3int32::zx() const { return Vector2int32 (z, x); }
|
||||
Vector2int32 Vector3int32::xy() const { return Vector2int32 (x, y); }
|
||||
Vector2int32 Vector3int32::yy() const { return Vector2int32 (y, y); }
|
||||
Vector2int32 Vector3int32::zy() const { return Vector2int32 (z, y); }
|
||||
Vector2int32 Vector3int32::xz() const { return Vector2int32 (x, z); }
|
||||
Vector2int32 Vector3int32::yz() const { return Vector2int32 (y, z); }
|
||||
Vector2int32 Vector3int32::zz() const { return Vector2int32 (z, z); }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user