Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
godot
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
community
godot
Commits
07fbc341
Unverified
Commit
07fbc341
authored
Feb 23, 2019
by
Rémi Verschelde
Committed by
GitHub
Feb 23, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #26203 from neikeq/csharp-basis
C#: Basis fixes and cleanup
parents
112dd911
2c26e7f1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
75 deletions
+62
-75
Basis.cs
modules/mono/glue/Managed/Files/Basis.cs
+0
-0
Quat.cs
modules/mono/glue/Managed/Files/Quat.cs
+14
-13
Transform.cs
modules/mono/glue/Managed/Files/Transform.cs
+19
-19
Transform2D.cs
modules/mono/glue/Managed/Files/Transform2D.cs
+28
-42
Managed.csproj
modules/mono/glue/Managed/Managed.csproj
+1
-1
No files found.
modules/mono/glue/Managed/Files/Basis.cs
View file @
07fbc341
This diff is collapsed.
Click to expand it.
modules/mono/glue/Managed/Files/Quat.cs
View file @
07fbc341
...
...
@@ -123,22 +123,23 @@ namespace Godot
// Calculate cosine
real_t
cosom
=
x
*
b
.
x
+
y
*
b
.
y
+
z
*
b
.
z
+
w
*
b
.
w
;
var
to1
=
new
real_t
[
4
]
;
var
to1
=
new
Quat
()
;
// Adjust signs if necessary
if
(
cosom
<
0.0
)
{
cosom
=
-
cosom
;
to1
[
0
]
=
-
b
.
x
;
to1
[
1
]
=
-
b
.
y
;
to1
[
2
]
=
-
b
.
z
;
to1
[
3
]
=
-
b
.
w
;
cosom
=
-
cosom
;
to1
.
x
=
-
b
.
x
;
to1
.
y
=
-
b
.
y
;
to1
.
z
=
-
b
.
z
;
to1
.
w
=
-
b
.
w
;
}
else
{
to1
[
0
]
=
b
.
x
;
to1
[
1
]
=
b
.
y
;
to1
[
2
]
=
b
.
z
;
to1
[
3
]
=
b
.
w
;
to1
.
x
=
b
.
x
;
to1
.
y
=
b
.
y
;
to1
.
z
=
b
.
z
;
to1
.
w
=
b
.
w
;
}
real_t
sinom
,
scale0
,
scale1
;
...
...
@@ -162,10 +163,10 @@ namespace Godot
// Calculate final values
return
new
Quat
(
scale0
*
x
+
scale1
*
to1
[
0
]
,
scale0
*
y
+
scale1
*
to1
[
1
]
,
scale0
*
z
+
scale1
*
to1
[
2
]
,
scale0
*
w
+
scale1
*
to1
[
3
]
scale0
*
x
+
scale1
*
to1
.
x
,
scale0
*
y
+
scale1
*
to1
.
y
,
scale0
*
z
+
scale1
*
to1
.
z
,
scale0
*
w
+
scale1
*
to1
.
w
);
}
...
...
modules/mono/glue/Managed/Files/Transform.cs
View file @
07fbc341
...
...
@@ -71,21 +71,21 @@ namespace Godot
{
// Make rotation matrix
// Z vector
Vector3
zAxis
=
eye
-
target
;
Vector3
column2
=
eye
-
target
;
zAxis
.
Normalize
();
column2
.
Normalize
();
Vector3
yAxis
=
up
;
Vector3
column1
=
up
;
Vector3
xAxis
=
yAxis
.
Cross
(
zAxis
);
Vector3
column0
=
column1
.
Cross
(
column2
);
// Recompute Y = Z cross X
yAxis
=
zAxis
.
Cross
(
xAxis
);
column1
=
column2
.
Cross
(
column0
);
xAxis
.
Normalize
();
yAxis
.
Normalize
();
column0
.
Normalize
();
column1
.
Normalize
();
basis
=
Basis
.
CreateFromAxes
(
xAxis
,
yAxis
,
zAxis
);
basis
=
new
Basis
(
column0
,
column1
,
column2
);
origin
=
eye
;
}
...
...
@@ -94,9 +94,9 @@ namespace Godot
{
return
new
Transform
(
basis
,
new
Vector3
(
origin
[
0
]
+=
basis
[
0
]
.
Dot
(
ofs
),
origin
[
1
]
+=
basis
[
1
]
.
Dot
(
ofs
),
origin
[
2
]
+=
basis
[
2
]
.
Dot
(
ofs
)
origin
[
0
]
+=
basis
.
Row0
.
Dot
(
ofs
),
origin
[
1
]
+=
basis
.
Row1
.
Dot
(
ofs
),
origin
[
2
]
+=
basis
.
Row2
.
Dot
(
ofs
)
));
}
...
...
@@ -104,9 +104,9 @@ namespace Godot
{
return
new
Vector3
(
basis
[
0
]
.
Dot
(
v
)
+
origin
.
x
,
basis
[
1
]
.
Dot
(
v
)
+
origin
.
y
,
basis
[
2
]
.
Dot
(
v
)
+
origin
.
z
basis
.
Row0
.
Dot
(
v
)
+
origin
.
x
,
basis
.
Row1
.
Dot
(
v
)
+
origin
.
y
,
basis
.
Row2
.
Dot
(
v
)
+
origin
.
z
);
}
...
...
@@ -116,9 +116,9 @@ namespace Godot
return
new
Vector3
(
basis
[
0
,
0
]
*
vInv
.
x
+
basis
[
1
,
0
]
*
vInv
.
y
+
basis
[
2
,
0
]
*
vInv
.
z
,
basis
[
0
,
1
]
*
vInv
.
x
+
basis
[
1
,
1
]
*
vInv
.
y
+
basis
[
2
,
1
]
*
vInv
.
z
,
basis
[
0
,
2
]
*
vInv
.
x
+
basis
[
1
,
2
]
*
vInv
.
y
+
basis
[
2
,
2
]
*
vInv
.
z
basis
.
Row0
[
0
]
*
vInv
.
x
+
basis
.
Row1
[
0
]
*
vInv
.
y
+
basis
.
Row2
[
0
]
*
vInv
.
z
,
basis
.
Row0
[
1
]
*
vInv
.
x
+
basis
.
Row1
[
1
]
*
vInv
.
y
+
basis
.
Row2
[
1
]
*
vInv
.
z
,
basis
.
Row0
[
2
]
*
vInv
.
x
+
basis
.
Row1
[
2
]
*
vInv
.
y
+
basis
.
Row2
[
2
]
*
vInv
.
z
);
}
...
...
@@ -134,9 +134,9 @@ namespace Godot
public
static
Transform
FlipZ
{
get
{
return
_flipZ
;
}
}
// Constructors
public
Transform
(
Vector3
xAxis
,
Vector3
yAxis
,
Vector3
zAxis
,
Vector3
origin
)
public
Transform
(
Vector3
column0
,
Vector3
column1
,
Vector3
column2
,
Vector3
origin
)
{
basis
=
Basis
.
CreateFromAxes
(
xAxis
,
yAxis
,
zAxis
);
basis
=
new
Basis
(
column0
,
column1
,
column2
);
this
.
origin
=
origin
;
}
...
...
modules/mono/glue/Managed/Files/Transform2D.cs
View file @
07fbc341
...
...
@@ -53,11 +53,11 @@ namespace Godot
}
}
public
Vector2
this
[
int
i
ndex
]
public
Vector2
this
[
int
rowI
ndex
]
{
get
{
switch
(
i
ndex
)
switch
(
rowI
ndex
)
{
case
0
:
return
x
;
...
...
@@ -71,7 +71,7 @@ namespace Godot
}
set
{
switch
(
i
ndex
)
switch
(
rowI
ndex
)
{
case
0
:
x
=
value
;
...
...
@@ -88,29 +88,29 @@ namespace Godot
}
}
public
real_t
this
[
int
index
,
int
axis
]
public
real_t
this
[
int
rowIndex
,
int
columnIndex
]
{
get
{
switch
(
i
ndex
)
switch
(
rowI
ndex
)
{
case
0
:
return
x
[
axis
];
return
x
[
columnIndex
];
case
1
:
return
y
[
axis
];
return
y
[
columnIndex
];
default
:
throw
new
IndexOutOfRangeException
();
}
}
set
{
switch
(
i
ndex
)
switch
(
rowI
ndex
)
{
case
0
:
x
[
axis
]
=
value
;
x
[
columnIndex
]
=
value
;
return
;
case
1
:
y
[
axis
]
=
value
;
y
[
columnIndex
]
=
value
;
return
;
default
:
throw
new
IndexOutOfRangeException
();
...
...
@@ -120,30 +120,23 @@ namespace Godot
public
Transform2D
AffineInverse
()
{
var
inv
=
this
;
real_t
det
=
BasisDeterminant
();
if
(
det
==
0
)
{
return
new
Transform2D
(
real_t
.
NaN
,
real_t
.
NaN
,
real_t
.
NaN
,
real_t
.
NaN
,
real_t
.
NaN
,
real_t
.
NaN
);
}
throw
new
InvalidOperationException
(
"Matrix determinant is zero and cannot be inverted."
);
real_t
detInv
=
1.0f
/
det
;
var
inv
=
this
;
real_t
temp
=
this
[
0
,
0
];
this
[
0
,
0
]
=
this
[
1
,
1
];
this
[
1
,
1
]
=
temp
;
real_t
temp
=
inv
[
0
,
0
];
inv
[
0
,
0
]
=
inv
[
1
,
1
];
inv
[
1
,
1
]
=
temp
;
this
[
0
]
*=
new
Vector2
(
detInv
,
-
detInv
);
this
[
1
]
*=
new
Vector2
(-
detInv
,
detInv
);
real_t
detInv
=
1.0f
/
det
;
inv
[
0
]
*=
new
Vector2
(
detInv
,
-
detInv
);
inv
[
1
]
*=
new
Vector2
(-
detInv
,
detInv
);
this
[
2
]
=
BasisXform
(-
this
[
2
]);
inv
[
2
]
=
BasisXform
(-
inv
[
2
]);
return
inv
;
}
...
...
@@ -293,9 +286,9 @@ namespace Godot
private
static
readonly
Transform2D
_flipX
=
new
Transform2D
(-
1
,
0
,
0
,
1
,
0
,
0
);
private
static
readonly
Transform2D
_flipY
=
new
Transform2D
(
1
,
0
,
0
,
-
1
,
0
,
0
);
public
static
Transform2D
Identity
{
get
{
return
_identity
;
}
}
public
static
Transform2D
FlipX
{
get
{
return
_flipX
;
}
}
public
static
Transform2D
FlipY
{
get
{
return
_flipY
;
}
}
public
static
Transform2D
Identity
=>
_identity
;
public
static
Transform2D
FlipX
=>
_flipX
;
public
static
Transform2D
FlipY
=>
_flipY
;
// Constructors
public
Transform2D
(
Vector2
xAxis
,
Vector2
yAxis
,
Vector2
originPos
)
...
...
@@ -324,12 +317,10 @@ namespace Godot
{
left
.
origin
=
left
.
Xform
(
right
.
origin
);
real_t
x0
,
x1
,
y0
,
y1
;
x0
=
left
.
Tdotx
(
right
.
x
);
x1
=
left
.
Tdoty
(
right
.
x
);
y0
=
left
.
Tdotx
(
right
.
y
);
y1
=
left
.
Tdoty
(
right
.
y
);
real_t
x0
=
left
.
Tdotx
(
right
.
x
);
real_t
x1
=
left
.
Tdoty
(
right
.
x
);
real_t
y0
=
left
.
Tdotx
(
right
.
y
);
real_t
y1
=
left
.
Tdoty
(
right
.
y
);
left
.
x
.
x
=
x0
;
left
.
x
.
y
=
x1
;
...
...
@@ -351,12 +342,7 @@ namespace Godot
public
override
bool
Equals
(
object
obj
)
{
if
(
obj
is
Transform2D
)
{
return
Equals
((
Transform2D
)
obj
);
}
return
false
;
return
obj
is
Transform2D
transform2D
&&
Equals
(
transform2D
);
}
public
bool
Equals
(
Transform2D
other
)
...
...
modules/mono/glue/Managed/Managed.csproj
View file @
07fbc341
...
...
@@ -11,7 +11,7 @@
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Debug|x86' "
>
<DebugSymbols>
true
</DebugSymbols>
<DebugType>
full
</DebugType>
<DebugType>
portable
</DebugType>
<Optimize>
false
</Optimize>
<OutputPath>
bin\Debug
</OutputPath>
<DefineConstants>
DEBUG;
</DefineConstants>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment