106 lines
2.3 KiB
C#
106 lines
2.3 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TriangleNet.Data;
|
|
|
|
namespace TriangleNet.Geometry
|
|
{
|
|
// Token: 0x0200002E RID: 46
|
|
public class EdgeEnumerator : IEnumerator<Edge>, IDisposable, IEnumerator
|
|
{
|
|
// Token: 0x0600017E RID: 382 RVA: 0x00017F30 File Offset: 0x00016130
|
|
public EdgeEnumerator(Mesh mesh)
|
|
{
|
|
this.triangles = mesh.triangles.Values.GetEnumerator();
|
|
this.triangles.MoveNext();
|
|
this.tri.triangle = this.triangles.Current;
|
|
this.tri.orient = 0;
|
|
}
|
|
|
|
// Token: 0x1700006B RID: 107
|
|
// (get) Token: 0x0600017F RID: 383 RVA: 0x00017F8C File Offset: 0x0001618C
|
|
public Edge Current
|
|
{
|
|
get
|
|
{
|
|
return this.current;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000180 RID: 384 RVA: 0x00017F94 File Offset: 0x00016194
|
|
public void Dispose()
|
|
{
|
|
this.triangles.Dispose();
|
|
}
|
|
|
|
// Token: 0x1700006C RID: 108
|
|
// (get) Token: 0x06000181 RID: 385 RVA: 0x00017F8C File Offset: 0x0001618C
|
|
object IEnumerator.Current
|
|
{
|
|
get
|
|
{
|
|
return this.current;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000182 RID: 386 RVA: 0x00017FA4 File Offset: 0x000161A4
|
|
public bool MoveNext()
|
|
{
|
|
if (this.tri.triangle == null)
|
|
{
|
|
return false;
|
|
}
|
|
this.current = null;
|
|
while (this.current == null)
|
|
{
|
|
if (this.tri.orient == 3)
|
|
{
|
|
if (!this.triangles.MoveNext())
|
|
{
|
|
return false;
|
|
}
|
|
this.tri.triangle = this.triangles.Current;
|
|
this.tri.orient = 0;
|
|
}
|
|
this.tri.Sym(ref this.neighbor);
|
|
if (this.tri.triangle.id < this.neighbor.triangle.id || this.neighbor.triangle == Mesh.dummytri)
|
|
{
|
|
this.p1 = this.tri.Org();
|
|
this.p2 = this.tri.Dest();
|
|
this.tri.SegPivot(ref this.sub);
|
|
this.current = new Edge(this.p1.id, this.p2.id, this.sub.seg.boundary);
|
|
}
|
|
this.tri.orient = this.tri.orient + 1;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x06000183 RID: 387 RVA: 0x000180D2 File Offset: 0x000162D2
|
|
public void Reset()
|
|
{
|
|
this.triangles.Reset();
|
|
}
|
|
|
|
// Token: 0x040000F5 RID: 245
|
|
private IEnumerator<Triangle> triangles;
|
|
|
|
// Token: 0x040000F6 RID: 246
|
|
private Otri tri;
|
|
|
|
// Token: 0x040000F7 RID: 247
|
|
private Otri neighbor;
|
|
|
|
// Token: 0x040000F8 RID: 248
|
|
private Osub sub;
|
|
|
|
// Token: 0x040000F9 RID: 249
|
|
private Edge current;
|
|
|
|
// Token: 0x040000FA RID: 250
|
|
private Vertex p1;
|
|
|
|
// Token: 0x040000FB RID: 251
|
|
private Vertex p2;
|
|
}
|
|
}
|