TSplineTopology
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.TSpline
{
[GenerateFromInterface(typeof(ITSplineTopologyEntity), typeof(IGeometryFactory), new Type[] {
})]
public class TSplineTopology : Topology
{
internal ITSplineTopologyEntity TSplineTopologyEntity => HostImpl as ITSplineTopologyEntity;
[IsVisibleInDynamoLibrary(false)]
public new TSplineVertex[] Vertices {
get {
return Track(TSplineVertex.Wrap(TSplineTopologyEntity.get_Vertices()));
}
}
[IsVisibleInDynamoLibrary(false)]
public new TSplineEdge[] Edges {
get {
return Track(TSplineEdge.Wrap(TSplineTopologyEntity.get_Edges()));
}
}
[IsVisibleInDynamoLibrary(false)]
public new TSplineFace[] Faces {
get {
return Track(TSplineFace.Wrap(TSplineTopologyEntity.get_Faces()));
}
}
public TSplineVertex[] RegularVertices => Track(TSplineVertex.Wrap(TSplineTopologyEntity.get_RegularVertices()));
public TSplineVertex[] StarPointVertices => Track(TSplineVertex.Wrap(TSplineTopologyEntity.get_StarPointVertices()));
public TSplineVertex[] TPointVertices => Track(TSplineVertex.Wrap(TSplineTopologyEntity.get_TPointVertices()));
public TSplineVertex[] NonManifoldVertices => Track(TSplineVertex.Wrap(TSplineTopologyEntity.get_NonManifoldVertices()));
public TSplineVertex[] BorderVertices => Track(TSplineVertex.Wrap(TSplineTopologyEntity.get_BorderVertices()));
public TSplineVertex[] InnerVertices => Track(TSplineVertex.Wrap(TSplineTopologyEntity.get_InnerVertices()));
public TSplineEdge[] NonManifoldEdges => Track(TSplineEdge.Wrap(TSplineTopologyEntity.get_NonManifoldEdges()));
public TSplineEdge[] BorderEdges => Track(TSplineEdge.Wrap(TSplineTopologyEntity.get_BorderEdges()));
public TSplineEdge[] InnerEdges => Track(TSplineEdge.Wrap(TSplineTopologyEntity.get_InnerEdges()));
public TSplineFace[] RegularFaces => Track(TSplineFace.Wrap(TSplineTopologyEntity.get_RegularFaces()));
public TSplineFace[] NGonFaces => Track(TSplineFace.Wrap(TSplineTopologyEntity.get_NGonFaces()));
public TSplineFace[] BorderFaces => Track(TSplineFace.Wrap(TSplineTopologyEntity.get_BorderFaces()));
public TSplineFace[] InnerFaces => Track(TSplineFace.Wrap(TSplineTopologyEntity.get_InnerFaces()));
public int VerticesCount => TSplineTopologyEntity.get_VerticesCount();
public int EdgesCount => TSplineTopologyEntity.get_EdgesCount();
public int FacesCount => TSplineTopologyEntity.get_FacesCount();
internal TSplineTopology(ITSplineTopologyEntity host)
: base(host)
{
}
internal new static void InitType()
{
Geometry.RegisterHostType(typeof(ITSplineTopologyEntity), (IGeometryEntity host) => new TSplineTopology(host as ITSplineTopologyEntity));
}
[MultiReturn(new string[] {
"all",
"regular",
"tPoints",
"starPoints",
"nonManifold",
"border",
"inner"
})]
public Dictionary<string, TSplineVertex[]> DecomposedVertices()
{
Dictionary<string, TSplineVertex[]> dictionary = new Dictionary<string, TSplineVertex[]>();
Dictionary<string, ITSplineVertexEntity[]> dictionary2 = TSplineTopologyEntity.DecomposedVertices();
foreach (KeyValuePair<string, ITSplineVertexEntity[]> item in dictionary2) {
dictionary[item.Key] = Track(TSplineVertex.Wrap(item.Value));
}
return dictionary;
}
[MultiReturn(new string[] {
"all",
"nonManifold",
"border",
"inner"
})]
public Dictionary<string, TSplineEdge[]> DecomposedEdges()
{
Dictionary<string, TSplineEdge[]> dictionary = new Dictionary<string, TSplineEdge[]>();
Dictionary<string, ITSplineEdgeEntity[]> dictionary2 = TSplineTopologyEntity.DecomposedEdges();
foreach (KeyValuePair<string, ITSplineEdgeEntity[]> item in dictionary2) {
dictionary[item.Key] = Track(TSplineEdge.Wrap(item.Value));
}
return dictionary;
}
[MultiReturn(new string[] {
"all",
"regular",
"nGons",
"border",
"inner"
})]
public Dictionary<string, TSplineFace[]> DecomposedFaces()
{
Dictionary<string, TSplineFace[]> dictionary = new Dictionary<string, TSplineFace[]>();
Dictionary<string, ITSplineFaceEntity[]> dictionary2 = TSplineTopologyEntity.DecomposedFaces();
foreach (KeyValuePair<string, ITSplineFaceEntity[]> item in dictionary2) {
dictionary[item.Key] = Track(TSplineFace.Wrap(item.Value));
}
return dictionary;
}
public TSplineVertex VertexByIndex(int index)
{
return Track(TSplineVertex.Wrap(TSplineTopologyEntity.VertexByIndex(index)));
}
public TSplineEdge EdgeByIndex(int index)
{
return Track(TSplineEdge.Wrap(TSplineTopologyEntity.EdgeByIndex(index)));
}
public TSplineFace FaceByIndex(int index)
{
return Track(TSplineFace.Wrap(TSplineTopologyEntity.FaceByIndex(index)));
}
internal static TSplineTopology Wrap(ITSplineTopologyEntity host)
{
return Geometry.Wrap(host) as TSplineTopology;
}
internal static TSplineTopology[] Wrap(ITSplineTopologyEntity[] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static TSplineTopology[][] Wrap(ITSplineTopologyEntity[][] hosts)
{
return hosts.Select(Wrap).ToArray();
}
internal static ITSplineTopologyEntity Unwrap(TSplineTopology o)
{
return o.TSplineTopologyEntity;
}
internal static ITSplineTopologyEntity[] Unwrap(IEnumerable<TSplineTopology> o)
{
return o.Select(Unwrap).ToArray();
}
internal static ITSplineTopologyEntity[] Unwrap(TSplineTopology[] o)
{
return o.Select(Unwrap).ToArray();
}
internal static ITSplineTopologyEntity[][] Unwrap(TSplineTopology[][] 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("TSplineTopology(VerticesCount = ", VerticesCount).Add(", EdgesCount = ", EdgesCount).Add(", FacesCount = ", FacesCount)
.Append(")");
}
}
}