IndexGroup
using Autodesk.DesignScript.Interfaces;
using System.Collections.Generic;
using System.Linq;
namespace Autodesk.DesignScript.Geometry
{
public class IndexGroup
{
internal IIndexGroupEntity IndexGroupEntity { get; set; }
public uint Count => IndexGroupEntity.Count;
public uint A => IndexGroupEntity.A;
public uint B => IndexGroupEntity.B;
public uint C => IndexGroupEntity.C;
public uint D => IndexGroupEntity.D;
internal IndexGroup(IIndexGroupEntity host, bool persist)
{
IndexGroupEntity = host;
}
public override string ToString()
{
return "IndexGroup(Count = " + Count + ", A = " + A + ", B = " + B + ", C = " + C + ", D = " + D + ")";
}
public override bool Equals(object other)
{
if (base.Equals(other))
return true;
IndexGroup indexGroup = other as IndexGroup;
if (indexGroup == null)
return false;
if (indexGroup.Count.Equals(Count) && indexGroup.A.Equals(A) && indexGroup.B.Equals(B) && indexGroup.C.Equals(C))
return indexGroup.D.Equals(D);
return false;
}
public override int GetHashCode()
{
int num = 17;
num = num * 23 + Count.GetHashCode();
num = num * 23 + A.GetHashCode();
num = num * 23 + B.GetHashCode();
num = num * 23 + C.GetHashCode();
return num * 23 + D.GetHashCode();
}
internal static IndexGroup Wrap(IIndexGroupEntity host, bool persist = true)
{
if (host == null)
return null;
return new IndexGroup(host, persist);
}
internal static IndexGroup[] Wrap(IIndexGroupEntity[] hosts, bool persist = true)
{
return (from x in hosts
select Wrap(x, persist)).ToArray();
}
internal static IndexGroup[][] Wrap(IIndexGroupEntity[][] hosts, bool persist = true)
{
return (from x in hosts
select Wrap(x, persist)).ToArray();
}
internal static IIndexGroupEntity[][] Unwrap(IndexGroup[][] o)
{
return (from x in o
select Unwrap(x)).ToArray();
}
internal static IIndexGroupEntity[] Unwrap(IndexGroup[] o)
{
return (from x in o
select Unwrap(x)).ToArray();
}
internal static IIndexGroupEntity[] Unwrap(IEnumerable<IndexGroup> o)
{
return (from x in o
select Unwrap(x)).ToArray();
}
internal static IIndexGroupEntity Unwrap(IndexGroup o)
{
return o.IndexGroupEntity;
}
public static IndexGroup ByIndices(uint a, uint b, uint c, uint d)
{
return Wrap(HostFactory.Factory.IndexGroupByIndices(a, b, c, d), true);
}
public static IndexGroup ByIndices(uint a, uint b, uint c)
{
return Wrap(HostFactory.Factory.IndexGroupByIndices(a, b, c), true);
}
}
}