EllipseArc
using Autodesk.DesignScript.Interfaces;
using Autodesk.DesignScript.Runtime;
using ProtoGeometryGenerator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Autodesk.DesignScript.Geometry
{
[GenerateFromInterface(typeof(IEllipseArcEntity), typeof(IGeometryFactory), new Type[] {
})]
public class EllipseArc : Curve
{
internal IEllipseArcEntity EllipseArcEntity => HostImpl as IEllipseArcEntity;
public Point CenterPoint => Point.Wrap(EllipseArcEntity.get_CenterPoint());
public Vector MajorAxis => Vector.Wrap(EllipseArcEntity.get_MajorAxis());
public Vector MinorAxis => Vector.Wrap(EllipseArcEntity.get_MinorAxis());
public double StartAngle => EllipseArcEntity.get_StartAngle();
public double SweepAngle => EllipseArcEntity.get_SweepAngle();
public Plane Plane => Plane.Wrap(EllipseArcEntity.get_Plane());
internal EllipseArc(IEllipseArcEntity host)
: base(host)
{
}
internal new static void InitType()
{
Geometry.RegisterHostType(typeof(IEllipseArcEntity), (IGeometryEntity host) => new EllipseArc(host as IEllipseArcEntity));
}
public static EllipseArc ByPlaneRadiiAngles([DefaultArgument("Autodesk.DesignScript.Geometry.Plane.XY()")] Plane plane, [Scaling()] double xRadius = 1, [Scaling()] double yRadius = 1, double startAngle = 0, double sweepAngle = 180)
{
DesignScriptEntity.CheckArgsForAsmExtents(xRadius, yRadius);
return Wrap(HostFactory.Factory.EllipseArcByPlaneRadiiAngles(Plane.Unwrap(plane), xRadius / DesignScriptEntity.scaleFactor, yRadius / DesignScriptEntity.scaleFactor, startAngle, sweepAngle));
}
internal static EllipseArc Wrap(IEllipseArcEntity host)
{
if (host != null)
return new EllipseArc(host);
return null;
}
internal static EllipseArc[] Wrap(IEllipseArcEntity[] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static EllipseArc[][] Wrap(IEllipseArcEntity[][] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static IEllipseArcEntity Unwrap(EllipseArc o)
{
return o.EllipseArcEntity;
}
internal static IEllipseArcEntity[] Unwrap(IEnumerable<EllipseArc> o)
{
return o.Select(Unwrap).ToArray();
}
internal static IEllipseArcEntity[] Unwrap(EllipseArc[] o)
{
return o.Select(Unwrap).ToArray();
}
internal static IEllipseArcEntity[][] Unwrap(EllipseArc[][] o)
{
return o.Select(Unwrap).ToArray();
}
public override string ToString()
{
StringBuilder builder = DesignScriptEntity.GetBuilder();
AppendTo(builder);
return builder.ToString();
}
internal override void AppendTo(StringBuilder builder)
{
builder.Add("EllipseArc(Normal = ", Normal).Add(", CenterPoint = ", CenterPoint).Add(", MajorAxis = ", MajorAxis)
.Add(", MinorAxis = ", MinorAxis)
.Add(", StartAngle = ", StartAngle)
.Add(", SweepAngle = ", SweepAngle)
.Append(")");
}
}
}