Skip to content

Commit

Permalink
Merge pull request #29021 from aaronfranke/mono-tuple
Browse files Browse the repository at this point in the history
[Mono] Misc Basis and AABB improvements
  • Loading branch information
neikeq authored May 25, 2019
2 parents f6be4eb + 7b6473f commit 0d8f1ba
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 21 deletions.
15 changes: 15 additions & 0 deletions modules/mono/glue/Managed/Files/AABB.cs
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,21 @@ public AABB(Vector3 position, Vector3 size)
_position = position;
_size = size;
}
public AABB(Vector3 position, real_t width, real_t height, real_t depth)
{
_position = position;
_size = new Vector3(width, height, depth);
}
public AABB(real_t x, real_t y, real_t z, Vector3 size)
{
_position = new Vector3(x, y, z);
_size = size;
}
public AABB(real_t x, real_t y, real_t z, real_t width, real_t height, real_t depth)
{
_position = new Vector3(x, y, z);
_size = new Vector3(width, height, depth);
}

public static bool operator ==(AABB left, AABB right)
{
Expand Down
35 changes: 14 additions & 21 deletions modules/mono/glue/Managed/Files/Basis.cs
Original file line number Diff line number Diff line change
Expand Up @@ -260,13 +260,13 @@ public Vector3 GetEuler()
Vector3 euler;
euler.z = 0.0f;

real_t mxy = m.Row1[2];
real_t mzy = m.Row1[2];

if (mxy < 1.0f)
if (mzy < 1.0f)
{
if (mxy > -1.0f)
if (mzy > -1.0f)
{
euler.x = Mathf.Asin(-mxy);
euler.x = Mathf.Asin(-mzy);
euler.y = Mathf.Atan2(m.Row0[2], m.Row2[2]);
euler.z = Mathf.Atan2(m.Row1[0], m.Row1[1]);
}
Expand Down Expand Up @@ -418,19 +418,11 @@ public Basis Rotated(Vector3 axis, real_t phi)

public Basis Scaled(Vector3 scale)
{
var m = this;

m.Row0[0] *= scale.x;
m.Row0[1] *= scale.x;
m.Row0[2] *= scale.x;
m.Row1[0] *= scale.y;
m.Row1[1] *= scale.y;
m.Row1[2] *= scale.y;
m.Row2[0] *= scale.z;
m.Row2[1] *= scale.z;
m.Row2[2] *= scale.z;

return m;
var b = this;
b.Row0 *= scale.x;
b.Row1 *= scale.y;
b.Row2 *= scale.z;
return b;
}

public real_t Tdotx(Vector3 with)
Expand Down Expand Up @@ -622,11 +614,12 @@ public Basis(Vector3 column0, Vector3 column1, Vector3 column2)
// We need to assign the struct fields here first so we can't do it that way...
}

internal Basis(real_t xx, real_t xy, real_t xz, real_t yx, real_t yy, real_t yz, real_t zx, real_t zy, real_t zz)
// Arguments are named such that xy is equal to calling x.y
internal Basis(real_t xx, real_t yx, real_t zx, real_t xy, real_t yy, real_t zy, real_t xz, real_t yz, real_t zz)
{
Row0 = new Vector3(xx, xy, xz);
Row1 = new Vector3(yx, yy, yz);
Row2 = new Vector3(zx, zy, zz);
Row0 = new Vector3(xx, yx, zx);
Row1 = new Vector3(xy, yy, zy);
Row2 = new Vector3(xz, yz, zz);
}

public static Basis operator *(Basis left, Basis right)
Expand Down
1 change: 1 addition & 0 deletions modules/mono/glue/Managed/Files/Transform2D.cs
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ public Transform2D(Vector2 xAxis, Vector2 yAxis, Vector2 originPos)
origin = originPos;
}

// Arguments are named such that xy is equal to calling x.y
public Transform2D(real_t xx, real_t xy, real_t yx, real_t yy, real_t ox, real_t oy)
{
x = new Vector2(xx, xy);
Expand Down

0 comments on commit 0d8f1ba

Please sign in to comment.