#if false namespace OpenCvSharp.Internal.Vectors { /// /// // ReSharper disable once InconsistentNaming public class VectorOfVectorKeyLine : DisposableCvObject, IStdVector { /// /// Constructor /// public VectorOfVectorKeyLine() { ptr = NativeMethods.vector_vector_KeyLine_new1(); } /// /// Releases unmanaged resources /// protected override void DisposeUnmanaged() { NativeMethods.vector_vector_KeyLine_delete(ptr); base.DisposeUnmanaged(); } /// /// vector.size() /// public int GetSize1() { var res = NativeMethods.vector_vector_KeyLine_getSize1(ptr); GC.KeepAlive(this); return (int)res; } /// /// /// public int Size => GetSize1(); /// /// vector[i].size() /// public IReadOnlyList GetSize2() { var size1 = GetSize1(); var size2 = new nuint[size1]; NativeMethods.vector_vector_KeyLine_getSize2(ptr, size2); GC.KeepAlive(this); return size2.Select(s => (long)s).ToArray(); } /// /// Converts std::vector to managed array /// /// public KeyLine[][] ToArray() { var size1 = GetSize1(); if (size1 == 0) return Array.Empty(); var size2 = GetSize2(); var ret = new KeyLine[size1][]; for (var i = 0; i < size1; i++) { ret[i] = new KeyLine[size2[i]]; } using var retPtr = new ArrayAddress2(ret); NativeMethods.vector_vector_KeyLine_copy(ptr, retPtr.GetPointer()); GC.KeepAlive(this); return ret; } } } #endif