@selvajs/compute 2.1.0-beta.0 → 2.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/chunk-JPXUC3P5.cjs +54 -0
  2. package/dist/chunk-JPXUC3P5.cjs.map +1 -0
  3. package/dist/chunk-MA6YB3YZ.cjs.map +1 -1
  4. package/dist/{chunk-6GCGLBJM.cjs → chunk-P4SF7AKZ.cjs} +2 -2
  5. package/dist/chunk-P4SF7AKZ.cjs.map +1 -0
  6. package/dist/{chunk-QUD7W5K3.js → chunk-SKAHIC4G.js} +2 -2
  7. package/dist/chunk-Z4TVQVMV.js +54 -0
  8. package/dist/chunk-Z4TVQVMV.js.map +1 -0
  9. package/dist/core.cjs.map +1 -1
  10. package/dist/grasshopper.cjs +1 -1
  11. package/dist/grasshopper.cjs.map +1 -1
  12. package/dist/grasshopper.d.cts +2 -2
  13. package/dist/grasshopper.d.ts +2 -2
  14. package/dist/grasshopper.js +1 -1
  15. package/dist/index.cjs +1 -1
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/{types-DgepKOuU.d.cts → types-BuRCHPlb.d.cts} +6 -1
  21. package/dist/{types-B6KrSthC.d.ts → types-jPuWWtnU.d.ts} +6 -1
  22. package/dist/visualization-R7QUUUWV.js +2 -0
  23. package/dist/visualization-ZDXKGD2L.cjs +2 -0
  24. package/dist/visualization-ZDXKGD2L.cjs.map +1 -0
  25. package/dist/visualization.cjs +1 -1
  26. package/dist/visualization.cjs.map +1 -1
  27. package/dist/visualization.d.cts +173 -2
  28. package/dist/visualization.d.ts +173 -2
  29. package/dist/visualization.js +1 -1
  30. package/package.json +130 -133
  31. package/dist/chunk-6GCGLBJM.cjs.map +0 -1
  32. package/dist/chunk-KAULD2XQ.cjs +0 -2
  33. package/dist/chunk-KAULD2XQ.cjs.map +0 -1
  34. package/dist/chunk-SP73WPYA.js +0 -2
  35. package/dist/chunk-SP73WPYA.js.map +0 -1
  36. package/dist/visualization-5D5Y547Q.cjs +0 -2
  37. package/dist/visualization-5D5Y547Q.cjs.map +0 -1
  38. package/dist/visualization-JF4W754M.js +0 -2
  39. /package/dist/{chunk-QUD7W5K3.js.map → chunk-SKAHIC4G.js.map} +0 -0
  40. /package/dist/{visualization-JF4W754M.js.map → visualization-R7QUUUWV.js.map} +0 -0
package/package.json CHANGED
@@ -1,134 +1,131 @@
1
1
  {
2
- "name": "@selvajs/compute",
3
- "version": "2.1.0-beta.0",
4
- "packageManager": "pnpm@10.18.0",
5
- "description": "TypeScript library for Rhino Compute Server - Grasshopper and RhinoCommon",
6
- "author": "VektorNode",
7
- "license": "MIT",
8
- "repository": {
9
- "type": "git",
10
- "url": "git+https://github.com/VektorNode/selva-compute.git"
11
- },
12
- "type": "module",
13
- "keywords": [
14
- "compute",
15
- "rhino",
16
- "grasshopper",
17
- "geometry",
18
- "3d",
19
- "cad",
20
- "parametric",
21
- "modeling",
22
- "rhino3dm",
23
- "automation",
24
- "geometry-processing",
25
- "design",
26
- "cloud",
27
- "gh",
28
- "rhino.compute",
29
- "computational-design"
30
- ],
31
- "main": "./dist/index.cjs",
32
- "module": "./dist/index.js",
33
- "types": "./dist/index.d.ts",
34
- "exports": {
35
- ".": {
36
- "types": "./dist/index.d.ts",
37
- "import": "./dist/index.js",
38
- "require": "./dist/index.cjs"
39
- },
40
- "./grasshopper": {
41
- "types": "./dist/grasshopper.d.ts",
42
- "import": "./dist/grasshopper.js",
43
- "require": "./dist/grasshopper.cjs"
44
- },
45
- "./visualization": {
46
- "types": "./dist/visualization.d.ts",
47
- "import": "./dist/visualization.js",
48
- "require": "./dist/visualization.cjs"
49
- },
50
- "./core": {
51
- "types": "./dist/core.d.ts",
52
- "import": "./dist/core.js",
53
- "require": "./dist/core.cjs"
54
- }
55
- },
56
- "files": [
57
- "dist",
58
- "README.md",
59
- "LICENSE.md"
60
- ],
61
- "engines": {
62
- "node": ">=20.0.0"
63
- },
64
- "publishConfig": {
65
- "access": "public",
66
- "provenance": false
67
- },
68
- "sideEffects": false,
69
- "scripts": {
70
- "build": " pnpm type-check && pnpm clean && tsup",
71
- "dev": "tsup --watch",
72
- "example": "vite --config vite.config.ts",
73
- "clean": "node --input-type=module -e \"import fs from 'fs'; fs.rmSync('dist', { recursive: true, force: true })\"",
74
- "lint": "eslint .",
75
- "lint:fix": "eslint . --fix",
76
- "format": "prettier --write .",
77
- "format:check": "prettier --check .",
78
- "test": "vitest",
79
- "test:watch": "vitest watch",
80
- "contract:snapshot": "node scripts/fetch-server-contract.mjs",
81
- "contract:check": "node scripts/fetch-server-contract.mjs --check",
82
- "test:seams": "vitest run tests/contract",
83
- "test:seams:live": "RUN_LIVE_CONTRACT=1 vitest run tests/contract/server-contract.live.test.ts",
84
- "type-check": "tsc --noEmit",
85
- "build-docs": "typedoc",
86
- "prepublishOnly": "pnpm build",
87
- "release": "changeset publish",
88
- "prepare": "husky"
89
- },
90
- "lint-staged": {
91
- "*.{ts,js,mjs,svelte,json,md}": "prettier --write",
92
- "*.{ts,js,mjs,svelte}": "eslint --fix"
93
- },
94
- "dependencies": {
95
- "fflate": "^0.8.2",
96
- "rhino3dm": "8.17.0"
97
- },
98
- "peerDependencies": {
99
- "three": ">=0.179.0"
100
- },
101
- "peerDependenciesMeta": {
102
- "three": {
103
- "optional": true
104
- }
105
- },
106
- "devDependencies": {
107
- "@changesets/cli": "^2.30.0",
108
- "@eslint/js": "^9.39.3",
109
- "@types/node": "^25.3.3",
110
- "@types/three": "^0.184.1",
111
- "@vitest/coverage-v8": "^3.2.4",
112
- "esbuild-plugin-file-path-extensions": "^2.1.4",
113
- "eslint": "^10.4.1",
114
- "eslint-config-prettier": "^10.1.8",
115
- "eslint-plugin-svelte": "^3.15.0",
116
- "globals": "^17.4.0",
117
- "husky": "^9.1.7",
118
- "lint-staged": "^17.0.7",
119
- "prettier": "^3.8.1",
120
- "prettier-plugin-svelte": "^4.1.0",
121
- "prettier-plugin-tailwindcss": "^0.8.0",
122
- "svelte": "^5.53.7",
123
- "three": "^0.184.0",
124
- "tsup": "^8.5.1",
125
- "typedoc": "^0.28.17",
126
- "typedoc-plugin-extras": "^4.0.1",
127
- "typedoc-plugin-markdown": "^4.10.0",
128
- "typedoc-plugin-missing-exports": "^4.1.2",
129
- "typescript": "^5.9.3",
130
- "typescript-eslint": "^8.56.1",
131
- "vite": "^8.0.8",
132
- "vitest": "^3.2.4"
133
- }
134
- }
2
+ "name": "@selvajs/compute",
3
+ "version": "2.1.0-beta.1",
4
+ "description": "TypeScript library for Rhino Compute Server - Grasshopper and RhinoCommon",
5
+ "author": "VektorNode",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/VektorNode/selva-compute.git"
10
+ },
11
+ "type": "module",
12
+ "keywords": [
13
+ "compute",
14
+ "rhino",
15
+ "grasshopper",
16
+ "geometry",
17
+ "3d",
18
+ "cad",
19
+ "parametric",
20
+ "modeling",
21
+ "rhino3dm",
22
+ "automation",
23
+ "geometry-processing",
24
+ "design",
25
+ "cloud",
26
+ "gh",
27
+ "rhino.compute",
28
+ "computational-design"
29
+ ],
30
+ "main": "./dist/index.cjs",
31
+ "module": "./dist/index.js",
32
+ "types": "./dist/index.d.ts",
33
+ "exports": {
34
+ ".": {
35
+ "types": "./dist/index.d.ts",
36
+ "import": "./dist/index.js",
37
+ "require": "./dist/index.cjs"
38
+ },
39
+ "./grasshopper": {
40
+ "types": "./dist/grasshopper.d.ts",
41
+ "import": "./dist/grasshopper.js",
42
+ "require": "./dist/grasshopper.cjs"
43
+ },
44
+ "./visualization": {
45
+ "types": "./dist/visualization.d.ts",
46
+ "import": "./dist/visualization.js",
47
+ "require": "./dist/visualization.cjs"
48
+ },
49
+ "./core": {
50
+ "types": "./dist/core.d.ts",
51
+ "import": "./dist/core.js",
52
+ "require": "./dist/core.cjs"
53
+ }
54
+ },
55
+ "files": [
56
+ "dist",
57
+ "README.md",
58
+ "LICENSE.md"
59
+ ],
60
+ "engines": {
61
+ "node": ">=20.0.0"
62
+ },
63
+ "publishConfig": {
64
+ "access": "public",
65
+ "provenance": false
66
+ },
67
+ "sideEffects": false,
68
+ "lint-staged": {
69
+ "*.{ts,js,mjs,svelte,json,md}": "prettier --write",
70
+ "*.{ts,js,mjs,svelte}": "eslint --fix"
71
+ },
72
+ "dependencies": {
73
+ "fflate": "^0.8.2",
74
+ "rhino3dm": "8.17.0"
75
+ },
76
+ "peerDependencies": {
77
+ "three": ">=0.179.0"
78
+ },
79
+ "peerDependenciesMeta": {
80
+ "three": {
81
+ "optional": true
82
+ }
83
+ },
84
+ "devDependencies": {
85
+ "@changesets/cli": "^2.30.0",
86
+ "@eslint/js": "^9.39.3",
87
+ "@types/node": "^25.3.3",
88
+ "@types/three": "^0.184.1",
89
+ "@vitest/coverage-v8": "^3.2.4",
90
+ "esbuild-plugin-file-path-extensions": "^2.1.4",
91
+ "eslint": "^10.4.1",
92
+ "eslint-config-prettier": "^10.1.8",
93
+ "eslint-plugin-svelte": "^3.15.0",
94
+ "globals": "^17.4.0",
95
+ "husky": "^9.1.7",
96
+ "lint-staged": "^17.0.7",
97
+ "prettier": "^3.8.1",
98
+ "prettier-plugin-svelte": "^4.1.0",
99
+ "prettier-plugin-tailwindcss": "^0.8.0",
100
+ "svelte": "^5.53.7",
101
+ "three": "^0.184.0",
102
+ "tsup": "^8.5.1",
103
+ "typedoc": "^0.28.17",
104
+ "typedoc-plugin-extras": "^4.0.1",
105
+ "typedoc-plugin-markdown": "^4.10.0",
106
+ "typedoc-plugin-missing-exports": "^4.1.2",
107
+ "typescript": "^5.9.3",
108
+ "typescript-eslint": "^8.56.1",
109
+ "vite": "^8.0.8",
110
+ "vitest": "^3.2.4"
111
+ },
112
+ "scripts": {
113
+ "build": " pnpm type-check && pnpm clean && tsup",
114
+ "dev": "tsup --watch",
115
+ "example": "vite --config vite.config.ts",
116
+ "clean": "node --input-type=module -e \"import fs from 'fs'; fs.rmSync('dist', { recursive: true, force: true })\"",
117
+ "lint": "eslint .",
118
+ "lint:fix": "eslint . --fix",
119
+ "format": "prettier --write .",
120
+ "format:check": "prettier --check .",
121
+ "test": "vitest",
122
+ "test:watch": "vitest watch",
123
+ "contract:snapshot": "node scripts/fetch-server-contract.mjs",
124
+ "contract:check": "node scripts/fetch-server-contract.mjs --check",
125
+ "test:seams": "vitest run tests/contract",
126
+ "test:seams:live": "RUN_LIVE_CONTRACT=1 vitest run tests/contract/server-contract.live.test.ts",
127
+ "type-check": "tsc --noEmit",
128
+ "build-docs": "typedoc",
129
+ "release": "changeset publish"
130
+ }
131
+ }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["c:\\Users\\felix\\coding\\selva-compute\\dist\\chunk-6GCGLBJM.cjs"],"names":[],"mappings":"AAAA,2/BAA8G,SAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,CAAC,GAAG,EAAE,iCAAC,CAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,8GAA8G,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,uCAAuC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,mBAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,kBAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAE,aAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAA","file":"C:\\Users\\felix\\coding\\selva-compute\\dist\\chunk-6GCGLBJM.cjs","sourcesContent":[null]}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkMA6YB3YZcjs = require('./chunk-MA6YB3YZ.cjs');var _three = require('three'); var c = _interopRequireWildcard(_three); var H = _interopRequireWildcard(_three); var b = _interopRequireWildcard(_three); var M = _interopRequireWildcard(_three); var x = _interopRequireWildcard(_three);var _OrbitControlsjs = require('three/addons/controls/OrbitControls.js');var _HDRLoaderjs = require('three/addons/loaders/HDRLoader.js');var G=new c.Vector3(0,0,1),z=(e,r,n,t)=>{switch(e){case"mm":return r;case"cm":return n;default:return t}},it= exports.a =function(e,r){let n=le(r||{}),t=ue(n),o=Ee(n,e),a=ge(e,n),i=be(o,e,n);fe(t,n),he(t,n),_optionalChain([n, 'access', _2 => _2.floor, 'optionalAccess', _3 => _3.enabled])&&pe(t,n);let s=n.events.enableEventHandlers!==!1?ye(e,t,o,i,n):{dispose:()=>{},fitToView:()=>{},clearSelection:()=>{}},l=e.parentElement,d=()=>l?{width:l.clientWidth,height:l.clientHeight}:{width:window.innerWidth,height:window.innerHeight},{animate:m,dispose:u}=me(a,t,o,i,d,n.events.onFrame);m();let p=_optionalChain([n, 'access', _4 => _4.environment, 'optionalAccess', _5 => _5.sceneUp])||G;return t.up.set(p.x,p.y,p.z),{scene:t,camera:o,controls:i,renderer:a,dispose:()=>{u(),s.dispose(),i.dispose(),a.dispose(),t.traverse(f=>{let w=f;!w.geometry&&!w.material||(_optionalChain([w, 'access', _6 => _6.geometry, 'optionalAccess', _7 => _7.dispose, 'call', _8 => _8()]),Array.isArray(w.material)?w.material.forEach(S=>S.dispose()):_optionalChain([w, 'access', _9 => _9.material, 'optionalAccess', _10 => _10.dispose, 'call', _11 => _11()]))})},fitToView:s.fitToView,clearSelection:s.clearSelection}};function le(e){let r=e.sceneScale||"m",t={mm:{cameraDistance:20,near:.1,far:2e3,floorSize:100,lightDistance:10,lightHeight:20,minDistance:.1,shadowSize:100,scaleFactor:1e3},cm:{cameraDistance:20,near:.1,far:2e3,floorSize:100,lightDistance:25,lightHeight:50,minDistance:.1,shadowSize:100,scaleFactor:100},m:{cameraDistance:10,near:.01,far:2e3,floorSize:50,lightDistance:25,lightHeight:50,minDistance:.001,shadowSize:100,scaleFactor:1},inches:{cameraDistance:15,near:.1,far:2e3,floorSize:80,lightDistance:20,lightHeight:40,minDistance:.1,shadowSize:80,scaleFactor:39.37},feet:{cameraDistance:8,near:.1,far:2e3,floorSize:40,lightDistance:15,lightHeight:30,minDistance:.1,shadowSize:60,scaleFactor:3.28084}}[r];return{sceneScale:r,camera:{position:_optionalChain([e, 'access', _12 => _12.camera, 'optionalAccess', _13 => _13.position])||new c.Vector3(-t.cameraDistance,t.cameraDistance,t.cameraDistance),fov:_optionalChain([e, 'access', _14 => _14.camera, 'optionalAccess', _15 => _15.fov])||20,near:_optionalChain([e, 'access', _16 => _16.camera, 'optionalAccess', _17 => _17.near])||t.near,far:_optionalChain([e, 'access', _18 => _18.camera, 'optionalAccess', _19 => _19.far])||t.far,target:_optionalChain([e, 'access', _20 => _20.camera, 'optionalAccess', _21 => _21.target])||new c.Vector3(0,0,0)},lighting:{enableSunlight:_nullishCoalesce(_optionalChain([e, 'access', _22 => _22.lighting, 'optionalAccess', _23 => _23.enableSunlight]), () => (!0)),sunlightIntensity:_optionalChain([e, 'access', _24 => _24.lighting, 'optionalAccess', _25 => _25.sunlightIntensity])||1,sunlightPosition:_optionalChain([e, 'access', _26 => _26.lighting, 'optionalAccess', _27 => _27.sunlightPosition])||new c.Vector3(t.lightDistance,t.lightHeight,t.lightDistance),ambientLightColor:_optionalChain([e, 'access', _28 => _28.lighting, 'optionalAccess', _29 => _29.ambientLightColor])||new c.Color(4210752),ambientLightIntensity:_optionalChain([e, 'access', _30 => _30.lighting, 'optionalAccess', _31 => _31.ambientLightIntensity])||1,sunlightColor:_optionalChain([e, 'access', _32 => _32.lighting, 'optionalAccess', _33 => _33.sunlightColor])||16777215},environment:{hdrPath:_optionalChain([e, 'access', _34 => _34.environment, 'optionalAccess', _35 => _35.hdrPath])||"/baseHDR.hdr",backgroundColor:_optionalChain([e, 'access', _36 => _36.environment, 'optionalAccess', _37 => _37.backgroundColor])||new c.Color(15790320),enableEnvironmentLighting:_nullishCoalesce(_optionalChain([e, 'access', _38 => _38.environment, 'optionalAccess', _39 => _39.enableEnvironmentLighting]), () => (!0)),sceneUp:_optionalChain([e, 'access', _40 => _40.environment, 'optionalAccess', _41 => _41.sceneUp])||G,showEnvironment:_nullishCoalesce(_optionalChain([e, 'access', _42 => _42.environment, 'optionalAccess', _43 => _43.showEnvironment]), () => (!1))},floor:{enabled:_nullishCoalesce(_optionalChain([e, 'access', _44 => _44.floor, 'optionalAccess', _45 => _45.enabled]), () => (!1)),size:_optionalChain([e, 'access', _46 => _46.floor, 'optionalAccess', _47 => _47.size])||t.floorSize,color:_optionalChain([e, 'access', _48 => _48.floor, 'optionalAccess', _49 => _49.color])||new c.Color(8421504),roughness:_optionalChain([e, 'access', _50 => _50.floor, 'optionalAccess', _51 => _51.roughness])||.7,metalness:_optionalChain([e, 'access', _52 => _52.floor, 'optionalAccess', _53 => _53.metalness])||0,receiveShadow:_nullishCoalesce(_optionalChain([e, 'access', _54 => _54.floor, 'optionalAccess', _55 => _55.receiveShadow]), () => (!0))},render:{enableShadows:_nullishCoalesce(_optionalChain([e, 'access', _56 => _56.render, 'optionalAccess', _57 => _57.enableShadows]), () => (!0)),shadowMapSize:_optionalChain([e, 'access', _58 => _58.render, 'optionalAccess', _59 => _59.shadowMapSize])||2048,antialias:_nullishCoalesce(_optionalChain([e, 'access', _60 => _60.render, 'optionalAccess', _61 => _61.antialias]), () => (!0)),pixelRatio:_optionalChain([e, 'access', _62 => _62.render, 'optionalAccess', _63 => _63.pixelRatio])||Math.min(window.devicePixelRatio,2),toneMapping:_optionalChain([e, 'access', _64 => _64.render, 'optionalAccess', _65 => _65.toneMapping])||c.NeutralToneMapping,toneMappingExposure:_optionalChain([e, 'access', _66 => _66.render, 'optionalAccess', _67 => _67.toneMappingExposure])||1,preserveDrawingBuffer:_nullishCoalesce(_optionalChain([e, 'access', _68 => _68.render, 'optionalAccess', _69 => _69.preserveDrawingBuffer]), () => (!1))},controls:{enableDamping:_nullishCoalesce(_optionalChain([e, 'access', _70 => _70.controls, 'optionalAccess', _71 => _71.enableDamping]), () => (!1)),dampingFactor:_optionalChain([e, 'access', _72 => _72.controls, 'optionalAccess', _73 => _73.dampingFactor])||.05,autoRotate:_nullishCoalesce(_optionalChain([e, 'access', _74 => _74.controls, 'optionalAccess', _75 => _75.autoRotate]), () => (!1)),autoRotateSpeed:_optionalChain([e, 'access', _76 => _76.controls, 'optionalAccess', _77 => _77.autoRotateSpeed])||.5,enableZoom:_nullishCoalesce(_optionalChain([e, 'access', _78 => _78.controls, 'optionalAccess', _79 => _79.enableZoom]), () => (!0)),enablePan:_nullishCoalesce(_optionalChain([e, 'access', _80 => _80.controls, 'optionalAccess', _81 => _81.enablePan]), () => (!0)),minDistance:_optionalChain([e, 'access', _82 => _82.controls, 'optionalAccess', _83 => _83.minDistance])||t.minDistance,maxDistance:_optionalChain([e, 'access', _84 => _84.controls, 'optionalAccess', _85 => _85.maxDistance])||1/0},events:{onBackgroundClicked:_optionalChain([e, 'access', _86 => _86.events, 'optionalAccess', _87 => _87.onBackgroundClicked]),onObjectSelected:_optionalChain([e, 'access', _88 => _88.events, 'optionalAccess', _89 => _89.onObjectSelected]),onMeshMetadataClicked:_optionalChain([e, 'access', _90 => _90.events, 'optionalAccess', _91 => _91.onMeshMetadataClicked]),onMeshDoubleClicked:_optionalChain([e, 'access', _92 => _92.events, 'optionalAccess', _93 => _93.onMeshDoubleClicked]),selectionColor:_optionalChain([e, 'access', _94 => _94.events, 'optionalAccess', _95 => _95.selectionColor])||"#ff0000",enableEventHandlers:_nullishCoalesce(_optionalChain([e, 'access', _96 => _96.events, 'optionalAccess', _97 => _97.enableEventHandlers]), () => (!0)),enableKeyboardControls:_nullishCoalesce(_optionalChain([e, 'access', _98 => _98.events, 'optionalAccess', _99 => _99.enableKeyboardControls]), () => (!0)),enableClickToFocus:_nullishCoalesce(_optionalChain([e, 'access', _100 => _100.events, 'optionalAccess', _101 => _101.enableClickToFocus]), () => (!0)),enableDoubleClickZoom:_nullishCoalesce(_optionalChain([e, 'access', _102 => _102.events, 'optionalAccess', _103 => _103.enableDoubleClickZoom]), () => (!0)),onReady:_optionalChain([e, 'access', _104 => _104.events, 'optionalAccess', _105 => _105.onReady]),onFrame:_optionalChain([e, 'access', _106 => _106.events, 'optionalAccess', _107 => _107.onFrame])}}}function ue(e){let r=new c.Scene,n=typeof e.environment.backgroundColor=="string"?new c.Color(e.environment.backgroundColor):e.environment.backgroundColor;return r.background=n||null,r}function de(e,r,n,t,o=200){let a=e.position.clone(),i=r.target.clone(),s=performance.now(),l=m=>1-Math.pow(1-m,3),d=()=>{let m=performance.now()-s,u=l(Math.min(m/o,1));e.position.lerpVectors(a,n,u),r.target.lerpVectors(i,t,u),r.update(),u<1&&requestAnimationFrame(d)};requestAnimationFrame(d)}function me(e,r,n,t,o,a){let i=null,s=performance.now(),l=()=>{let{width:u,height:p}=o();if(u===0||p===0)return;let y=Math.min(window.devicePixelRatio,2),f=Math.round(u*y),w=Math.round(p*y);(e.domElement.width!==f||e.domElement.height!==w)&&(e.setPixelRatio(y),e.setSize(u,p,!1),n.aspect=u/p,n.updateProjectionMatrix())},d=function(){i=requestAnimationFrame(d);let u=performance.now(),p=(u-s)/1e3;s=u,l(),(t.enableDamping||t.autoRotate)&&t.update(),_optionalChain([a, 'optionalCall', _108 => _108(p)]),e.render(r,n)};return{animate:d,dispose:()=>{i!==null&&(cancelAnimationFrame(i),i=null)}}}function fe(e,r){r.environment.enableEnvironmentLighting?new (0, _HDRLoaderjs.HDRLoader)().load(r.environment.hdrPath||"/baseHDR.hdr",function(n){n.mapping=c.EquirectangularReflectionMapping,e.environment=n,r.environment.showEnvironment&&(e.background=n),_optionalChain([r, 'access', _109 => _109.events, 'access', _110 => _110.onReady, 'optionalCall', _111 => _111()])},void 0,function(n){_chunkMA6YB3YZcjs.e.call(void 0, ).warn("HDR texture could not be loaded, falling back to basic lighting:",n),_optionalChain([r, 'access', _112 => _112.events, 'access', _113 => _113.onReady, 'optionalCall', _114 => _114()])}):_optionalChain([r, 'access', _115 => _115.events, 'access', _116 => _116.onReady, 'optionalCall', _117 => _117()])}function he(e,r){let n=new c.AmbientLight(r.lighting.ambientLightColor,r.lighting.ambientLightIntensity);if(e.add(n),r.lighting.enableSunlight){let t=new c.DirectionalLight(_nullishCoalesce(r.lighting.sunlightColor, () => (16777215)),r.lighting.sunlightIntensity),o=r.lighting.sunlightPosition;if(o&&t.position.set(o.x,o.y,o.z),r.render.enableShadows){t.castShadow=!0;let a=z(r.sceneScale,.1,10,100);t.shadow.camera.left=-a,t.shadow.camera.right=a,t.shadow.camera.top=a,t.shadow.camera.bottom=-a;let i=z(r.sceneScale,.001,.1,.5),s=z(r.sceneScale,1,100,500);t.shadow.camera.near=i,t.shadow.camera.far=s,t.shadow.mapSize.width=r.render.shadowMapSize||2048,t.shadow.mapSize.height=r.render.shadowMapSize||2048,t.shadow.bias=-1e-4,t.shadow.normalBias=.02}e.add(t)}}function pe(e,r){let n=r.floor.size,t=new c.PlaneGeometry(n,n),o=typeof r.floor.color=="string"?new c.Color(r.floor.color):r.floor.color,a=new c.MeshStandardMaterial({color:o,roughness:r.floor.roughness,metalness:r.floor.metalness,side:c.DoubleSide}),i=new c.Mesh(t,a);i.userData.id="floor",i.name="floor",i.rotation.x=-Math.PI/2,i.position.y=0,r.floor.receiveShadow&&r.render.enableShadows&&(i.receiveShadow=!0),e.add(i)}function Ee(e,r){let n=r.parentElement,t=n?n.clientWidth:window.innerWidth,o=n?n.clientHeight:window.innerHeight,a=new c.PerspectiveCamera(e.camera.fov,t/o,e.camera.near,e.camera.far),i=e.camera.position;return i&&a.position.set(i.x,i.y,i.z),a}function ge(e,r){let n=new c.WebGLRenderer({antialias:r.render.antialias,canvas:e,alpha:!0,powerPreference:"high-performance",preserveDrawingBuffer:r.render.preserveDrawingBuffer,logarithmicDepthBuffer:!0}),t=e.parentElement,o=t?t.clientWidth:window.innerWidth,a=t?t.clientHeight:window.innerHeight;return t&&(e.style.width="100%",e.style.height="100%",e.style.display="block"),n.setSize(o,a,!1),n.setPixelRatio(r.render.pixelRatio||Math.min(window.devicePixelRatio,2)),r.render.enableShadows&&(n.shadowMap.enabled=!0,n.shadowMap.type=c.VSMShadowMap),n.toneMapping=r.render.toneMapping,n.toneMappingExposure=r.render.toneMappingExposure||1,n.outputColorSpace=c.SRGBColorSpace,n.sortObjects=!0,n}function ye(e,r,n,t,o){let a=new Set,i=new Map,s=new c.Raycaster,l=new c.Vector2,d=new c.Vector2,m=h=>{let g=h;for(;g;){if(!g.visible)return!1;g=g.parent}return!0},u=()=>{let h=new c.Box3;if(r.traverse(O=>{let P=O;O.visible&&O.userData.id!=="floor"&&P.geometry&&h.expandByObject(O)}),h.isEmpty()){_chunkMA6YB3YZcjs.e.call(void 0, ).warn("No objects to fit to view");return}let g=h.getCenter(new c.Vector3),T=h.getSize(new c.Vector3),A=Math.max(T.x,T.y,T.z),R=n.fov*(Math.PI/180),D=A/(2*Math.tan(R/2));D*=1.5;let L=n.position.clone().sub(t.target).normalize();n.position.copy(g.clone().add(L.multiplyScalar(D))),t.target.copy(g),t.update()},p=typeof o.events.selectionColor=="string"?new c.Color(o.events.selectionColor):o.events.selectionColor instanceof c.Color?o.events.selectionColor:new c.Color("#ff0000"),y=()=>{a.forEach(h=>{h instanceof c.Mesh&&i.has(h)&&(h.material=i.get(h),i.delete(h))}),a.clear()},f=h=>{d.set(h.clientX,h.clientY)},w=h=>{let g=new c.Vector2(h.clientX,h.clientY);if(d.distanceTo(g)>5)return;let T=e.getBoundingClientRect();l.x=(h.clientX-T.left)/T.width*2-1,l.y=-((h.clientY-T.top)/T.height)*2+1,s.setFromCamera(l,n);let A=s.intersectObjects(r.children,!0).filter(R=>m(R.object));if(A.length>0){let R=A[0].object;if(!a.has(R)){if(y(),a.add(R),R instanceof c.Mesh&&R.material instanceof c.Material){i.set(R,R.material);let D=R.material.clone();D.emissive=p.clone(),R.material=D}_optionalChain([o, 'access', _118 => _118.events, 'optionalAccess', _119 => _119.onObjectSelected, 'optionalCall', _120 => _120(R)]),R instanceof c.Mesh&&Object.keys(R.userData).length>0&&_optionalChain([o, 'access', _121 => _121.events, 'optionalAccess', _122 => _122.onMeshMetadataClicked, 'optionalCall', _123 => _123(R.userData)])}}else y(),_optionalChain([o, 'access', _124 => _124.events, 'optionalAccess', _125 => _125.onBackgroundClicked, 'optionalCall', _126 => _126({x:l.x,y:l.y})])},S=h=>{let g=e.getBoundingClientRect();l.x=(h.clientX-g.left)/g.width*2-1,l.y=-((h.clientY-g.top)/g.height)*2+1,s.setFromCamera(l,n);let T=s.intersectObjects(r.children,!0).filter(ae=>m(ae.object));if(T.length===0)return;let A=T[0].object;if(_optionalChain([o, 'access', _127 => _127.events, 'optionalAccess', _128 => _128.onMeshDoubleClicked, 'optionalCall', _129 => _129(A)]),!_optionalChain([o, 'access', _130 => _130.events, 'optionalAccess', _131 => _131.enableDoubleClickZoom]))return;let R=new c.Box3().setFromObject(A);if(R.isEmpty())return;let D=R.getCenter(new c.Vector3),L=R.getSize(new c.Vector3),O=Math.max(L.x,L.y,L.z),P=n.fov*(Math.PI/180),ne=O/(2*Math.tan(P/2))*1.5,re=n.position.clone().sub(t.target).normalize(),oe=D.clone().add(re.multiplyScalar(ne));de(n,t,oe,D)},v=h=>{if(_optionalChain([o, 'access', _132 => _132.events, 'optionalAccess', _133 => _133.enableKeyboardControls]))switch(h.key.toLowerCase()){case"f":h.preventDefault(),u();break;case"escape":h.preventDefault(),y();break;case" ":h.preventDefault(),u();break}};return _optionalChain([o, 'access', _134 => _134.events, 'optionalAccess', _135 => _135.enableClickToFocus])&&(e.addEventListener("mousedown",f),e.addEventListener("click",w),e.addEventListener("dblclick",S)),_optionalChain([o, 'access', _136 => _136.events, 'optionalAccess', _137 => _137.enableKeyboardControls])&&(e.setAttribute("tabindex","0"),e.addEventListener("keydown",v)),{dispose:()=>{e.removeEventListener("mousedown",f),e.removeEventListener("click",w),e.removeEventListener("dblclick",S),e.removeEventListener("keydown",v),y()},fitToView:u,clearSelection:y}}function be(e,r,n){let t=new (0, _OrbitControlsjs.OrbitControls)(e,r),o=n.camera.target;return o&&t.target.set(o.x,o.y,o.z),t.enableDamping=n.controls.enableDamping||!1,t.dampingFactor=n.controls.dampingFactor||.05,t.autoRotate=n.controls.autoRotate||!1,t.autoRotateSpeed=n.controls.autoRotateSpeed||.5,t.enableZoom=_nullishCoalesce(n.controls.enableZoom, () => (!0)),t.enablePan=_nullishCoalesce(n.controls.enablePan, () => (!0)),t.minDistance=n.controls.minDistance||.001,t.maxDistance=n.controls.maxDistance||1/0,t.screenSpacePanning=!1,t.maxPolarAngle=Math.PI,t.update(),t}var B={HUGE_THRESHOLD:1e4,LARGE_THRESHOLD:1e3,SCALE_RATIO_THRESHOLD:100,NEAR_PLANE_FACTOR:{TINY:1e-4,SMALL:.001,NORMAL:.01},FAR_PLANE_FACTOR:{HUGE:100,LARGE:50,NORMAL:20},INITIAL_DISTANCE_MULTIPLIER:4};function lt(e,r,n,t,o){if(Re(e),r.length===0)return;r.forEach(m=>{e.add(m)});let a=_(r),i=a.getCenter(new H.Vector3),s=a.getSize(new H.Vector3),l=Math.max(s.x,s.y,s.z);if(l/Math.min(s.x||1,s.y||1,s.z||1)>B.SCALE_RATIO_THRESHOLD||l>B.HUGE_THRESHOLD?(n.near=l*B.NEAR_PLANE_FACTOR.TINY,n.far=l*B.FAR_PLANE_FACTOR.HUGE):l>B.LARGE_THRESHOLD?(n.near=l*B.NEAR_PLANE_FACTOR.SMALL,n.far=l*B.FAR_PLANE_FACTOR.LARGE):(n.near=Math.max(.01,l*B.NEAR_PLANE_FACTOR.NORMAL),n.far=Math.max(2e3,l*B.FAR_PLANE_FACTOR.NORMAL)),n.updateProjectionMatrix(),o)t.minDistance=n.near*2,t.maxDistance=n.far*.9;else{let m=l*B.INITIAL_DISTANCE_MULTIPLIER;n.position.set(i.x+m*.8,i.y+m,i.z+m*1.2),t.target.copy(i),t.minDistance=n.near*2,t.maxDistance=n.far*.9,t.update()}}function $(e){if(!e||typeof e!="string")return _chunkMA6YB3YZcjs.e.call(void 0, ).warn(`Invalid color input: ${e}, using white`),new H.Color(16777215);let r=e.trim();if(/^#?[0-9A-Fa-f]{6}$/.test(r))try{let n=r.startsWith("#")?r:`#${r}`;return new H.Color(n)}catch (e2){return _chunkMA6YB3YZcjs.e.call(void 0, ).warn(`Invalid hex color: ${e}, using white`),new H.Color(16777215)}if(r.includes(",")){let n=r.split(",").map(t=>parseInt(t.trim(),10));if(n.length===3&&n.every(t=>!isNaN(t)&&t>=0&&t<=255))return new H.Color(n[0]/255,n[1]/255,n[2]/255)}try{return new H.Color(r.toLowerCase())}catch (e3){return _chunkMA6YB3YZcjs.e.call(void 0, ).warn(`Invalid color string: ${e}, using white`),new H.Color(16777215)}}function W(e,r){e.forEach(n=>{n.position.y-=r})}function _(e){let r=new H.Box3;return e.length===0||e.forEach(n=>{n.updateMatrixWorld(!0);let t=new H.Box3().setFromObject(n);r.union(t)}),r}function Re(e){[...e.children].forEach(n=>{n.userData.id!=="floor"&&(n.traverse(t=>{let o=t;if(!o.geometry&&!o.material)return;_optionalChain([o, 'access', _138 => _138.geometry, 'optionalAccess', _139 => _139.dispose, 'call', _140 => _140()]);let a=o.material;if(!a)return;(Array.isArray(a)?a:[a]).forEach(s=>{for(let l of Object.values(s))l instanceof H.Texture&&l.dispose();s.dispose()})}),n.removeFromParent())})}var Se={};_chunkMA6YB3YZcjs.a.call(void 0, Se,{CONCRETE_MATERIAL:()=>Me,EMISSIVE_MATERIAL:()=>Te,GLASS_MATERIAL:()=>xe,METAL_MATERIAL:()=>we,PLASTIC_MATERIAL:()=>He,RUBBER_MATERIAL:()=>ve,WOOD_MATERIAL:()=>Ce});var Te=new b.MeshPhysicalMaterial({color:0,emissive:new b.Color(16777215),emissiveIntensity:5,metalness:0,roughness:.2,clearcoat:.3,clearcoatRoughness:.2,depthWrite:!0,depthTest:!0,transparent:!1,alphaTest:0,polygonOffset:!0,side:b.FrontSide,dithering:!0}),we=new b.MeshPhysicalMaterial({color:new b.Color(0),metalness:.9,roughness:.3,envMapIntensity:1.2,clearcoat:.3,clearcoatRoughness:.2,reflectivity:1,ior:2.5,thickness:1,depthWrite:!0,transparent:!1,alphaTest:0,depthTest:!0,polygonOffset:!0,side:b.FrontSide,dithering:!0}),Me=new b.MeshPhysicalMaterial({color:new b.Color(13421772),metalness:0,roughness:.92,envMapIntensity:.15,clearcoat:.05,clearcoatRoughness:.9,reflectivity:.15,transmission:0,ior:1.45,thickness:0,depthWrite:!0,transparent:!1,alphaTest:.5,depthTest:!0,polygonOffset:!0,side:b.FrontSide,dithering:!0}),He=new b.MeshPhysicalMaterial({color:new b.Color(16777215),metalness:0,roughness:.3,envMapIntensity:.5,clearcoat:.5,clearcoatRoughness:.1,reflectivity:.5,ior:1.4,transmission:0,transparent:!1,depthWrite:!0,side:b.FrontSide,dithering:!0,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),xe=new b.MeshPhysicalMaterial({color:new b.Color(16777215),metalness:0,roughness:0,transmission:.95,transparent:!0,opacity:.3,envMapIntensity:1,clearcoat:1,clearcoatRoughness:0,ior:1.52,reflectivity:.9,thickness:1,side:b.DoubleSide,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),ve=new b.MeshPhysicalMaterial({color:new b.Color(1710618),metalness:0,roughness:.9,envMapIntensity:.2,clearcoat:.1,clearcoatRoughness:.8,reflectivity:.2,ior:1.3,transmission:0,depthWrite:!0,side:b.FrontSide,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),Ce=new b.MeshPhysicalMaterial({color:new b.Color(8934707),metalness:0,roughness:.7,envMapIntensity:.3,clearcoat:.3,clearcoatRoughness:.4,reflectivity:.3,ior:1.3,transmission:0,depthWrite:!0,side:b.FrontSide,dithering:!0,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1});function U(e,r,n,t=!0){return t?{x:e,y:n,z:-r}:{x:e,y:r,z:n}}var Ae="#ffffff",Y=64;function Z(e,r={}){if(!e||e.length===0)return[];let{rhino:n,applyTransforms:t=!0}=r,o=[];for(let a of e)switch(a.kind){case"curve":{let i=De(a,n,t);i&&o.push(i);break}case"point":{o.push(Oe(a,t));break}default:{let i=a;_chunkMA6YB3YZcjs.e.call(void 0, ).warn(`Skipping unknown display item kind: ${String(i.kind)}`);break}}return o}function De(e,r,n){if(!r)return _chunkMA6YB3YZcjs.e.call(void 0, ).warn("No rhino3dm instance provided; skipping curve display item."),null;let t=Be(e.json,r);if(!t)return null;let o=Ie(t,n);if(o.length<2)return null;let a=new M.BufferGeometry().setFromPoints(o),i=new M.LineBasicMaterial(J(e.color,e.opacity)),s=new M.Line(a,i);return s.name=e.name,s.userData={id:e.id,layer:e.layer,kind:"curve",metadata:e.metadata},s}function Oe(e,r){let{x:n,y:t,z:o}=U(e.position.X,e.position.Y,e.position.Z,r),a=new M.BufferGeometry;a.setAttribute("position",new M.Float32BufferAttribute([n,t,o],3));let i=new M.PointsMaterial({...J(e.color,e.opacity),size:6,sizeAttenuation:!1}),s=new M.Points(a,i);return s.name=e.name,s.userData={id:e.id,layer:e.layer,kind:"point",metadata:e.metadata},s}function Be(e,r){try{let n=JSON.parse(e),t=r.CommonObject.decode(n);return t&&typeof t.pointAt=="function"?t:(_chunkMA6YB3YZcjs.e.call(void 0, ).warn("Decoded display-item JSON is not a curve; skipping."),null)}catch(n){return _chunkMA6YB3YZcjs.e.call(void 0, ).warn("Failed to decode curve display item JSON:",n),null}}function Ie(e,r){let n=e.domain,t=n[0],a=n[1]-t,i=[];for(let s=0;s<=Y;s++){let l=t+a*s/Y,d=e.pointAt(l),{x:m,y:u,z:p}=U(d[0],d[1],d[2],r);i.push(new M.Vector3(m,u,p))}return i}function J(e,r){let n=_nullishCoalesce(r, () => (1));return{color:new M.Color(_nullishCoalesce(e, () => (Ae))),transparent:n<1,opacity:n}}var q=1096174675,X= exports.i =1,V= exports.j =1,K=12,Q=56;function N(e){let r=Le(e),n=new DataView(r.buffer,r.byteOffset,r.byteLength);if(r.byteLength<K)throw I("Blob too small to contain SLVA header.",{expectedBytes:K,availableBytes:r.byteLength});let t=0,o=n.getUint32(t,!0);if(t+=4,o!==q)throw I(`Invalid SLVA magic: 0x${o.toString(16)}`,{expectedMagic:`0x${q.toString(16)}`,actualMagic:`0x${o.toString(16)}`});let a=n.getUint32(t,!0);if(t+=4,a!==X)throw I(`Unsupported SLVA version: ${a}`,{expectedVersion:X,actualVersion:a});let i=n.getUint32(t,!0);if(t+=4,t+i>r.byteLength)throw I("Insufficient data to read metadata JSON.",{expectedBytes:i,availableBytes:r.byteLength-t,offset:t});let s=r.subarray(t,t+i);t+=i;let l;try{l=JSON.parse(Pe(s))}catch(O){throw I(`Failed to parse metadata JSON: ${O instanceof Error?O.message:String(O)}`,{metadataLen:i})}if(t+Q>r.byteLength)throw I("Insufficient data to read geometry header.",{expectedBytes:Q,availableBytes:r.byteLength-t,offset:t});let d=n.getUint32(t,!0);t+=4;let m=n.getFloat64(t,!0);t+=8;let u=n.getFloat64(t,!0);t+=8;let p=n.getFloat64(t,!0);t+=8;let y=n.getFloat64(t,!0);t+=8;let f=n.getFloat64(t,!0);t+=8;let w=n.getFloat64(t,!0);t+=8;let S=n.getUint32(t,!0);t+=4;let v=(d&V)!==0,C=S*3,g=C*(v?4:2);if(t+g>r.byteLength)throw I("Insufficient data to read vertices.",{expectedBytes:g,availableBytes:r.byteLength-t,offset:t,useFloat32:v,vertexCount:S});let T=r.byteOffset+t,A=v?ke(r.buffer,T,C):Fe(r.buffer,T,C);if(t+=g,t+4>r.byteLength)throw I("Insufficient data to read index count.",{expectedBytes:4,availableBytes:r.byteLength-t,offset:t});let R=n.getUint32(t,!0);t+=4;let D=R*4;if(t+D>r.byteLength)throw I("Insufficient data to read indices.",{expectedBytes:D,availableBytes:r.byteLength-t,offset:t,indexCount:R});let L=ze(r.buffer,r.byteOffset+t,R);return{metadata:l,flags:d,vertices:A,indices:L,origin:[m,u,p],scale:[y,f,w]}}function Le(e){return typeof e=="string"?_chunkMA6YB3YZcjs.o.call(void 0, e):e instanceof Uint8Array?e:new Uint8Array(e)}function Pe(e){if(typeof TextDecoder<"u")return new TextDecoder("utf-8").decode(e);if(typeof globalThis.Buffer<"u")return globalThis.Buffer.from(e).toString("utf-8");throw new (0, _chunkMA6YB3YZcjs.d)("No UTF-8 decoder available in this environment.",_chunkMA6YB3YZcjs.c.INVALID_STATE)}function Fe(e,r,n){if(n===0)return new Int16Array(0);if(r%2===0)return new Int16Array(e,r,n);let t=new Uint8Array(n*2);return t.set(new Uint8Array(e,r,n*2)),new Int16Array(t.buffer)}function ke(e,r,n){if(n===0)return new Float32Array(0);if(r%4===0)return new Float32Array(e,r,n);let t=new Uint8Array(n*4);return t.set(new Uint8Array(e,r,n*4)),new Float32Array(t.buffer)}function ze(e,r,n){if(n===0)return new Uint32Array(0);if(r%4===0)return new Uint32Array(e,r,n);let t=new Uint8Array(n*4);return t.set(new Uint8Array(e,r,n*4)),new Uint32Array(t.buffer)}function I(e,r){return new (0, _chunkMA6YB3YZcjs.d)(e,_chunkMA6YB3YZcjs.c.VALIDATION_ERROR,{context:r})}async function ee(e,r){let{debug:n=!1}=_nullishCoalesce(r, () => ({})),t=n?performance.now():0;try{let o=performance.now(),a=JSON.parse(e),i=performance.now()-o;return await _e(a,r,{parseTime:i,perfStart:t})}catch(o){return _chunkMA6YB3YZcjs.e.call(void 0, ).error("Error parsing mesh batch:",o),[]}}async function _e(e,r,n){let{mergeByMaterial:t=!0,applyTransforms:o=!0,scaleFactor:a=1,debug:i=!1}=_nullishCoalesce(r, () => ({})),{parseTime:s=0,perfStart:l=i?performance.now():0}=_nullishCoalesce(n, () => ({}));try{let d=performance.now(),m=N(e.compressedData),u=performance.now()-d,p=i?$e(e.compressedData):0;return te(m,{mergeByMaterial:t,applyTransforms:o,scaleFactor:a,debug:i,parseTime:s,decodeTime:u,perfStart:l,blobBytes:p,fallback:{materials:e.materials,groups:e.groups,sourceComponentId:e.sourceComponentId}})}catch(d){return _chunkMA6YB3YZcjs.e.call(void 0, ).error("Error parsing mesh batch object:",d),[]}}async function Tt(e,r){let{mergeByMaterial:n=!0,applyTransforms:t=!0,scaleFactor:o=1,debug:a=!1}=_nullishCoalesce(r, () => ({})),i=a?performance.now():0;try{let s=performance.now(),l=N(e),d=performance.now()-s,m=e.byteLength;return te(l,{mergeByMaterial:n,applyTransforms:t,scaleFactor:o,debug:a,parseTime:0,decodeTime:d,perfStart:i,blobBytes:m})}catch(s){return _chunkMA6YB3YZcjs.e.call(void 0, ).error("Error parsing mesh batch blob:",s),[]}}function te(e,r){let{mergeByMaterial:n,applyTransforms:t,scaleFactor:o,debug:a,parseTime:i,decodeTime:s,perfStart:l,blobBytes:d,fallback:m}=r,u=_nullishCoalesce(_nullishCoalesce(e.metadata.materials, () => (_optionalChain([m, 'optionalAccess', _141 => _141.materials]))), () => ([])),p=_nullishCoalesce(_nullishCoalesce(e.metadata.groups, () => (_optionalChain([m, 'optionalAccess', _142 => _142.groups]))), () => ([])),y=_nullishCoalesce(e.metadata.sourceComponentId, () => (_optionalChain([m, 'optionalAccess', _143 => _143.sourceComponentId]))),f=(e.flags&V)!==0,w=f?Ve(e.vertices,t):Ue(e.vertices,e.origin,e.scale,t);if(a){let g=e.vertices.byteLength+e.indices.byteLength;_chunkMA6YB3YZcjs.e.call(void 0, ).debug("Mesh Batch Stats:"),_chunkMA6YB3YZcjs.e.call(void 0, ).debug(` Materials: ${u.length} | Groups: ${p.length}`),_chunkMA6YB3YZcjs.e.call(void 0, ).debug(` Vertices: ${e.vertices.length/3} | Indices: ${e.indices.length}`),_chunkMA6YB3YZcjs.e.call(void 0, ).debug(` Format: ${f?"float32":"int16 quantized"}`),_chunkMA6YB3YZcjs.e.call(void 0, ).debug(` Blob: ${(d/1024/1024).toFixed(2)} MB | Geometry on wire: ${(g/1024/1024).toFixed(2)} MB`)}let S=performance.now(),v=u.map(Ne),C=[];for(let g of p)if(n&&g.meshes.length>1){let T=je(g,w,e.indices,v);T.userData.sourceComponentId=_nullishCoalesce(y, () => (null)),C.push(T)}else{let T=Ge(g,w,e.indices,v);for(let A of T)A.userData.sourceComponentId=_nullishCoalesce(y, () => (null));C.push(...T)}if(o!==1)for(let g of C)g.scale.set(o,o,o);let h=performance.now()-S;if(a){let g=performance.now()-l;_chunkMA6YB3YZcjs.e.call(void 0, ).debug("Performance:"),i>0&&_chunkMA6YB3YZcjs.e.call(void 0, ).debug(` Parse JSON: ${i.toFixed(2)}ms`),_chunkMA6YB3YZcjs.e.call(void 0, ).debug(` Decode binary: ${s.toFixed(2)}ms`),_chunkMA6YB3YZcjs.e.call(void 0, ).debug(` Create Meshes: ${h.toFixed(2)}ms`),_chunkMA6YB3YZcjs.e.call(void 0, ).debug(` Total: ${g.toFixed(2)}ms`)}return Promise.resolve(C)}function Ue(e,r,n,t){let o=new Float32Array(e.length),a=r[0],i=r[1],s=r[2],l=n[0],d=n[1],m=n[2];if(t)for(let u=0;u<e.length;u+=3){let p=a+(e[u]+32767)*l,y=i+(e[u+1]+32767)*d,f=s+(e[u+2]+32767)*m;o[u]=p,o[u+1]=f,o[u+2]=-y}else for(let u=0;u<e.length;u+=3)o[u]=a+(e[u]+32767)*l,o[u+1]=i+(e[u+1]+32767)*d,o[u+2]=s+(e[u+2]+32767)*m;return o}function Ve(e,r){if(!r)return e;let n=new Float32Array(e.length);for(let t=0;t<e.length;t+=3){let o=e[t],a=e[t+1],i=e[t+2];n[t]=o,n[t+1]=i,n[t+2]=-a}return n}function Ne(e){let r=$(e.color);return new x.MeshPhysicalMaterial({color:r,metalness:e.metalness,roughness:e.roughness,opacity:e.opacity,transparent:e.transparent,side:x.DoubleSide,polygonOffset:!0,polygonOffsetFactor:.5,polygonOffsetUnits:.5,depthWrite:!0,depthTest:!0})}function je(e,r,n,t){let o=0,a=0;for(let f of e.meshes)o+=f.vertexCount,a+=f.indexCount;let i=new Float32Array(o*3),s=new Uint32Array(a),l=0,d=0;for(let f of e.meshes){let w=f.vertexStart*3,S=f.vertexCount*3;i.set(r.subarray(w,w+S),l*3);let v=n.subarray(f.indexStart,f.indexStart+f.indexCount),C=l-f.vertexStart;if(C===0)s.set(v,d);else for(let h=0;h<v.length;h++)s[d+h]=v[h]+C;l+=f.vertexCount,d+=f.indexCount}let m=new x.BufferGeometry;m.setAttribute("position",new x.BufferAttribute(i,3)),m.setIndex(new x.BufferAttribute(s,1)),m.computeVertexNormals();let u=new x.Mesh(m,t[e.materialId]),p=e.meshes[0],y=e.meshes.map(f=>f.name).filter(f=>f&&f.length>0);return u.name=y.length>0?y[0]:`merged_material_${e.materialId}`,u.castShadow=!0,u.receiveShadow=!0,u.userData={name:u.name,layer:_nullishCoalesce(_optionalChain([p, 'optionalAccess', _144 => _144.layer]), () => ("")),originalIndex:_nullishCoalesce(_optionalChain([p, 'optionalAccess', _145 => _145.originalIndex]), () => (0)),metadata:_nullishCoalesce(_optionalChain([p, 'optionalAccess', _146 => _146.metadata]), () => ({})),mergedFrom:e.meshes.slice(1).map(f=>({name:f.name,layer:f.layer,originalIndex:f.originalIndex}))},u}function Ge(e,r,n,t){let o=[];for(let a of e.meshes){let i=a.vertexStart*3,s=a.vertexCount*3,l=r.slice(i,i+s),d=n.subarray(a.indexStart,a.indexStart+a.indexCount),m=new Uint32Array(d.length),u=a.vertexStart;for(let f=0;f<d.length;f++)m[f]=d[f]-u;let p=new x.BufferGeometry;p.setAttribute("position",new x.BufferAttribute(l,3)),p.setIndex(new x.BufferAttribute(m,1)),p.computeVertexNormals();let y=new x.Mesh(p,t[e.materialId]);y.name=a.name,y.userData={name:a.name,layer:_nullishCoalesce(a.layer, () => ("")),originalIndex:a.originalIndex,metadata:_nullishCoalesce(a.metadata, () => ({}))},y.castShadow=!0,y.receiveShadow=!0,o.push(y)}return o}function $e(e){return Math.floor(e.length*3/4)}var We={Millimeters:1/1e3,Centimeters:1/100,Meters:1,Inches:1/39.37,Feet:1/3.28084},Ye="Display";async function Ct(e,r){let n=performance.now(),t=[],{allowScaling:o=!0,allowAutoPosition:a=!0,rhino:i,debug:s=!1,parsing:l={}}=_nullishCoalesce(r, () => ({}));try{let d=o?Ze(e.modelunits):1;return await Je(e,t,d,l,i,s),a&&Qe(t),t}catch(d){throw et(d,t),d}finally{s&&nt(n)}}function Ze(e){return _nullishCoalesce(We[e], () => (1))}async function Je(e,r,n,t,o,a){for(let i of e.values){let s=i.InnerTree;for(let l in s){let d=s[l];d&&await qe(d,r,n,t,o,a)}}}async function qe(e,r,n,t,o,a){for(let i of e){if(!i.type.includes(Ye))continue;let s={mergeByMaterial:!0,applyTransforms:!0,debug:!1,...t},l=await ee(i.data,s),d=Z(Xe(i.data),{rhino:o,applyTransforms:s.applyTransforms}),m=[...l,...d];if(n!==1)for(let u of m)u.scale.set(n,n,n);r.push(...m),a&&_chunkMA6YB3YZcjs.e.call(void 0, ).debug(`Extracted ${l.length} meshes and ${d.length} items from batch`)}}function Xe(e){return_optionalChain([(typeof e=="string"?Ke(e):e), 'optionalAccess', _147 => _147.items])}function Ke(e){try{return JSON.parse(e)}catch (e4){return}}function Qe(e){if(e.length===0)return;let n=_(e).min.y;W(e,n)}function et(e,r){_chunkMA6YB3YZcjs.e.call(void 0, ).error("An unexpected error occurred:",e),tt(r)}function tt(e){for(let r of e){let n=r;n.geometry&&n.geometry.dispose(),n.material&&(Array.isArray(n.material)?n.material.forEach(t=>t.dispose()):n.material.dispose())}}function nt(e){let r=performance.now()-e;_chunkMA6YB3YZcjs.e.call(void 0, ).info("Time to process meshes:",`${r.toFixed(2)}ms`)}exports.a = it; exports.b = lt; exports.c = $; exports.d = W; exports.e = _; exports.f = Se; exports.g = Z; exports.h = q; exports.i = X; exports.j = V; exports.k = N; exports.l = ee; exports.m = _e; exports.n = Tt; exports.o = We; exports.p = Ct;
2
- //# sourceMappingURL=chunk-KAULD2XQ.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["c:\\Users\\felix\\coding\\selva-compute\\dist\\chunk-KAULD2XQ.cjs"],"names":[],"mappings":"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","file":"C:\\Users\\felix\\coding\\selva-compute\\dist\\chunk-KAULD2XQ.cjs","sourcesContent":[null]}
@@ -1,2 +0,0 @@
1
- import{a as ie,c as F,d as k,e as E,o as j}from"./chunk-GTTKNF4G.js";import*as c from"three";import{OrbitControls as se}from"three/addons/controls/OrbitControls.js";import{HDRLoader as ce}from"three/addons/loaders/HDRLoader.js";var G=new c.Vector3(0,0,1),z=(e,r,n,t)=>{switch(e){case"mm":return r;case"cm":return n;default:return t}},it=function(e,r){let n=le(r||{}),t=ue(n),o=Ee(n,e),a=ge(e,n),i=be(o,e,n);fe(t,n),he(t,n),n.floor?.enabled&&pe(t,n);let s=n.events.enableEventHandlers!==!1?ye(e,t,o,i,n):{dispose:()=>{},fitToView:()=>{},clearSelection:()=>{}},l=e.parentElement,d=()=>l?{width:l.clientWidth,height:l.clientHeight}:{width:window.innerWidth,height:window.innerHeight},{animate:m,dispose:u}=me(a,t,o,i,d,n.events.onFrame);m();let p=n.environment?.sceneUp||G;return t.up.set(p.x,p.y,p.z),{scene:t,camera:o,controls:i,renderer:a,dispose:()=>{u(),s.dispose(),i.dispose(),a.dispose(),t.traverse(f=>{let w=f;!w.geometry&&!w.material||(w.geometry?.dispose(),Array.isArray(w.material)?w.material.forEach(S=>S.dispose()):w.material?.dispose())})},fitToView:s.fitToView,clearSelection:s.clearSelection}};function le(e){let r=e.sceneScale||"m",t={mm:{cameraDistance:20,near:.1,far:2e3,floorSize:100,lightDistance:10,lightHeight:20,minDistance:.1,shadowSize:100,scaleFactor:1e3},cm:{cameraDistance:20,near:.1,far:2e3,floorSize:100,lightDistance:25,lightHeight:50,minDistance:.1,shadowSize:100,scaleFactor:100},m:{cameraDistance:10,near:.01,far:2e3,floorSize:50,lightDistance:25,lightHeight:50,minDistance:.001,shadowSize:100,scaleFactor:1},inches:{cameraDistance:15,near:.1,far:2e3,floorSize:80,lightDistance:20,lightHeight:40,minDistance:.1,shadowSize:80,scaleFactor:39.37},feet:{cameraDistance:8,near:.1,far:2e3,floorSize:40,lightDistance:15,lightHeight:30,minDistance:.1,shadowSize:60,scaleFactor:3.28084}}[r];return{sceneScale:r,camera:{position:e.camera?.position||new c.Vector3(-t.cameraDistance,t.cameraDistance,t.cameraDistance),fov:e.camera?.fov||20,near:e.camera?.near||t.near,far:e.camera?.far||t.far,target:e.camera?.target||new c.Vector3(0,0,0)},lighting:{enableSunlight:e.lighting?.enableSunlight??!0,sunlightIntensity:e.lighting?.sunlightIntensity||1,sunlightPosition:e.lighting?.sunlightPosition||new c.Vector3(t.lightDistance,t.lightHeight,t.lightDistance),ambientLightColor:e.lighting?.ambientLightColor||new c.Color(4210752),ambientLightIntensity:e.lighting?.ambientLightIntensity||1,sunlightColor:e.lighting?.sunlightColor||16777215},environment:{hdrPath:e.environment?.hdrPath||"/baseHDR.hdr",backgroundColor:e.environment?.backgroundColor||new c.Color(15790320),enableEnvironmentLighting:e.environment?.enableEnvironmentLighting??!0,sceneUp:e.environment?.sceneUp||G,showEnvironment:e.environment?.showEnvironment??!1},floor:{enabled:e.floor?.enabled??!1,size:e.floor?.size||t.floorSize,color:e.floor?.color||new c.Color(8421504),roughness:e.floor?.roughness||.7,metalness:e.floor?.metalness||0,receiveShadow:e.floor?.receiveShadow??!0},render:{enableShadows:e.render?.enableShadows??!0,shadowMapSize:e.render?.shadowMapSize||2048,antialias:e.render?.antialias??!0,pixelRatio:e.render?.pixelRatio||Math.min(window.devicePixelRatio,2),toneMapping:e.render?.toneMapping||c.NeutralToneMapping,toneMappingExposure:e.render?.toneMappingExposure||1,preserveDrawingBuffer:e.render?.preserveDrawingBuffer??!1},controls:{enableDamping:e.controls?.enableDamping??!1,dampingFactor:e.controls?.dampingFactor||.05,autoRotate:e.controls?.autoRotate??!1,autoRotateSpeed:e.controls?.autoRotateSpeed||.5,enableZoom:e.controls?.enableZoom??!0,enablePan:e.controls?.enablePan??!0,minDistance:e.controls?.minDistance||t.minDistance,maxDistance:e.controls?.maxDistance||1/0},events:{onBackgroundClicked:e.events?.onBackgroundClicked,onObjectSelected:e.events?.onObjectSelected,onMeshMetadataClicked:e.events?.onMeshMetadataClicked,onMeshDoubleClicked:e.events?.onMeshDoubleClicked,selectionColor:e.events?.selectionColor||"#ff0000",enableEventHandlers:e.events?.enableEventHandlers??!0,enableKeyboardControls:e.events?.enableKeyboardControls??!0,enableClickToFocus:e.events?.enableClickToFocus??!0,enableDoubleClickZoom:e.events?.enableDoubleClickZoom??!0,onReady:e.events?.onReady,onFrame:e.events?.onFrame}}}function ue(e){let r=new c.Scene,n=typeof e.environment.backgroundColor=="string"?new c.Color(e.environment.backgroundColor):e.environment.backgroundColor;return r.background=n||null,r}function de(e,r,n,t,o=200){let a=e.position.clone(),i=r.target.clone(),s=performance.now(),l=m=>1-Math.pow(1-m,3),d=()=>{let m=performance.now()-s,u=l(Math.min(m/o,1));e.position.lerpVectors(a,n,u),r.target.lerpVectors(i,t,u),r.update(),u<1&&requestAnimationFrame(d)};requestAnimationFrame(d)}function me(e,r,n,t,o,a){let i=null,s=performance.now(),l=()=>{let{width:u,height:p}=o();if(u===0||p===0)return;let y=Math.min(window.devicePixelRatio,2),f=Math.round(u*y),w=Math.round(p*y);(e.domElement.width!==f||e.domElement.height!==w)&&(e.setPixelRatio(y),e.setSize(u,p,!1),n.aspect=u/p,n.updateProjectionMatrix())},d=function(){i=requestAnimationFrame(d);let u=performance.now(),p=(u-s)/1e3;s=u,l(),(t.enableDamping||t.autoRotate)&&t.update(),a?.(p),e.render(r,n)};return{animate:d,dispose:()=>{i!==null&&(cancelAnimationFrame(i),i=null)}}}function fe(e,r){r.environment.enableEnvironmentLighting?new ce().load(r.environment.hdrPath||"/baseHDR.hdr",function(n){n.mapping=c.EquirectangularReflectionMapping,e.environment=n,r.environment.showEnvironment&&(e.background=n),r.events.onReady?.()},void 0,function(n){E().warn("HDR texture could not be loaded, falling back to basic lighting:",n),r.events.onReady?.()}):r.events.onReady?.()}function he(e,r){let n=new c.AmbientLight(r.lighting.ambientLightColor,r.lighting.ambientLightIntensity);if(e.add(n),r.lighting.enableSunlight){let t=new c.DirectionalLight(r.lighting.sunlightColor??16777215,r.lighting.sunlightIntensity),o=r.lighting.sunlightPosition;if(o&&t.position.set(o.x,o.y,o.z),r.render.enableShadows){t.castShadow=!0;let a=z(r.sceneScale,.1,10,100);t.shadow.camera.left=-a,t.shadow.camera.right=a,t.shadow.camera.top=a,t.shadow.camera.bottom=-a;let i=z(r.sceneScale,.001,.1,.5),s=z(r.sceneScale,1,100,500);t.shadow.camera.near=i,t.shadow.camera.far=s,t.shadow.mapSize.width=r.render.shadowMapSize||2048,t.shadow.mapSize.height=r.render.shadowMapSize||2048,t.shadow.bias=-1e-4,t.shadow.normalBias=.02}e.add(t)}}function pe(e,r){let n=r.floor.size,t=new c.PlaneGeometry(n,n),o=typeof r.floor.color=="string"?new c.Color(r.floor.color):r.floor.color,a=new c.MeshStandardMaterial({color:o,roughness:r.floor.roughness,metalness:r.floor.metalness,side:c.DoubleSide}),i=new c.Mesh(t,a);i.userData.id="floor",i.name="floor",i.rotation.x=-Math.PI/2,i.position.y=0,r.floor.receiveShadow&&r.render.enableShadows&&(i.receiveShadow=!0),e.add(i)}function Ee(e,r){let n=r.parentElement,t=n?n.clientWidth:window.innerWidth,o=n?n.clientHeight:window.innerHeight,a=new c.PerspectiveCamera(e.camera.fov,t/o,e.camera.near,e.camera.far),i=e.camera.position;return i&&a.position.set(i.x,i.y,i.z),a}function ge(e,r){let n=new c.WebGLRenderer({antialias:r.render.antialias,canvas:e,alpha:!0,powerPreference:"high-performance",preserveDrawingBuffer:r.render.preserveDrawingBuffer,logarithmicDepthBuffer:!0}),t=e.parentElement,o=t?t.clientWidth:window.innerWidth,a=t?t.clientHeight:window.innerHeight;return t&&(e.style.width="100%",e.style.height="100%",e.style.display="block"),n.setSize(o,a,!1),n.setPixelRatio(r.render.pixelRatio||Math.min(window.devicePixelRatio,2)),r.render.enableShadows&&(n.shadowMap.enabled=!0,n.shadowMap.type=c.VSMShadowMap),n.toneMapping=r.render.toneMapping,n.toneMappingExposure=r.render.toneMappingExposure||1,n.outputColorSpace=c.SRGBColorSpace,n.sortObjects=!0,n}function ye(e,r,n,t,o){let a=new Set,i=new Map,s=new c.Raycaster,l=new c.Vector2,d=new c.Vector2,m=h=>{let g=h;for(;g;){if(!g.visible)return!1;g=g.parent}return!0},u=()=>{let h=new c.Box3;if(r.traverse(O=>{let P=O;O.visible&&O.userData.id!=="floor"&&P.geometry&&h.expandByObject(O)}),h.isEmpty()){E().warn("No objects to fit to view");return}let g=h.getCenter(new c.Vector3),T=h.getSize(new c.Vector3),A=Math.max(T.x,T.y,T.z),R=n.fov*(Math.PI/180),D=A/(2*Math.tan(R/2));D*=1.5;let L=n.position.clone().sub(t.target).normalize();n.position.copy(g.clone().add(L.multiplyScalar(D))),t.target.copy(g),t.update()},p=typeof o.events.selectionColor=="string"?new c.Color(o.events.selectionColor):o.events.selectionColor instanceof c.Color?o.events.selectionColor:new c.Color("#ff0000"),y=()=>{a.forEach(h=>{h instanceof c.Mesh&&i.has(h)&&(h.material=i.get(h),i.delete(h))}),a.clear()},f=h=>{d.set(h.clientX,h.clientY)},w=h=>{let g=new c.Vector2(h.clientX,h.clientY);if(d.distanceTo(g)>5)return;let T=e.getBoundingClientRect();l.x=(h.clientX-T.left)/T.width*2-1,l.y=-((h.clientY-T.top)/T.height)*2+1,s.setFromCamera(l,n);let A=s.intersectObjects(r.children,!0).filter(R=>m(R.object));if(A.length>0){let R=A[0].object;if(!a.has(R)){if(y(),a.add(R),R instanceof c.Mesh&&R.material instanceof c.Material){i.set(R,R.material);let D=R.material.clone();D.emissive=p.clone(),R.material=D}o.events?.onObjectSelected?.(R),R instanceof c.Mesh&&Object.keys(R.userData).length>0&&o.events?.onMeshMetadataClicked?.(R.userData)}}else y(),o.events?.onBackgroundClicked?.({x:l.x,y:l.y})},S=h=>{let g=e.getBoundingClientRect();l.x=(h.clientX-g.left)/g.width*2-1,l.y=-((h.clientY-g.top)/g.height)*2+1,s.setFromCamera(l,n);let T=s.intersectObjects(r.children,!0).filter(ae=>m(ae.object));if(T.length===0)return;let A=T[0].object;if(o.events?.onMeshDoubleClicked?.(A),!o.events?.enableDoubleClickZoom)return;let R=new c.Box3().setFromObject(A);if(R.isEmpty())return;let D=R.getCenter(new c.Vector3),L=R.getSize(new c.Vector3),O=Math.max(L.x,L.y,L.z),P=n.fov*(Math.PI/180),ne=O/(2*Math.tan(P/2))*1.5,re=n.position.clone().sub(t.target).normalize(),oe=D.clone().add(re.multiplyScalar(ne));de(n,t,oe,D)},v=h=>{if(o.events?.enableKeyboardControls)switch(h.key.toLowerCase()){case"f":h.preventDefault(),u();break;case"escape":h.preventDefault(),y();break;case" ":h.preventDefault(),u();break}};return o.events?.enableClickToFocus&&(e.addEventListener("mousedown",f),e.addEventListener("click",w),e.addEventListener("dblclick",S)),o.events?.enableKeyboardControls&&(e.setAttribute("tabindex","0"),e.addEventListener("keydown",v)),{dispose:()=>{e.removeEventListener("mousedown",f),e.removeEventListener("click",w),e.removeEventListener("dblclick",S),e.removeEventListener("keydown",v),y()},fitToView:u,clearSelection:y}}function be(e,r,n){let t=new se(e,r),o=n.camera.target;return o&&t.target.set(o.x,o.y,o.z),t.enableDamping=n.controls.enableDamping||!1,t.dampingFactor=n.controls.dampingFactor||.05,t.autoRotate=n.controls.autoRotate||!1,t.autoRotateSpeed=n.controls.autoRotateSpeed||.5,t.enableZoom=n.controls.enableZoom??!0,t.enablePan=n.controls.enablePan??!0,t.minDistance=n.controls.minDistance||.001,t.maxDistance=n.controls.maxDistance||1/0,t.screenSpacePanning=!1,t.maxPolarAngle=Math.PI,t.update(),t}import*as H from"three";var B={HUGE_THRESHOLD:1e4,LARGE_THRESHOLD:1e3,SCALE_RATIO_THRESHOLD:100,NEAR_PLANE_FACTOR:{TINY:1e-4,SMALL:.001,NORMAL:.01},FAR_PLANE_FACTOR:{HUGE:100,LARGE:50,NORMAL:20},INITIAL_DISTANCE_MULTIPLIER:4};function lt(e,r,n,t,o){if(Re(e),r.length===0)return;r.forEach(m=>{e.add(m)});let a=_(r),i=a.getCenter(new H.Vector3),s=a.getSize(new H.Vector3),l=Math.max(s.x,s.y,s.z);if(l/Math.min(s.x||1,s.y||1,s.z||1)>B.SCALE_RATIO_THRESHOLD||l>B.HUGE_THRESHOLD?(n.near=l*B.NEAR_PLANE_FACTOR.TINY,n.far=l*B.FAR_PLANE_FACTOR.HUGE):l>B.LARGE_THRESHOLD?(n.near=l*B.NEAR_PLANE_FACTOR.SMALL,n.far=l*B.FAR_PLANE_FACTOR.LARGE):(n.near=Math.max(.01,l*B.NEAR_PLANE_FACTOR.NORMAL),n.far=Math.max(2e3,l*B.FAR_PLANE_FACTOR.NORMAL)),n.updateProjectionMatrix(),o)t.minDistance=n.near*2,t.maxDistance=n.far*.9;else{let m=l*B.INITIAL_DISTANCE_MULTIPLIER;n.position.set(i.x+m*.8,i.y+m,i.z+m*1.2),t.target.copy(i),t.minDistance=n.near*2,t.maxDistance=n.far*.9,t.update()}}function $(e){if(!e||typeof e!="string")return E().warn(`Invalid color input: ${e}, using white`),new H.Color(16777215);let r=e.trim();if(/^#?[0-9A-Fa-f]{6}$/.test(r))try{let n=r.startsWith("#")?r:`#${r}`;return new H.Color(n)}catch{return E().warn(`Invalid hex color: ${e}, using white`),new H.Color(16777215)}if(r.includes(",")){let n=r.split(",").map(t=>parseInt(t.trim(),10));if(n.length===3&&n.every(t=>!isNaN(t)&&t>=0&&t<=255))return new H.Color(n[0]/255,n[1]/255,n[2]/255)}try{return new H.Color(r.toLowerCase())}catch{return E().warn(`Invalid color string: ${e}, using white`),new H.Color(16777215)}}function W(e,r){e.forEach(n=>{n.position.y-=r})}function _(e){let r=new H.Box3;return e.length===0||e.forEach(n=>{n.updateMatrixWorld(!0);let t=new H.Box3().setFromObject(n);r.union(t)}),r}function Re(e){[...e.children].forEach(n=>{n.userData.id!=="floor"&&(n.traverse(t=>{let o=t;if(!o.geometry&&!o.material)return;o.geometry?.dispose();let a=o.material;if(!a)return;(Array.isArray(a)?a:[a]).forEach(s=>{for(let l of Object.values(s))l instanceof H.Texture&&l.dispose();s.dispose()})}),n.removeFromParent())})}var Se={};ie(Se,{CONCRETE_MATERIAL:()=>Me,EMISSIVE_MATERIAL:()=>Te,GLASS_MATERIAL:()=>xe,METAL_MATERIAL:()=>we,PLASTIC_MATERIAL:()=>He,RUBBER_MATERIAL:()=>ve,WOOD_MATERIAL:()=>Ce});import*as b from"three";var Te=new b.MeshPhysicalMaterial({color:0,emissive:new b.Color(16777215),emissiveIntensity:5,metalness:0,roughness:.2,clearcoat:.3,clearcoatRoughness:.2,depthWrite:!0,depthTest:!0,transparent:!1,alphaTest:0,polygonOffset:!0,side:b.FrontSide,dithering:!0}),we=new b.MeshPhysicalMaterial({color:new b.Color(0),metalness:.9,roughness:.3,envMapIntensity:1.2,clearcoat:.3,clearcoatRoughness:.2,reflectivity:1,ior:2.5,thickness:1,depthWrite:!0,transparent:!1,alphaTest:0,depthTest:!0,polygonOffset:!0,side:b.FrontSide,dithering:!0}),Me=new b.MeshPhysicalMaterial({color:new b.Color(13421772),metalness:0,roughness:.92,envMapIntensity:.15,clearcoat:.05,clearcoatRoughness:.9,reflectivity:.15,transmission:0,ior:1.45,thickness:0,depthWrite:!0,transparent:!1,alphaTest:.5,depthTest:!0,polygonOffset:!0,side:b.FrontSide,dithering:!0}),He=new b.MeshPhysicalMaterial({color:new b.Color(16777215),metalness:0,roughness:.3,envMapIntensity:.5,clearcoat:.5,clearcoatRoughness:.1,reflectivity:.5,ior:1.4,transmission:0,transparent:!1,depthWrite:!0,side:b.FrontSide,dithering:!0,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),xe=new b.MeshPhysicalMaterial({color:new b.Color(16777215),metalness:0,roughness:0,transmission:.95,transparent:!0,opacity:.3,envMapIntensity:1,clearcoat:1,clearcoatRoughness:0,ior:1.52,reflectivity:.9,thickness:1,side:b.DoubleSide,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),ve=new b.MeshPhysicalMaterial({color:new b.Color(1710618),metalness:0,roughness:.9,envMapIntensity:.2,clearcoat:.1,clearcoatRoughness:.8,reflectivity:.2,ior:1.3,transmission:0,depthWrite:!0,side:b.FrontSide,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}),Ce=new b.MeshPhysicalMaterial({color:new b.Color(8934707),metalness:0,roughness:.7,envMapIntensity:.3,clearcoat:.3,clearcoatRoughness:.4,reflectivity:.3,ior:1.3,transmission:0,depthWrite:!0,side:b.FrontSide,dithering:!0,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1});import*as M from"three";function U(e,r,n,t=!0){return t?{x:e,y:n,z:-r}:{x:e,y:r,z:n}}var Ae="#ffffff",Y=64;function Z(e,r={}){if(!e||e.length===0)return[];let{rhino:n,applyTransforms:t=!0}=r,o=[];for(let a of e)switch(a.kind){case"curve":{let i=De(a,n,t);i&&o.push(i);break}case"point":{o.push(Oe(a,t));break}default:{let i=a;E().warn(`Skipping unknown display item kind: ${String(i.kind)}`);break}}return o}function De(e,r,n){if(!r)return E().warn("No rhino3dm instance provided; skipping curve display item."),null;let t=Be(e.json,r);if(!t)return null;let o=Ie(t,n);if(o.length<2)return null;let a=new M.BufferGeometry().setFromPoints(o),i=new M.LineBasicMaterial(J(e.color,e.opacity)),s=new M.Line(a,i);return s.name=e.name,s.userData={id:e.id,layer:e.layer,kind:"curve",metadata:e.metadata},s}function Oe(e,r){let{x:n,y:t,z:o}=U(e.position.X,e.position.Y,e.position.Z,r),a=new M.BufferGeometry;a.setAttribute("position",new M.Float32BufferAttribute([n,t,o],3));let i=new M.PointsMaterial({...J(e.color,e.opacity),size:6,sizeAttenuation:!1}),s=new M.Points(a,i);return s.name=e.name,s.userData={id:e.id,layer:e.layer,kind:"point",metadata:e.metadata},s}function Be(e,r){try{let n=JSON.parse(e),t=r.CommonObject.decode(n);return t&&typeof t.pointAt=="function"?t:(E().warn("Decoded display-item JSON is not a curve; skipping."),null)}catch(n){return E().warn("Failed to decode curve display item JSON:",n),null}}function Ie(e,r){let n=e.domain,t=n[0],a=n[1]-t,i=[];for(let s=0;s<=Y;s++){let l=t+a*s/Y,d=e.pointAt(l),{x:m,y:u,z:p}=U(d[0],d[1],d[2],r);i.push(new M.Vector3(m,u,p))}return i}function J(e,r){let n=r??1;return{color:new M.Color(e??Ae),transparent:n<1,opacity:n}}var q=1096174675,X=1,V=1,K=12,Q=56;function N(e){let r=Le(e),n=new DataView(r.buffer,r.byteOffset,r.byteLength);if(r.byteLength<K)throw I("Blob too small to contain SLVA header.",{expectedBytes:K,availableBytes:r.byteLength});let t=0,o=n.getUint32(t,!0);if(t+=4,o!==q)throw I(`Invalid SLVA magic: 0x${o.toString(16)}`,{expectedMagic:`0x${q.toString(16)}`,actualMagic:`0x${o.toString(16)}`});let a=n.getUint32(t,!0);if(t+=4,a!==X)throw I(`Unsupported SLVA version: ${a}`,{expectedVersion:X,actualVersion:a});let i=n.getUint32(t,!0);if(t+=4,t+i>r.byteLength)throw I("Insufficient data to read metadata JSON.",{expectedBytes:i,availableBytes:r.byteLength-t,offset:t});let s=r.subarray(t,t+i);t+=i;let l;try{l=JSON.parse(Pe(s))}catch(O){throw I(`Failed to parse metadata JSON: ${O instanceof Error?O.message:String(O)}`,{metadataLen:i})}if(t+Q>r.byteLength)throw I("Insufficient data to read geometry header.",{expectedBytes:Q,availableBytes:r.byteLength-t,offset:t});let d=n.getUint32(t,!0);t+=4;let m=n.getFloat64(t,!0);t+=8;let u=n.getFloat64(t,!0);t+=8;let p=n.getFloat64(t,!0);t+=8;let y=n.getFloat64(t,!0);t+=8;let f=n.getFloat64(t,!0);t+=8;let w=n.getFloat64(t,!0);t+=8;let S=n.getUint32(t,!0);t+=4;let v=(d&V)!==0,C=S*3,g=C*(v?4:2);if(t+g>r.byteLength)throw I("Insufficient data to read vertices.",{expectedBytes:g,availableBytes:r.byteLength-t,offset:t,useFloat32:v,vertexCount:S});let T=r.byteOffset+t,A=v?ke(r.buffer,T,C):Fe(r.buffer,T,C);if(t+=g,t+4>r.byteLength)throw I("Insufficient data to read index count.",{expectedBytes:4,availableBytes:r.byteLength-t,offset:t});let R=n.getUint32(t,!0);t+=4;let D=R*4;if(t+D>r.byteLength)throw I("Insufficient data to read indices.",{expectedBytes:D,availableBytes:r.byteLength-t,offset:t,indexCount:R});let L=ze(r.buffer,r.byteOffset+t,R);return{metadata:l,flags:d,vertices:A,indices:L,origin:[m,u,p],scale:[y,f,w]}}function Le(e){return typeof e=="string"?j(e):e instanceof Uint8Array?e:new Uint8Array(e)}function Pe(e){if(typeof TextDecoder<"u")return new TextDecoder("utf-8").decode(e);if(typeof globalThis.Buffer<"u")return globalThis.Buffer.from(e).toString("utf-8");throw new k("No UTF-8 decoder available in this environment.",F.INVALID_STATE)}function Fe(e,r,n){if(n===0)return new Int16Array(0);if(r%2===0)return new Int16Array(e,r,n);let t=new Uint8Array(n*2);return t.set(new Uint8Array(e,r,n*2)),new Int16Array(t.buffer)}function ke(e,r,n){if(n===0)return new Float32Array(0);if(r%4===0)return new Float32Array(e,r,n);let t=new Uint8Array(n*4);return t.set(new Uint8Array(e,r,n*4)),new Float32Array(t.buffer)}function ze(e,r,n){if(n===0)return new Uint32Array(0);if(r%4===0)return new Uint32Array(e,r,n);let t=new Uint8Array(n*4);return t.set(new Uint8Array(e,r,n*4)),new Uint32Array(t.buffer)}function I(e,r){return new k(e,F.VALIDATION_ERROR,{context:r})}import*as x from"three";async function ee(e,r){let{debug:n=!1}=r??{},t=n?performance.now():0;try{let o=performance.now(),a=JSON.parse(e),i=performance.now()-o;return await _e(a,r,{parseTime:i,perfStart:t})}catch(o){return E().error("Error parsing mesh batch:",o),[]}}async function _e(e,r,n){let{mergeByMaterial:t=!0,applyTransforms:o=!0,scaleFactor:a=1,debug:i=!1}=r??{},{parseTime:s=0,perfStart:l=i?performance.now():0}=n??{};try{let d=performance.now(),m=N(e.compressedData),u=performance.now()-d,p=i?$e(e.compressedData):0;return te(m,{mergeByMaterial:t,applyTransforms:o,scaleFactor:a,debug:i,parseTime:s,decodeTime:u,perfStart:l,blobBytes:p,fallback:{materials:e.materials,groups:e.groups,sourceComponentId:e.sourceComponentId}})}catch(d){return E().error("Error parsing mesh batch object:",d),[]}}async function Tt(e,r){let{mergeByMaterial:n=!0,applyTransforms:t=!0,scaleFactor:o=1,debug:a=!1}=r??{},i=a?performance.now():0;try{let s=performance.now(),l=N(e),d=performance.now()-s,m=e.byteLength;return te(l,{mergeByMaterial:n,applyTransforms:t,scaleFactor:o,debug:a,parseTime:0,decodeTime:d,perfStart:i,blobBytes:m})}catch(s){return E().error("Error parsing mesh batch blob:",s),[]}}function te(e,r){let{mergeByMaterial:n,applyTransforms:t,scaleFactor:o,debug:a,parseTime:i,decodeTime:s,perfStart:l,blobBytes:d,fallback:m}=r,u=e.metadata.materials??m?.materials??[],p=e.metadata.groups??m?.groups??[],y=e.metadata.sourceComponentId??m?.sourceComponentId,f=(e.flags&V)!==0,w=f?Ve(e.vertices,t):Ue(e.vertices,e.origin,e.scale,t);if(a){let g=e.vertices.byteLength+e.indices.byteLength;E().debug("Mesh Batch Stats:"),E().debug(` Materials: ${u.length} | Groups: ${p.length}`),E().debug(` Vertices: ${e.vertices.length/3} | Indices: ${e.indices.length}`),E().debug(` Format: ${f?"float32":"int16 quantized"}`),E().debug(` Blob: ${(d/1024/1024).toFixed(2)} MB | Geometry on wire: ${(g/1024/1024).toFixed(2)} MB`)}let S=performance.now(),v=u.map(Ne),C=[];for(let g of p)if(n&&g.meshes.length>1){let T=je(g,w,e.indices,v);T.userData.sourceComponentId=y??null,C.push(T)}else{let T=Ge(g,w,e.indices,v);for(let A of T)A.userData.sourceComponentId=y??null;C.push(...T)}if(o!==1)for(let g of C)g.scale.set(o,o,o);let h=performance.now()-S;if(a){let g=performance.now()-l;E().debug("Performance:"),i>0&&E().debug(` Parse JSON: ${i.toFixed(2)}ms`),E().debug(` Decode binary: ${s.toFixed(2)}ms`),E().debug(` Create Meshes: ${h.toFixed(2)}ms`),E().debug(` Total: ${g.toFixed(2)}ms`)}return Promise.resolve(C)}function Ue(e,r,n,t){let o=new Float32Array(e.length),a=r[0],i=r[1],s=r[2],l=n[0],d=n[1],m=n[2];if(t)for(let u=0;u<e.length;u+=3){let p=a+(e[u]+32767)*l,y=i+(e[u+1]+32767)*d,f=s+(e[u+2]+32767)*m;o[u]=p,o[u+1]=f,o[u+2]=-y}else for(let u=0;u<e.length;u+=3)o[u]=a+(e[u]+32767)*l,o[u+1]=i+(e[u+1]+32767)*d,o[u+2]=s+(e[u+2]+32767)*m;return o}function Ve(e,r){if(!r)return e;let n=new Float32Array(e.length);for(let t=0;t<e.length;t+=3){let o=e[t],a=e[t+1],i=e[t+2];n[t]=o,n[t+1]=i,n[t+2]=-a}return n}function Ne(e){let r=$(e.color);return new x.MeshPhysicalMaterial({color:r,metalness:e.metalness,roughness:e.roughness,opacity:e.opacity,transparent:e.transparent,side:x.DoubleSide,polygonOffset:!0,polygonOffsetFactor:.5,polygonOffsetUnits:.5,depthWrite:!0,depthTest:!0})}function je(e,r,n,t){let o=0,a=0;for(let f of e.meshes)o+=f.vertexCount,a+=f.indexCount;let i=new Float32Array(o*3),s=new Uint32Array(a),l=0,d=0;for(let f of e.meshes){let w=f.vertexStart*3,S=f.vertexCount*3;i.set(r.subarray(w,w+S),l*3);let v=n.subarray(f.indexStart,f.indexStart+f.indexCount),C=l-f.vertexStart;if(C===0)s.set(v,d);else for(let h=0;h<v.length;h++)s[d+h]=v[h]+C;l+=f.vertexCount,d+=f.indexCount}let m=new x.BufferGeometry;m.setAttribute("position",new x.BufferAttribute(i,3)),m.setIndex(new x.BufferAttribute(s,1)),m.computeVertexNormals();let u=new x.Mesh(m,t[e.materialId]),p=e.meshes[0],y=e.meshes.map(f=>f.name).filter(f=>f&&f.length>0);return u.name=y.length>0?y[0]:`merged_material_${e.materialId}`,u.castShadow=!0,u.receiveShadow=!0,u.userData={name:u.name,layer:p?.layer??"",originalIndex:p?.originalIndex??0,metadata:p?.metadata??{},mergedFrom:e.meshes.slice(1).map(f=>({name:f.name,layer:f.layer,originalIndex:f.originalIndex}))},u}function Ge(e,r,n,t){let o=[];for(let a of e.meshes){let i=a.vertexStart*3,s=a.vertexCount*3,l=r.slice(i,i+s),d=n.subarray(a.indexStart,a.indexStart+a.indexCount),m=new Uint32Array(d.length),u=a.vertexStart;for(let f=0;f<d.length;f++)m[f]=d[f]-u;let p=new x.BufferGeometry;p.setAttribute("position",new x.BufferAttribute(l,3)),p.setIndex(new x.BufferAttribute(m,1)),p.computeVertexNormals();let y=new x.Mesh(p,t[e.materialId]);y.name=a.name,y.userData={name:a.name,layer:a.layer??"",originalIndex:a.originalIndex,metadata:a.metadata??{}},y.castShadow=!0,y.receiveShadow=!0,o.push(y)}return o}function $e(e){return Math.floor(e.length*3/4)}var We={Millimeters:1/1e3,Centimeters:1/100,Meters:1,Inches:1/39.37,Feet:1/3.28084},Ye="Display";async function Ct(e,r){let n=performance.now(),t=[],{allowScaling:o=!0,allowAutoPosition:a=!0,rhino:i,debug:s=!1,parsing:l={}}=r??{};try{let d=o?Ze(e.modelunits):1;return await Je(e,t,d,l,i,s),a&&Qe(t),t}catch(d){throw et(d,t),d}finally{s&&nt(n)}}function Ze(e){return We[e]??1}async function Je(e,r,n,t,o,a){for(let i of e.values){let s=i.InnerTree;for(let l in s){let d=s[l];d&&await qe(d,r,n,t,o,a)}}}async function qe(e,r,n,t,o,a){for(let i of e){if(!i.type.includes(Ye))continue;let s={mergeByMaterial:!0,applyTransforms:!0,debug:!1,...t},l=await ee(i.data,s),d=Z(Xe(i.data),{rhino:o,applyTransforms:s.applyTransforms}),m=[...l,...d];if(n!==1)for(let u of m)u.scale.set(n,n,n);r.push(...m),a&&E().debug(`Extracted ${l.length} meshes and ${d.length} items from batch`)}}function Xe(e){return(typeof e=="string"?Ke(e):e)?.items}function Ke(e){try{return JSON.parse(e)}catch{return}}function Qe(e){if(e.length===0)return;let n=_(e).min.y;W(e,n)}function et(e,r){E().error("An unexpected error occurred:",e),tt(r)}function tt(e){for(let r of e){let n=r;n.geometry&&n.geometry.dispose(),n.material&&(Array.isArray(n.material)?n.material.forEach(t=>t.dispose()):n.material.dispose())}}function nt(e){let r=performance.now()-e;E().info("Time to process meshes:",`${r.toFixed(2)}ms`)}export{it as a,lt as b,$ as c,W as d,_ as e,Se as f,Z as g,q as h,X as i,V as j,N as k,ee as l,_e as m,Tt as n,We as o,Ct as p};
2
- //# sourceMappingURL=chunk-SP73WPYA.js.map