using System; using System.Collections.Generic; using System.Linq; namespace TriangleNet { // Token: 0x02000010 RID: 16 internal class Sampler { // Token: 0x06000090 RID: 144 RVA: 0x00010FFA File Offset: 0x0000F1FA public void Reset() { this.samples = 1; this.triangleCount = 0; } // Token: 0x06000091 RID: 145 RVA: 0x0001100A File Offset: 0x0000F20A public void Update(Mesh mesh) { this.Update(mesh, false); } // Token: 0x06000092 RID: 146 RVA: 0x00011014 File Offset: 0x0000F214 public void Update(Mesh mesh, bool forceUpdate) { int count = mesh.triangles.Count; if (this.triangleCount != count || forceUpdate) { this.triangleCount = count; while (Sampler.samplefactor * this.samples * this.samples * this.samples < count) { this.samples++; } this.keys = mesh.triangles.Keys.ToArray(); } } // Token: 0x06000093 RID: 147 RVA: 0x00011088 File Offset: 0x0000F288 public int[] GetSamples(Mesh mesh) { List list = new List(this.samples); int num = this.triangleCount / this.samples; for (int i = 0; i < this.samples; i++) { int num2 = Sampler.rand.Next(i * num, (i + 1) * num - 1); if (!mesh.triangles.Keys.Contains(this.keys[num2])) { this.Update(mesh, true); i--; } else { list.Add(this.keys[num2]); } } return list.ToArray(); } // Token: 0x0400007E RID: 126 private static Random rand = new Random(DateTime.Now.Millisecond); // Token: 0x0400007F RID: 127 private int samples = 1; // Token: 0x04000080 RID: 128 private int triangleCount; // Token: 0x04000081 RID: 129 private static int samplefactor = 11; // Token: 0x04000082 RID: 130 private int[] keys; } }