summit/frontend/node_modules/three-stdlib/utils/GeometryUtils.cjs.map

1 line
9.8 KiB
Plaintext
Raw Normal View History

2025-12-08 16:31:30 +00:00
{"version":3,"file":"GeometryUtils.cjs","sources":["../../src/utils/GeometryUtils.ts"],"sourcesContent":["import { Vector3 } from 'three'\n\n/**\n * Generates 2D-Coordinates in a very fast way.\n *\n * Based on work by:\n * @link http://www.openprocessing.org/sketch/15493\n *\n * @param center Center of Hilbert curve.\n * @param size Total width of Hilbert curve.\n * @param iterations Number of subdivisions.\n * @param v0 Corner index -X, -Z.\n * @param v1 Corner index -X, +Z.\n * @param v2 Corner index +X, +Z.\n * @param v3 Corner index +X, -Z.\n */\nconst hilbert2D = (\n center = new Vector3(0, 0, 0),\n size = 10,\n iterations = 1,\n v0 = 0,\n v1 = 1,\n v2 = 2,\n v3 = 3,\n): Vector3[] => {\n // Default Vars\n const half = size / 2\n const vec_s = [\n new Vector3(center.x - half, center.y, center.z - half),\n new Vector3(center.x - half, center.y, center.z + half),\n new Vector3(center.x + half, center.y, center.z + half),\n new Vector3(center.x + half, center.y, center.z - half),\n ]\n\n const vec = [vec_s[v0], vec_s[v1], vec_s[v2], vec_s[v3]]\n\n // Recurse iterations\n if (0 <= --iterations) {\n const tmp: Vector3[] = []\n\n Array.prototype.push.apply(tmp, hilbert2D(vec[0], half, iterations, v0, v3, v2, v1))\n Array.prototype.push.apply(tmp, hilbert2D(vec[1], half, iterations, v0, v1, v2, v3))\n Array.prototype.push.apply(tmp, hilbert2D(vec[2], half, iterations, v0, v1, v2, v3))\n Array.prototype.push.apply(tmp, hilbert2D(vec[3], half, iterations, v2, v1, v0, v3))\n\n // Return recursive call\n return tmp\n }\n\n // Return complete Hilbert Curve.\n return vec\n}\n\n/**\n * Generates 3D-Coordinates in a very fast way.\n *\n * Based on work by:\n * @link http://www.openprocessing.org/visuals/?visualID=15599\n *\n * @param center Center of Hilbert curve.\n * @param size Total width of Hilbert curve.\n * @param iterations Number of subdivisions.\n * @param v0 Corner index -X, +Y, -Z.\n * @param v1 Corner index -X, +Y, +Z.\n * @param v2 Corner index -X, -Y, +Z.\n * @param v3 Corner index -X, -Y, -Z.\n * @param v4 Corner index +X, -Y, -Z.\n * @param v5 Corner index +X, -Y, +Z.\n * @param v6 Corner index +X, +Y, +Z.\n * @param v7 Corner index +X, +Y, -Z.\n */\nconst hilbert3D = (\n center = new Vector3(0, 0, 0),\n size = 10,\n iterations = 1,\n v0 = 0,\n v1 = 1,\n v2 = 2,\n v3 = 3,\n v4 = 4,\n v5 = 5,\n v6 = 6,\n v7 = 7,\n): Vector3[] => {\n // Default Vars\n const half = size / 2\n const vec_s = [\n new Vector3(center.x - half, center.y + half, center.z - half),\n new Vector3(center.x - half, center.y + half, center.z + half),\n new Vector3(center.x - half, center.y - half, center.z + half),\n new Vector3(center.x - half, center.y - half, center.z - half),\n new Vector3(center.x + half, center.y - half, center.z - half),\n new Vector3(center.x + half, center.y - half, center.z + half),\n new Vector3(center.x + half, center.y + half, center.z + half),\n new Vector3(center.x + half, center.y + half, center.z - half),\n ]\n\n const vec = [vec_s[v0], vec_s[v1], vec_s[v2], vec_s[v3], vec_s[v4], vec_s[v5], vec_s[v6], vec_s[v7]]\n\n // Recurse iterations\n if (--iterations >= 0) {\n const tmp: Vector3[] = []\n\n Array.prototype.push.apply(tmp, hilbert3D(vec[0], half, iterations, v0, v3, v4, v7, v6, v5, v2, v1))\n Array.prototype.push.apply(tmp, hilbert3D(vec[1], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3))\n Array.prototype.push.apply(tmp, hilbert3D(vec[2], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3))\n Array.prototype.push.apply(tmp, hilbert3D(vec[3], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5))\n Array.prototype.push.apply(tmp, hilbert3D(vec[4], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5))\n Array.prototype.push.apply(tmp, hilbert3D(vec[5], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7))\n Array.prototype.push.apply(tmp, hilbert3D(vec[6], half, iterations, v4, v3, v2, v5,