scripts
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
namespace Poly2Tri
|
||||
{
|
||||
// Token: 0x02000007 RID: 7
|
||||
public class AdvancingFront
|
||||
{
|
||||
// Token: 0x0600004D RID: 77 RVA: 0x00002CD8 File Offset: 0x00000ED8
|
||||
public AdvancingFront(AdvancingFrontNode head, AdvancingFrontNode tail)
|
||||
{
|
||||
this.Head = head;
|
||||
this.Tail = tail;
|
||||
this.Search = head;
|
||||
this.AddNode(head);
|
||||
this.AddNode(tail);
|
||||
}
|
||||
|
||||
// Token: 0x0600004E RID: 78 RVA: 0x00002101 File Offset: 0x00000301
|
||||
public void AddNode(AdvancingFrontNode node)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600004F RID: 79 RVA: 0x00002101 File Offset: 0x00000301
|
||||
public void RemoveNode(AdvancingFrontNode node)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000050 RID: 80 RVA: 0x00002D04 File Offset: 0x00000F04
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (AdvancingFrontNode advancingFrontNode = this.Head; advancingFrontNode != this.Tail; advancingFrontNode = advancingFrontNode.Next)
|
||||
{
|
||||
stringBuilder.Append(advancingFrontNode.Point.X).Append("->");
|
||||
}
|
||||
stringBuilder.Append(this.Tail.Point.X);
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x06000051 RID: 81 RVA: 0x00002D69 File Offset: 0x00000F69
|
||||
private AdvancingFrontNode FindSearchNode(double x)
|
||||
{
|
||||
return this.Search;
|
||||
}
|
||||
|
||||
// Token: 0x06000052 RID: 82 RVA: 0x00002D71 File Offset: 0x00000F71
|
||||
public AdvancingFrontNode LocateNode(TriangulationPoint point)
|
||||
{
|
||||
return this.LocateNode(point.X);
|
||||
}
|
||||
|
||||
// Token: 0x06000053 RID: 83 RVA: 0x00002D80 File Offset: 0x00000F80
|
||||
private AdvancingFrontNode LocateNode(double x)
|
||||
{
|
||||
AdvancingFrontNode advancingFrontNode = this.FindSearchNode(x);
|
||||
if (x < advancingFrontNode.Value)
|
||||
{
|
||||
while ((advancingFrontNode = advancingFrontNode.Prev) != null)
|
||||
{
|
||||
if (x >= advancingFrontNode.Value)
|
||||
{
|
||||
this.Search = advancingFrontNode;
|
||||
return advancingFrontNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while ((advancingFrontNode = advancingFrontNode.Next) != null)
|
||||
{
|
||||
if (x < advancingFrontNode.Value)
|
||||
{
|
||||
this.Search = advancingFrontNode.Prev;
|
||||
return advancingFrontNode.Prev;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Token: 0x06000054 RID: 84 RVA: 0x00002DE8 File Offset: 0x00000FE8
|
||||
public AdvancingFrontNode LocatePoint(TriangulationPoint point)
|
||||
{
|
||||
double x = point.X;
|
||||
AdvancingFrontNode advancingFrontNode = this.FindSearchNode(x);
|
||||
double x2 = advancingFrontNode.Point.X;
|
||||
if (x == x2)
|
||||
{
|
||||
if (point != advancingFrontNode.Point)
|
||||
{
|
||||
if (point == advancingFrontNode.Prev.Point)
|
||||
{
|
||||
advancingFrontNode = advancingFrontNode.Prev;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (point != advancingFrontNode.Next.Point)
|
||||
{
|
||||
throw new Exception("Failed to find Node for given afront point");
|
||||
}
|
||||
advancingFrontNode = advancingFrontNode.Next;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (x < x2)
|
||||
{
|
||||
while ((advancingFrontNode = advancingFrontNode.Prev) != null)
|
||||
{
|
||||
if (point == advancingFrontNode.Point)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while ((advancingFrontNode = advancingFrontNode.Next) != null && point != advancingFrontNode.Point)
|
||||
{
|
||||
}
|
||||
}
|
||||
this.Search = advancingFrontNode;
|
||||
return advancingFrontNode;
|
||||
}
|
||||
|
||||
// Token: 0x0400000F RID: 15
|
||||
public AdvancingFrontNode Head;
|
||||
|
||||
// Token: 0x04000010 RID: 16
|
||||
public AdvancingFrontNode Tail;
|
||||
|
||||
// Token: 0x04000011 RID: 17
|
||||
protected AdvancingFrontNode Search;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user