forked from mirror/DotRecast
performance
This commit is contained in:
parent
2efa16eee7
commit
9334315610
|
@ -6,7 +6,7 @@ namespace DotRecast.Core
|
||||||
{
|
{
|
||||||
public static byte[] ToBytes(string filename)
|
public static byte[] ToBytes(string filename)
|
||||||
{
|
{
|
||||||
var filepath = ToRPath(filename);
|
var filepath = FindParentPath(filename);
|
||||||
using var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
|
using var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
|
||||||
byte[] buffer = new byte[fs.Length];
|
byte[] buffer = new byte[fs.Length];
|
||||||
fs.Read(buffer, 0, buffer.Length);
|
fs.Read(buffer, 0, buffer.Length);
|
||||||
|
@ -14,7 +14,7 @@ namespace DotRecast.Core
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ToRPath(string filename)
|
public static string FindParentPath(string filename)
|
||||||
{
|
{
|
||||||
string filePath = Path.Combine("resources", filename);
|
string filePath = Path.Combine("resources", filename);
|
||||||
for (int i = 0; i < 10; ++i)
|
for (int i = 0; i < 10; ++i)
|
||||||
|
|
|
@ -10,6 +10,7 @@ namespace DotRecast.Core
|
||||||
|
|
||||||
public static RcVec2f Zero { get; } = new RcVec2f { x = 0, y = 0 };
|
public static RcVec2f Zero { get; } = new RcVec2f { x = 0, y = 0 };
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public float Get(int idx)
|
public float Get(int idx)
|
||||||
{
|
{
|
||||||
if (0 == idx)
|
if (0 == idx)
|
||||||
|
@ -36,6 +37,7 @@ namespace DotRecast.Core
|
||||||
y.Equals(other.y);
|
y.Equals(other.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public override int GetHashCode()
|
public override int GetHashCode()
|
||||||
{
|
{
|
||||||
int hash = x.GetHashCode();
|
int hash = x.GetHashCode();
|
||||||
|
@ -55,6 +57,7 @@ namespace DotRecast.Core
|
||||||
return !left.Equals(right);
|
return !left.Equals(right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return $"{x}, {y}";
|
return $"{x}, {y}";
|
||||||
|
|
|
@ -48,6 +48,7 @@ namespace DotRecast.Core
|
||||||
return new RcVec3f(x, y, z);
|
return new RcVec3f(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public RcVec3f(float x, float y, float z)
|
public RcVec3f(float x, float y, float z)
|
||||||
{
|
{
|
||||||
this.x = x;
|
this.x = x;
|
||||||
|
@ -55,6 +56,7 @@ namespace DotRecast.Core
|
||||||
this.z = z;
|
this.z = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public RcVec3f(float f)
|
public RcVec3f(float f)
|
||||||
{
|
{
|
||||||
x = f;
|
x = f;
|
||||||
|
@ -63,6 +65,7 @@ namespace DotRecast.Core
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public RcVec3f(float[] f)
|
public RcVec3f(float[] f)
|
||||||
{
|
{
|
||||||
x = f[0];
|
x = f[0];
|
||||||
|
@ -76,6 +79,7 @@ namespace DotRecast.Core
|
||||||
set => SetElement(index, value);
|
set => SetElement(index, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public float GetElement(int index)
|
public float GetElement(int index)
|
||||||
{
|
{
|
||||||
switch (index)
|
switch (index)
|
||||||
|
@ -87,6 +91,7 @@ namespace DotRecast.Core
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public void SetElement(int index, float value)
|
public void SetElement(int index, float value)
|
||||||
{
|
{
|
||||||
switch (index)
|
switch (index)
|
||||||
|
@ -202,6 +207,7 @@ namespace DotRecast.Core
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public override int GetHashCode()
|
public override int GetHashCode()
|
||||||
{
|
{
|
||||||
int hash = x.GetHashCode();
|
int hash = x.GetHashCode();
|
||||||
|
|
|
@ -21,6 +21,7 @@ freely, subject to the following restrictions:
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
namespace DotRecast.Detour.Crowd
|
namespace DotRecast.Detour.Crowd
|
||||||
{
|
{
|
||||||
|
@ -37,6 +38,7 @@ namespace DotRecast.Detour.Crowd
|
||||||
_items = new Dictionary<long, List<DtCrowdAgent>>();
|
_items = new Dictionary<long, List<DtCrowdAgent>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public static long CombineKey(int x, int y)
|
public static long CombineKey(int x, int y)
|
||||||
{
|
{
|
||||||
uint ux = (uint)x;
|
uint ux = (uint)x;
|
||||||
|
@ -44,6 +46,7 @@ namespace DotRecast.Detour.Crowd
|
||||||
return ((long)ux << 32) | uy;
|
return ((long)ux << 32) | uy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public static void DecomposeKey(long key, out int x, out int y)
|
public static void DecomposeKey(long key, out int x, out int y)
|
||||||
{
|
{
|
||||||
uint ux = (uint)(key >> 32);
|
uint ux = (uint)(key >> 32);
|
||||||
|
|
|
@ -37,7 +37,7 @@ public static class Program
|
||||||
|
|
||||||
private static void InitializeWorkingDirectory()
|
private static void InitializeWorkingDirectory()
|
||||||
{
|
{
|
||||||
var path = Loader.ToRPath("dungeon.obj");
|
var path = Loader.FindParentPath("dungeon.obj");
|
||||||
path = Path.GetDirectoryName(path);
|
path = Path.GetDirectoryName(path);
|
||||||
if (!string.IsNullOrEmpty(path))
|
if (!string.IsNullOrEmpty(path))
|
||||||
{
|
{
|
||||||
|
|
|
@ -81,7 +81,7 @@ public class UnityAStarPathfindingImporterTest
|
||||||
|
|
||||||
private DtNavMesh LoadNavMesh(string filename)
|
private DtNavMesh LoadNavMesh(string filename)
|
||||||
{
|
{
|
||||||
var filepath = Loader.ToRPath(filename);
|
var filepath = Loader.FindParentPath(filename);
|
||||||
using var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
|
using var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
|
||||||
|
|
||||||
// Import the graphs
|
// Import the graphs
|
||||||
|
|
Loading…
Reference in New Issue