Beispiel #1
0
        public AiNativeList <T> ToNativeList()
        {
            var data = UnsafeListData.CreateFrom(this);
            AiNativeList <T> list = new AiNativeList <T>(data);

            Dispose();
            return(list);
        }
        public static T[] ToArray <T>(this AiNativeList <T> list) where T : unmanaged
        {
            T[] array  = new T[list.Length];
            int length = list.Length * UnsafeCollectionUtility.SizeOf <T>();

            MemoryCopy.Copy((T *)list.GetUnsafePtr(), array, length);
            return(array);
        }
        public static byte[] ToByteArray <T>(this AiNativeList <T> list) where T : unmanaged
        {
            int bytesToCopy = list.Length * UnsafeCollectionUtility.SizeOf <T>();

            byte[] target = new byte[bytesToCopy];
            MemoryCopy.Copy(list.GetUnsafePtr(), 0, target, 0, bytesToCopy);
            return(target);
        }
Beispiel #4
0
 public void AddRange(AiNativeList <T> list)
 {
     m_ListData->AddRange <T>(list.m_ListData->Ptr, list.Length);
 }
 public static bool Contains <T, U>(this AiNativeList <T> list, U value) where T : unmanaged, IEquatable <U>
 {
     return(IndexOf <T, U>(list.GetUnsafePtr(), list.Length, value) != -1);
 }