Ellipse
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(IEllipseEntity), typeof(IGeometryFactory), new Type[] {
})]
public class Ellipse : Curve
{
internal IEllipseEntity EllipseEntity => HostImpl as IEllipseEntity;
public Point CenterPoint => Point.Wrap(EllipseEntity.get_CenterPoint());
public Vector MajorAxis => Vector.Wrap(EllipseEntity.get_MajorAxis());
public Vector MinorAxis => Vector.Wrap(EllipseEntity.get_MinorAxis());
internal Ellipse(IEllipseEntity host)
: base(host)
{
}
internal new static void InitType()
{
Geometry.RegisterHostType(typeof(IEllipseEntity), (IGeometryEntity host) => new Ellipse(host as IEllipseEntity));
}
public static Ellipse ByOriginRadii([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point origin, [Scaling()] double xAxisRadius = 1, [Scaling()] double yAxisRadius = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(xAxisRadius, yAxisRadius);
return Wrap(HostFactory.Factory.EllipseByOriginRadii(Point.Unwrap(origin), xAxisRadius / DesignScriptEntity.scaleFactor, yAxisRadius / DesignScriptEntity.scaleFactor));
}
public static Ellipse ByOriginVectors([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point origin, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(1, 0, 0)")] Vector xAxisRadius, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 2, 0)")] Vector yAxisRadius)
{
return Wrap(HostFactory.Factory.EllipseByOriginVectors(Point.Unwrap(origin), Vector.Unwrap(xAxisRadius), Vector.Unwrap(yAxisRadius)));
}
public static Ellipse ByCoordinateSystemRadii([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem origin, [Scaling()] double xAxisRadius = 1, [Scaling()] double yAxisRadius = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(xAxisRadius, yAxisRadius);
return Wrap(HostFactory.Factory.EllipseByCoordinateSystemRadii(CoordinateSystem.Unwrap(origin), xAxisRadius / DesignScriptEntity.scaleFactor, yAxisRadius / DesignScriptEntity.scaleFactor));
}
public static Ellipse ByPlaneRadii([DefaultArgument("Autodesk.DesignScript.Geometry.Plane.XY()")] Plane plane, [Scaling()] double xAxisRadius = 1, [Scaling()] double yAxisRadius = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(xAxisRadius, yAxisRadius);
return Wrap(HostFactory.Factory.EllipseByPlaneRadii(Plane.Unwrap(plane), xAxisRadius / DesignScriptEntity.scaleFactor, yAxisRadius / DesignScriptEntity.scaleFactor));
}
internal static Ellipse Wrap(IEllipseEntity host)
{
if (host != null)
return new Ellipse(host);
return null;
}
internal static Ellipse[] Wrap(IEllipseEntity[] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static Ellipse[][] Wrap(IEllipseEntity[][] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static IEllipseEntity Unwrap(Ellipse o)
{
return o.EllipseEntity;
}
internal static IEllipseEntity[] Unwrap(IEnumerable<Ellipse> o)
{
return o.Select(Unwrap).ToArray();
}
internal static IEllipseEntity[] Unwrap(Ellipse[] o)
{
return o.Select(Unwrap).ToArray();
}
internal static IEllipseEntity[][] Unwrap(Ellipse[][] 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("Ellipse(Normal = ", Normal).Add(", CenterPoint = ", CenterPoint).Add(", MajorAxis = ", MajorAxis)
.Add(", MinorAxis = ", MinorAxis)
.Append(")");
}
}
}