Cone
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(IConeEntity), typeof(IGeometryFactory), new Type[] {
})]
public class Cone : Solid
{
internal IConeEntity ConeEntity => HostImpl as IConeEntity;
public Point StartPoint => Point.Wrap(ConeEntity.get_StartPoint());
public Point EndPoint => Point.Wrap(ConeEntity.get_EndPoint());
public double RadiusRatio => ConeEntity.get_RadiusRatio();
[Scaling()]
public double StartRadius {
get {
return ConeEntity.get_StartRadius() * DesignScriptEntity.scaleFactor;
}
}
[Scaling()]
public double EndRadius {
get {
return ConeEntity.get_EndRadius() * DesignScriptEntity.scaleFactor;
}
}
[Scaling()]
public double Height {
get {
return ConeEntity.get_Height() * DesignScriptEntity.scaleFactor;
}
}
internal Cone(IConeEntity host)
: base(host)
{
}
internal new static void InitType()
{
Geometry.RegisterHostType(typeof(IConeEntity), (IGeometryEntity host) => new Cone(host as IConeEntity));
}
public static Cone ByPointsRadius([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point startPoint, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)")] Point endPoint, [Scaling()] double startRadius = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(startRadius);
return Wrap(HostFactory.Factory.ConeByPointsRadius(Point.Unwrap(startPoint), Point.Unwrap(endPoint), startRadius / DesignScriptEntity.scaleFactor));
}
public static Cone ByPointsRadii([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point startPoint, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)")] Point endPoint, [Scaling()] double startRadius = 1, [Scaling()] double endRadius = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(startRadius, endRadius);
return Wrap(HostFactory.Factory.ConeByPointsRadii(Point.Unwrap(startPoint), Point.Unwrap(endPoint), startRadius / DesignScriptEntity.scaleFactor, endRadius / DesignScriptEntity.scaleFactor));
}
public static Cone ByCoordinateSystemHeightRadius([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem cs, [Scaling()] double height = 1, [Scaling()] double startRadius = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(height, startRadius);
return Wrap(HostFactory.Factory.ConeByCoordinateSystemHeightRadius(CoordinateSystem.Unwrap(cs), height / DesignScriptEntity.scaleFactor, startRadius / DesignScriptEntity.scaleFactor));
}
public static Cone ByCoordinateSystemHeightRadii([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem cs, [Scaling()] double height = 1, [Scaling()] double startRadius = 1, [Scaling()] double endRadius = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(height, startRadius, endRadius);
return Wrap(HostFactory.Factory.ConeByCoordinateSystemHeightRadii(CoordinateSystem.Unwrap(cs), height / DesignScriptEntity.scaleFactor, startRadius / DesignScriptEntity.scaleFactor, endRadius / DesignScriptEntity.scaleFactor));
}
internal static Cone Wrap(IConeEntity host)
{
return Geometry.Wrap(host) as Cone;
}
internal static Cone[] Wrap(IConeEntity[] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static Cone[][] Wrap(IConeEntity[][] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static IConeEntity Unwrap(Cone o)
{
return o.ConeEntity;
}
internal static IConeEntity[] Unwrap(IEnumerable<Cone> o)
{
return o.Select(Unwrap).ToArray();
}
internal static IConeEntity[] Unwrap(Cone[] o)
{
return o.Select(Unwrap).ToArray();
}
internal static IConeEntity[][] Unwrap(Cone[][] 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("Cone(StartPoint = ", StartPoint).Add(", EndPoint = ", EndPoint).Add(", RadiusRatio = ", RadiusRatio)
.Add(", StartRadius = ", StartRadius)
.Add(", EndRadius = ", EndRadius)
.Add(", Height = ", Height)
.Append(")");
}
}
}