/* Construction Helpers */ private void CopyVertices(ManagedSpline managedSpline) { var memory = Memory.Instance; var vertices = managedSpline.Vertices; int structSize = StructArray.GetSize <SplineVertex>(vertices.Length); VertexList = (SplineVertex *)memory.Allocate(structSize); StructArray.ToPtr((IntPtr)VertexList, vertices); }
/// <summary> /// Creates a <see cref="Spline"/> given a deserialized spline file. /// </summary> public Spline(ManagedSpline managedSpline) { Enabler = 1; TotalSplineLength = 0; NumberOfVertices = 0; VertexList = (SplineVertex *)0; SplineType = SplineType.Loop; FromSplineJson(managedSpline); }
private void FromSplineJson(ManagedSpline managedSpline) { SplineType = managedSpline.SplineType; NumberOfVertices = (ushort)managedSpline.Vertices.Length; foreach (var vertex in managedSpline.Vertices) { TotalSplineLength += vertex.DistanceToNextVertex; } CopyVertices(managedSpline); }