EllipseArc
using Autodesk.DesignScript.Interfaces;
using System.Collections.Generic;
using System.Linq;
namespace Autodesk.DesignScript.Geometry
{
public class EllipseArc : Curve
{
internal IEllipseArcEntity EllipseArcEntity => HostImpl as IEllipseArcEntity;
public Point CenterPoint => Point.Wrap(EllipseArcEntity.CenterPoint, true);
public Vector MajorAxis => Vector.Wrap(EllipseArcEntity.MajorAxis, true);
public Vector MinorAxis => Vector.Wrap(EllipseArcEntity.MinorAxis, true);
public double StartAngle => EllipseArcEntity.StartAngle;
public double SweepAngle => EllipseArcEntity.SweepAngle;
internal EllipseArc(IEllipseArcEntity host, bool persist)
: base(host, persist)
{
}
public override string ToString()
{
return "EllipseArc(Normal = " + base.Normal + ", CenterPoint = " + CenterPoint + ", MajorAxis = " + MajorAxis + ", MinorAxis = " + MinorAxis + ", StartAngle = " + StartAngle.ToString(GeometryExtension.DoublePrintFormat) + ", SweepAngle = " + SweepAngle.ToString(GeometryExtension.DoublePrintFormat) + ")";
}
internal new static void InitType()
{
Geometry.RegisterHostType(typeof(IEllipseArcEntity), (IGeometryEntity host, bool persist) => new EllipseArc(host as IEllipseArcEntity, persist));
}
internal static EllipseArc Wrap(IEllipseArcEntity host, bool persist = true)
{
return Geometry.Wrap(host, false, null) as EllipseArc;
}
internal static EllipseArc[] Wrap(IEllipseArcEntity[] hosts, bool persist = true)
{
return (from x in hosts
select Wrap(x, persist)).ToArray();
}
internal static EllipseArc[][] Wrap(IEllipseArcEntity[][] hosts, bool persist = true)
{
return (from x in hosts
select Wrap(x, persist)).ToArray();
}
internal static IEllipseArcEntity[][] Unwrap(EllipseArc[][] o)
{
return (from x in o
select Unwrap(x)).ToArray();
}
internal static IEllipseArcEntity[] Unwrap(EllipseArc[] o)
{
return (from x in o
select Unwrap(x)).ToArray();
}
internal static IEllipseArcEntity[] Unwrap(IEnumerable<EllipseArc> o)
{
return (from x in o
select Unwrap(x)).ToArray();
}
internal static IEllipseArcEntity Unwrap(EllipseArc o)
{
return o.EllipseArcEntity;
}
public static EllipseArc ByPlaneRadiiStartAngleSweepAngle(Plane plane, double xRadius = 1, double yRadius = 1, double startAngle = 0, double sweepAngle = 180)
{
return Wrap(HostFactory.Factory.EllipseArcByPlaneRadiiStartAngleSweepAngle(Plane.Unwrap(plane), xRadius, yRadius, startAngle, sweepAngle), true);
}
}
}