mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-18 01:44:35 +08:00
update ArrayUtility
This commit is contained in:
parent
55ef119aff
commit
01ffa2807e
@ -66,6 +66,29 @@ namespace DCFApixels.DragonECS.Internal
|
|||||||
|
|
||||||
internal static class ArrayUtility
|
internal static class ArrayUtility
|
||||||
{
|
{
|
||||||
|
//TODO потестить
|
||||||
|
public static void ResizeOrCreate<T>(ref T[] array, int newSize)
|
||||||
|
{
|
||||||
|
if(array == null)
|
||||||
|
{
|
||||||
|
array = new T[newSize];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
Array.Resize(ref array, newSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
internal static void UpsizeTwoHead<T>(ref T[] array, int newLength, int separationIndex)
|
||||||
|
{
|
||||||
|
UpsizeTwoHead(ref array, newLength, separationIndex, array.Length - separationIndex);
|
||||||
|
}
|
||||||
|
internal static void UpsizeTwoHead<T>(ref T[] array, int newLength, int leftHeadLength, int rightHeadLength)
|
||||||
|
{
|
||||||
|
if (array.Length > newLength) { return; }
|
||||||
|
var result = new T[newLength];
|
||||||
|
Array.Copy(array, result, leftHeadLength); // copy left head
|
||||||
|
Array.Copy(array, array.Length - rightHeadLength, result, array.Length - rightHeadLength, rightHeadLength); // copy right head
|
||||||
|
array = result;
|
||||||
|
}
|
||||||
private static int GetHighBitNumber(uint bits)
|
private static int GetHighBitNumber(uint bits)
|
||||||
{
|
{
|
||||||
if (bits == 0)
|
if (bits == 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user