Files
2026-06-04 11:42:34 +02:00

367 lines
7.9 KiB
C#

using System;
using TriangleNet.Geometry;
using TriangleNet.Log;
namespace TriangleNet
{
// Token: 0x02000003 RID: 3
public class Behavior
{
// Token: 0x06000007 RID: 7 RVA: 0x000022B0 File Offset: 0x000004B0
public Behavior(bool quality, double minAngle)
{
if (quality)
{
this.quality = true;
this.minAngle = minAngle;
this.Update();
}
}
// Token: 0x06000008 RID: 8 RVA: 0x000022FE File Offset: 0x000004FE
public Behavior()
: this(false, 20.0)
{
}
// Token: 0x06000009 RID: 9 RVA: 0x00002310 File Offset: 0x00000510
private void Update()
{
this.quality = true;
if (this.minAngle < 0.0 || this.minAngle > 60.0)
{
this.minAngle = 0.0;
this.quality = false;
SimpleLog.Instance.Warning("Invalid quality option (minimum angle).", "Mesh.Behavior");
}
if ((this.maxAngle != 0.0 && this.maxAngle < 90.0) || this.maxAngle > 180.0)
{
this.maxAngle = 0.0;
this.quality = false;
SimpleLog.Instance.Warning("Invalid quality option (maximum angle).", "Mesh.Behavior");
}
this.useSegments = this.Poly || this.Quality || this.Convex;
this.goodAngle = Math.Cos(this.MinAngle * 3.141592653589793 / 180.0);
this.maxGoodAngle = Math.Cos(this.MaxAngle * 3.141592653589793 / 180.0);
if (this.goodAngle == 1.0)
{
this.offconstant = 0.0;
}
else
{
this.offconstant = 0.475 * Math.Sqrt((1.0 + this.goodAngle) / (1.0 - this.goodAngle));
}
this.goodAngle *= this.goodAngle;
}
// Token: 0x17000002 RID: 2
// (get) Token: 0x0600000A RID: 10 RVA: 0x000024A1 File Offset: 0x000006A1
// (set) Token: 0x0600000B RID: 11 RVA: 0x000024A8 File Offset: 0x000006A8
public static bool NoExact { get; set; }
// Token: 0x17000003 RID: 3
// (get) Token: 0x0600000C RID: 12 RVA: 0x000024B0 File Offset: 0x000006B0
// (set) Token: 0x0600000D RID: 13 RVA: 0x000024B7 File Offset: 0x000006B7
public static bool Verbose { get; set; }
// Token: 0x17000004 RID: 4
// (get) Token: 0x0600000E RID: 14 RVA: 0x000024BF File Offset: 0x000006BF
// (set) Token: 0x0600000F RID: 15 RVA: 0x000024C7 File Offset: 0x000006C7
public bool Quality
{
get
{
return this.quality;
}
set
{
this.quality = value;
if (this.quality)
{
this.Update();
}
}
}
// Token: 0x17000005 RID: 5
// (get) Token: 0x06000010 RID: 16 RVA: 0x000024DE File Offset: 0x000006DE
// (set) Token: 0x06000011 RID: 17 RVA: 0x000024E6 File Offset: 0x000006E6
public double MinAngle
{
get
{
return this.minAngle;
}
set
{
this.minAngle = value;
this.Update();
}
}
// Token: 0x17000006 RID: 6
// (get) Token: 0x06000012 RID: 18 RVA: 0x000024F5 File Offset: 0x000006F5
// (set) Token: 0x06000013 RID: 19 RVA: 0x000024FD File Offset: 0x000006FD
public double MaxAngle
{
get
{
return this.maxAngle;
}
set
{
this.maxAngle = value;
this.Update();
}
}
// Token: 0x17000007 RID: 7
// (get) Token: 0x06000014 RID: 20 RVA: 0x0000250C File Offset: 0x0000070C
// (set) Token: 0x06000015 RID: 21 RVA: 0x00002514 File Offset: 0x00000714
public double MaxArea
{
get
{
return this.maxArea;
}
set
{
this.maxArea = value;
this.fixedArea = value > 0.0;
}
}
// Token: 0x17000008 RID: 8
// (get) Token: 0x06000016 RID: 22 RVA: 0x0000252F File Offset: 0x0000072F
// (set) Token: 0x06000017 RID: 23 RVA: 0x00002537 File Offset: 0x00000737
public bool VarArea
{
get
{
return this.varArea;
}
set
{
this.varArea = value;
}
}
// Token: 0x17000009 RID: 9
// (get) Token: 0x06000018 RID: 24 RVA: 0x00002540 File Offset: 0x00000740
// (set) Token: 0x06000019 RID: 25 RVA: 0x00002548 File Offset: 0x00000748
public bool Poly
{
get
{
return this.poly;
}
set
{
this.poly = value;
}
}
// Token: 0x1700000A RID: 10
// (get) Token: 0x0600001A RID: 26 RVA: 0x00002551 File Offset: 0x00000751
// (set) Token: 0x0600001B RID: 27 RVA: 0x00002559 File Offset: 0x00000759
public Func<ITriangle, double, bool> UserTest
{
get
{
return this.usertest;
}
set
{
this.usertest = value;
}
}
// Token: 0x1700000B RID: 11
// (get) Token: 0x0600001C RID: 28 RVA: 0x00002562 File Offset: 0x00000762
// (set) Token: 0x0600001D RID: 29 RVA: 0x0000256A File Offset: 0x0000076A
public bool Convex
{
get
{
return this.convex;
}
set
{
this.convex = value;
}
}
// Token: 0x1700000C RID: 12
// (get) Token: 0x0600001E RID: 30 RVA: 0x00002573 File Offset: 0x00000773
// (set) Token: 0x0600001F RID: 31 RVA: 0x0000257B File Offset: 0x0000077B
public bool ConformingDelaunay
{
get
{
return this.conformDel;
}
set
{
this.conformDel = value;
}
}
// Token: 0x1700000D RID: 13
// (get) Token: 0x06000020 RID: 32 RVA: 0x00002584 File Offset: 0x00000784
// (set) Token: 0x06000021 RID: 33 RVA: 0x0000258C File Offset: 0x0000078C
public TriangulationAlgorithm Algorithm
{
get
{
return this.algorithm;
}
set
{
this.algorithm = value;
}
}
// Token: 0x1700000E RID: 14
// (get) Token: 0x06000022 RID: 34 RVA: 0x00002595 File Offset: 0x00000795
// (set) Token: 0x06000023 RID: 35 RVA: 0x0000259D File Offset: 0x0000079D
public int NoBisect
{
get
{
return this.noBisect;
}
set
{
this.noBisect = value;
if (this.noBisect < 0 || this.noBisect > 2)
{
this.noBisect = 0;
}
}
}
// Token: 0x1700000F RID: 15
// (get) Token: 0x06000024 RID: 36 RVA: 0x000025BF File Offset: 0x000007BF
// (set) Token: 0x06000025 RID: 37 RVA: 0x000025C7 File Offset: 0x000007C7
public int SteinerPoints
{
get
{
return this.steiner;
}
set
{
this.steiner = value;
}
}
// Token: 0x17000010 RID: 16
// (get) Token: 0x06000026 RID: 38 RVA: 0x000025D0 File Offset: 0x000007D0
// (set) Token: 0x06000027 RID: 39 RVA: 0x000025D8 File Offset: 0x000007D8
public bool UseBoundaryMarkers
{
get
{
return this.boundaryMarkers;
}
set
{
this.boundaryMarkers = value;
}
}
// Token: 0x17000011 RID: 17
// (get) Token: 0x06000028 RID: 40 RVA: 0x000025E1 File Offset: 0x000007E1
// (set) Token: 0x06000029 RID: 41 RVA: 0x000025E9 File Offset: 0x000007E9
public bool NoHoles
{
get
{
return this.noHoles;
}
set
{
this.noHoles = value;
}
}
// Token: 0x17000012 RID: 18
// (get) Token: 0x0600002A RID: 42 RVA: 0x000025F2 File Offset: 0x000007F2
// (set) Token: 0x0600002B RID: 43 RVA: 0x000025FA File Offset: 0x000007FA
public bool Jettison
{
get
{
return this.jettison;
}
set
{
this.jettison = value;
}
}
// Token: 0x04000007 RID: 7
private bool poly;
// Token: 0x04000008 RID: 8
private bool quality;
// Token: 0x04000009 RID: 9
private bool varArea;
// Token: 0x0400000A RID: 10
private bool convex;
// Token: 0x0400000B RID: 11
private bool jettison;
// Token: 0x0400000C RID: 12
private bool boundaryMarkers = true;
// Token: 0x0400000D RID: 13
private bool noHoles;
// Token: 0x0400000E RID: 14
private bool conformDel;
// Token: 0x0400000F RID: 15
private TriangulationAlgorithm algorithm;
// Token: 0x04000010 RID: 16
private Func<ITriangle, double, bool> usertest;
// Token: 0x04000011 RID: 17
private int noBisect;
// Token: 0x04000012 RID: 18
private int steiner = -1;
// Token: 0x04000013 RID: 19
private double minAngle;
// Token: 0x04000014 RID: 20
private double maxAngle;
// Token: 0x04000015 RID: 21
private double maxArea = -1.0;
// Token: 0x04000016 RID: 22
internal bool fixedArea;
// Token: 0x04000017 RID: 23
internal bool useSegments = true;
// Token: 0x04000018 RID: 24
internal bool useRegions;
// Token: 0x04000019 RID: 25
internal double goodAngle;
// Token: 0x0400001A RID: 26
internal double maxGoodAngle;
// Token: 0x0400001B RID: 27
internal double offconstant;
}
}