Cuboid
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(ICuboidEntity), typeof(IGeometryFactory), new Type[] {
})]
public class Cuboid : Solid
{
internal ICuboidEntity CuboidEntity => HostImpl as ICuboidEntity;
[Scaling()]
public double Length {
get {
return CuboidEntity.get_Length() * DesignScriptEntity.scaleFactor;
}
}
[Scaling()]
public double Width {
get {
return CuboidEntity.get_Width() * DesignScriptEntity.scaleFactor;
}
}
[Scaling()]
public double Height {
get {
return CuboidEntity.get_Height() * DesignScriptEntity.scaleFactor;
}
}
internal Cuboid(ICuboidEntity host)
: base(host)
{
}
internal new static void InitType()
{
Geometry.RegisterHostType(typeof(ICuboidEntity), (IGeometryEntity host) => new Cuboid(host as ICuboidEntity));
}
public static Cuboid ByLengths([Scaling()] double width = 1, [Scaling()] double length = 1, [Scaling()] double height = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(width, length, height);
return Wrap(HostFactory.Factory.CuboidByLengths(width / DesignScriptEntity.scaleFactor, length / DesignScriptEntity.scaleFactor, height / DesignScriptEntity.scaleFactor));
}
public static Cuboid ByLengths([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point origin, [Scaling()] double width = 1, [Scaling()] double length = 1, [Scaling()] double height = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(width, length, height);
return Wrap(HostFactory.Factory.CuboidByLengths(Point.Unwrap(origin), width / DesignScriptEntity.scaleFactor, length / DesignScriptEntity.scaleFactor, height / DesignScriptEntity.scaleFactor));
}
public static Cuboid ByLengths([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem coordinateSystem, [Scaling()] double width = 1, [Scaling()] double length = 1, [Scaling()] double height = 1)
{
DesignScriptEntity.CheckArgsForAsmExtents(width, length, height);
return Wrap(HostFactory.Factory.CuboidByLengths(CoordinateSystem.Unwrap(coordinateSystem), width / DesignScriptEntity.scaleFactor, length / DesignScriptEntity.scaleFactor, height / DesignScriptEntity.scaleFactor));
}
public static Cuboid ByCorners([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point lowPoint, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 1, 1)")] Point highPoint)
{
return Wrap(HostFactory.Factory.CuboidByCorners(Point.Unwrap(lowPoint), Point.Unwrap(highPoint)));
}
internal static Cuboid Wrap(ICuboidEntity host)
{
if (host != null)
return new Cuboid(host);
return null;
}
internal static Cuboid[] Wrap(ICuboidEntity[] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static Cuboid[][] Wrap(ICuboidEntity[][] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static ICuboidEntity Unwrap(Cuboid o)
{
return o.CuboidEntity;
}
internal static ICuboidEntity[] Unwrap(IEnumerable<Cuboid> o)
{
return o.Select(Unwrap).ToArray();
}
internal static ICuboidEntity[] Unwrap(Cuboid[] o)
{
return o.Select(Unwrap).ToArray();
}
internal static ICuboidEntity[][] Unwrap(Cuboid[][] 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("Cuboid(Length = ", Length).Add(", Width = ", Width).Add(", Height = ", Height)
.Append(")");
}
}
}