Edge
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(IEdgeEntity), typeof(IGeometryFactory), new Type[] {
})]
public class Edge : DesignScriptEntity
{
internal IEdgeEntity EdgeEntity => HostImpl as IEdgeEntity;
public Curve CurveGeometry => Curve.Wrap(EdgeEntity.get_CurveGeometry());
public Face[] AdjacentFaces => Track(Face.Wrap(EdgeEntity.get_AdjacentFaces()));
public Vertex StartVertex => Track(Vertex.Wrap(EdgeEntity.get_StartVertex()));
public Vertex EndVertex => Track(Vertex.Wrap(EdgeEntity.get_EndVertex()));
[IsVisibleInDynamoLibrary(false)]
public CoEdge[] CoEdges {
get {
return CoEdge.Wrap(EdgeEntity.get_CoEdges());
}
}
internal Edge(IEdgeEntity host)
: base(host)
{
}
internal static Edge Wrap(IEdgeEntity host)
{
if (host != null)
return new Edge(host);
return null;
}
internal static Edge[] Wrap(IEdgeEntity[] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static Edge[][] Wrap(IEdgeEntity[][] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static IEdgeEntity Unwrap(Edge o)
{
return o.EdgeEntity;
}
internal static IEdgeEntity[] Unwrap(IEnumerable<Edge> o)
{
return o.Select(Unwrap).ToArray();
}
internal static IEdgeEntity[] Unwrap(Edge[] o)
{
return o.Select(Unwrap).ToArray();
}
internal static IEdgeEntity[][] Unwrap(Edge[][] 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("Edge(StartVertex = ", StartVertex).Add(", EndVertex = ", EndVertex).Append(")");
}
}
}