Merge pull request #481 from Zylann/vec_constants
Added missing constants to Vector2, Vector3, Basis and Quatpull/500/head
commit
e76efdd3ab
|
@ -13,6 +13,11 @@ class Quat;
|
|||
|
||||
class Basis {
|
||||
private:
|
||||
static const Basis IDENTITY;
|
||||
static const Basis FLIP_X;
|
||||
static const Basis FLIP_Y;
|
||||
static const Basis FLIP_Z;
|
||||
|
||||
// This helper template is for mimicking the behavior difference between the engine
|
||||
// and script interfaces that logically script sees matrices as column major, while
|
||||
// the engine stores them in row major to efficiently take advantage of SIMD
|
||||
|
|
|
@ -11,6 +11,8 @@ namespace godot {
|
|||
|
||||
class Quat {
|
||||
public:
|
||||
static const Quat IDENTITY;
|
||||
|
||||
real_t x, y, z, w;
|
||||
|
||||
real_t length_squared() const;
|
||||
|
|
|
@ -10,6 +10,11 @@ namespace godot {
|
|||
|
||||
class Transform {
|
||||
public:
|
||||
static const Transform IDENTITY;
|
||||
static const Transform FLIP_X;
|
||||
static const Transform FLIP_Y;
|
||||
static const Transform FLIP_Z;
|
||||
|
||||
Basis basis;
|
||||
Vector3 origin;
|
||||
|
||||
|
|
|
@ -10,6 +10,10 @@ typedef Vector2 Size2;
|
|||
struct Rect2;
|
||||
|
||||
struct Transform2D {
|
||||
static const Transform2D IDENTITY;
|
||||
static const Transform2D FLIP_X;
|
||||
static const Transform2D FLIP_Y;
|
||||
|
||||
// Warning #1: basis of Transform2D is stored differently from Basis. In terms of elements array, the basis matrix looks like "on paper":
|
||||
// M = (elements[0][0] elements[1][0])
|
||||
// (elements[0][1] elements[1][1])
|
||||
|
|
|
@ -12,6 +12,21 @@ namespace godot {
|
|||
class String;
|
||||
|
||||
struct Vector2 {
|
||||
enum Axis {
|
||||
AXIS_X = 0,
|
||||
AXIS_Y,
|
||||
AXIS_COUNT
|
||||
};
|
||||
|
||||
static const Vector2 ZERO;
|
||||
static const Vector2 ONE;
|
||||
static const Vector2 INF;
|
||||
|
||||
// Coordinate system of the 2D engine
|
||||
static const Vector2 LEFT;
|
||||
static const Vector2 RIGHT;
|
||||
static const Vector2 UP;
|
||||
static const Vector2 DOWN;
|
||||
|
||||
union {
|
||||
real_t x;
|
||||
|
|
|
@ -19,8 +19,21 @@ struct Vector3 {
|
|||
AXIS_X,
|
||||
AXIS_Y,
|
||||
AXIS_Z,
|
||||
AXIS_COUNT
|
||||
};
|
||||
|
||||
static const Vector3 ZERO;
|
||||
static const Vector3 ONE;
|
||||
static const Vector3 INF;
|
||||
|
||||
// Coordinate system of the 3D engine
|
||||
static const Vector3 LEFT;
|
||||
static const Vector3 RIGHT;
|
||||
static const Vector3 UP;
|
||||
static const Vector3 DOWN;
|
||||
static const Vector3 FORWARD;
|
||||
static const Vector3 BACK;
|
||||
|
||||
union {
|
||||
struct {
|
||||
real_t x;
|
||||
|
|
|
@ -7,6 +7,11 @@
|
|||
|
||||
namespace godot {
|
||||
|
||||
const Basis Basis::IDENTITY = Basis();
|
||||
const Basis Basis::FLIP_X = Basis(-1, 0, 0, 0, 1, 0, 0, 0, 1);
|
||||
const Basis Basis::FLIP_Y = Basis(1, 0, 0, 0, -1, 0, 0, 0, 1);
|
||||
const Basis Basis::FLIP_Z = Basis(1, 0, 0, 0, 1, 0, 0, 0, -1);
|
||||
|
||||
Basis::Basis(const Vector3 &row0, const Vector3 &row1, const Vector3 &row2) {
|
||||
elements[0] = row0;
|
||||
elements[1] = row1;
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
|
||||
namespace godot {
|
||||
|
||||
const Quat Quat::IDENTITY = Quat();
|
||||
|
||||
// set_euler_xyz expects a vector containing the Euler angles in the format
|
||||
// (ax,ay,az), where ax is the angle of rotation around x axis,
|
||||
// and similar for other axes.
|
||||
|
|
|
@ -9,6 +9,11 @@
|
|||
|
||||
namespace godot {
|
||||
|
||||
const Transform Transform::IDENTITY = Transform();
|
||||
const Transform Transform::FLIP_X = Transform(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0);
|
||||
const Transform Transform::FLIP_Y = Transform(1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0);
|
||||
const Transform Transform::FLIP_Z = Transform(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0);
|
||||
|
||||
Transform Transform::inverse_xform(const Transform &t) const {
|
||||
|
||||
Vector3 v = t.origin - origin;
|
||||
|
|
|
@ -7,6 +7,10 @@
|
|||
|
||||
namespace godot {
|
||||
|
||||
const Transform2D Transform2D::IDENTITY;
|
||||
const Transform2D Transform2D::FLIP_X = Transform2D(-1, 0, 0, 1, 0, 0);
|
||||
const Transform2D Transform2D::FLIP_Y = Transform2D(1, 0, 0, -1, 0, 0);
|
||||
|
||||
Transform2D::Transform2D(real_t xx, real_t xy, real_t yx, real_t yy, real_t ox, real_t oy) {
|
||||
|
||||
elements[0][0] = xx;
|
||||
|
|
|
@ -6,6 +6,15 @@
|
|||
|
||||
namespace godot {
|
||||
|
||||
const Vector2 Vector2::ZERO;
|
||||
const Vector2 Vector2::ONE;
|
||||
const Vector2 Vector2::INF;
|
||||
|
||||
const Vector2 Vector2::LEFT = Vector2(-1, 0);
|
||||
const Vector2 Vector2::RIGHT = Vector2(1, 0);
|
||||
const Vector2 Vector2::UP = Vector2(0, -1);
|
||||
const Vector2 Vector2::DOWN = Vector2(0, 1);
|
||||
|
||||
bool Vector2::operator==(const Vector2 &p_vec2) const {
|
||||
return x == p_vec2.x && y == p_vec2.y;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,17 @@
|
|||
|
||||
namespace godot {
|
||||
|
||||
const Vector3 Vector3::ZERO = Vector3();
|
||||
const Vector3 Vector3::ONE = Vector3();
|
||||
const Vector3 Vector3::INF = Vector3(INFINITY, INFINITY, INFINITY);
|
||||
|
||||
const Vector3 Vector3::LEFT = Vector3(-1, 0, 0);
|
||||
const Vector3 Vector3::RIGHT = Vector3(1, 0, 0);
|
||||
const Vector3 Vector3::UP = Vector3(0, 1, 0);
|
||||
const Vector3 Vector3::DOWN = Vector3(0, -1, 0);
|
||||
const Vector3 Vector3::FORWARD = Vector3(0, 0, -1);
|
||||
const Vector3 Vector3::BACK = Vector3(0, 0, 1);
|
||||
|
||||
bool Vector3::operator<(const Vector3 &p_v) const {
|
||||
if (x == p_v.x) {
|
||||
if (y == p_v.y)
|
||||
|
|
Loading…
Reference in New Issue