IndexGroup
using Autodesk.DesignScript.Interfaces;
using ProtoGeometryGenerator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Autodesk.DesignScript.Geometry
{
[GenerateFromInterface(typeof(IIndexGroupEntity), typeof(IGeometryFactory), new Type[] {
})]
public class IndexGroup
{
internal IIndexGroupEntity IndexGroupEntity { get; }
public uint Count => IndexGroupEntity.get_Count();
public uint A => IndexGroupEntity.get_A();
public uint B => IndexGroupEntity.get_B();
public uint C => IndexGroupEntity.get_C();
public uint D => IndexGroupEntity.get_D();
internal IndexGroup(IIndexGroupEntity host)
{
IndexGroupEntity = host;
}
public static IndexGroup ByIndices(uint a, uint b, uint c, uint d)
{
return Wrap(HostFactory.Factory.IndexGroupByIndices(a, b, c, d));
}
public static IndexGroup ByIndices(uint a, uint b, uint c)
{
return Wrap(HostFactory.Factory.IndexGroupByIndices(a, b, c));
}
internal static IndexGroup Wrap(IIndexGroupEntity host)
{
if (host != null)
return new IndexGroup(host);
return null;
}
internal static IndexGroup[] Wrap(IIndexGroupEntity[] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static IndexGroup[][] Wrap(IIndexGroupEntity[][] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static IIndexGroupEntity Unwrap(IndexGroup o)
{
return o.IndexGroupEntity;
}
internal static IIndexGroupEntity[] Unwrap(IEnumerable<IndexGroup> o)
{
return o.Select(Unwrap).ToArray();
}
internal static IIndexGroupEntity[] Unwrap(IndexGroup[] o)
{
return o.Select(Unwrap).ToArray();
}
internal static IIndexGroupEntity[][] Unwrap(IndexGroup[][] o)
{
return o.Select(Unwrap).ToArray();
}
public override bool Equals(object other)
{
if (base.Equals(other))
return true;
IndexGroup indexGroup = other as IndexGroup;
if (indexGroup != null) {
uint num = Count;
if (num.Equals(indexGroup.Count)) {
num = A;
if (num.Equals(indexGroup.A)) {
num = B;
if (num.Equals(indexGroup.B)) {
num = C;
if (num.Equals(indexGroup.C)) {
num = D;
return num.Equals(indexGroup.D);
}
}
}
}
}
return false;
}
public override int GetHashCode()
{
return HashCode.Combine(Count, A, B, C, D);
}
public override string ToString()
{
StringBuilder builder = DesignScriptEntity.GetBuilder();
AppendTo(builder);
return builder.ToString();
}
internal void AppendTo(StringBuilder builder)
{
builder.Add("IndexGroup(Count = ", Count).Add(", A = ", A).Add(", B = ", B)
.Add(", C = ", C)
.Add(", D = ", D)
.Append(")");
}
}
}