This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
+146
View File
@@ -0,0 +1,146 @@
using System;
namespace TriangleNet.Geometry
{
// Token: 0x0200002C RID: 44
public class BoundingBox
{
// Token: 0x06000167 RID: 359 RVA: 0x00017C6D File Offset: 0x00015E6D
public BoundingBox()
: this(double.MaxValue, double.MaxValue, double.MinValue, double.MinValue)
{
}
// Token: 0x06000168 RID: 360 RVA: 0x00017C99 File Offset: 0x00015E99
public BoundingBox(BoundingBox other)
: this(other.MinX, other.MinY, other.MaxX, other.MaxY)
{
}
// Token: 0x06000169 RID: 361 RVA: 0x00017CB9 File Offset: 0x00015EB9
public BoundingBox(double xmin, double ymin, double xmax, double ymax)
{
this.xmin = xmin;
this.xmax = xmax;
this.ymin = ymin;
this.ymax = ymax;
}
// Token: 0x17000062 RID: 98
// (get) Token: 0x0600016A RID: 362 RVA: 0x00017CDE File Offset: 0x00015EDE
public double MinX
{
get
{
return this.xmin;
}
}
// Token: 0x17000063 RID: 99
// (get) Token: 0x0600016B RID: 363 RVA: 0x00017CE6 File Offset: 0x00015EE6
public double MaxX
{
get
{
return this.xmax;
}
}
// Token: 0x17000064 RID: 100
// (get) Token: 0x0600016C RID: 364 RVA: 0x00017CEE File Offset: 0x00015EEE
public double MinY
{
get
{
return this.ymin;
}
}
// Token: 0x17000065 RID: 101
// (get) Token: 0x0600016D RID: 365 RVA: 0x00017CF6 File Offset: 0x00015EF6
public double MaxY
{
get
{
return this.ymax;
}
}
// Token: 0x17000066 RID: 102
// (get) Token: 0x0600016E RID: 366 RVA: 0x00017CFE File Offset: 0x00015EFE
public double Width
{
get
{
return this.xmax - this.xmin;
}
}
// Token: 0x17000067 RID: 103
// (get) Token: 0x0600016F RID: 367 RVA: 0x00017D0D File Offset: 0x00015F0D
public double Height
{
get
{
return this.ymax - this.ymin;
}
}
// Token: 0x06000170 RID: 368 RVA: 0x00017D1C File Offset: 0x00015F1C
public void Resize(double dx, double dy)
{
this.xmin -= dx;
this.xmax += dx;
this.ymin -= dy;
this.ymax += dy;
}
// Token: 0x06000171 RID: 369 RVA: 0x00017D58 File Offset: 0x00015F58
public void Expand(double x, double y)
{
this.xmin = Math.Min(this.xmin, x);
this.ymin = Math.Min(this.ymin, y);
this.xmax = Math.Max(this.xmax, x);
this.ymax = Math.Max(this.ymax, y);
}
// Token: 0x06000172 RID: 370 RVA: 0x00017DB0 File Offset: 0x00015FB0
public void Expand(BoundingBox other)
{
this.xmin = Math.Min(this.xmin, other.xmin);
this.ymin = Math.Min(this.ymin, other.ymin);
this.xmax = Math.Max(this.xmax, other.xmax);
this.ymax = Math.Max(this.ymax, other.ymax);
}
// Token: 0x06000173 RID: 371 RVA: 0x00017E19 File Offset: 0x00016019
public bool Contains(Point pt)
{
return pt.x >= this.xmin && pt.x <= this.xmax && pt.y >= this.ymin && pt.y <= this.ymax;
}
// Token: 0x06000174 RID: 372 RVA: 0x00017E58 File Offset: 0x00016058
public bool Contains(BoundingBox other)
{
return this.xmin <= other.MinX && other.MaxX <= this.xmax && this.ymin <= other.MinY && other.MaxY <= this.ymax;
}
// Token: 0x06000175 RID: 373 RVA: 0x00017E97 File Offset: 0x00016097
public bool Intersects(BoundingBox other)
{
return other.MinX < this.xmax && this.xmin < other.MaxX && other.MinY < this.ymax && this.ymin < other.MaxY;
}
// Token: 0x040000EE RID: 238
private double xmin;
// Token: 0x040000EF RID: 239
private double ymin;
// Token: 0x040000F0 RID: 240
private double xmax;
// Token: 0x040000F1 RID: 241
private double ymax;
}
}
+37
View File
@@ -0,0 +1,37 @@
using System;
namespace TriangleNet.Geometry
{
// Token: 0x0200002D RID: 45
public class Edge
{
// Token: 0x17000068 RID: 104
// (get) Token: 0x06000176 RID: 374 RVA: 0x00017ED3 File Offset: 0x000160D3
// (set) Token: 0x06000177 RID: 375 RVA: 0x00017EDB File Offset: 0x000160DB
public int P0 { get; private set; }
// Token: 0x17000069 RID: 105
// (get) Token: 0x06000178 RID: 376 RVA: 0x00017EE4 File Offset: 0x000160E4
// (set) Token: 0x06000179 RID: 377 RVA: 0x00017EEC File Offset: 0x000160EC
public int P1 { get; private set; }
// Token: 0x1700006A RID: 106
// (get) Token: 0x0600017A RID: 378 RVA: 0x00017EF5 File Offset: 0x000160F5
// (set) Token: 0x0600017B RID: 379 RVA: 0x00017EFD File Offset: 0x000160FD
public int Boundary { get; private set; }
// Token: 0x0600017C RID: 380 RVA: 0x00017F06 File Offset: 0x00016106
public Edge(int p0, int p1)
: this(p0, p1, 0)
{
}
// Token: 0x0600017D RID: 381 RVA: 0x00017F11 File Offset: 0x00016111
public Edge(int p0, int p1, int boundary)
{
this.P0 = p0;
this.P1 = p1;
this.Boundary = boundary;
}
}
}
+105
View File
@@ -0,0 +1,105 @@
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;
}
}
+27
View File
@@ -0,0 +1,27 @@
using System;
using TriangleNet.Data;
namespace TriangleNet.Geometry
{
// Token: 0x02000033 RID: 51
public interface ISegment
{
// Token: 0x17000083 RID: 131
// (get) Token: 0x060001B5 RID: 437
int P0 { get; }
// Token: 0x17000084 RID: 132
// (get) Token: 0x060001B6 RID: 438
int P1 { get; }
// Token: 0x17000085 RID: 133
// (get) Token: 0x060001B7 RID: 439
int Boundary { get; }
// Token: 0x060001B8 RID: 440
Vertex GetVertex(int index);
// Token: 0x060001B9 RID: 441
ITriangle GetTriangle(int index);
}
}
+59
View File
@@ -0,0 +1,59 @@
using System;
using TriangleNet.Data;
namespace TriangleNet.Geometry
{
// Token: 0x02000030 RID: 48
public interface ITriangle
{
// Token: 0x17000074 RID: 116
// (get) Token: 0x06000197 RID: 407
int ID { get; }
// Token: 0x17000075 RID: 117
// (get) Token: 0x06000198 RID: 408
int P0 { get; }
// Token: 0x17000076 RID: 118
// (get) Token: 0x06000199 RID: 409
int P1 { get; }
// Token: 0x17000077 RID: 119
// (get) Token: 0x0600019A RID: 410
int P2 { get; }
// Token: 0x0600019B RID: 411
Vertex GetVertex(int index);
// Token: 0x17000078 RID: 120
// (get) Token: 0x0600019C RID: 412
bool SupportsNeighbors { get; }
// Token: 0x17000079 RID: 121
// (get) Token: 0x0600019D RID: 413
int N0 { get; }
// Token: 0x1700007A RID: 122
// (get) Token: 0x0600019E RID: 414
int N1 { get; }
// Token: 0x1700007B RID: 123
// (get) Token: 0x0600019F RID: 415
int N2 { get; }
// Token: 0x060001A0 RID: 416
ITriangle GetNeighbor(int index);
// Token: 0x060001A1 RID: 417
ISegment GetSegment(int index);
// Token: 0x1700007C RID: 124
// (get) Token: 0x060001A2 RID: 418
// (set) Token: 0x060001A3 RID: 419
double Area { get; set; }
// Token: 0x1700007D RID: 125
// (get) Token: 0x060001A4 RID: 420
int Region { get; }
}
}
+221
View File
@@ -0,0 +1,221 @@
using System;
using System.Collections.Generic;
using System.Linq;
using TriangleNet.Data;
namespace TriangleNet.Geometry
{
// Token: 0x0200002F RID: 47
public class InputGeometry
{
// Token: 0x06000184 RID: 388 RVA: 0x000180DF File Offset: 0x000162DF
public InputGeometry()
: this(3)
{
}
// Token: 0x06000185 RID: 389 RVA: 0x000180E8 File Offset: 0x000162E8
public InputGeometry(int capacity)
{
this.points = new List<Vertex>(capacity);
this.segments = new List<Edge>();
this.holes = new List<Point>();
this.regions = new List<RegionPointer>();
this.bounds = new BoundingBox();
this.pointAttributes = -1;
}
// Token: 0x1700006D RID: 109
// (get) Token: 0x06000186 RID: 390 RVA: 0x00018141 File Offset: 0x00016341
public BoundingBox Bounds
{
get
{
return this.bounds;
}
}
// Token: 0x1700006E RID: 110
// (get) Token: 0x06000187 RID: 391 RVA: 0x00018149 File Offset: 0x00016349
public bool HasSegments
{
get
{
return this.segments.Count > 0;
}
}
// Token: 0x1700006F RID: 111
// (get) Token: 0x06000188 RID: 392 RVA: 0x00018159 File Offset: 0x00016359
public int Count
{
get
{
return this.points.Count;
}
}
// Token: 0x17000070 RID: 112
// (get) Token: 0x06000189 RID: 393 RVA: 0x00018166 File Offset: 0x00016366
public IEnumerable<Point> Points
{
get
{
return this.points.Select((Vertex v) => v);
}
}
// Token: 0x17000071 RID: 113
// (get) Token: 0x0600018A RID: 394 RVA: 0x00018192 File Offset: 0x00016392
public ICollection<Edge> Segments
{
get
{
return this.segments;
}
}
// Token: 0x17000072 RID: 114
// (get) Token: 0x0600018B RID: 395 RVA: 0x0001819A File Offset: 0x0001639A
public ICollection<Point> Holes
{
get
{
return this.holes;
}
}
// Token: 0x17000073 RID: 115
// (get) Token: 0x0600018C RID: 396 RVA: 0x000181A2 File Offset: 0x000163A2
public ICollection<RegionPointer> Regions
{
get
{
return this.regions;
}
}
// Token: 0x0600018D RID: 397 RVA: 0x000181AA File Offset: 0x000163AA
public void Clear()
{
this.points.Clear();
this.segments.Clear();
this.holes.Clear();
this.regions.Clear();
this.pointAttributes = -1;
}
// Token: 0x0600018E RID: 398 RVA: 0x000181DF File Offset: 0x000163DF
public void AddPoint(double x, double y)
{
this.AddPoint(x, y, 0);
}
// Token: 0x0600018F RID: 399 RVA: 0x000181EA File Offset: 0x000163EA
public void AddPoint(double x, double y, int boundary)
{
this.points.Add(new Vertex(x, y, boundary));
this.bounds.Expand(x, y);
}
// Token: 0x06000190 RID: 400 RVA: 0x0001820C File Offset: 0x0001640C
public void AddPoint(double x, double y, int boundary, double attribute)
{
this.AddPoint(x, y, 0, new double[] { attribute });
}
// Token: 0x06000191 RID: 401 RVA: 0x00018224 File Offset: 0x00016424
public void AddPoint(double x, double y, int boundary, double[] attribs)
{
if (this.pointAttributes < 0)
{
this.pointAttributes = ((attribs == null) ? 0 : attribs.Length);
}
else
{
if (attribs == null && this.pointAttributes > 0)
{
throw new ArgumentException("Inconsitent use of point attributes.");
}
if (attribs != null && this.pointAttributes != attribs.Length)
{
throw new ArgumentException("Inconsitent use of point attributes.");
}
}
this.points.Add(new Vertex(x, y, boundary)
{
attributes = attribs
});
this.bounds.Expand(x, y);
}
// Token: 0x06000192 RID: 402 RVA: 0x000182A8 File Offset: 0x000164A8
public void AddPoint(Vertex v)
{
double[] attributes = v.attributes;
if (this.pointAttributes < 0)
{
this.pointAttributes = ((attributes == null) ? 0 : attributes.Length);
}
else
{
if (attributes == null && this.pointAttributes > 0)
{
throw new ArgumentException("Inconsitent use of point attributes.");
}
if (attributes != null && this.pointAttributes != attributes.Length)
{
throw new ArgumentException("Inconsitent use of point attributes.");
}
}
this.points.Add(v);
this.bounds.Expand(v.x, v.y);
}
// Token: 0x06000193 RID: 403 RVA: 0x00018329 File Offset: 0x00016529
public void AddHole(double x, double y)
{
this.holes.Add(new Point(x, y));
}
// Token: 0x06000194 RID: 404 RVA: 0x0001833D File Offset: 0x0001653D
public void AddRegion(double x, double y, int id)
{
this.regions.Add(new RegionPointer(x, y, id));
}
// Token: 0x06000195 RID: 405 RVA: 0x00018352 File Offset: 0x00016552
public void AddSegment(int p0, int p1)
{
this.AddSegment(p0, p1, 0);
}
// Token: 0x06000196 RID: 406 RVA: 0x0001835D File Offset: 0x0001655D
public void AddSegment(int p0, int p1, int boundary)
{
if (p0 == p1 || p0 < 0 || p1 < 0)
{
throw new NotSupportedException("Invalid endpoints.");
}
this.segments.Add(new Edge(p0, p1, boundary));
}
// Token: 0x040000FC RID: 252
internal List<Vertex> points;
// Token: 0x040000FD RID: 253
internal List<Edge> segments;
// Token: 0x040000FE RID: 254
internal List<Point> holes;
// Token: 0x040000FF RID: 255
internal List<RegionPointer> regions;
// Token: 0x04000100 RID: 256
private BoundingBox bounds;
// Token: 0x04000101 RID: 257
private int pointAttributes = -1;
}
}
+148
View File
@@ -0,0 +1,148 @@
using System;
namespace TriangleNet.Geometry
{
// Token: 0x02000031 RID: 49
public class Point : IComparable<Point>, IEquatable<Point>
{
// Token: 0x060001A5 RID: 421 RVA: 0x00018389 File Offset: 0x00016589
public Point()
: this(0.0, 0.0, 0)
{
}
// Token: 0x060001A6 RID: 422 RVA: 0x000183A4 File Offset: 0x000165A4
public Point(double x, double y)
: this(x, y, 0)
{
}
// Token: 0x060001A7 RID: 423 RVA: 0x000183AF File Offset: 0x000165AF
public Point(double x, double y, int mark)
{
this.x = x;
this.y = y;
this.mark = mark;
}
// Token: 0x1700007E RID: 126
// (get) Token: 0x060001A8 RID: 424 RVA: 0x000183CC File Offset: 0x000165CC
public int ID
{
get
{
return this.id;
}
}
// Token: 0x1700007F RID: 127
// (get) Token: 0x060001A9 RID: 425 RVA: 0x000183D4 File Offset: 0x000165D4
public double X
{
get
{
return this.x;
}
}
// Token: 0x17000080 RID: 128
// (get) Token: 0x060001AA RID: 426 RVA: 0x000183DC File Offset: 0x000165DC
public double Y
{
get
{
return this.y;
}
}
// Token: 0x17000081 RID: 129
// (get) Token: 0x060001AB RID: 427 RVA: 0x000183E4 File Offset: 0x000165E4
public int Boundary
{
get
{
return this.mark;
}
}
// Token: 0x17000082 RID: 130
// (get) Token: 0x060001AC RID: 428 RVA: 0x000183EC File Offset: 0x000165EC
public double[] Attributes
{
get
{
return this.attributes;
}
}
// Token: 0x060001AD RID: 429 RVA: 0x000183F4 File Offset: 0x000165F4
public static bool operator ==(Point a, Point b)
{
return a == b || (a != null && b != null && a.Equals(b));
}
// Token: 0x060001AE RID: 430 RVA: 0x0001840B File Offset: 0x0001660B
public static bool operator !=(Point a, Point b)
{
return !(a == b);
}
// Token: 0x060001AF RID: 431 RVA: 0x00018418 File Offset: 0x00016618
public override bool Equals(object obj)
{
if (obj == null)
{
return false;
}
Point point = obj as Point;
return point != null && this.x == point.x && this.y == point.y;
}
// Token: 0x060001B0 RID: 432 RVA: 0x00018454 File Offset: 0x00016654
public bool Equals(Point p)
{
return p != null && this.x == p.x && this.y == p.y;
}
// Token: 0x060001B1 RID: 433 RVA: 0x0001847C File Offset: 0x0001667C
public int CompareTo(Point other)
{
if (this.x == other.x && this.y == other.y)
{
return 0;
}
if (this.x >= other.x && (this.x != other.x || this.y >= other.y))
{
return 1;
}
return -1;
}
// Token: 0x060001B2 RID: 434 RVA: 0x000184D4 File Offset: 0x000166D4
public override int GetHashCode()
{
return this.x.GetHashCode() ^ this.y.GetHashCode();
}
// Token: 0x060001B3 RID: 435 RVA: 0x000184ED File Offset: 0x000166ED
public override string ToString()
{
return string.Format("[{0},{1}]", this.x, this.y);
}
// Token: 0x04000102 RID: 258
internal int id;
// Token: 0x04000103 RID: 259
internal double x;
// Token: 0x04000104 RID: 260
internal double y;
// Token: 0x04000105 RID: 261
internal int mark;
// Token: 0x04000106 RID: 262
internal double[] attributes;
}
}
+21
View File
@@ -0,0 +1,21 @@
using System;
namespace TriangleNet.Geometry
{
// Token: 0x02000032 RID: 50
public class RegionPointer
{
// Token: 0x060001B4 RID: 436 RVA: 0x0001850F File Offset: 0x0001670F
public RegionPointer(double x, double y, int id)
{
this.point = new Point(x, y);
this.id = id;
}
// Token: 0x04000107 RID: 263
internal Point point;
// Token: 0x04000108 RID: 264
internal int id;
}
}