message: checkForDuplicateVertices mesh helper method
diff: @@ -103,6 +103,28 @@ export namespace Mesh {
  mesh.normalsComputed = true;
  }
  + export function checkForDuplicateVertices(mesh: Mesh, fractionDigits = 3) {
  + const v = mesh.vertexBuffer.ref.value
  +
  + const map = new Map<string, number>()
  + const hash = (v: Vec3, d: number) => `${v[0].toFixed(d)}|${v[1].toFixed(d)}|${v[2].toFixed(d)}`
  + let duplicates = 0
  +
  + const a = Vec3.zero()
  + for (let i = 0, il = mesh.vertexCount; i < il; ++i) {
  + Vec3.fromArray(a, v, i * 3)
  + const k = hash(a, fractionDigits)
  + const count = map.get(k)
  + if (count !== undefined) {
  + duplicates += 1
  + map.set(k, count + 1)
  + } else {
  + map.set(k, 1)
  + }
  + }
  + return duplicates
  + }
  +
  export function computeNormals(surface: Mesh): Task<Mesh> {
  return Task.create<Mesh>('Surface (Compute Normals)', async ctx => {
  if (surface.normalsComputed) return surface;
  