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 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 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; } }