@anov/3d 0.0.307 → 0.0.308

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.
package/dist/anov3d.js CHANGED
@@ -1,5 +1,11 @@
1
1
  var _excluded = ["position"];
2
2
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
3
9
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
10
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
11
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
@@ -11,7 +17,6 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
11
17
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
18
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
19
  import { MathUtils, SceneControl, Vector3, utils } from '@anov/3d-core';
14
- import { initPostEffects } from '@anov/3d-ability';
15
20
  import EventBus from "./module/eventBus";
16
21
  import { object2Vector3 } from "./utils/index";
17
22
  import { defaultCameraParams } from "./index";
@@ -67,7 +72,68 @@ var Anov3D = /*#__PURE__*/function () {
67
72
  scene.render(opts.container);
68
73
  // scene.controls.target.copy(object2Vector3(defaultCameraParams.lookAt))
69
74
  scene.controls.target.copy(new Vector3().fromArray(cameraParams.target || [0, 0, 0]));
70
- initPostEffects(scene.scene, scene.renderer, scene.camera);
75
+ setInterval(function () {
76
+ var info = scene.renderer.info;
77
+ console.table({
78
+ 几何体数量: info.memory.geometries,
79
+ 纹理数量: info.memory.textures,
80
+ 渲染调用: info.render.calls,
81
+ 三角面数: info.render.triangles
82
+ });
83
+
84
+ // 运行这段,找出纹理重复和大小分布
85
+ var textureInfo = [];
86
+ var textureMap = new Map(); // url → texture 引用次数
87
+
88
+ scene.scene.traverse(function (obj) {
89
+ if (!obj.isMesh) return;
90
+ var mats = Array.isArray(obj.material) ? obj.material : [obj.material];
91
+ mats.forEach(function (mat) {
92
+ var slots = ['map', 'normalMap', 'roughnessMap', 'metalnessMap', 'aoMap', 'emissiveMap', 'alphaMap', 'lightMap'];
93
+ slots.forEach(function (slot) {
94
+ var tex = mat[slot];
95
+ if (!tex) return;
96
+ var uuid = tex.uuid;
97
+ if (!textureMap.has(uuid)) {
98
+ var _tex$image, _tex$image2, _tex$image3, _tex$image4;
99
+ textureMap.set(uuid, {
100
+ slot: slot,
101
+ name: tex.name || '未命名',
102
+ width: ((_tex$image = tex.image) === null || _tex$image === void 0 ? void 0 : _tex$image.width) || 0,
103
+ height: ((_tex$image2 = tex.image) === null || _tex$image2 === void 0 ? void 0 : _tex$image2.height) || 0,
104
+ count: 0,
105
+ // 估算内存占用 MB(RGBA × w × h)
106
+ memMB: ((((_tex$image3 = tex.image) === null || _tex$image3 === void 0 ? void 0 : _tex$image3.width) || 0) * (((_tex$image4 = tex.image) === null || _tex$image4 === void 0 ? void 0 : _tex$image4.height) || 0) * 4 / 1024 / 1024).toFixed(1)
107
+ });
108
+ }
109
+ textureMap.get(uuid).count++;
110
+ });
111
+ });
112
+ });
113
+
114
+ // 按内存占用排序
115
+ var sorted = _toConsumableArray(textureMap.values()).sort(function (a, b) {
116
+ return b.memMB - a.memMB;
117
+ });
118
+ console.log('纹理总数:', textureMap.size);
119
+ console.log('Top 20 最大纹理:');
120
+ console.table(sorted.slice(0, 20));
121
+
122
+ // 统计重复引用
123
+ var duplicates = sorted.filter(function (t) {
124
+ return t.count > 1;
125
+ });
126
+ console.log('被多次引用的纹理:', duplicates.length);
127
+
128
+ // 估算总显存
129
+ var totalMem = sorted.reduce(function (sum, t) {
130
+ return sum + parseFloat(t.memMB);
131
+ }, 0);
132
+ console.log("\u4F30\u7B97\u7EB9\u7406\u663E\u5B58: ".concat((totalMem / 1024).toFixed(2), " GB"));
133
+ }, 15000);
134
+
135
+ // initPostEffects(scene.scene, scene.renderer, scene.camera)
136
+
71
137
  utils.emitter.emit('scene-completed', scene);
72
138
 
73
139
  // 不考虑 tree-shaking
@@ -1 +1 @@
1
- {"version":3,"names":["MathUtils","SceneControl","Vector3","utils","initPostEffects","EventBus","object2Vector3","defaultCameraParams","Anov3D","opts","_camera$limit","_classCallCheck","_defineProperty","_opts$camera","camera","_opts$container","container","clientWidth","clientHeight","defaultPosition","position","defaultRest","_objectWithoutProperties","_excluded","limit","pitch","min","max","Math","cameraParams","_objectSpread","fromArray","orbitControls","scene","defCameraOps","aspect","rendererOps","shadowMap","reset","css2DRenderer","css3DRenderer","ambientLight","render","controls","target","copy","renderer","emitter","emit","sceneControl","eventBus","storeManagement","set","_createClass","key","value","getOrbitControls","params","yaw","distance","length","minPolarAngle","degToRad","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","minDistance","maxDistance"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { MathUtils, SceneControl, Vector3, utils } from '@anov/3d-core'\nimport { initPostEffects } from '@anov/3d-ability'\nimport EventBus from './module/eventBus'\nimport { object2Vector3 } from './utils/index'\nimport type { InitOptions } from './applicationApiType'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n camera?: InitOptions['camera']\n}\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n\n // 获取默认和传入的相机参数\n const { camera = {}, container: { clientWidth, clientHeight } } = opts\n const { position: defaultPosition, ...defaultRest } = defaultCameraParams\n\n // 俯仰角转换,SCC取值范围是-90-90,转换到0-180\n if (camera.limit?.pitch) {\n const { pitch } = camera.limit\n const min = 90 - pitch[0]\n const max = 90 - pitch[1]\n camera.limit.pitch = [Math.min(min, max), Math.max(min, max)]\n }\n // 初始化相机参数\n const cameraParams = {\n limit: {},\n ...defaultRest,\n ...camera,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultPosition),\n }\n // const orbitControls = this.getOrbitControls(cameraParams.limit) // 控制器参数\n const orbitControls = { limit: cameraParams.limit } // 控制器参数\n const scene = new SceneControl({\n defCameraOps: {\n ...cameraParams,\n aspect: clientWidth / clientHeight,\n },\n rendererOps: {\n shadowMap: true,\n },\n orbitControls,\n reset: true,\n css2DRenderer: true,\n css3DRenderer: true,\n ambientLight: true,\n })\n scene.render(opts.container)\n // scene.controls.target.copy(object2Vector3(defaultCameraParams.lookAt))\n scene.controls.target!.copy(new Vector3().fromArray(cameraParams.target! || [0, 0, 0]))\n\n initPostEffects(scene.scene, scene.renderer, scene.camera)\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n this.eventBus = new EventBus(this as any)\n\n utils.storeManagement.set('event-bus', this.eventBus)\n utils.emitter.emit('instantiation-completed', this)\n }\n\n getOrbitControls(params: { pitch?: number[]\n yaw?: number[]\n distance?: number[] }) {\n const { pitch, yaw, distance } = params\n const orbitControls: any = {}\n if (pitch?.length > 1) {\n orbitControls.minPolarAngle = MathUtils.degToRad(pitch[0])\n orbitControls.maxPolarAngle = MathUtils.degToRad(pitch[1])\n }\n if (yaw?.length > 1) {\n orbitControls.minAzimuthAngle = MathUtils.degToRad(yaw[0])\n orbitControls.maxAzimuthAngle = MathUtils.degToRad(yaw[1])\n }\n if (distance?.length > 1) {\n orbitControls.minDistance = distance[0]\n orbitControls.maxDistance = distance[1]\n }\n return orbitControls\n }\n}\n\nexport default Anov3D"],"mappings":"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"}
1
+ {"version":3,"names":["MathUtils","SceneControl","Vector3","utils","EventBus","object2Vector3","defaultCameraParams","Anov3D","opts","_camera$limit","_classCallCheck","_defineProperty","_opts$camera","camera","_opts$container","container","clientWidth","clientHeight","defaultPosition","position","defaultRest","_objectWithoutProperties","_excluded","limit","pitch","min","max","Math","cameraParams","_objectSpread","fromArray","orbitControls","scene","defCameraOps","aspect","rendererOps","shadowMap","reset","css2DRenderer","css3DRenderer","ambientLight","render","controls","target","copy","setInterval","info","renderer","console","table","几何体数量","memory","geometries","纹理数量","textures","渲染调用","calls","三角面数","triangles","textureInfo","textureMap","Map","traverse","obj","isMesh","mats","Array","isArray","material","forEach","mat","slots","slot","tex","uuid","has","_tex$image","_tex$image2","_tex$image3","_tex$image4","set","name","width","image","height","count","memMB","toFixed","get","sorted","_toConsumableArray","values","sort","a","b","log","size","slice","duplicates","filter","t","length","totalMem","reduce","sum","parseFloat","concat","emitter","emit","sceneControl","eventBus","storeManagement","_createClass","key","value","getOrbitControls","params","yaw","distance","minPolarAngle","degToRad","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","minDistance","maxDistance"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { MathUtils, SceneControl, Vector3, utils } from '@anov/3d-core'\nimport { initPostEffects } from '@anov/3d-ability'\nimport EventBus from './module/eventBus'\nimport { object2Vector3 } from './utils/index'\nimport type { InitOptions } from './applicationApiType'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n camera?: InitOptions['camera']\n}\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n\n // 获取默认和传入的相机参数\n const { camera = {}, container: { clientWidth, clientHeight } } = opts\n const { position: defaultPosition, ...defaultRest } = defaultCameraParams\n\n // 俯仰角转换,SCC取值范围是-90-90,转换到0-180\n if (camera.limit?.pitch) {\n const { pitch } = camera.limit\n const min = 90 - pitch[0]\n const max = 90 - pitch[1]\n camera.limit.pitch = [Math.min(min, max), Math.max(min, max)]\n }\n // 初始化相机参数\n const cameraParams = {\n limit: {},\n ...defaultRest,\n ...camera,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultPosition),\n }\n // const orbitControls = this.getOrbitControls(cameraParams.limit) // 控制器参数\n const orbitControls = { limit: cameraParams.limit } // 控制器参数\n const scene = new SceneControl({\n defCameraOps: {\n ...cameraParams,\n aspect: clientWidth / clientHeight,\n },\n rendererOps: {\n shadowMap: true,\n },\n orbitControls,\n reset: true,\n css2DRenderer: true,\n css3DRenderer: true,\n ambientLight: true,\n })\n scene.render(opts.container)\n // scene.controls.target.copy(object2Vector3(defaultCameraParams.lookAt))\n scene.controls.target!.copy(new Vector3().fromArray(cameraParams.target! || [0, 0, 0]))\n\n setInterval(() => {\n const info = scene.renderer.info\n console.table({\n 几何体数量: info.memory.geometries,\n 纹理数量: info.memory.textures,\n 渲染调用: info.render.calls,\n 三角面数: info.render.triangles,\n })\n\n // 运行这段,找出纹理重复和大小分布\n const textureInfo = []\n const textureMap = new Map() // url → texture 引用次数\n\n scene.scene.traverse((obj) => {\n if (!obj.isMesh)\n return\n const mats = Array.isArray(obj.material) ? obj.material : [obj.material]\n\n mats.forEach((mat) => {\n const slots = [\n 'map', 'normalMap', 'roughnessMap', 'metalnessMap',\n 'aoMap', 'emissiveMap', 'alphaMap', 'lightMap',\n ]\n slots.forEach((slot) => {\n const tex = mat[slot]\n if (!tex)\n return\n\n const uuid = tex.uuid\n if (!textureMap.has(uuid)) {\n textureMap.set(uuid, {\n slot,\n name: tex.name || '未命名',\n width: tex.image?.width || 0,\n height: tex.image?.height || 0,\n count: 0,\n // 估算内存占用 MB(RGBA × w × h)\n memMB: ((tex.image?.width || 0) * (tex.image?.height || 0) * 4 / 1024 / 1024).toFixed(1),\n })\n }\n textureMap.get(uuid).count++\n })\n })\n })\n\n // 按内存占用排序\n const sorted = [...textureMap.values()]\n .sort((a, b) => b.memMB - a.memMB)\n\n console.log('纹理总数:', textureMap.size)\n console.log('Top 20 最大纹理:')\n console.table(sorted.slice(0, 20))\n\n // 统计重复引用\n const duplicates = sorted.filter(t => t.count > 1)\n console.log('被多次引用的纹理:', duplicates.length)\n\n // 估算总显存\n const totalMem = sorted.reduce((sum, t) => sum + parseFloat(t.memMB), 0)\n console.log(`估算纹理显存: ${(totalMem / 1024).toFixed(2)} GB`)\n }, 15000)\n\n // initPostEffects(scene.scene, scene.renderer, scene.camera)\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n this.eventBus = new EventBus(this as any)\n\n utils.storeManagement.set('event-bus', this.eventBus)\n utils.emitter.emit('instantiation-completed', this)\n }\n\n getOrbitControls(params: { pitch?: number[]\n yaw?: number[]\n distance?: number[] }) {\n const { pitch, yaw, distance } = params\n const orbitControls: any = {}\n if (pitch?.length > 1) {\n orbitControls.minPolarAngle = MathUtils.degToRad(pitch[0])\n orbitControls.maxPolarAngle = MathUtils.degToRad(pitch[1])\n }\n if (yaw?.length > 1) {\n orbitControls.minAzimuthAngle = MathUtils.degToRad(yaw[0])\n orbitControls.maxAzimuthAngle = MathUtils.degToRad(yaw[1])\n }\n if (distance?.length > 1) {\n orbitControls.minDistance = distance[0]\n orbitControls.maxDistance = distance[1]\n }\n return orbitControls\n }\n}\n\nexport default Anov3D"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAASA,SAAS,EAAEC,YAAY,EAAEC,OAAO,EAAEC,KAAK,QAAQ,eAAe;AAEvE,OAAOC,QAAQ;AACf,SAASC,cAAc;AAEvB,SAASC,mBAAmB;AAAiB,IAOvCC,MAAM;EAMV,SAAAA,OAAYC,IAAmB,EAAE;IAAA,IAAAC,aAAA;IAAAC,eAAA,OAAAH,MAAA;IAAAI,eAAA,oBALrB,CAAC;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAMX,IAAI,CAACH,IAAI,GAAGA,IAAI;;IAEhB;IACA,IAAAI,YAAA,GAAkEJ,IAAI,CAA9DK,MAAM;MAANA,MAAM,GAAAD,YAAA,cAAG,CAAC,CAAC,GAAAA,YAAA;MAAAE,eAAA,GAA+CN,IAAI,CAAjDO,SAAS;MAAIC,WAAW,GAAAF,eAAA,CAAXE,WAAW;MAAEC,YAAY,GAAAH,eAAA,CAAZG,YAAY;IAC3D,IAAkBC,eAAe,GAAqBZ,mBAAmB,CAAjEa,QAAQ;MAAsBC,WAAW,GAAAC,wBAAA,CAAKf,mBAAmB,EAAAgB,SAAA;;IAEzE;IACA,KAAAb,aAAA,GAAII,MAAM,CAACU,KAAK,cAAAd,aAAA,eAAZA,aAAA,CAAce,KAAK,EAAE;MACvB,IAAQA,KAAK,GAAKX,MAAM,CAACU,KAAK,CAAtBC,KAAK;MACb,IAAMC,GAAG,GAAG,EAAE,GAAGD,KAAK,CAAC,CAAC,CAAC;MACzB,IAAME,GAAG,GAAG,EAAE,GAAGF,KAAK,CAAC,CAAC,CAAC;MACzBX,MAAM,CAACU,KAAK,CAACC,KAAK,GAAG,CAACG,IAAI,CAACF,GAAG,CAACA,GAAG,EAAEC,GAAG,CAAC,EAAEC,IAAI,CAACD,GAAG,CAACD,GAAG,EAAEC,GAAG,CAAC,CAAC;IAC/D;IACA;IACA,IAAME,YAAY,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA;MAChBN,KAAK,EAAE,CAAC;IAAC,GACNH,WAAW,GACXP,MAAM;MACTM,QAAQ,EAAEN,MAAM,CAACM,QAAQ,GAAG,IAAIjB,OAAO,CAAC,CAAC,CAAC4B,SAAS,CAACjB,MAAM,CAACM,QAAQ,CAAC,GAAGd,cAAc,CAACa,eAAe;IAAC,EACvG;IACD;IACA,IAAMa,aAAa,GAAG;MAAER,KAAK,EAAEK,YAAY,CAACL;IAAM,CAAC,EAAC;IACpD,IAAMS,KAAK,GAAG,IAAI/B,YAAY,CAAC;MAC7BgC,YAAY,EAAAJ,aAAA,CAAAA,aAAA,KACPD,YAAY;QACfM,MAAM,EAAElB,WAAW,GAAGC;MAAY,EACnC;MACDkB,WAAW,EAAE;QACXC,SAAS,EAAE;MACb,CAAC;MACDL,aAAa,EAAbA,aAAa;MACbM,KAAK,EAAE,IAAI;MACXC,aAAa,EAAE,IAAI;MACnBC,aAAa,EAAE,IAAI;MACnBC,YAAY,EAAE;IAChB,CAAC,CAAC;IACFR,KAAK,CAACS,MAAM,CAACjC,IAAI,CAACO,SAAS,CAAC;IAC5B;IACAiB,KAAK,CAACU,QAAQ,CAACC,MAAM,CAAEC,IAAI,CAAC,IAAI1C,OAAO,CAAC,CAAC,CAAC4B,SAAS,CAACF,YAAY,CAACe,MAAM,IAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvFE,WAAW,CAAC,YAAM;MAChB,IAAMC,IAAI,GAAGd,KAAK,CAACe,QAAQ,CAACD,IAAI;MAChCE,OAAO,CAACC,KAAK,CAAC;QACZC,KAAK,EAAEJ,IAAI,CAACK,MAAM,CAACC,UAAU;QAC7BC,IAAI,EAAEP,IAAI,CAACK,MAAM,CAACG,QAAQ;QAC1BC,IAAI,EAAET,IAAI,CAACL,MAAM,CAACe,KAAK;QACvBC,IAAI,EAAEX,IAAI,CAACL,MAAM,CAACiB;MACpB,CAAC,CAAC;;MAEF;MACA,IAAMC,WAAW,GAAG,EAAE;MACtB,IAAMC,UAAU,GAAG,IAAIC,GAAG,CAAC,CAAC,EAAC;;MAE7B7B,KAAK,CAACA,KAAK,CAAC8B,QAAQ,CAAC,UAACC,GAAG,EAAK;QAC5B,IAAI,CAACA,GAAG,CAACC,MAAM,EACb;QACF,IAAMC,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACJ,GAAG,CAACK,QAAQ,CAAC,GAAGL,GAAG,CAACK,QAAQ,GAAG,CAACL,GAAG,CAACK,QAAQ,CAAC;QAExEH,IAAI,CAACI,OAAO,CAAC,UAACC,GAAG,EAAK;UACpB,IAAMC,KAAK,GAAG,CACZ,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAClD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAC/C;UACDA,KAAK,CAACF,OAAO,CAAC,UAACG,IAAI,EAAK;YACtB,IAAMC,GAAG,GAAGH,GAAG,CAACE,IAAI,CAAC;YACrB,IAAI,CAACC,GAAG,EACN;YAEF,IAAMC,IAAI,GAAGD,GAAG,CAACC,IAAI;YACrB,IAAI,CAACd,UAAU,CAACe,GAAG,CAACD,IAAI,CAAC,EAAE;cAAA,IAAAE,UAAA,EAAAC,WAAA,EAAAC,WAAA,EAAAC,WAAA;cACzBnB,UAAU,CAACoB,GAAG,CAACN,IAAI,EAAE;gBACnBF,IAAI,EAAJA,IAAI;gBACJS,IAAI,EAAER,GAAG,CAACQ,IAAI,IAAI,KAAK;gBACvBC,KAAK,EAAE,EAAAN,UAAA,GAAAH,GAAG,CAACU,KAAK,cAAAP,UAAA,uBAATA,UAAA,CAAWM,KAAK,KAAI,CAAC;gBAC5BE,MAAM,EAAE,EAAAP,WAAA,GAAAJ,GAAG,CAACU,KAAK,cAAAN,WAAA,uBAATA,WAAA,CAAWO,MAAM,KAAI,CAAC;gBAC9BC,KAAK,EAAE,CAAC;gBACR;gBACAC,KAAK,EAAE,CAAC,CAAC,EAAAR,WAAA,GAAAL,GAAG,CAACU,KAAK,cAAAL,WAAA,uBAATA,WAAA,CAAWI,KAAK,KAAI,CAAC,KAAK,EAAAH,WAAA,GAAAN,GAAG,CAACU,KAAK,cAAAJ,WAAA,uBAATA,WAAA,CAAWK,MAAM,KAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAEG,OAAO,CAAC,CAAC;cACzF,CAAC,CAAC;YACJ;YACA3B,UAAU,CAAC4B,GAAG,CAACd,IAAI,CAAC,CAACW,KAAK,EAAE;UAC9B,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;;MAEF;MACA,IAAMI,MAAM,GAAGC,kBAAA,CAAI9B,UAAU,CAAC+B,MAAM,CAAC,CAAC,EACnCC,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;QAAA,OAAKA,CAAC,CAACR,KAAK,GAAGO,CAAC,CAACP,KAAK;MAAA,EAAC;MAEpCtC,OAAO,CAAC+C,GAAG,CAAC,OAAO,EAAEnC,UAAU,CAACoC,IAAI,CAAC;MACrChD,OAAO,CAAC+C,GAAG,CAAC,cAAc,CAAC;MAC3B/C,OAAO,CAACC,KAAK,CAACwC,MAAM,CAACQ,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;MAElC;MACA,IAAMC,UAAU,GAAGT,MAAM,CAACU,MAAM,CAAC,UAAAC,CAAC;QAAA,OAAIA,CAAC,CAACf,KAAK,GAAG,CAAC;MAAA,EAAC;MAClDrC,OAAO,CAAC+C,GAAG,CAAC,WAAW,EAAEG,UAAU,CAACG,MAAM,CAAC;;MAE3C;MACA,IAAMC,QAAQ,GAAGb,MAAM,CAACc,MAAM,CAAC,UAACC,GAAG,EAAEJ,CAAC;QAAA,OAAKI,GAAG,GAAGC,UAAU,CAACL,CAAC,CAACd,KAAK,CAAC;MAAA,GAAE,CAAC,CAAC;MACxEtC,OAAO,CAAC+C,GAAG,0CAAAW,MAAA,CAAY,CAACJ,QAAQ,GAAG,IAAI,EAAEf,OAAO,CAAC,CAAC,CAAC,QAAK,CAAC;IAC3D,CAAC,EAAE,KAAK,CAAC;;IAET;;IAEApF,KAAK,CAACwG,OAAO,CAACC,IAAI,CAAC,iBAAiB,EAAE5E,KAAK,CAAC;;IAE5C;IACA,IAAI,CAAC6E,YAAY,GAAG7E,KAAK;IACzB,IAAI,CAAC8E,QAAQ,GAAG,IAAI1G,QAAQ,CAAC,IAAW,CAAC;IAEzCD,KAAK,CAAC4G,eAAe,CAAC/B,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC8B,QAAQ,CAAC;IACrD3G,KAAK,CAACwG,OAAO,CAACC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC;EACrD;EAACI,YAAA,CAAAzG,MAAA;IAAA0G,GAAA;IAAAC,KAAA,EAED,SAAAC,iBAAiBC,MAEM,EAAE;MACvB,IAAQ5F,KAAK,GAAoB4F,MAAM,CAA/B5F,KAAK;QAAE6F,GAAG,GAAeD,MAAM,CAAxBC,GAAG;QAAEC,QAAQ,GAAKF,MAAM,CAAnBE,QAAQ;MAC5B,IAAMvF,aAAkB,GAAG,CAAC,CAAC;MAC7B,IAAI,CAAAP,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE6E,MAAM,IAAG,CAAC,EAAE;QACrBtE,aAAa,CAACwF,aAAa,GAAGvH,SAAS,CAACwH,QAAQ,CAAChG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1DO,aAAa,CAAC0F,aAAa,GAAGzH,SAAS,CAACwH,QAAQ,CAAChG,KAAK,CAAC,CAAC,CAAC,CAAC;MAC5D;MACA,IAAI,CAAA6F,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEhB,MAAM,IAAG,CAAC,EAAE;QACnBtE,aAAa,CAAC2F,eAAe,GAAG1H,SAAS,CAACwH,QAAQ,CAACH,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1DtF,aAAa,CAAC4F,eAAe,GAAG3H,SAAS,CAACwH,QAAQ,CAACH,GAAG,CAAC,CAAC,CAAC,CAAC;MAC5D;MACA,IAAI,CAAAC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEjB,MAAM,IAAG,CAAC,EAAE;QACxBtE,aAAa,CAAC6F,WAAW,GAAGN,QAAQ,CAAC,CAAC,CAAC;QACvCvF,aAAa,CAAC8F,WAAW,GAAGP,QAAQ,CAAC,CAAC,CAAC;MACzC;MACA,OAAOvF,aAAa;IACtB;EAAC;EAAA,OAAAxB,MAAA;AAAA;AAGH,eAAeA,MAAM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d",
3
- "version": "0.0.307",
3
+ "version": "0.0.308",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -29,8 +29,8 @@
29
29
  "rxjs": "7.8.1",
30
30
  "three-mesh-bvh": "^0.9.0",
31
31
  "uuid": "^9.0.1",
32
- "@anov/3d-ability": "^0.0.157",
33
- "@anov/3d-core": "^0.0.94"
32
+ "@anov/3d-core": "^0.0.95",
33
+ "@anov/3d-ability": "^0.0.158"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/uuid": "^9.0.7",