internal static IEnumerable<ConnectedComponent> Create(IntPtr list, int length)
{
Collection<ConnectedComponent> result = new Collection<ConnectedComponent>();
if (list == IntPtr.Zero)
return result;
for (int i = 0; i < length; i++)
{
IntPtr instance = NativeConnectedComponent.GetInstance(list, i);
if (instance == IntPtr.Zero)
continue;
if (NativeConnectedComponent.GetArea(instance) < double.Epsilon)
continue;
result.Add(new ConnectedComponent(instance));
}
return result;
}