UV
using Autodesk.DesignScript.Interfaces;
using ProtoGeometryGenerator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Autodesk.DesignScript.Geometry
{
[GenerateFromInterface(typeof(IUVEntity), typeof(IGeometryFactory), new Type[] {
})]
public class UV
{
internal IUVEntity UVEntity { get; }
public double U => UVEntity.get_U();
public double V => UVEntity.get_V();
internal UV(IUVEntity host)
{
UVEntity = host;
}
public static UV ByCoordinates(double u = 0, double v = 0)
{
return Wrap(HostFactory.Factory.UVByCoordinates(u, v));
}
internal static UV Wrap(IUVEntity host)
{
if (host != null)
return new UV(host);
return null;
}
internal static UV[] Wrap(IUVEntity[] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static UV[][] Wrap(IUVEntity[][] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static IUVEntity Unwrap(UV o)
{
return o.UVEntity;
}
internal static IUVEntity[] Unwrap(IEnumerable<UV> o)
{
return o.Select(Unwrap).ToArray();
}
internal static IUVEntity[] Unwrap(UV[] o)
{
return o.Select(Unwrap).ToArray();
}
internal static IUVEntity[][] Unwrap(UV[][] o)
{
return o.Select(Unwrap).ToArray();
}
public override bool Equals(object other)
{
if (base.Equals(other))
return true;
UV uV = other as UV;
if (uV != null) {
double num = U;
if (num.Equals(uV.U)) {
num = V;
return num.Equals(uV.V);
}
}
return false;
}
public override int GetHashCode()
{
return HashCode.Combine(U, V);
}
public override string ToString()
{
StringBuilder builder = DesignScriptEntity.GetBuilder();
AppendTo(builder);
return builder.ToString();
}
internal void AppendTo(StringBuilder builder)
{
builder.Add("UV(U = ", U).Add(", V = ", V).Append(")");
}
}
}