fl-web-component 2.1.1-beta.10 → 2.1.1-beta.12

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.
@@ -966,6 +966,17 @@ module.exports = function (delay, atBegin, callback) {
966
966
  return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);
967
967
  };
968
968
 
969
+ /***/ }),
970
+
971
+ /***/ "0f44":
972
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
973
+
974
+ "use strict";
975
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_3b9a926b_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a2c9");
976
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_3b9a926b_prod_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_3b9a926b_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
977
+ /* unused harmony reexport * */
978
+
979
+
969
980
  /***/ }),
970
981
 
971
982
  /***/ "0ff5":
@@ -2409,13 +2420,6 @@ Factory_1.Factory.addGetterSetter(Node_1.Node, 'levels', 0.5, (0, Validators_1.g
2409
2420
 
2410
2421
  /***/ }),
2411
2422
 
2412
- /***/ "209f":
2413
- /***/ (function(module, exports, __webpack_require__) {
2414
-
2415
- // extracted by mini-css-extract-plugin
2416
-
2417
- /***/ }),
2418
-
2419
2423
  /***/ "21d3":
2420
2424
  /***/ (function(module, exports, __webpack_require__) {
2421
2425
 
@@ -19637,6 +19641,17 @@ module.exports = /******/function (modules) {
19637
19641
  /******/
19638
19642
  });
19639
19643
 
19644
+ /***/ }),
19645
+
19646
+ /***/ "4e61":
19647
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
19648
+
19649
+ "use strict";
19650
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_3b9a926b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("bc7d");
19651
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_3b9a926b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_3b9a926b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
19652
+ /* unused harmony reexport * */
19653
+
19654
+
19640
19655
  /***/ }),
19641
19656
 
19642
19657
  /***/ "4e71":
@@ -19951,17 +19966,6 @@ module.exports = _$export;
19951
19966
  /* unused harmony reexport * */
19952
19967
 
19953
19968
 
19954
- /***/ }),
19955
-
19956
- /***/ "5313":
19957
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
19958
-
19959
- "use strict";
19960
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_27a9d008_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("209f");
19961
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_27a9d008_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_27a9d008_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
19962
- /* unused harmony reexport * */
19963
-
19964
-
19965
19969
  /***/ }),
19966
19970
 
19967
19971
  /***/ "5414":
@@ -41832,17 +41836,6 @@ function isEventSupported(eventNameSuffix, capture) {
41832
41836
  }
41833
41837
  module.exports = isEventSupported;
41834
41838
 
41835
- /***/ }),
41836
-
41837
- /***/ "7bbf":
41838
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
41839
-
41840
- "use strict";
41841
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_27a9d008_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c7d2");
41842
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_27a9d008_prod_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_27a9d008_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
41843
- /* unused harmony reexport * */
41844
-
41845
-
41846
41839
  /***/ }),
41847
41840
 
41848
41841
  /***/ "7cc1":
@@ -56181,13 +56174,6 @@ Factory_1.Factory.addGetterSetter(Path, 'data');
56181
56174
 
56182
56175
  /***/ }),
56183
56176
 
56184
- /***/ "8d26":
56185
- /***/ (function(module, exports, __webpack_require__) {
56186
-
56187
- // extracted by mini-css-extract-plugin
56188
-
56189
- /***/ }),
56190
-
56191
56177
  /***/ "8e84":
56192
56178
  /***/ (function(module, exports, __webpack_require__) {
56193
56179
 
@@ -56507,7 +56493,7 @@ module.exports = document && document.documentElement;
56507
56493
  /***/ "9224":
56508
56494
  /***/ (function(module) {
56509
56495
 
56510
- module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"2.1.1-beta.10\",\"scripts\":{\"postinstall\":\"patch-package\",\"tip1\":\"仅调试本组件不涉及业务组件,请执行dev\",\"dev\":\"vue-cli-service serve\",\"lint\":\"eslint \\\"{src,packages}/**/*.{vue,js}\\\" --fix\",\"prettier\":\"prettier --write \\\"packages/**/*.{js,css,less,scss,vue,html}\\\"\",\"=\":\"=============================================================\",\"tip2\":\"同时调试本组件与业务组件,请执行watch,生产模式监听请执行watch:prod\",\"watch\":\"vue-cli-service build --watch --mode development --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"watch:prod\":\"vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build\":\"npm run lint && vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build:test\":\"vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"publish:base\":\"npm run build && npm publish --registry https://registry.npmjs.org/\",\"publish:beta:base\":\"npm run build && npm publish --tag beta --registry https://registry.npmjs.org/\",\"==\":\"=============================================================\",\"tip3\":\"发版注意: 【测试版执行publish:beta】【修改bug执行publish:fix】【新增功能执行publish:feat】【新特性执行publish:perf】\",\"publish:beta\":\"npm version prerelease --preid=beta && npm run publish:beta:base\",\"publish:fix\":\"npm version patch && npm run publish:base\",\"publish:feat\":\"npm version minor && npm run publish:base\",\"publish:perf\":\"npm version major && npm run publish:base\"},\"files\":[\"dist\",\"packages\",\"src\"],\"main\":\"dist/fl-web-component.common.js\",\"dependencies\":{\"camera-controls\":\"2.9.0\",\"core-js\":\"^3.42.0\",\"dxf-parser\":\"^1.1.2\",\"element-ui\":\"2.15.14\",\"fflate\":\"^0.8.2\",\"html2canvas\":\"^1.4.1\",\"jspdf\":\"^3.0.1\",\"konva\":\"^9.3.12\",\"lodash\":\"^4.17.21\",\"meshline\":\"^3.3.1\",\"regenerator-runtime\":\"^0.14.1\",\"svg-pan-zoom\":\"^3.6.2\",\"three\":\"^0.176.0\",\"three.path\":\"^1.0.1\",\"vue\":\"^2.6.11\"},\"devDependencies\":{\"@babel/core\":\"^7.12.16\",\"@babel/plugin-proposal-nullish-coalescing-operator\":\"^7.18.6\",\"@babel/plugin-proposal-optional-chaining\":\"^7.21.0\",\"@babel/preset-env\":\"^7.0.0\",\"@babel/runtime-corejs3\":\"^7.27.1\",\"@vue/cli-plugin-babel\":\"~4.4.0\",\"@vue/cli-plugin-eslint\":\"~4.4.0\",\"@vue/cli-service\":\"~4.4.0\",\"babel-eslint\":\"^10.1.0\",\"babel-loader\":\"^8.0.0\",\"copy-webpack-plugin\":\"^4.0.1\",\"eslint\":\"^6.7.2\",\"eslint-config-prettier\":\"^6.15.0\",\"eslint-plugin-prettier\":\"^3.4.1\",\"eslint-plugin-vue\":\"^6.2.2\",\"patch-package\":\"^6.4.7\",\"prettier\":\"^2.8.8\",\"sass\":\"1.32.13\",\"sass-loader\":\"10.1.1\",\"vue-template-compiler\":\"^2.6.11\",\"worker-loader\":\"^3.0.8\"},\"browserslist\":[\"> 1%\",\"last 2 versions\"]}");
56496
+ module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"2.1.1-beta.12\",\"scripts\":{\"postinstall\":\"patch-package\",\"tip1\":\"仅调试本组件不涉及业务组件,请执行dev\",\"dev\":\"vue-cli-service serve\",\"lint\":\"eslint \\\"{src,packages}/**/*.{vue,js}\\\" --fix\",\"prettier\":\"prettier --write \\\"packages/**/*.{js,css,less,scss,vue,html}\\\"\",\"=\":\"=============================================================\",\"tip2\":\"同时调试本组件与业务组件,请执行watch,生产模式监听请执行watch:prod\",\"watch\":\"vue-cli-service build --watch --mode development --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"watch:prod\":\"vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build\":\"npm run lint && vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build:test\":\"vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"publish:base\":\"npm run build && npm publish --registry https://registry.npmjs.org/\",\"publish:beta:base\":\"npm run build && npm publish --tag beta --registry https://registry.npmjs.org/\",\"==\":\"=============================================================\",\"tip3\":\"发版注意: 【测试版执行publish:beta】【修改bug执行publish:fix】【新增功能执行publish:feat】【新特性执行publish:perf】\",\"publish:beta\":\"npm version prerelease --preid=beta && npm run publish:beta:base\",\"publish:fix\":\"npm version patch && npm run publish:base\",\"publish:feat\":\"npm version minor && npm run publish:base\",\"publish:perf\":\"npm version major && npm run publish:base\"},\"files\":[\"dist\",\"packages\",\"src\"],\"main\":\"dist/fl-web-component.common.js\",\"dependencies\":{\"camera-controls\":\"2.9.0\",\"core-js\":\"^3.42.0\",\"dxf-parser\":\"^1.1.2\",\"element-ui\":\"2.15.14\",\"fflate\":\"^0.8.2\",\"html2canvas\":\"^1.4.1\",\"jspdf\":\"^3.0.1\",\"konva\":\"^9.3.12\",\"lodash\":\"^4.17.21\",\"meshline\":\"^3.3.1\",\"regenerator-runtime\":\"^0.14.1\",\"svg-pan-zoom\":\"^3.6.2\",\"three\":\"^0.176.0\",\"three.path\":\"^1.0.1\",\"vue\":\"^2.6.11\"},\"devDependencies\":{\"@babel/core\":\"^7.12.16\",\"@babel/plugin-proposal-nullish-coalescing-operator\":\"^7.18.6\",\"@babel/plugin-proposal-optional-chaining\":\"^7.21.0\",\"@babel/preset-env\":\"^7.0.0\",\"@babel/runtime-corejs3\":\"^7.27.1\",\"@vue/cli-plugin-babel\":\"~4.4.0\",\"@vue/cli-plugin-eslint\":\"~4.4.0\",\"@vue/cli-service\":\"~4.4.0\",\"babel-eslint\":\"^10.1.0\",\"babel-loader\":\"^8.0.0\",\"copy-webpack-plugin\":\"^4.0.1\",\"eslint\":\"^6.7.2\",\"eslint-config-prettier\":\"^6.15.0\",\"eslint-plugin-prettier\":\"^3.4.1\",\"eslint-plugin-vue\":\"^6.2.2\",\"patch-package\":\"^6.4.7\",\"prettier\":\"^2.8.8\",\"sass\":\"1.32.13\",\"sass-loader\":\"10.1.1\",\"vue-template-compiler\":\"^2.6.11\",\"worker-loader\":\"^3.0.8\"},\"browserslist\":[\"> 1%\",\"last 2 versions\"]}");
56511
56497
 
56512
56498
  /***/ }),
56513
56499
 
@@ -59042,6 +59028,13 @@ Schema.messages = messages_messages;
59042
59028
 
59043
59029
  /***/ }),
59044
59030
 
59031
+ /***/ "a2c9":
59032
+ /***/ (function(module, exports, __webpack_require__) {
59033
+
59034
+ // extracted by mini-css-extract-plugin
59035
+
59036
+ /***/ }),
59037
+
59045
59038
  /***/ "a34e":
59046
59039
  /***/ (function(module, exports, __webpack_require__) {
59047
59040
 
@@ -59594,6 +59587,13 @@ Factory_1.Factory.addGetterSetter(Node_1.Node, 'noise', 0.2, (0, Validators_1.ge
59594
59587
 
59595
59588
  /***/ }),
59596
59589
 
59590
+ /***/ "bc7d":
59591
+ /***/ (function(module, exports, __webpack_require__) {
59592
+
59593
+ // extracted by mini-css-extract-plugin
59594
+
59595
+ /***/ }),
59596
+
59597
59597
  /***/ "bcb1":
59598
59598
  /***/ (function(module, exports, __webpack_require__) {
59599
59599
 
@@ -69096,24 +69096,6 @@ var Contrast = function Contrast(imageData) {
69096
69096
  exports.Contrast = Contrast;
69097
69097
  Factory_1.Factory.addGetterSetter(Node_1.Node, 'contrast', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);
69098
69098
 
69099
- /***/ }),
69100
-
69101
- /***/ "c7d2":
69102
- /***/ (function(module, exports, __webpack_require__) {
69103
-
69104
- // extracted by mini-css-extract-plugin
69105
-
69106
- /***/ }),
69107
-
69108
- /***/ "c89b":
69109
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
69110
-
69111
- "use strict";
69112
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_41b98e1a_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8d26");
69113
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_41b98e1a_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_41b98e1a_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
69114
- /* unused harmony reexport * */
69115
-
69116
-
69117
69099
  /***/ }),
69118
69100
 
69119
69101
  /***/ "c8ba":
@@ -71471,6 +71453,13 @@ Factory_1.Factory.addGetterSetter(Tag, 'cornerRadius', 0, (0, Validators_1.getNu
71471
71453
 
71472
71454
  /***/ }),
71473
71455
 
71456
+ /***/ "da8d":
71457
+ /***/ (function(module, exports, __webpack_require__) {
71458
+
71459
+ // extracted by mini-css-extract-plugin
71460
+
71461
+ /***/ }),
71462
+
71474
71463
  /***/ "db6a":
71475
71464
  /***/ (function(module, exports, __webpack_require__) {
71476
71465
 
@@ -74214,6 +74203,17 @@ exports.default = {
74214
74203
  }
74215
74204
  };
74216
74205
 
74206
+ /***/ }),
74207
+
74208
+ /***/ "e998":
74209
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
74210
+
74211
+ "use strict";
74212
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6175e5c1_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("da8d");
74213
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6175e5c1_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6175e5c1_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
74214
+ /* unused harmony reexport * */
74215
+
74216
+
74217
74217
  /***/ }),
74218
74218
 
74219
74219
  /***/ "ea34":
@@ -78634,8 +78634,8 @@ if (typeof window !== 'undefined') {
78634
78634
  // Indicate to webpack that this file can be concatenated
78635
78635
  /* harmony default export */ var setPublicPath = (null);
78636
78636
 
78637
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3c0d80fb-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/index.vue?vue&type=template&id=27a9d008&scoped=true
78638
- var com_graphicsvue_type_template_id_27a9d008_scoped_true_render = function render() {
78637
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"622c1d24-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/index.vue?vue&type=template&id=3b9a926b&scoped=true
78638
+ var com_graphicsvue_type_template_id_3b9a926b_scoped_true_render = function render() {
78639
78639
  var _vm = this,
78640
78640
  _c = _vm._self._c;
78641
78641
  return _c('div', {
@@ -78647,7 +78647,7 @@ var com_graphicsvue_type_template_id_27a9d008_scoped_true_render = function rend
78647
78647
  };
78648
78648
  var staticRenderFns = [];
78649
78649
 
78650
- // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=27a9d008&scoped=true
78650
+ // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=3b9a926b&scoped=true
78651
78651
 
78652
78652
  // CONCATENATED MODULE: ./node_modules/camera-controls/dist/camera-controls.module.js
78653
78653
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
@@ -115165,7 +115165,7 @@ var StreamLoader_StreamLoader = /*#__PURE__*/function () {
115165
115165
 
115166
115166
  // Initialize worker
115167
115167
  try {
115168
- this.worker = new Worker_fn();
115168
+ this.worker = this.debug ? null : new Worker_fn();
115169
115169
  // this.worker = null; // TODO
115170
115170
  } catch (e) {
115171
115171
  this.worker = null;
@@ -121492,9 +121492,15 @@ var LOG_INTERVAL = 30;
121492
121492
 
121493
121493
  var isDebug = false || false === true;
121494
121494
  // const isDebug = false;
121495
- var COLLISION_PENETRATION_EPSILON = 1;
121495
+ var COLLISION_CONTACT_EPSILON = 1;
121496
121496
  var COLLISION_OBB_AXIS_EPSILON = 1e-8;
121497
121497
  var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
121498
+ var OCCLUSION_DEBUG_GROUP_NAME = '__occlusion_bounds_debug_group__';
121499
+ var OCCLUSION_DEBUG_FLAG_COLORS = {
121500
+ 1: 0xffc107,
121501
+ 2: 0x409eff,
121502
+ 3: 0xff4dff
121503
+ };
121498
121504
  /* harmony default export */ var com_graphicsvue_type_script_lang_js = ({
121499
121505
  name: 'FlModel',
121500
121506
  props: {
@@ -121524,8 +121530,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
121524
121530
  occlusionState: {
121525
121531
  // enabled: false,
121526
121532
  enabled: true,
121527
- // previewEnabled: false,
121528
- previewEnabled: isDebug,
121533
+ previewEnabled: false,
121534
+ // previewEnabled: isDebug,
121529
121535
  bufferWidth: 1700,
121530
121536
  sampleStride: 1,
121531
121537
  minSampleCount: 5
@@ -121542,8 +121548,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
121542
121548
  },
121543
121549
  isolateMode: false,
121544
121550
  sceneBoundingBoxDebugEnabled: false,
121545
- // collisionObbDebugEnabled: isDebug,
121546
- collisionObbDebugEnabled: false
121551
+ collisionObbDebugEnabled: isDebug,
121552
+ // collisionObbDebugEnabled: false,
121553
+ // occlusionBoundsDebugEnabled: isDebug,
121554
+ occlusionBoundsDebugEnabled: false
121547
121555
  };
121548
121556
  },
121549
121557
  watch: {
@@ -121563,11 +121571,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
121563
121571
  beforeCreate: function beforeCreate() {
121564
121572
  var _this2 = this;
121565
121573
  this.spaceUp = true;
121566
- var arr = ['renderer', 'scene', 'camera', 'cameraControls', 'instructions', 'raycaster', 'mouse', 'labelRenderer', 'lineTexture', 'curve', 'downRaycaster', 'velocity', 'direction', 'clock', 'pointControls', 'threeMeasure', 'modelGroup', 'animateId', 'scenePass', 'outlineComposer', 'outlinePass', 'renderTarget', 'sceneClock', 'bizToThreeMatrix', 'threeToBizMatrix', 'stats', 'centeringDebounceTimer', 'sceneBoundingBox', 'sceneBoundingBoxHelper', 'collisionObbDebugGroup'];
121574
+ var arr = ['renderer', 'scene', 'camera', 'cameraControls', 'instructions', 'raycaster', 'mouse', 'labelRenderer', 'lineTexture', 'curve', 'downRaycaster', 'velocity', 'direction', 'clock', 'pointControls', 'threeMeasure', 'modelGroup', 'animateId', 'scenePass', 'outlineComposer', 'outlinePass', 'renderTarget', 'sceneClock', 'bizToThreeMatrix', 'threeToBizMatrix', 'stats', 'centeringDebounceTimer', 'sceneBoundingBox', 'sceneBoundingBoxHelper', 'collisionObbDebugGroup', 'occlusionBoundsDebugGroup'];
121567
121575
  arr.forEach(function (item) {
121568
121576
  _this2[item] = null;
121569
121577
  });
121570
- ['roaming', 'firstPerSign', 'canJump', 'moveForward', 'moveBackward', 'moveLeft', 'moveRight', 'measureFlag', 'skipNextRenderFrame', 'forceSkipRendering', 'userInteracting', 'hasExecutedCentering', 'needsCenteringAfterInteraction', 'isDragging', 'boundingBoxVisible', 'collisionObbDebugEnabled'].forEach(function (item) {
121578
+ ['roaming', 'firstPerSign', 'canJump', 'moveForward', 'moveBackward', 'moveLeft', 'moveRight', 'measureFlag', 'skipNextRenderFrame', 'forceSkipRendering', 'userInteracting', 'hasExecutedCentering', 'needsCenteringAfterInteraction', 'isDragging', 'boundingBoxVisible', 'collisionObbDebugEnabled', 'occlusionBoundsDebugEnabled'].forEach(function (item) {
121571
121579
  _this2[item] = false;
121572
121580
  });
121573
121581
  ['clippingMesh', 'modelActive'].forEach(function (item) {
@@ -122498,6 +122506,21 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
122498
122506
  if (instancedMesh && instancedMesh.userData) return instancedMesh.userData.copyMatrix || null;
122499
122507
  return null;
122500
122508
  },
122509
+ setInstanceCullingVisible: function setInstanceCullingVisible(instancedMesh, instanceId, visible) {
122510
+ var instanceState = this.getInstanceState(instancedMesh, instanceId);
122511
+ if (!instanceState || typeof instanceState.instanceIndex !== 'number') return;
122512
+ var copyMatrix = instanceState.copyMatrix || this.getInstanceCopyMatrix(instancedMesh, instanceId);
122513
+ if (!copyMatrix) return;
122514
+ var shouldShow = visible && instanceState.visible !== false && this.isSourceVisible(instanceId, instancedMesh);
122515
+ var matrix = new this.THREE.Matrix4().copy(copyMatrix);
122516
+ if (!shouldShow) {
122517
+ matrix.makeTranslation(9999999, 9999999, 9999999);
122518
+ this.removeOutlineObject(instancedMesh, instanceState.instanceIndex);
122519
+ }
122520
+ instancedMesh.setMatrixAt(instanceState.instanceIndex, matrix);
122521
+ instancedMesh.instanceMatrix.needsUpdate = true;
122522
+ instanceState.cullingVisible = !!visible;
122523
+ },
122501
122524
  isSourceHiddenInstance: function isSourceHiddenInstance(instancedMesh, instanceId) {
122502
122525
  var instanceState = this.getInstanceState(instancedMesh, instanceId);
122503
122526
  if (instanceState && instanceState.sourceVisible !== undefined) {
@@ -122819,25 +122842,70 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
122819
122842
  existingBox.union(box);
122820
122843
  return existingBox;
122821
122844
  },
122822
- mergeModelBoxUserData: function mergeModelBoxUserData(targetBox, sourceUserData) {
122823
- if (!targetBox || !sourceUserData) return;
122845
+ createOcclusionProxyBox: function createOcclusionProxyBox(box) {
122846
+ if (!box || !box.isBox3) return null;
122847
+ var proxyBox = box.clone();
122848
+ proxyBox.userData = com_graphicsvue_type_script_lang_js_objectSpread({}, box.userData || {});
122849
+ delete proxyBox.userData.occlusionProxyBoxes;
122850
+ return proxyBox;
122851
+ },
122852
+ mergeModelBoxUserData: function mergeModelBoxUserData(targetBox, sourceBox) {
122853
+ if (!targetBox || !sourceBox || !sourceBox.userData) return;
122854
+ var sourceUserData = sourceBox.userData;
122824
122855
  if (!targetBox.userData) {
122825
122856
  targetBox.userData = sourceUserData;
122826
122857
  return;
122827
122858
  }
122828
122859
  var targetUserData = targetBox.userData;
122860
+ var targetProxyBoxes = Array.isArray(targetUserData.occlusionProxyBoxes) ? targetUserData.occlusionProxyBoxes : [this.createOcclusionProxyBox(targetBox)].filter(Boolean);
122861
+ var sourceProxyBoxes = Array.isArray(sourceUserData.occlusionProxyBoxes) ? sourceUserData.occlusionProxyBoxes : [this.createOcclusionProxyBox(sourceBox)].filter(Boolean);
122829
122862
  targetUserData.visible = targetUserData.visible !== false || sourceUserData.visible !== false;
122830
122863
  targetUserData.sourceVisible = targetUserData.sourceVisible !== false || sourceUserData.sourceVisible !== false;
122831
122864
  targetUserData.transparent = !!targetUserData.transparent && !!sourceUserData.transparent;
122832
122865
  targetUserData.mergedBoxCount = (targetUserData.mergedBoxCount || 1) + 1;
122833
- // 同一模型包含多个图元时,单个图元的遮挡代理不再可靠,改由视锥体合并盒兜底加载。
122834
- targetUserData.occlusionEnabled = false;
122866
+ // 多图元模型分别参与遮挡测试,任一图元可见时都会保留整个模型。
122867
+ targetUserData.occlusionEnabled = !!targetUserData.occlusionEnabled && !!sourceUserData.occlusionEnabled;
122868
+ targetUserData.occlusionProxyBoxes = targetProxyBoxes.concat(sourceProxyBoxes);
122835
122869
  var targetObbs = Array.isArray(targetUserData.collisionObbs) ? targetUserData.collisionObbs : [];
122836
122870
  var sourceObbs = Array.isArray(sourceUserData.collisionObbs) ? sourceUserData.collisionObbs : [];
122837
122871
  if (sourceObbs.length > 0) {
122838
122872
  targetUserData.collisionObbs = targetObbs.concat(sourceObbs);
122839
122873
  }
122840
122874
  },
122875
+ _createCollisionObb: function _createCollisionObb(center, halfSize, rotation, matrix) {
122876
+ var worldCenter = center.clone();
122877
+ var worldHalfSize = halfSize.clone();
122878
+ var worldRotation = new this.THREE.Matrix3();
122879
+ if (!matrix) {
122880
+ return new OBB_OBB(worldCenter, worldHalfSize, rotation.clone());
122881
+ }
122882
+ worldCenter.applyMatrix4(matrix);
122883
+ var localAxes = [new this.THREE.Vector3(), new this.THREE.Vector3(), new this.THREE.Vector3()];
122884
+ rotation.extractBasis(localAxes[0], localAxes[1], localAxes[2]);
122885
+ var linearMatrix = new this.THREE.Matrix3().setFromMatrix4(matrix);
122886
+ var worldAxes = localAxes.map(function (axis) {
122887
+ return axis.clone().applyMatrix3(linearMatrix);
122888
+ });
122889
+ var halfSizes = [halfSize.x, halfSize.y, halfSize.z];
122890
+ for (var i = 0; i < 3; i++) {
122891
+ var axisLength = worldAxes[i].length();
122892
+ if (axisLength <= COLLISION_OBB_AXIS_EPSILON) {
122893
+ worldAxes[i].copy(localAxes[i]);
122894
+ continue;
122895
+ }
122896
+ worldAxes[i].multiplyScalar(1 / axisLength);
122897
+ halfSizes[i] *= axisLength;
122898
+ }
122899
+ worldHalfSize.set(halfSizes[0], halfSizes[1], halfSizes[2]);
122900
+ worldRotation.set(worldAxes[0].x, worldAxes[1].x, worldAxes[2].x, worldAxes[0].y, worldAxes[1].y, worldAxes[2].y, worldAxes[0].z, worldAxes[1].z, worldAxes[2].z);
122901
+ return new OBB_OBB(worldCenter, worldHalfSize, worldRotation);
122902
+ },
122903
+ _createCollisionObbFromBox: function _createCollisionObbFromBox(box, matrix) {
122904
+ var center = box.getCenter(new this.THREE.Vector3());
122905
+ var halfSize = box.getSize(new this.THREE.Vector3()).multiplyScalar(0.5);
122906
+ var rotation = new this.THREE.Matrix3().identity();
122907
+ return this._createCollisionObb(center, halfSize, rotation, matrix);
122908
+ },
122841
122909
  upsertModelBox: function upsertModelBox(modelId, box) {
122842
122910
  if (!this._boxIndex || !modelId || !box || !box.isBox3) return;
122843
122911
  var key = String(modelId);
@@ -122846,8 +122914,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
122846
122914
  this._boxIndex.set(key, box);
122847
122915
  return;
122848
122916
  }
122917
+ this.mergeModelBoxUserData(existingBox, box);
122849
122918
  existingBox.union(box);
122850
- this.mergeModelBoxUserData(existingBox, box.userData);
122851
122919
  },
122852
122920
  setBoxIndex: function setBoxIndex(boxJson, documentId) {
122853
122921
  var _this0 = this;
@@ -122961,10 +123029,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
122961
123029
  center: center,
122962
123030
  halfSize: halfSize
122963
123031
  };
122964
- var collisionObb = new OBB_OBB(center.clone(), halfSize.clone(), rotation.clone());
122965
- if (collisionMatrix) {
122966
- collisionObb.applyMatrix4(collisionMatrix);
122967
- }
123032
+ var collisionObb = this._createCollisionObb(center, halfSize, rotation, collisionMatrix);
122968
123033
  userData.collisionObbs = [collisionObb];
122969
123034
  }
122970
123035
  // 如果是 flag=2,解析并存储多个子包围盒 (min, max)
@@ -122980,10 +123045,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
122980
123045
  max: _max
122981
123046
  });
122982
123047
  var subBox = new this.THREE.Box3(_min.clone(), _max.clone());
122983
- var _collisionObb = new OBB_OBB().fromBox3(subBox);
122984
- if (collisionMatrix) {
122985
- _collisionObb.applyMatrix4(collisionMatrix);
122986
- }
123048
+ var _collisionObb = this._createCollisionObbFromBox(subBox, collisionMatrix);
122987
123049
  collisionObbs.push(_collisionObb);
122988
123050
  }
122989
123051
  }
@@ -122993,10 +123055,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
122993
123055
  }
122994
123056
  }
122995
123057
  if (!userData.collisionObbs || userData.collisionObbs.length === 0) {
122996
- var _collisionObb2 = new OBB_OBB().fromBox3(sourceBox);
122997
- if (collisionMatrix) {
122998
- _collisionObb2.applyMatrix4(collisionMatrix);
122999
- }
123058
+ var _collisionObb2 = this._createCollisionObbFromBox(sourceBox, collisionMatrix);
123000
123059
  userData.collisionObbs = [_collisionObb2];
123001
123060
  }
123002
123061
  boxThree.userData = userData;
@@ -123028,11 +123087,26 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123028
123087
  }
123029
123088
  this.buildOctreeFromBoxIndex();
123030
123089
  this.refreshCollisionObbDebug();
123090
+ this.refreshOcclusionBoundsDebug();
123031
123091
  console.log('time end', Date.now());
123032
123092
  },
123033
123093
  shouldApplyOcclusionByBox: function shouldApplyOcclusionByBox(box) {
123034
123094
  return !!(box && box.userData && box.userData.occlusionEnabled);
123035
123095
  },
123096
+ appendOcclusionCandidates: function appendOcclusionCandidates(candidates, modelId, box, frustum) {
123097
+ if (!box) return;
123098
+ var userData = box.userData || {};
123099
+ var proxyBoxes = Array.isArray(userData.occlusionProxyBoxes) ? userData.occlusionProxyBoxes : [box];
123100
+ for (var i = 0; i < proxyBoxes.length; i++) {
123101
+ var proxyBox = proxyBoxes[i];
123102
+ if (!proxyBox || proxyBox.userData && proxyBox.userData.visible === false) continue;
123103
+ if (frustum && !frustum.intersectsBox(proxyBox)) continue;
123104
+ candidates.push({
123105
+ modelId: modelId,
123106
+ box: proxyBox
123107
+ });
123108
+ }
123109
+ },
123036
123110
  tryInitialCenterAfterBoundsReady: function tryInitialCenterAfterBoundsReady() {
123037
123111
  if (this.hasExecutedCentering || this.userInteracting) return;
123038
123112
  if (!this.sceneBoundingBox || !this.sceneBoundingBox.isBox3 || this.sceneBoundingBox.isEmpty()) return;
@@ -123313,12 +123387,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123313
123387
  if (!group) return;
123314
123388
  this._clearCollisionObbDebugGroup(false);
123315
123389
  var pairMap = this._buildCollisionPairMap();
123316
- if (pairMap.size === 0) return;
123317
- pairMap.forEach(function (relatedIds, modelId) {
123318
- var box = _this11._boxIndex && _this11._boxIndex.has(String(modelId)) ? _this11._boxIndex.get(String(modelId)) : _this11._boxIndex && _this11._boxIndex.has(modelId) ? _this11._boxIndex.get(modelId) : null;
123390
+ if (!this._boxIndex || this._boxIndex.size === 0) return;
123391
+ this._boxIndex.forEach(function (box, modelId) {
123319
123392
  if (!_this11._isCollisionBoxAvailable(box)) return;
123320
123393
  var obbs = _this11._getCollisionObbs(box);
123321
123394
  if (!obbs.length) return;
123395
+ var relatedIds = pairMap.get(String(modelId));
123322
123396
  var isColliding = relatedIds && relatedIds.size > 0;
123323
123397
  var color = isColliding ? 0xff3b30 : 0x36cfc9;
123324
123398
  for (var i = 0; i < obbs.length; i++) {
@@ -123343,6 +123417,152 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123343
123417
  this.hideCollisionObbDebug();
123344
123418
  }
123345
123419
  },
123420
+ _getOcclusionDebugGroup: function _getOcclusionDebugGroup() {
123421
+ if (!this.scene) return null;
123422
+ if (this.occlusionBoundsDebugGroup && this.occlusionBoundsDebugGroup.parent === this.scene) {
123423
+ return this.occlusionBoundsDebugGroup;
123424
+ }
123425
+ var group = new this.THREE.Group();
123426
+ group.name = OCCLUSION_DEBUG_GROUP_NAME;
123427
+ group.userData.transformControlHelper = true;
123428
+ group.userData.occlusionBoundsDebugHelper = true;
123429
+ this.scene.add(group);
123430
+ this.occlusionBoundsDebugGroup = group;
123431
+ return group;
123432
+ },
123433
+ _createOcclusionFlag1LineSegments: function _createOcclusionFlag1LineSegments(box, color) {
123434
+ var userData = box && box.userData ? box.userData : {};
123435
+ var vertices = userData.obbData;
123436
+ if (!vertices || vertices.length < 9) return null;
123437
+ var sourceGeometry = new this.THREE.BufferGeometry();
123438
+ sourceGeometry.setAttribute('position', new this.THREE.BufferAttribute(new Float32Array(vertices), 3));
123439
+ var indices = userData.indices;
123440
+ if (indices && indices.length >= 3) {
123441
+ if (indices.isBufferAttribute) {
123442
+ sourceGeometry.setIndex(indices);
123443
+ } else if (ArrayBuffer.isView(indices)) {
123444
+ sourceGeometry.setIndex(new this.THREE.BufferAttribute(indices, 1));
123445
+ } else {
123446
+ sourceGeometry.setIndex(indices);
123447
+ }
123448
+ }
123449
+ var wireframeGeometry = null;
123450
+ try {
123451
+ // flag=1 对应真实遮挡网格,必须按顶点和三角形索引绘制,不能退化成 AABB/OBB。
123452
+ wireframeGeometry = new this.THREE.WireframeGeometry(sourceGeometry);
123453
+ } catch (error) {
123454
+ console.warn('flag=1 遮挡调试线框生成失败', error);
123455
+ }
123456
+ sourceGeometry.dispose();
123457
+ if (!wireframeGeometry || wireframeGeometry.getAttribute('position').count === 0) {
123458
+ if (wireframeGeometry) wireframeGeometry.dispose();
123459
+ return null;
123460
+ }
123461
+ var material = new this.THREE.LineBasicMaterial({
123462
+ color: color,
123463
+ transparent: true,
123464
+ opacity: 0.95,
123465
+ depthTest: false,
123466
+ depthWrite: false,
123467
+ toneMapped: false
123468
+ });
123469
+ var lineSegments = new this.THREE.LineSegments(wireframeGeometry, material);
123470
+ var transformMatrix = new this.THREE.Matrix4();
123471
+ var matrixArr = userData.matrix;
123472
+ if (matrixArr && matrixArr.length >= 16) {
123473
+ transformMatrix.fromArray(matrixArr);
123474
+ }
123475
+ if (this.bizToThreeMatrix) {
123476
+ transformMatrix.premultiply(this.bizToThreeMatrix);
123477
+ }
123478
+ lineSegments.matrixAutoUpdate = false;
123479
+ lineSegments.matrix.copy(transformMatrix);
123480
+ lineSegments.matrixWorldNeedsUpdate = true;
123481
+ lineSegments.renderOrder = 998;
123482
+ lineSegments.userData.transformControlHelper = true;
123483
+ lineSegments.userData.occlusionBoundsDebugHelper = true;
123484
+ lineSegments.userData.occlusionFlag = 1;
123485
+ return lineSegments;
123486
+ },
123487
+ _createOcclusionBoxLineSegments: function _createOcclusionBoxLineSegments(obb, color, flag) {
123488
+ var lineSegments = this._createCollisionObbLineSegments(obb, color);
123489
+ if (!lineSegments) return null;
123490
+ lineSegments.renderOrder = 998;
123491
+ lineSegments.userData.collisionObbDebugHelper = false;
123492
+ lineSegments.userData.occlusionBoundsDebugHelper = true;
123493
+ lineSegments.userData.occlusionFlag = flag;
123494
+ return lineSegments;
123495
+ },
123496
+ _clearOcclusionBoundsDebugGroup: function _clearOcclusionBoundsDebugGroup() {
123497
+ var removeGroup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
123498
+ var group = this.occlusionBoundsDebugGroup;
123499
+ if (!group) return;
123500
+ while (group.children.length > 0) {
123501
+ var child = group.children[group.children.length - 1];
123502
+ group.remove(child);
123503
+ if (child.geometry) child.geometry.dispose();
123504
+ if (Array.isArray(child.material)) {
123505
+ child.material.forEach(function (material) {
123506
+ return material && material.dispose();
123507
+ });
123508
+ } else if (child.material) {
123509
+ child.material.dispose();
123510
+ }
123511
+ }
123512
+ if (removeGroup && this.scene && group.parent === this.scene) {
123513
+ this.scene.remove(group);
123514
+ this.occlusionBoundsDebugGroup = null;
123515
+ } else if (!this.scene) {
123516
+ this.occlusionBoundsDebugGroup = null;
123517
+ }
123518
+ },
123519
+ hideOcclusionBoundsDebug: function hideOcclusionBoundsDebug() {
123520
+ this._clearOcclusionBoundsDebugGroup();
123521
+ this.occlusionBoundsDebugEnabled = false;
123522
+ },
123523
+ refreshOcclusionBoundsDebug: function refreshOcclusionBoundsDebug() {
123524
+ var _this12 = this;
123525
+ if (!this.occlusionBoundsDebugEnabled) return;
123526
+ var group = this._getOcclusionDebugGroup();
123527
+ if (!group) return;
123528
+ this._clearOcclusionBoundsDebugGroup(false);
123529
+ if (!this._boxIndex || this._boxIndex.size === 0) return;
123530
+ this._boxIndex.forEach(function (box, modelId) {
123531
+ if (!_this12._isCollisionBoxAvailable(box) || !_this12.shouldApplyOcclusionByBox(box)) return;
123532
+ var userData = box.userData || {};
123533
+ var flag = Number(userData.flag) || 1;
123534
+ var color = OCCLUSION_DEBUG_FLAG_COLORS[flag];
123535
+ if (!color) return;
123536
+ if (flag === 1) {
123537
+ var lineSegments = _this12._createOcclusionFlag1LineSegments(box, color);
123538
+ if (!lineSegments) return;
123539
+ lineSegments.name = "".concat(OCCLUSION_DEBUG_GROUP_NAME, ":").concat(modelId, ":flag-1");
123540
+ lineSegments.userData.modelId = modelId;
123541
+ group.add(lineSegments);
123542
+ return;
123543
+ }
123544
+ var obbs = _this12._getCollisionObbs(box);
123545
+ for (var i = 0; i < obbs.length; i++) {
123546
+ var _lineSegments = _this12._createOcclusionBoxLineSegments(obbs[i], color, flag);
123547
+ if (!_lineSegments) continue;
123548
+ _lineSegments.name = "".concat(OCCLUSION_DEBUG_GROUP_NAME, ":").concat(modelId, ":flag-").concat(flag, ":").concat(i);
123549
+ _lineSegments.userData.modelId = modelId;
123550
+ group.add(_lineSegments);
123551
+ }
123552
+ });
123553
+ },
123554
+ showOcclusionBoundsDebug: function showOcclusionBoundsDebug() {
123555
+ this.occlusionBoundsDebugEnabled = true;
123556
+ this.refreshOcclusionBoundsDebug();
123557
+ },
123558
+ toggleOcclusionBoundsDebug: function toggleOcclusionBoundsDebug(forceVisible) {
123559
+ var nextVisible = typeof forceVisible === 'boolean' ? forceVisible : !this.occlusionBoundsDebugEnabled;
123560
+ if (nextVisible) {
123561
+ this.showOcclusionBoundsDebug();
123562
+ } else {
123563
+ this.hideOcclusionBoundsDebug();
123564
+ }
123565
+ },
123346
123566
  _getObbAxisInfo: function _getObbAxisInfo(obb) {
123347
123567
  var xAxis = new this.THREE.Vector3();
123348
123568
  var yAxis = new this.THREE.Vector3();
@@ -123358,7 +123578,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123358
123578
  return axisInfo.halfSizes[0] * Math.abs(axis.dot(axisInfo.axes[0])) + axisInfo.halfSizes[1] * Math.abs(axis.dot(axisInfo.axes[1])) + axisInfo.halfSizes[2] * Math.abs(axis.dot(axisInfo.axes[2]));
123359
123579
  },
123360
123580
  _getObbMinPenetration: function _getObbMinPenetration(obbA, obbB) {
123361
- var _this12 = this;
123581
+ var _this13 = this;
123362
123582
  var axisInfoA = this._getObbAxisInfo(obbA);
123363
123583
  var axisInfoB = this._getObbAxisInfo(obbB);
123364
123584
  var centerDelta = new this.THREE.Vector3().subVectors(axisInfoB.center, axisInfoA.center);
@@ -123368,7 +123588,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123368
123588
  if (lengthSq <= COLLISION_OBB_AXIS_EPSILON) return true;
123369
123589
  var normalizedAxis = axis.clone().multiplyScalar(1 / Math.sqrt(lengthSq));
123370
123590
  var projectionDistance = Math.abs(centerDelta.dot(normalizedAxis));
123371
- var penetration = _this12._getObbProjectionRadius(axisInfoA, normalizedAxis) + _this12._getObbProjectionRadius(axisInfoB, normalizedAxis) - projectionDistance;
123591
+ var penetration = _this13._getObbProjectionRadius(axisInfoA, normalizedAxis) + _this13._getObbProjectionRadius(axisInfoB, normalizedAxis) - projectionDistance;
123372
123592
  if (penetration <= 0) {
123373
123593
  minPenetration = penetration;
123374
123594
  return false;
@@ -123399,7 +123619,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123399
123619
  var obbsB = this._getCollisionObbs(boxB);
123400
123620
  for (var i = 0; i < obbsA.length; i++) {
123401
123621
  for (var j = 0; j < obbsB.length; j++) {
123402
- if (this._getObbMinPenetration(obbsA[i], obbsB[j]) > COLLISION_PENETRATION_EPSILON) {
123622
+ if (this._getObbMinPenetration(obbsA[i], obbsB[j]) >= COLLISION_CONTACT_EPSILON) {
123403
123623
  return true;
123404
123624
  }
123405
123625
  }
@@ -123433,7 +123653,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123433
123653
  return this._queryOctreeByBoxWithRoot(this._octree, box);
123434
123654
  },
123435
123655
  getOctreeCollisionPairs: function getOctreeCollisionPairs() {
123436
- var _this13 = this;
123656
+ var _this14 = this;
123437
123657
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
123438
123658
  var pairs = [];
123439
123659
  if (!this._boxIndex || this._boxIndex.size === 0) return {
@@ -123449,7 +123669,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123449
123669
  var getEntriesByIds = function getEntriesByIds(ids) {
123450
123670
  var entries = [];
123451
123671
  var idSet = new Set(ids);
123452
- _this13._boxIndex.forEach(function (box, id) {
123672
+ _this14._boxIndex.forEach(function (box, id) {
123453
123673
  var key = String(id);
123454
123674
  if (idSet.has(key)) {
123455
123675
  entries.push({
@@ -123503,21 +123723,21 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123503
123723
  sourceEntries.forEach(function (_ref) {
123504
123724
  var idA = _ref.id,
123505
123725
  boxA = _ref.box;
123506
- if (!_this13._isCollisionBoxAvailable(boxA)) return;
123507
- var hits = _this13._queryOctreeByBoxWithRoot(root, boxA);
123726
+ if (!_this14._isCollisionBoxAvailable(boxA)) return;
123727
+ var hits = _this14._queryOctreeByBoxWithRoot(root, boxA);
123508
123728
  for (var i = 0; i < hits.length; i++) {
123509
123729
  var item = hits[i];
123510
123730
  if (!item || String(item.id) === String(idA)) continue;
123511
123731
  var boxB = item.box;
123512
- if (!_this13._isCollisionBoxMatched(boxA, boxB)) continue;
123732
+ if (!_this14._isCollisionBoxMatched(boxA, boxB)) continue;
123513
123733
  if (dedupePairKeySet) {
123514
123734
  var pairKey = "".concat(String(idA), "__").concat(String(item.id));
123515
123735
  if (dedupePairKeySet.has(pairKey)) continue;
123516
123736
  dedupePairKeySet.add(pairKey);
123517
123737
  }
123518
123738
  pairs.push({
123519
- idA: _this13._formatCollisionPairId(idA),
123520
- idB: _this13._formatCollisionPairId(item.id)
123739
+ idA: _this14._formatCollisionPairId(idA),
123740
+ idB: _this14._formatCollisionPairId(item.id)
123521
123741
  });
123522
123742
  }
123523
123743
  });
@@ -123654,7 +123874,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123654
123874
  * @returns {Object|null} { planeBox: THREE.Box3|null, frustumBox: THREE.Box3, frustumY: {min, max} } 或 null(当没有平面交点且未请求 frustumY)
123655
123875
  */
123656
123876
  getScreenPlaneBounds: function getScreenPlaneBounds(camera, width, height, plane) {
123657
- var _this14 = this;
123877
+ var _this15 = this;
123658
123878
  var opts = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
123659
123879
  var _opts$includeFrustumY = opts.includeFrustumY,
123660
123880
  includeFrustumY = _opts$includeFrustumY === void 0 ? false : _opts$includeFrustumY;
@@ -123699,7 +123919,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123699
123919
  var volumeCorners = nearCorners.concat(farCorners);
123700
123920
  var projectedPoints = volumeCorners.map(function (p) {
123701
123921
  var yProj = -(a * p.x + c * p.z + d) / b;
123702
- return new _this14.THREE.Vector3(p.x, yProj, p.z);
123922
+ return new _this15.THREE.Vector3(p.x, yProj, p.z);
123703
123923
  });
123704
123924
  planeBox = new this.THREE.Box3().setFromPoints(projectedPoints);
123705
123925
  }
@@ -123930,7 +124150,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123930
124150
  */
123931
124151
  performFrustumCulling: function performFrustumCulling() {
123932
124152
  var _arguments = arguments,
123933
- _this15 = this;
124153
+ _this16 = this;
123934
124154
  return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee3() {
123935
124155
  var options, skipUnload, modelState, now, globalFrustum, globalVpMatrix, toUnload, bypassList, visibleIds, candidates, visibleIdSet, frustum, exclude, hits, i, occlusionState, occlusionEnabled, state, w, h, aspectRatio, sw, sh, rt, t0, opaqueCandidates, transparentCandidates, _i5, totalInstances, transparentTotal, activeIdIndexArr, transparentIdIndexArr, occObjs, asyncBuildEnabled, _occBuild, asyncState, token, opaqueSnapshot, transparentMesh, transparentCapacity, nextCap, geometry, material, tempMatrix, tempScale, tempObj, tempColor, tIdx, _i0, c, idx, r, g, b, _c$box$userData$obb, matrix, halfSize, tMaxIdx, prevToneMapping, prevTarget, prevClearColorHex, prevClearAlpha, _c3, cvs, cssW, cssH, dst, src, row, srcRow, dstRow, idIndexArr, maxIdx, totalPixels, targetSamples, baseStride, extraStride, stride, minSampleCount, scanResult, indices, _i1, id, transparentMaxIdx, tIdIndexArr, tScanResult, tIndices, _i10, _id, _i11, _i12, toLoadSet, parentsToCheck, _i15, _toUnload, _toUnload$_i, modelId, child, _t2;
123936
124156
  return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context3) {
@@ -123938,8 +124158,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123938
124158
  case 0:
123939
124159
  options = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};
123940
124160
  skipUnload = !!(options && options.skipUnload);
123941
- modelState = _this15.noObserver ? _this15.noObserver.modelStateManager : _this15.modelStateManager;
123942
- if (!(!_this15.modelStateManager.frustumCheckEnabled || !_this15.scene)) {
124161
+ modelState = _this16.noObserver ? _this16.noObserver.modelStateManager : _this16.modelStateManager;
124162
+ if (!(!_this16.modelStateManager.frustumCheckEnabled || !_this16.scene)) {
123943
124163
  _context3.n = 1;
123944
124164
  break;
123945
124165
  }
@@ -123955,10 +124175,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123955
124175
  modelState.lastCullingTime = now;
123956
124176
 
123957
124177
  // 预先创建视椎体,供后续遍历复用
123958
- if (!_this15._frustum) _this15._frustum = new _this15.THREE.Frustum();
123959
- if (!_this15._vpMatrix) _this15._vpMatrix = new _this15.THREE.Matrix4();
123960
- globalFrustum = _this15._frustum;
123961
- globalVpMatrix = _this15._vpMatrix.multiplyMatrices(_this15.camera.projectionMatrix, _this15.camera.matrixWorldInverse);
124178
+ if (!_this16._frustum) _this16._frustum = new _this16.THREE.Frustum();
124179
+ if (!_this16._vpMatrix) _this16._vpMatrix = new _this16.THREE.Matrix4();
124180
+ globalFrustum = _this16._frustum;
124181
+ globalVpMatrix = _this16._vpMatrix.multiplyMatrices(_this16.camera.projectionMatrix, _this16.camera.matrixWorldInverse);
123962
124182
  globalFrustum.setFromProjectionMatrix(globalVpMatrix);
123963
124183
 
123964
124184
  // 使用局部变量收集 ID,最后一次性赋值
@@ -123972,13 +124192,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123972
124192
  });
123973
124193
  }
123974
124194
  visibleIdSet = new Set(visibleIds);
123975
- if (!_this15._octree) {
124195
+ if (!_this16._octree) {
123976
124196
  _context3.n = 8;
123977
124197
  break;
123978
124198
  }
123979
- frustum = _this15._getCurrentFrustum();
124199
+ frustum = _this16._getCurrentFrustum();
123980
124200
  exclude = bypassList || new Set();
123981
- hits = _this15.queryOctreeByFrustum(frustum, exclude);
124201
+ hits = _this16.queryOctreeByFrustum(frustum, exclude);
123982
124202
  i = 0;
123983
124203
  case 3:
123984
124204
  if (!(i < hits.length)) {
@@ -123991,14 +124211,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
123991
124211
  }
123992
124212
  return _context3.a(3, 6);
123993
124213
  case 4:
123994
- if (_this15.shouldApplyOcclusionByBox(hits[i].box)) {
124214
+ if (_this16.shouldApplyOcclusionByBox(hits[i].box)) {
123995
124215
  _context3.n = 5;
123996
124216
  break;
123997
124217
  }
123998
- visibleIdSet.add(_this15.formatModelId(hits[i].modelId));
124218
+ visibleIdSet.add(_this16.formatModelId(hits[i].modelId));
123999
124219
  return _context3.a(3, 6);
124000
124220
  case 5:
124001
- candidates.push(hits[i]);
124221
+ _this16.appendOcclusionCandidates(candidates, hits[i].modelId, hits[i].box, globalFrustum);
124002
124222
  case 6:
124003
124223
  i++;
124004
124224
  _context3.n = 3;
@@ -124007,35 +124227,32 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124007
124227
  _context3.n = 9;
124008
124228
  break;
124009
124229
  case 8:
124010
- if (_this15._boxIndex && _this15._boxIndex.size > 0) {
124011
- _this15._boxIndex.forEach(function (box, modelId) {
124230
+ if (_this16._boxIndex && _this16._boxIndex.size > 0) {
124231
+ _this16._boxIndex.forEach(function (box, modelId) {
124012
124232
  if (bypassList && bypassList.size > 0 && bypassList.has(modelId)) return;
124013
124233
  if (box.userData && box.userData.visible === false) return;
124014
- if (_this15.isBoxInFrustum(box)) {
124015
- if (!_this15.shouldApplyOcclusionByBox(box)) {
124016
- visibleIdSet.add(_this15.formatModelId(modelId));
124234
+ if (_this16.isBoxInFrustum(box)) {
124235
+ if (!_this16.shouldApplyOcclusionByBox(box)) {
124236
+ visibleIdSet.add(_this16.formatModelId(modelId));
124017
124237
  return;
124018
124238
  }
124019
- candidates.push({
124020
- modelId: modelId,
124021
- box: box
124022
- });
124239
+ _this16.appendOcclusionCandidates(candidates, modelId, box, globalFrustum);
124023
124240
  }
124024
124241
  });
124025
124242
  }
124026
124243
  case 9:
124027
- occlusionState = _this15.noObserver ? _this15.noObserver.occlusionState : _this15.occlusionState; // 从响应式对象获取开关状态
124028
- occlusionEnabled = _this15.occlusionState && _this15.occlusionState.enabled;
124244
+ occlusionState = _this16.noObserver ? _this16.noObserver.occlusionState : _this16.occlusionState; // 从响应式对象获取开关状态
124245
+ occlusionEnabled = _this16.occlusionState && _this16.occlusionState.enabled;
124029
124246
  if (!occlusionEnabled) {
124030
124247
  _context3.n = 16;
124031
124248
  break;
124032
124249
  }
124033
124250
  state = occlusionState;
124034
- w = _this15.renderer && _this15.renderer.domElement ? _this15.renderer.domElement.clientWidth || _this15.renderer.domElement.width || 0 : 0;
124035
- h = _this15.renderer && _this15.renderer.domElement ? _this15.renderer.domElement.clientHeight || _this15.renderer.domElement.height || 0 : 0; // bufferWidth/Height 仍从响应式对象读取以支持动态修改
124251
+ w = _this16.renderer && _this16.renderer.domElement ? _this16.renderer.domElement.clientWidth || _this16.renderer.domElement.width || 0 : 0;
124252
+ h = _this16.renderer && _this16.renderer.domElement ? _this16.renderer.domElement.clientHeight || _this16.renderer.domElement.height || 0 : 0; // bufferWidth/Height 仍从响应式对象读取以支持动态修改
124036
124253
  // 性能优化:使用降采样缓冲区进行遮挡剔除,大幅减少 readPixels 耗时 (从全屏降至约 256px 宽)
124037
124254
  aspectRatio = h > 0 ? w / h : 1;
124038
- sw = _this15.occlusionState.bufferWidth || 256;
124255
+ sw = _this16.occlusionState.bufferWidth || 256;
124039
124256
  sh = Math.floor(sw / aspectRatio);
124040
124257
  sw = Math.max(1, sw);
124041
124258
  sh = Math.max(1, sh);
@@ -124044,16 +124261,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124044
124261
  _context3.p = 10;
124045
124262
  if (!rt || state._rtW !== sw || state._rtH !== sh) {
124046
124263
  if (rt && typeof rt.dispose === 'function') rt.dispose();
124047
- rt = new _this15.THREE.WebGLRenderTarget(sw, sh, {
124264
+ rt = new _this16.THREE.WebGLRenderTarget(sw, sh, {
124048
124265
  depthBuffer: true,
124049
124266
  stencilBuffer: false,
124050
124267
  samples: 0
124051
124268
  });
124052
- rt.texture.minFilter = _this15.THREE.NearestFilter;
124053
- rt.texture.magFilter = _this15.THREE.NearestFilter;
124269
+ rt.texture.minFilter = _this16.THREE.NearestFilter;
124270
+ rt.texture.magFilter = _this16.THREE.NearestFilter;
124054
124271
  rt.texture.generateMipmaps = false;
124055
- rt.texture.type = _this15.THREE.UnsignedByteType;
124056
- rt.texture.format = _this15.THREE.RGBAFormat;
124272
+ rt.texture.type = _this16.THREE.UnsignedByteType;
124273
+ rt.texture.format = _this16.THREE.RGBAFormat;
124057
124274
  rt.samples = 0;
124058
124275
  state._colorRT = rt;
124059
124276
  state._rtW = sw;
@@ -124062,7 +124279,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124062
124279
  } else if (!state._colorBuffer || state._colorBuffer.length !== sw * sh * 4) {
124063
124280
  state._colorBuffer = new Uint8Array(sw * sh * 4);
124064
124281
  }
124065
- if (!state._occScene) state._occScene = new _this15.THREE.Scene();
124282
+ if (!state._occScene) state._occScene = new _this16.THREE.Scene();
124066
124283
  // if (!state._occPerfStats) state._occPerfStats = Object.create(null);
124067
124284
  // const _occRecordPerf = (name, ms, meta) => {
124068
124285
  // const this.stats = state._occPerfStats;
@@ -124111,10 +124328,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124111
124328
  // child.parent = null;
124112
124329
  // // child.dispatchEvent({ type: 'removed' }); // 保持轻量,暂不触发事件
124113
124330
  // }
124114
- asyncBuildEnabled = _this15.occlusionState && _this15.occlusionState.asyncBuildEnabled && !!window.requestAnimationFrame;
124331
+ asyncBuildEnabled = _this16.occlusionState && _this16.occlusionState.asyncBuildEnabled && !!window.requestAnimationFrame;
124115
124332
  _occBuild = function _occBuild(opaqueList) {
124116
124333
  var tBuild0 = performance.now();
124117
124334
  var flag1Items = [];
124335
+ var flag2Items = [];
124118
124336
  var flag3Items = [];
124119
124337
  var globalIdx = 1;
124120
124338
  for (var _i6 = 0; _i6 < opaqueList.length; _i6++) {
@@ -124122,13 +124340,18 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124122
124340
  var obbData = c.box && c.box.userData ? c.box.userData.obbData : null;
124123
124341
  if (!obbData || !obbData.length) continue;
124124
124342
  var idx = globalIdx++;
124125
- activeIdIndexArr[idx] = _this15.formatModelId(c.modelId);
124343
+ activeIdIndexArr[idx] = _this16.formatModelId(c.modelId);
124126
124344
  var flag = c.box.userData && c.box.userData.flag || 1;
124127
124345
  if (flag === 3 && c.box.userData && c.box.userData.obb) {
124128
124346
  flag3Items.push({
124129
124347
  c: c,
124130
124348
  idx: idx
124131
124349
  });
124350
+ } else if (flag === 2) {
124351
+ flag2Items.push({
124352
+ c: c,
124353
+ idx: idx
124354
+ });
124132
124355
  } else if (flag === 1) {
124133
124356
  flag1Items.push({
124134
124357
  c: c,
@@ -124138,13 +124361,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124138
124361
  }
124139
124362
  var maxIdx = globalIdx - 1;
124140
124363
  activeIdIndexArr.length = maxIdx + 1;
124141
- var _tempMatrix = occObjs._tempMatrix || (occObjs._tempMatrix = new _this15.THREE.Matrix4());
124142
- var _tempColor = occObjs._tempColor || (occObjs._tempColor = new _this15.THREE.Color());
124143
- var _tempScale = occObjs._tempScale || (occObjs._tempScale = new _this15.THREE.Vector3());
124144
- var _tempVec3 = occObjs._tempVec3 || (occObjs._tempVec3 = new _this15.THREE.Vector3());
124145
- var _tempMatA = occObjs._tempMatA || (occObjs._tempMatA = new _this15.THREE.Matrix4());
124364
+ var _tempMatrix = occObjs._tempMatrix || (occObjs._tempMatrix = new _this16.THREE.Matrix4());
124365
+ var _tempColor = occObjs._tempColor || (occObjs._tempColor = new _this16.THREE.Color());
124366
+ var _tempScale = occObjs._tempScale || (occObjs._tempScale = new _this16.THREE.Vector3());
124367
+ var _tempVec3 = occObjs._tempVec3 || (occObjs._tempVec3 = new _this16.THREE.Vector3());
124368
+ var _tempMatA = occObjs._tempMatA || (occObjs._tempMatA = new _this16.THREE.Matrix4());
124146
124369
  var boxes = occObjs.boxes;
124147
- var boxCount = flag3Items.length;
124370
+ var boxItems = flag3Items.concat(flag2Items);
124371
+ var boxCount = boxItems.length;
124148
124372
  if (boxCount > 0) {
124149
124373
  var needCapacity = boxCount;
124150
124374
  var capacity = boxes && typeof boxes.capacity === 'number' ? boxes.capacity : 0;
@@ -124155,16 +124379,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124155
124379
  if (boxes.mesh.material) boxes.mesh.material.dispose();
124156
124380
  }
124157
124381
  var nextCap = Math.max(needCapacity, capacity > 0 ? capacity * 2 : 256);
124158
- var geometry = new _this15.THREE.BoxGeometry(1, 1, 1);
124159
- var mat = new _this15.THREE.MeshBasicMaterial({
124382
+ var geometry = new _this16.THREE.BoxGeometry(1, 1, 1);
124383
+ var mat = new _this16.THREE.MeshBasicMaterial({
124160
124384
  color: 0xffffff,
124161
- side: _this15.THREE.DoubleSide,
124162
- blending: _this15.THREE.NoBlending,
124385
+ side: _this16.THREE.DoubleSide,
124386
+ blending: _this16.THREE.NoBlending,
124163
124387
  depthTest: true,
124164
124388
  depthWrite: true,
124165
124389
  toneMapped: false
124166
124390
  });
124167
- var mesh = new _this15.THREE.InstancedMesh(geometry, mat, nextCap);
124391
+ var mesh = new _this16.THREE.InstancedMesh(geometry, mat, nextCap);
124168
124392
  mesh.frustumCulled = false;
124169
124393
  mesh.matrixAutoUpdate = false;
124170
124394
  state._occScene.add(mesh);
@@ -124177,20 +124401,25 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124177
124401
  }
124178
124402
  boxes.mesh.count = boxCount;
124179
124403
  for (var _i7 = 0; _i7 < boxCount; _i7++) {
124180
- var item = flag3Items[_i7];
124181
- var _item$c$box$userData$ = item.c.box.userData.obb,
124182
- matrix = _item$c$box$userData$.matrix,
124183
- halfSize = _item$c$box$userData$.halfSize;
124404
+ var item = boxItems[_i7];
124184
124405
  var _idx = item.idx;
124185
124406
  var r = (_idx & 255) / 255;
124186
124407
  var g = (_idx >> 8 & 255) / 255;
124187
124408
  var b = (_idx >> 16 & 255) / 255;
124188
124409
  _tempColor.setRGB(r, g, b);
124189
- _tempScale.copy(halfSize).multiplyScalar(2);
124190
- _tempMatrix.copy(matrix);
124191
- _tempMatrix.scale(_tempScale);
124192
- if (typeof _this15.bizToThreeMatrix !== 'undefined' && _this15.bizToThreeMatrix) {
124193
- _tempMatrix.premultiply(_this15.bizToThreeMatrix);
124410
+ var obb = item.c.box.userData && item.c.box.userData.obb;
124411
+ if (obb) {
124412
+ _tempScale.copy(obb.halfSize).multiplyScalar(2);
124413
+ _tempMatrix.copy(obb.matrix);
124414
+ _tempMatrix.scale(_tempScale);
124415
+ if (typeof _this16.bizToThreeMatrix !== 'undefined' && _this16.bizToThreeMatrix) {
124416
+ _tempMatrix.premultiply(_this16.bizToThreeMatrix);
124417
+ }
124418
+ } else {
124419
+ item.c.box.getSize(_tempScale);
124420
+ item.c.box.getCenter(_tempVec3);
124421
+ _tempMatrix.makeTranslation(_tempVec3.x, _tempVec3.y, _tempVec3.z);
124422
+ _tempMatrix.scale(_tempScale);
124194
124423
  }
124195
124424
  boxes.mesh.setMatrixAt(_i7, _tempMatrix);
124196
124425
  boxes.mesh.setColorAt(_i7, _tempColor);
@@ -124219,16 +124448,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124219
124448
  var needIdx = totalIdx;
124220
124449
  var ensureBatch1 = function ensureBatch1() {
124221
124450
  if (batch1 && batch1.mesh && batch1.geometry && batch1.material) return;
124222
- var geometry = new _this15.THREE.BufferGeometry();
124223
- var material = new _this15.THREE.MeshBasicMaterial({
124451
+ var geometry = new _this16.THREE.BufferGeometry();
124452
+ var material = new _this16.THREE.MeshBasicMaterial({
124224
124453
  vertexColors: true,
124225
- side: _this15.THREE.DoubleSide,
124226
- blending: _this15.THREE.NoBlending,
124454
+ side: _this16.THREE.DoubleSide,
124455
+ blending: _this16.THREE.NoBlending,
124227
124456
  depthTest: true,
124228
124457
  depthWrite: true,
124229
124458
  toneMapped: false
124230
124459
  });
124231
- var mesh = new _this15.THREE.Mesh(geometry, material);
124460
+ var mesh = new _this16.THREE.Mesh(geometry, material);
124232
124461
  mesh.frustumCulled = false;
124233
124462
  batch1 = occObjs.batch1 = {
124234
124463
  mesh: mesh,
@@ -124252,14 +124481,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124252
124481
  batch1.positions = _positions;
124253
124482
  batch1.colors = _colors;
124254
124483
  batch1.indices = _indices2;
124255
- var _posAttr = new _this15.THREE.BufferAttribute(_positions, 3);
124256
- var _colAttr = new _this15.THREE.BufferAttribute(_colors, 3);
124257
- _posAttr.setUsage(_this15.THREE.DynamicDrawUsage);
124258
- _colAttr.setUsage(_this15.THREE.DynamicDrawUsage);
124484
+ var _posAttr = new _this16.THREE.BufferAttribute(_positions, 3);
124485
+ var _colAttr = new _this16.THREE.BufferAttribute(_colors, 3);
124486
+ _posAttr.setUsage(_this16.THREE.DynamicDrawUsage);
124487
+ _colAttr.setUsage(_this16.THREE.DynamicDrawUsage);
124259
124488
  batch1.geometry.setAttribute('position', _posAttr);
124260
124489
  batch1.geometry.setAttribute('color', _colAttr);
124261
- var _idxAttr = new _this15.THREE.BufferAttribute(_indices2, 1);
124262
- _idxAttr.setUsage(_this15.THREE.DynamicDrawUsage);
124490
+ var _idxAttr = new _this16.THREE.BufferAttribute(_indices2, 1);
124491
+ _idxAttr.setUsage(_this16.THREE.DynamicDrawUsage);
124263
124492
  batch1.geometry.setIndex(_idxAttr);
124264
124493
  }
124265
124494
  var positions = batch1.positions;
@@ -124279,15 +124508,15 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124279
124508
  var _g = (_idx2 >> 8 & 255) / 255;
124280
124509
  var _b = (_idx2 >> 16 & 255) / 255;
124281
124510
  var vertexCount = _obbData2.length / 3 | 0;
124282
- var needTransform = matrixArr && matrixArr.length >= 16 || typeof _this15.bizToThreeMatrix !== 'undefined' && _this15.bizToThreeMatrix;
124511
+ var needTransform = matrixArr && matrixArr.length >= 16 || typeof _this16.bizToThreeMatrix !== 'undefined' && _this16.bizToThreeMatrix;
124283
124512
  if (needTransform) {
124284
124513
  if (matrixArr && matrixArr.length >= 16) {
124285
124514
  _tempMatA.fromArray(matrixArr);
124286
124515
  } else {
124287
124516
  _tempMatA.identity();
124288
124517
  }
124289
- if (typeof _this15.bizToThreeMatrix !== 'undefined' && _this15.bizToThreeMatrix) {
124290
- _tempMatA.premultiply(_this15.bizToThreeMatrix);
124518
+ if (typeof _this16.bizToThreeMatrix !== 'undefined' && _this16.bizToThreeMatrix) {
124519
+ _tempMatA.premultiply(_this16.bizToThreeMatrix);
124291
124520
  }
124292
124521
  }
124293
124522
  if (!needTransform && ArrayBuffer.isView(_obbData2)) {
@@ -124387,7 +124616,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124387
124616
  state._occMaxIdx = 0;
124388
124617
  activeIdIndexArr.length = 0;
124389
124618
  }
124390
- if (!state._occTransparentScene) state._occTransparentScene = new _this15.THREE.Scene();
124619
+ if (!state._occTransparentScene) state._occTransparentScene = new _this16.THREE.Scene();
124391
124620
  transparentMesh = state._occTransparentMesh;
124392
124621
  transparentCapacity = transparentMesh && transparentMesh.userData && typeof transparentMesh.userData.capacity === 'number' ? transparentMesh.userData.capacity : 0;
124393
124622
  if (!transparentMesh || transparentCapacity < transparentTotal) {
@@ -124397,16 +124626,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124397
124626
  state._occTransparentScene.remove(transparentMesh);
124398
124627
  }
124399
124628
  nextCap = Math.max(transparentTotal, transparentCapacity > 0 ? transparentCapacity * 2 : 256);
124400
- geometry = new _this15.THREE.BoxGeometry(1, 1, 1);
124401
- material = new _this15.THREE.MeshBasicMaterial({
124629
+ geometry = new _this16.THREE.BoxGeometry(1, 1, 1);
124630
+ material = new _this16.THREE.MeshBasicMaterial({
124402
124631
  color: 0xffffff,
124403
- side: _this15.THREE.DoubleSide,
124404
- blending: _this15.THREE.NoBlending,
124632
+ side: _this16.THREE.DoubleSide,
124633
+ blending: _this16.THREE.NoBlending,
124405
124634
  depthTest: true,
124406
124635
  depthWrite: false,
124407
124636
  toneMapped: false
124408
124637
  });
124409
- transparentMesh = new _this15.THREE.InstancedMesh(geometry, material, nextCap);
124638
+ transparentMesh = new _this16.THREE.InstancedMesh(geometry, material, nextCap);
124410
124639
  transparentMesh.frustumCulled = false;
124411
124640
  transparentMesh.matrixAutoUpdate = false;
124412
124641
  transparentMesh.userData.capacity = nextCap;
@@ -124416,15 +124645,15 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124416
124645
  state._occTransparentScene.add(transparentMesh);
124417
124646
  }
124418
124647
  if (transparentTotal > 0) {
124419
- tempMatrix = new _this15.THREE.Matrix4();
124420
- tempScale = new _this15.THREE.Vector3();
124421
- tempObj = new _this15.THREE.Object3D();
124422
- tempColor = new _this15.THREE.Color();
124648
+ tempMatrix = new _this16.THREE.Matrix4();
124649
+ tempScale = new _this16.THREE.Vector3();
124650
+ tempObj = new _this16.THREE.Object3D();
124651
+ tempColor = new _this16.THREE.Color();
124423
124652
  tIdx = 1;
124424
124653
  for (_i0 = 0; _i0 < transparentTotal; _i0++) {
124425
124654
  c = transparentCandidates[_i0];
124426
124655
  idx = tIdx++;
124427
- transparentIdIndexArr[idx] = _this15.formatModelId(c.modelId);
124656
+ transparentIdIndexArr[idx] = _this16.formatModelId(c.modelId);
124428
124657
  r = (idx & 255) / 255;
124429
124658
  g = (idx >> 8 & 255) / 255;
124430
124659
  b = (idx >> 16 & 255) / 255;
@@ -124434,8 +124663,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124434
124663
  tempMatrix.copy(matrix);
124435
124664
  tempScale.copy(halfSize).multiplyScalar(2);
124436
124665
  tempMatrix.scale(tempScale);
124437
- if (typeof _this15.bizToThreeMatrix !== 'undefined' && _this15.bizToThreeMatrix) {
124438
- tempMatrix.premultiply(_this15.bizToThreeMatrix);
124666
+ if (typeof _this16.bizToThreeMatrix !== 'undefined' && _this16.bizToThreeMatrix) {
124667
+ tempMatrix.premultiply(_this16.bizToThreeMatrix);
124439
124668
  }
124440
124669
  } else {
124441
124670
  c.box.getSize(tempScale);
@@ -124463,28 +124692,28 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124463
124692
  }
124464
124693
 
124465
124694
  // console.log('this.renderer', this.renderer)
124466
- prevToneMapping = _this15.renderer.toneMapping;
124467
- prevTarget = _this15.renderer.getRenderTarget ? _this15.renderer.getRenderTarget() : null;
124695
+ prevToneMapping = _this16.renderer.toneMapping;
124696
+ prevTarget = _this16.renderer.getRenderTarget ? _this16.renderer.getRenderTarget() : null;
124468
124697
  prevClearColorHex = 0x000000;
124469
124698
  prevClearAlpha = 0;
124470
124699
  try {
124471
- _c3 = _this15.renderer.getClearColor ? _this15.renderer.getClearColor() : null;
124700
+ _c3 = _this16.renderer.getClearColor ? _this16.renderer.getClearColor() : null;
124472
124701
  if (_c3 && _c3.isColor) prevClearColorHex = _c3.getHex();
124473
- prevClearAlpha = typeof _this15.renderer.getClearAlpha === 'function' ? _this15.renderer.getClearAlpha() : 0;
124702
+ prevClearAlpha = typeof _this16.renderer.getClearAlpha === 'function' ? _this16.renderer.getClearAlpha() : 0;
124474
124703
  } catch (_) {}
124475
- _this15.renderer.toneMapping = _this15.THREE.NoToneMapping;
124476
- _this15.renderer.setRenderTarget(rt);
124477
- _this15.renderer.setClearColor(new _this15.THREE.Color(0, 0, 0), 0);
124478
- _this15.renderer.clear(true, true, false);
124479
- _this15.camera.updateMatrixWorld(true);
124480
- _this15.renderer.render(state._occScene, _this15.camera);
124481
- _this15.updateGlobalSceneBoundingBox();
124704
+ _this16.renderer.toneMapping = _this16.THREE.NoToneMapping;
124705
+ _this16.renderer.setRenderTarget(rt);
124706
+ _this16.renderer.setClearColor(new _this16.THREE.Color(0, 0, 0), 0);
124707
+ _this16.renderer.clear(true, true, false);
124708
+ _this16.camera.updateMatrixWorld(true);
124709
+ _this16.renderer.render(state._occScene, _this16.camera);
124710
+ _this16.updateGlobalSceneBoundingBox();
124482
124711
  // const t1 = performance.now();
124483
124712
  // 从响应式对象读取 previewEnabled
124484
- _this15.$emit('updateBoundingBox');
124713
+ _this16.$emit('updateBoundingBox');
124485
124714
 
124486
124715
  // const tPreview0 = performance.now();
124487
- if (_this15.occlusionState.previewEnabled) {
124716
+ if (_this16.occlusionState.previewEnabled) {
124488
124717
  if (!state._previewCanvas) {
124489
124718
  cvs = document.createElement('canvas');
124490
124719
  cvs.style.position = 'fixed';
@@ -124502,11 +124731,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124502
124731
  }
124503
124732
  state._previewCanvas.width = sw;
124504
124733
  state._previewCanvas.height = sh;
124505
- cssW = Math.min(_this15.renderer.domElement.width / 5);
124506
- cssH = Math.min(_this15.renderer.domElement.height / 5);
124734
+ cssW = Math.min(_this16.renderer.domElement.width / 5);
124735
+ cssH = Math.min(_this16.renderer.domElement.height / 5);
124507
124736
  state._previewCanvas.style.width = cssW + 'px';
124508
124737
  state._previewCanvas.style.height = cssH + 'px';
124509
- _this15.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._previewBuffer);
124738
+ _this16.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._previewBuffer);
124510
124739
  if (!state._previewImageData || state._previewImageData.width !== sw || state._previewImageData.height !== sh) {
124511
124740
  state._previewImageData = state._previewCtx.createImageData(sw, sh);
124512
124741
  }
@@ -124529,17 +124758,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124529
124758
  }
124530
124759
  // const tPreview1 = performance.now();
124531
124760
  // _occRecordPerf('occ_preview_ms', tPreview1 - tPreview0, { sw, sh });
124532
- _this15.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._colorBuffer);
124761
+ _this16.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._colorBuffer);
124533
124762
  idIndexArr = activeIdIndexArr;
124534
124763
  maxIdx = typeof state._occMaxIdx === 'number' ? state._occMaxIdx : 0;
124535
124764
  totalPixels = sw * sh;
124536
124765
  targetSamples = totalPixels;
124537
124766
  baseStride = Math.max(1, Math.floor(Math.sqrt(totalPixels / Math.max(1, targetSamples))));
124538
- extraStride = _this15.occlusionState && _this15.occlusionState.sampleStride ? _this15.occlusionState.sampleStride : 1;
124767
+ extraStride = _this16.occlusionState && _this16.occlusionState.sampleStride ? _this16.occlusionState.sampleStride : 1;
124539
124768
  stride = Math.max(1, baseStride * Math.max(1, extraStride));
124540
- minSampleCount = _this15.occlusionState && _this15.occlusionState.minSampleCount ? _this15.occlusionState.minSampleCount : 1;
124769
+ minSampleCount = _this16.occlusionState && _this16.occlusionState.minSampleCount ? _this16.occlusionState.minSampleCount : 1;
124541
124770
  _context3.n = 11;
124542
- return _this15.scanOcclusionIndices(state._colorBuffer, sw, sh, stride, maxIdx, minSampleCount);
124771
+ return _this16.scanOcclusionIndices(state._colorBuffer, sw, sh, stride, maxIdx, minSampleCount);
124543
124772
  case 11:
124544
124773
  scanResult = _context3.v;
124545
124774
  if (scanResult && scanResult.buffer) {
@@ -124557,13 +124786,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124557
124786
  _context3.n = 13;
124558
124787
  break;
124559
124788
  }
124560
- _this15.renderer.setClearColor(new _this15.THREE.Color(0, 0, 0), 0);
124561
- _this15.renderer.clear(true, false, false);
124562
- _this15.renderer.render(state._occTransparentScene, _this15.camera);
124563
- _this15.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._colorBuffer);
124789
+ _this16.renderer.setClearColor(new _this16.THREE.Color(0, 0, 0), 0);
124790
+ _this16.renderer.clear(true, false, false);
124791
+ _this16.renderer.render(state._occTransparentScene, _this16.camera);
124792
+ _this16.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._colorBuffer);
124564
124793
  tIdIndexArr = transparentIdIndexArr;
124565
124794
  _context3.n = 12;
124566
- return _this15.scanOcclusionIndices(state._colorBuffer, sw, sh, stride, transparentMaxIdx, minSampleCount);
124795
+ return _this16.scanOcclusionIndices(state._colorBuffer, sw, sh, stride, transparentMaxIdx, minSampleCount);
124567
124796
  case 12:
124568
124797
  tScanResult = _context3.v;
124569
124798
  if (tScanResult && tScanResult.buffer) {
@@ -124577,23 +124806,23 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124577
124806
  }
124578
124807
  }
124579
124808
  case 13:
124580
- _this15.renderer.setRenderTarget(prevTarget);
124581
- _this15.renderer.setClearColor(prevClearColorHex, prevClearAlpha);
124582
- _this15.renderer.toneMapping = prevToneMapping;
124809
+ _this16.renderer.setRenderTarget(prevTarget);
124810
+ _this16.renderer.setClearColor(prevClearColorHex, prevClearAlpha);
124811
+ _this16.renderer.toneMapping = prevToneMapping;
124583
124812
  _context3.n = 15;
124584
124813
  break;
124585
124814
  case 14:
124586
124815
  _context3.p = 14;
124587
124816
  _t2 = _context3.v;
124588
124817
  for (_i11 = 0; _i11 < candidates.length; _i11++) {
124589
- visibleIdSet.add(candidates[_i11].modelId);
124818
+ visibleIdSet.add(_this16.formatModelId(candidates[_i11].modelId));
124590
124819
  }
124591
124820
  case 15:
124592
124821
  _context3.n = 17;
124593
124822
  break;
124594
124823
  case 16:
124595
124824
  for (_i12 = 0; _i12 < candidates.length; _i12++) {
124596
- visibleIdSet.add(candidates[_i12].modelId);
124825
+ visibleIdSet.add(_this16.formatModelId(candidates[_i12].modelId));
124597
124826
  }
124598
124827
  case 17:
124599
124828
  visibleIds.length = 0;
@@ -124602,41 +124831,47 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124602
124831
  });
124603
124832
  toLoadSet = new Set(visibleIdSet);
124604
124833
  parentsToCheck = new Set();
124605
- _this15.scene.traverse(function (child) {
124834
+ _this16.scene.traverse(function (child) {
124606
124835
  if (!child.isInstancedMesh) return;
124607
- // 如果复用数量等于大于2个,则跳过裁剪和剔除处理(始终保留)
124836
+ var instancesMap = child && child.userData && child.userData.instancesMap instanceof Map ? child.userData.instancesMap : child.parent && child.parent.userData && child.parent.userData.instancesMap instanceof Map ? child.parent.userData.instancesMap : null;
124837
+
124838
+ // 多实例复用同一个 InstancedMesh 时,仅在全部实例都不可见时整体卸载。
124608
124839
  if (child.count >= 2) {
124609
- var instancesMap = child && child.userData && child.userData.instancesMap instanceof Map ? child.userData.instancesMap : child.parent && child.parent.userData && child.parent.userData.instancesMap instanceof Map ? child.parent.userData.instancesMap : null;
124610
124840
  if (instancesMap) {
124611
124841
  var allInactive = true;
124612
124842
  var modelIds = Array.from(instancesMap.keys());
124843
+ var unloadModelId = null;
124613
124844
 
124614
124845
  // 第一遍遍历:检查是否有任何一个实例处于活跃状态(在视锥体内且可见)
124615
124846
  for (var _i13 = 0, _modelIds2 = modelIds; _i13 < _modelIds2.length; _i13++) {
124616
124847
  var _modelId = _modelIds2[_i13];
124617
124848
  // 检查已取消勾选模型进行卸载
124618
- var documentId = _modelId.split(':')[1];
124619
- if (!_this15.noObserver.documentModelIds.get(documentId)) {
124620
- toUnload.push({
124621
- modelId: _modelId,
124622
- child: child
124623
- });
124624
- return;
124849
+ var documentId = String(_modelId).split(':')[1];
124850
+ if (documentId && !_this16.noObserver.documentModelIds.get(documentId)) {
124851
+ if (!skipUnload) _this16.setInstanceCullingVisible(child, _modelId, false);
124852
+ unloadModelId = _modelId;
124853
+ continue;
124854
+ }
124855
+ var _formattedModelId = _this16.formatModelId(_modelId);
124856
+ if (bypassList && bypassList.size > 0 && (bypassList.has(_modelId) || bypassList.has(_formattedModelId))) {
124857
+ if (!skipUnload) _this16.setInstanceCullingVisible(child, _modelId, true);
124858
+ allInactive = false;
124859
+ continue;
124625
124860
  }
124626
- if (bypassList && bypassList.size > 0 && bypassList.has(_modelId)) return;
124627
- var instanceInfo = instancesMap.get(_modelId);
124628
- var instanceIndex = instanceInfo && typeof instanceInfo.instanceIndex === 'number' ? instanceInfo.instanceIndex : null;
124629
- var _box = _this15._boxIndex && _this15._boxIndex.has(String(_modelId)) ? _this15._boxIndex.get(String(_modelId)) : _this15._boxIndex && _this15._boxIndex.has(_modelId) ? _this15._boxIndex.get(_modelId) : null;
124630
- if (!_this15.shouldApplyOcclusionByBox(_box)) {
124861
+ var _box = _this16._boxIndex && _this16._boxIndex.has(String(_modelId)) ? _this16._boxIndex.get(String(_modelId)) : _this16._boxIndex && _this16._boxIndex.has(_modelId) ? _this16._boxIndex.get(_modelId) : null;
124862
+ if (!_this16.shouldApplyOcclusionByBox(_box)) {
124863
+ if (!skipUnload) _this16.setInstanceCullingVisible(child, _modelId, true);
124631
124864
  allInactive = false;
124865
+ toLoadSet.delete(_formattedModelId);
124632
124866
  continue;
124633
124867
  }
124634
- var _inFrustum = _this15.isModelInFrustum(child, instanceIndex, globalFrustum);
124635
- var _modelInVisible = toLoadSet.has(_modelId);
124636
- // console.log('modelId', modelId, 'inFrustum', inFrustum, 'modelInVisible', modelInVisible)
124868
+ var _modelInVisible = visibleIdSet.has(_formattedModelId);
124869
+ toLoadSet.delete(_formattedModelId);
124637
124870
 
124638
- // 只要有一个实例在视锥体内且在可见列表中,就不整体卸载
124639
- if (_inFrustum || _modelInVisible) {
124871
+ // 可见集合已经聚合了同一模型的全部图元,任一图元可见时都保留该模型实例。
124872
+ var isActive = _modelInVisible;
124873
+ if (!skipUnload) _this16.setInstanceCullingVisible(child, _modelId, isActive);
124874
+ if (isActive) {
124640
124875
  allInactive = false;
124641
124876
  }
124642
124877
  }
@@ -124644,25 +124879,22 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124644
124879
  // 第二遍遍历:同步状态并决定是否卸载
124645
124880
  for (var _i14 = 0, _modelIds3 = modelIds; _i14 < _modelIds3.length; _i14++) {
124646
124881
  var _modelId2 = _modelIds3[_i14];
124647
- var _box2 = _this15._boxIndex && _this15._boxIndex.has(String(_modelId2)) ? _this15._boxIndex.get(String(_modelId2)) : _this15._boxIndex && _this15._boxIndex.has(_modelId2) ? _this15._boxIndex.get(_modelId2) : null;
124648
- if (!_this15.shouldApplyOcclusionByBox(_box2)) {
124649
- if (toLoadSet.has(_modelId2)) {
124650
- toLoadSet.delete(_modelId2);
124651
- }
124882
+ var _box2 = _this16._boxIndex && _this16._boxIndex.has(String(_modelId2)) ? _this16._boxIndex.get(String(_modelId2)) : _this16._boxIndex && _this16._boxIndex.has(_modelId2) ? _this16._boxIndex.get(_modelId2) : null;
124883
+ if (!_this16.shouldApplyOcclusionByBox(_box2)) {
124884
+ toLoadSet.delete(_this16.formatModelId(_modelId2));
124652
124885
  continue;
124653
124886
  }
124654
124887
  // 无论是否卸载,只要模型已在场景中,就从待加载集合中移除
124655
- if (toLoadSet.has(_modelId2)) {
124656
- toLoadSet.delete(_modelId2);
124657
- }
124888
+ toLoadSet.delete(_this16.formatModelId(_modelId2));
124889
+ if (!unloadModelId) unloadModelId = _modelId2;
124890
+ }
124658
124891
 
124659
- // 仅当所有实例都不活跃时,才执行卸载
124660
- if (!skipUnload && !_this15.firstPerSign && !_this15.roaming && allInactive) {
124661
- toUnload.push({
124662
- modelId: _modelId2,
124663
- child: child
124664
- });
124665
- }
124892
+ // 仅当所有实例都不活跃时,才整体卸载一次,避免重复释放同一网格。
124893
+ if (!skipUnload && !_this16.firstPerSign && !_this16.roaming && allInactive && unloadModelId !== null) {
124894
+ toUnload.push({
124895
+ modelId: unloadModelId,
124896
+ child: child
124897
+ });
124666
124898
  }
124667
124899
  }
124668
124900
  // if (toLoadSet.has(modelId)) {
@@ -124670,21 +124902,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124670
124902
  // }
124671
124903
  return;
124672
124904
  }
124673
- var modelId = child.parent && child.parent.userData && child.parent.userData.instanceId ? child.parent.userData.instanceId : child.uuid;
124674
- if (bypassList && bypassList.size > 0 && bypassList.has(modelId)) return;
124675
- var box = _this15._boxIndex && _this15._boxIndex.has(String(modelId)) ? _this15._boxIndex.get(String(modelId)) : _this15._boxIndex && _this15._boxIndex.has(modelId) ? _this15._boxIndex.get(modelId) : null;
124676
- if (!_this15.shouldApplyOcclusionByBox(box)) {
124677
- if (toLoadSet.has(modelId)) {
124678
- toLoadSet.delete(modelId);
124679
- }
124905
+ var modelId = instancesMap && instancesMap.size > 0 ? instancesMap.keys().next().value : child.parent && child.parent.userData && child.parent.userData.instanceId ? child.parent.userData.instanceId : child.uuid;
124906
+ var formattedModelId = _this16.formatModelId(modelId);
124907
+ if (bypassList && bypassList.size > 0 && (bypassList.has(modelId) || bypassList.has(formattedModelId))) return;
124908
+ var box = _this16._boxIndex && _this16._boxIndex.has(String(modelId)) ? _this16._boxIndex.get(String(modelId)) : _this16._boxIndex && _this16._boxIndex.has(modelId) ? _this16._boxIndex.get(modelId) : null;
124909
+ if (!_this16.shouldApplyOcclusionByBox(box)) {
124910
+ toLoadSet.delete(formattedModelId);
124680
124911
  return;
124681
124912
  }
124682
- var inFrustum = _this15.isModelInFrustum(child, null, globalFrustum);
124683
- var modelInVisible = toLoadSet.has(modelId);
124684
- if (modelInVisible) {
124685
- toLoadSet.delete(modelId);
124686
- }
124687
- if (!skipUnload && !_this15.firstPerSign && !_this15.roaming && (!inFrustum || !modelInVisible)) {
124913
+ var modelInVisible = visibleIdSet.has(formattedModelId);
124914
+ toLoadSet.delete(formattedModelId);
124915
+ if (!skipUnload && !_this16.firstPerSign && !_this16.roaming && !modelInVisible) {
124688
124916
  toUnload.push({
124689
124917
  modelId: modelId,
124690
124918
  child: child
@@ -124694,16 +124922,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124694
124922
  for (_i15 = 0, _toUnload = toUnload; _i15 < _toUnload.length; _i15++) {
124695
124923
  _toUnload$_i = _toUnload[_i15], modelId = _toUnload$_i.modelId, child = _toUnload$_i.child;
124696
124924
  if (child && child.parent) parentsToCheck.add(child.parent);
124697
- _this15.unloadInstancedModel(modelId, child);
124925
+ _this16.unloadInstancedModel(modelId, child);
124698
124926
  }
124699
- if (_this15.scene) {
124927
+ if (_this16.scene) {
124700
124928
  parentsToCheck.forEach(function (group) {
124701
124929
  if (group && group.children && group.children.length === 0) {
124702
124930
  group.removeFromParent();
124703
124931
  }
124704
124932
  });
124705
124933
  }
124706
- _this15.modelStateManager.isloadedModelsIds = Object.freeze(Array.from(toLoadSet));
124934
+ _this16.modelStateManager.isloadedModelsIds = Object.freeze(Array.from(toLoadSet));
124707
124935
  case 18:
124708
124936
  return _context3.a(2);
124709
124937
  }
@@ -124817,7 +125045,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124817
125045
  * @param {string} [config.projectId] - 项目ID
124818
125046
  */
124819
125047
  initStreamLoader: function initStreamLoader(modelApi) {
124820
- var _this16 = this;
125048
+ var _this17 = this;
124821
125049
  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
124822
125050
  var _ref3 = config || {},
124823
125051
  projectId = _ref3.projectId,
@@ -124833,7 +125061,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124833
125061
  return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context4) {
124834
125062
  while (1) switch (_context4.n) {
124835
125063
  case 0:
124836
- if (!(_this16.userInteracting || _this16.noObserver.batchLoadingState.interactionState.isInteracting)) {
125064
+ if (!(_this17.userInteracting || _this17.noObserver.batchLoadingState.interactionState.isInteracting)) {
124837
125065
  _context4.n = 1;
124838
125066
  break;
124839
125067
  }
@@ -124883,9 +125111,9 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124883
125111
  this.noObserver.occlusionWorkerRequestMap = new Map();
124884
125112
  streamLoader.worker.addEventListener('message', function (e) {
124885
125113
  var payload = e.data || {};
124886
- var pending = _this16.noObserver.occlusionWorkerRequestMap.get(payload.id);
125114
+ var pending = _this17.noObserver.occlusionWorkerRequestMap.get(payload.id);
124887
125115
  if (!pending) return;
124888
- _this16.noObserver.occlusionWorkerRequestMap.delete(payload.id);
125116
+ _this17.noObserver.occlusionWorkerRequestMap.delete(payload.id);
124889
125117
  pending.resolve(payload);
124890
125118
  });
124891
125119
  }
@@ -124896,13 +125124,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124896
125124
  * @param {Object} materialData - 材质数据
124897
125125
  */
124898
125126
  setStreamModel: function setStreamModel(item, materialData) {
124899
- var _this17 = this;
125127
+ var _this18 = this;
124900
125128
  if (this.noObserver.streamLoader) {
124901
125129
  this.noObserver.streamLoader.setCurrentModel(item, materialData);
124902
125130
  // 设置完模型后,尝试触发一次范围加载以渲染初始视图
124903
125131
  // 使用 setTimeout 确保在下一帧执行,避免当前栈还在初始化中
124904
125132
  setTimeout(function () {
124905
- _this17.getRangeStream();
125133
+ _this18.getRangeStream();
124906
125134
  }, 0);
124907
125135
  } else {}
124908
125136
  },
@@ -124910,17 +125138,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124910
125138
  * 批量加载区域(供外部调用)
124911
125139
  */
124912
125140
  batchLoadRegions: function batchLoadRegions(item, divideData, materialData) {
124913
- var _this18 = this;
125141
+ var _this19 = this;
124914
125142
  return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee6() {
124915
125143
  return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context6) {
124916
125144
  while (1) switch (_context6.n) {
124917
125145
  case 0:
124918
- if (!_this18.noObserver.streamLoader) {
125146
+ if (!_this19.noObserver.streamLoader) {
124919
125147
  _context6.n = 1;
124920
125148
  break;
124921
125149
  }
124922
125150
  _context6.n = 1;
124923
- return _this18.noObserver.streamLoader.batchLoadRegions(item, divideData, materialData);
125151
+ return _this19.noObserver.streamLoader.batchLoadRegions(item, divideData, materialData);
124924
125152
  case 1:
124925
125153
  return _context6.a(2);
124926
125154
  }
@@ -124931,7 +125159,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124931
125159
  * 获取批量加载详情(供外部调用)
124932
125160
  */
124933
125161
  loadModelByIds: function loadModelByIds(options) {
124934
- var _this19 = this;
125162
+ var _this20 = this;
124935
125163
  return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee7() {
124936
125164
  var _ref4, ids;
124937
125165
  return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context7) {
@@ -124939,13 +125167,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124939
125167
  case 0:
124940
125168
  // 绕过剔除模型
124941
125169
  _ref4 = options.params || {}, ids = _ref4.ids;
124942
- _this19.addBypassCullingModelIds(ids);
124943
- if (!_this19.noObserver.streamLoader) {
125170
+ _this20.addBypassCullingModelIds(ids);
125171
+ if (!_this20.noObserver.streamLoader) {
124944
125172
  _context7.n = 2;
124945
125173
  break;
124946
125174
  }
124947
125175
  _context7.n = 1;
124948
- return _this19.noObserver.streamLoader.loadModelByIds(options);
125176
+ return _this20.noObserver.streamLoader.loadModelByIds(options);
124949
125177
  case 1:
124950
125178
  return _context7.a(2, _context7.v);
124951
125179
  case 2:
@@ -124959,7 +125187,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124959
125187
  */
124960
125188
  processModelItem: function processModelItem(item) {
124961
125189
  var _arguments2 = arguments,
124962
- _this20 = this;
125190
+ _this21 = this;
124963
125191
  return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee8() {
124964
125192
  var _options$onComplete;
124965
125193
  var options, res;
@@ -124968,22 +125196,22 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
124968
125196
  case 0:
124969
125197
  options = _arguments2.length > 1 && _arguments2[1] !== undefined ? _arguments2[1] : {};
124970
125198
  _context8.n = 1;
124971
- return _this20.noObserver.streamLoader.processModelItem(item, options);
125199
+ return _this21.noObserver.streamLoader.processModelItem(item, options);
124972
125200
  case 1:
124973
125201
  res = _context8.v;
124974
125202
  // item.id is the documentId
124975
125203
  if (item && item.id) {
124976
125204
  if (res && res.sceneBox) {
124977
- _this20.setSceneBox(res.sceneBox, item.id, true);
125205
+ _this21.setSceneBox(res.sceneBox, item.id, true);
124978
125206
  }
124979
125207
  if (res && res.boxIndex) {
124980
- _this20.setBoxIndex(res.boxIndex, item.id, true);
125208
+ _this21.setBoxIndex(res.boxIndex, item.id, true);
124981
125209
  }
124982
- _this20.tryInitialCenterAfterBoundsReady();
125210
+ _this21.tryInitialCenterAfterBoundsReady();
124983
125211
  // this.setBoxIndex(boxJson.data, item.id, true);
124984
125212
  }
124985
125213
  (_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 || _options$onComplete.call(options);
124986
- _this20.notifyCameraChange(); // 触发场景更新
125214
+ _this21.notifyCameraChange(); // 触发场景更新
124987
125215
  case 2:
124988
125216
  return _context8.a(2);
124989
125217
  }
@@ -125037,7 +125265,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125037
125265
  * 内部渲染流式数据方法
125038
125266
  */
125039
125267
  renderModelData: function renderModelData(meshes, primitives, list, range, onComplete, immediateUpdate) {
125040
- var _this21 = this;
125268
+ var _this22 = this;
125041
125269
  var renderOptions = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
125042
125270
  // 构造 drawModel 需要的数据格式
125043
125271
  var modelRegistry = this.noObserver.streamLoader.modelRegistry;
@@ -125091,8 +125319,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125091
125319
  resolve(result || {});
125092
125320
  };
125093
125321
  options.onComplete = function (complete) {
125094
- if (_this21.sceneCommandService && typeof _this21.sceneCommandService.retryPendingOriginalModelSaveChanges === 'function') {
125095
- _this21.sceneCommandService.retryPendingOriginalModelSaveChanges();
125322
+ if (_this22.sceneCommandService && typeof _this22.sceneCommandService.retryPendingOriginalModelSaveChanges === 'function') {
125323
+ _this22.sceneCommandService.retryPendingOriginalModelSaveChanges();
125096
125324
  }
125097
125325
  onComplete === null || onComplete === void 0 || onComplete(complete);
125098
125326
  finish(complete);
@@ -125102,7 +125330,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125102
125330
  canceled: true
125103
125331
  }, cancelInfo || {}));
125104
125332
  };
125105
- _this21.drawModel(regionModelData, '', meshNameConfig, options);
125333
+ _this22.drawModel(regionModelData, '', meshNameConfig, options);
125106
125334
  });
125107
125335
  },
125108
125336
  waitNextRenderFrame: function waitNextRenderFrame() {
@@ -125118,7 +125346,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125118
125346
  },
125119
125347
  handleRangeStreamComplete: function handleRangeStreamComplete() {
125120
125348
  var _arguments3 = arguments,
125121
- _this22 = this;
125349
+ _this23 = this;
125122
125350
  return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee9() {
125123
125351
  var payload;
125124
125352
  return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context9) {
@@ -125126,9 +125354,9 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125126
125354
  case 0:
125127
125355
  payload = _arguments3.length > 0 && _arguments3[0] !== undefined ? _arguments3[0] : {};
125128
125356
  _context9.n = 1;
125129
- return _this22.waitNextRenderFrame();
125357
+ return _this23.waitNextRenderFrame();
125130
125358
  case 1:
125131
- _this22.$emit('loadComplete', com_graphicsvue_type_script_lang_js_objectSpread({
125359
+ _this23.$emit('loadComplete', com_graphicsvue_type_script_lang_js_objectSpread({
125132
125360
  source: 'inRangeDis2'
125133
125361
  }, payload));
125134
125362
  case 2:
@@ -125387,7 +125615,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125387
125615
  * 统一监听:用户交互(Wheel/Control)、程序化动画、API调用
125388
125616
  */
125389
125617
  initCameraChangeObserver: function initCameraChangeObserver() {
125390
- var _this23 = this;
125618
+ var _this24 = this;
125391
125619
  // 初始化 control 状态标志
125392
125620
  this.noObserver.isControlActive = false;
125393
125621
  var _this = this;
@@ -125397,30 +125625,30 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125397
125625
  return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context0) {
125398
125626
  while (1) switch (_context0.n) {
125399
125627
  case 0:
125400
- if (_this23.noObserver.isObserverEnabled) {
125628
+ if (_this24.noObserver.isObserverEnabled) {
125401
125629
  _context0.n = 1;
125402
125630
  break;
125403
125631
  }
125404
125632
  return _context0.a(2);
125405
125633
  case 1:
125406
- if (!(source === 'rest' && _this23.noObserver.isControlActive)) {
125634
+ if (!(source === 'rest' && _this24.noObserver.isControlActive)) {
125407
125635
  _context0.n = 2;
125408
125636
  break;
125409
125637
  }
125410
125638
  return _context0.a(2);
125411
125639
  case 2:
125412
- if (!_this23.modelStateManager.frustumCheckEnabled) {
125640
+ if (!_this24.modelStateManager.frustumCheckEnabled) {
125413
125641
  _context0.n = 3;
125414
125642
  break;
125415
125643
  }
125416
125644
  _context0.n = 3;
125417
- return _this23.performFrustumCulling({
125645
+ return _this24.performFrustumCulling({
125418
125646
  skipUnload: source === 'controlMove'
125419
125647
  });
125420
125648
  case 3:
125421
125649
  // 执行流式加载请求
125422
- if (_this23.modelStateManager.isloadedModelsIds && _this23.modelStateManager.isloadedModelsIds.length > 0) {
125423
- _this23.getRangeStream(false);
125650
+ if (_this24.modelStateManager.isloadedModelsIds && _this24.modelStateManager.isloadedModelsIds.length > 0) {
125651
+ _this24.getRangeStream(false);
125424
125652
  }
125425
125653
  case 4:
125426
125654
  return _context0.a(2);
@@ -125440,7 +125668,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125440
125668
  };
125441
125669
  }
125442
125670
  if (source === 'controlMove') {
125443
- var config = _this23.noObserver && _this23.noObserver.cameraControlMoveObserver;
125671
+ var config = _this24.noObserver && _this24.noObserver.cameraControlMoveObserver;
125444
125672
  var interval = config && Number.isFinite(config.interval) && config.interval > 0 ? config.interval : 500;
125445
125673
  return {
125446
125674
  type: 'throttle',
@@ -125453,24 +125681,24 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125453
125681
  // 2. 公开API:允许外部或业务逻辑手动触发更新
125454
125682
  this.notifyCameraChange = function () {
125455
125683
  var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'api';
125456
- _this23._cameraChangeObserver(source);
125684
+ _this24._cameraChangeObserver(source);
125457
125685
  };
125458
125686
 
125459
125687
  // 3. 监听器 - Wheel (用户滚轮)
125460
125688
  this._wheelHandler = function (res) {
125461
- _this23.$emit('wheelStart', res);
125462
- var cameraControlMoveEnabled = _this23.isCameraControlMoveObserverEnabled();
125463
- var loadingState = _this23.noObserver ? _this23.noObserver.batchLoadingState : _this23.batchLoadingState;
125689
+ _this24.$emit('wheelStart', res);
125690
+ var cameraControlMoveEnabled = _this24.isCameraControlMoveObserverEnabled();
125691
+ var loadingState = _this24.noObserver ? _this24.noObserver.batchLoadingState : _this24.batchLoadingState;
125464
125692
  var wheelAlreadyActive = loadingState && loadingState.interactionState && loadingState.interactionState.wheelTimeout;
125465
125693
  if (cameraControlMoveEnabled && !wheelAlreadyActive) {
125466
- _this23.resetCameraControlMoveSnapshot(true);
125694
+ _this24.resetCameraControlMoveSnapshot(true);
125467
125695
  } else if (!cameraControlMoveEnabled) {
125468
125696
  // 未开启普通视角运动加载时,保持原有交互中断流程。
125469
- _this23.beginInteraction('wheel');
125697
+ _this24.beginInteraction('wheel');
125470
125698
  }
125471
125699
 
125472
125700
  // 设置滚轮交互的结束检测
125473
- _this23.scheduleWheelInteractionEnd(res, 100);
125701
+ _this24.scheduleWheelInteractionEnd(res, 100);
125474
125702
 
125475
125703
  // 滚轮逻辑:infinityDolly 与 maxDollyDistance 控制
125476
125704
  var event = res;
@@ -125486,10 +125714,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125486
125714
 
125487
125715
  // dolly最大距离限制
125488
125716
  try {
125489
- if (_this23.sceneBoundingBox && isFinite(maxDollyDistance)) {
125717
+ if (_this24.sceneBoundingBox && isFinite(maxDollyDistance)) {
125490
125718
  if (isZoomOut) {
125491
- _this23.camera.updateMatrixWorld(true);
125492
- var currentDistance = _this23.camera.position.distanceTo(_this23.cameraControls._target);
125719
+ _this24.camera.updateMatrixWorld(true);
125720
+ var currentDistance = _this24.camera.position.distanceTo(_this24.cameraControls._target);
125493
125721
  if (currentDistance >= maxDollyDistance) {
125494
125722
  event.preventDefault && event.preventDefault();
125495
125723
  event.stopImmediatePropagation && event.stopImmediatePropagation();
@@ -125502,20 +125730,20 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125502
125730
  }
125503
125731
 
125504
125732
  // 触发观察者
125505
- _this23._cameraChangeObserver('wheel');
125733
+ _this24._cameraChangeObserver('wheel');
125506
125734
  };
125507
125735
  this.renderer.domElement.addEventListener('wheel', this._wheelHandler);
125508
125736
 
125509
125737
  // 4. 监听器 - Controls (用户拖拽/操作)
125510
125738
  this._onControlStart = function (res) {
125511
- _this23.noObserver.isControlActive = true;
125512
- if (_this23.isCameraControlMoveObserverEnabled()) {
125513
- _this23.resetCameraControlMoveSnapshot(true);
125739
+ _this24.noObserver.isControlActive = true;
125740
+ if (_this24.isCameraControlMoveObserverEnabled()) {
125741
+ _this24.resetCameraControlMoveSnapshot(true);
125514
125742
  } else {
125515
125743
  // 未开启普通视角运动加载时,保持原有交互中断流程。
125516
- _this23.beginInteraction('this.camera');
125744
+ _this24.beginInteraction('this.camera');
125517
125745
  }
125518
- _this23.$emit('controlStart', res);
125746
+ _this24.$emit('controlStart', res);
125519
125747
 
125520
125748
  // 记录鼠标按下时的位置
125521
125749
  var event = res.originalEvent || window.event;
@@ -125527,10 +125755,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125527
125755
  };
125528
125756
  this._onControlEnd = function (res) {
125529
125757
  _this.noObserver.isControlActive = false;
125530
- _this23.$emit('controlEnd', res);
125531
- if (!_this23.isCameraControlMoveObserverEnabled()) {
125758
+ _this24.$emit('controlEnd', res);
125759
+ if (!_this24.isCameraControlMoveObserverEnabled()) {
125532
125760
  // 未开启普通视角运动加载时,保持原有交互中断流程。
125533
- _this23.endInteraction('this.camera', res, {
125761
+ _this24.endInteraction('this.camera', res, {
125534
125762
  immediateResume: false
125535
125763
  });
125536
125764
  }
@@ -125560,10 +125788,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125560
125788
  // }
125561
125789
 
125562
125790
  // 触发观察者
125563
- _this23._cameraChangeObserver('control');
125791
+ _this24._cameraChangeObserver('control');
125564
125792
  }
125565
- if (_this23.isCameraControlMoveObserverEnabled()) {
125566
- _this23.resetCameraControlMoveSnapshot(false);
125793
+ if (_this24.isCameraControlMoveObserverEnabled()) {
125794
+ _this24.resetCameraControlMoveSnapshot(false);
125567
125795
  }
125568
125796
  };
125569
125797
  this.cameraControls.addEventListener('controlstart', this._onControlStart);
@@ -125573,7 +125801,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125573
125801
  // 监听 rest 事件,捕获 this.cameraControls.setLookAt(..., true) 等动画结束(以及阻尼停止)
125574
125802
  // 注意:rest 事件在用户交互完全静止时也会触发,与 controlEnd 有部分重叠,但 Observer 有防抖,影响不大
125575
125803
  this._onRest = function () {
125576
- _this23._cameraChangeObserver('rest');
125804
+ _this24._cameraChangeObserver('rest');
125577
125805
  };
125578
125806
  this.cameraControls.addEventListener('rest', this._onRest);
125579
125807
  },
@@ -125600,7 +125828,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125600
125828
  meshNameConfig: {}
125601
125829
  */
125602
125830
  drawModel: function drawModel(data) {
125603
- var _this24 = this;
125831
+ var _this25 = this;
125604
125832
  var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
125605
125833
  var meshNameConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
125606
125834
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
@@ -125609,14 +125837,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125609
125837
  // 使用新的分帧加载方法,提供进度回调
125610
125838
  return this.drawModelWithBatchLoading(data, color, meshNameConfig, options, function (progress) {
125611
125839
  // 触发原有的进度事件
125612
- _this24.$emit('loadProgress', _this24.progress);
125840
+ _this25.$emit('loadProgress', _this25.progress);
125613
125841
  }, function (complete) {
125614
125842
  var _options$onComplete2;
125615
125843
  options === null || options === void 0 || (_options$onComplete2 = options.onComplete) === null || _options$onComplete2 === void 0 || _options$onComplete2.call(options, complete);
125616
125844
  console.log('加载完成');
125617
125845
  // 触发原有的完成事件
125618
125846
  if (!(options !== null && options !== void 0 && options.suppressLoadComplete)) {
125619
- _this24.$emit('loadComplete');
125847
+ _this25.$emit('loadComplete');
125620
125848
  }
125621
125849
  });
125622
125850
  },
@@ -125664,14 +125892,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125664
125892
  };
125665
125893
  },
125666
125894
  mouseDown: function mouseDown(event) {
125667
- var _this25 = this;
125895
+ var _this26 = this;
125668
125896
  // 在鼠标按下时启用渲染中断以提升响应性
125669
125897
  this.forceSkipRendering = true;
125670
125898
  this.skipNextRenderFrame = true;
125671
125899
  var intersects = this.getRaycasterObjects(event);
125672
125900
  console.log(intersects);
125673
125901
  var shouldBlockCamera = intersects.some(function (item) {
125674
- return _this25.isActiveTransformControlIntersection(item);
125902
+ return _this26.isActiveTransformControlIntersection(item);
125675
125903
  });
125676
125904
  if (shouldBlockCamera) {
125677
125905
  this.setPointerCameraGuard(true);
@@ -125753,19 +125981,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125753
125981
  return this.isTransformControlIntersection(intersection);
125754
125982
  },
125755
125983
  getPrimaryIntersection: function getPrimaryIntersection() {
125756
- var _this26 = this;
125984
+ var _this27 = this;
125757
125985
  var intersects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
125758
125986
  if (!Array.isArray(intersects) || intersects.length === 0) {
125759
125987
  return null;
125760
125988
  }
125761
125989
  var validIntersects = intersects.filter(function (item) {
125762
- return item && item.object && !_this26.isTransformControlIntersection(item);
125990
+ return item && item.object && !_this27.isTransformControlIntersection(item);
125763
125991
  });
125764
125992
  if (validIntersects.length === 0) {
125765
125993
  return null;
125766
125994
  }
125767
125995
  var selectableIntersect = validIntersects.find(function (item) {
125768
- return _this26.getSelectableSceneObject(item.object);
125996
+ return _this27.getSelectableSceneObject(item.object);
125769
125997
  });
125770
125998
  return selectableIntersect || validIntersects[0] || null;
125771
125999
  },
@@ -125837,13 +126065,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125837
126065
  }
125838
126066
  },
125839
126067
  mouseClick: function mouseClick(event) {
125840
- var _this27 = this;
126068
+ var _this28 = this;
125841
126069
  // 鼠标抬起时重置渲染中断标记
125842
126070
  setTimeout(function () {
125843
- _this27.forceSkipRendering = false;
126071
+ _this28.forceSkipRendering = false;
125844
126072
  // interactionFrameCount = 0;
125845
126073
  // 恢复批次加载操作
125846
- _this27.resumeBatchLoading();
126074
+ _this28.resumeBatchLoading();
125847
126075
  }, 50); // 短暂延迟确保交互完成
125848
126076
 
125849
126077
  // 在测量模式下,不进行事件暴露
@@ -125902,21 +126130,21 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125902
126130
  this.setPointerCameraGuard(false);
125903
126131
  this.$emit('rightClick', params);
125904
126132
  onContextHandle(event, 'fl-model', '隐藏', this.isolateMode ? '取消隔离' : '隔离', function () {
125905
- _this27.updateProperty([{
126133
+ _this28.updateProperty([{
125906
126134
  name: params.instanceId,
125907
126135
  attr: {
125908
126136
  visible: false
125909
126137
  }
125910
126138
  }]);
125911
126139
  }, function () {
125912
- _this27.setAllModelVisible(_this27.isolateMode);
125913
- _this27.updateProperty([{
126140
+ _this28.setAllModelVisible(_this28.isolateMode);
126141
+ _this28.updateProperty([{
125914
126142
  name: params.instanceId,
125915
126143
  attr: {
125916
126144
  visible: true
125917
126145
  }
125918
126146
  }]);
125919
- _this27.isolateMode = !_this27.isolateMode;
126147
+ _this28.isolateMode = !_this28.isolateMode;
125920
126148
  });
125921
126149
  }
125922
126150
  } else if (event.button === 2) {
@@ -125924,21 +126152,21 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
125924
126152
  this.setPointerCameraGuard(false);
125925
126153
  this.$emit('rightClick', params);
125926
126154
  onContextHandle(event, 'fl-model', '隐藏', this.isolateMode ? '取消隔离' : '隔离', function () {
125927
- _this27.updateProperty([{
126155
+ _this28.updateProperty([{
125928
126156
  name: params.instanceId,
125929
126157
  attr: {
125930
126158
  visible: false
125931
126159
  }
125932
126160
  }]);
125933
126161
  }, function () {
125934
- _this27.setAllModelVisible(_this27.isolateMode);
125935
- _this27.updateProperty([{
126162
+ _this28.setAllModelVisible(_this28.isolateMode);
126163
+ _this28.updateProperty([{
125936
126164
  name: params.instanceId,
125937
126165
  attr: {
125938
126166
  visible: true
125939
126167
  }
125940
126168
  }]);
125941
- _this27.isolateMode = !_this27.isolateMode;
126169
+ _this28.isolateMode = !_this28.isolateMode;
125942
126170
  });
125943
126171
  }
125944
126172
  }
@@ -126029,7 +126257,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126029
126257
  },
126030
126258
  // 带防抖和用户交互检测的智能居中方法
126031
126259
  smartModelCenter: function smartModelCenter(mesh) {
126032
- var _this28 = this;
126260
+ var _this29 = this;
126033
126261
  var debounceDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
126034
126262
  // if (this.hasExecutedCentering) {
126035
126263
  // return;
@@ -126049,13 +126277,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126049
126277
  // 设置新的防抖定时器
126050
126278
  this.centeringDebounceTimer = setTimeout(function () {
126051
126279
  // 如果已经执行过居中操作,则不再执行
126052
- if (!_this28.userInteracting && !_this28.hasExecutedCentering && _this28.noObserver.documentModelIds.size > 0) {
126053
- _this28.setModelCenter(mesh, {
126280
+ if (!_this29.userInteracting && !_this29.hasExecutedCentering && _this29.noObserver.documentModelIds.size > 0) {
126281
+ _this29.setModelCenter(mesh, {
126054
126282
  enableTransition: false
126055
126283
  });
126056
- _this28.hasExecutedCentering = true;
126284
+ _this29.hasExecutedCentering = true;
126057
126285
  // 触发场景更新
126058
- _this28.notifyCameraChange();
126286
+ _this29.notifyCameraChange();
126059
126287
  }
126060
126288
  }, debounceDelay);
126061
126289
  },
@@ -126079,14 +126307,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126079
126307
  * }
126080
126308
  */
126081
126309
  updateProperty: function updateProperty(list) {
126082
- var _this29 = this;
126310
+ var _this30 = this;
126083
126311
  var hasOutline = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
126084
126312
  var isUpdate = false;
126085
126313
  var _loop = function _loop() {
126086
126314
  var ele = list[index];
126087
126315
  var type = ele.type || 'mesh';
126088
126316
  var instanceId = ele.name;
126089
- var targetObj = _this29.getObjectByName(instanceId);
126317
+ var targetObj = _this30.getObjectByName(instanceId);
126090
126318
  var _loop2 = function _loop2(key) {
126091
126319
  switch (key) {
126092
126320
  case 'color':
@@ -126096,19 +126324,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126096
126324
  var instanceInfo = (_children$userData = children.userData) === null || _children$userData === void 0 || (_children$userData = _children$userData.instancesMap) === null || _children$userData === void 0 ? void 0 : _children$userData.get(instanceId);
126097
126325
  if (!instanceInfo) return;
126098
126326
  var instanceIndex = instanceInfo.instanceIndex;
126099
- children.setColorAt(instanceIndex, new _this29.THREE.Color(ele.attr[key]));
126327
+ children.setColorAt(instanceIndex, new _this30.THREE.Color(ele.attr[key]));
126100
126328
  children.instanceColor.needsUpdate = true;
126101
- if (!_this29.isCurrentVisible(instanceId, children)) {
126102
- _this29.removeOutlineObject(children, instanceIndex);
126329
+ if (!_this30.isCurrentVisible(instanceId, children)) {
126330
+ _this30.removeOutlineObject(children, instanceIndex);
126103
126331
  return;
126104
126332
  }
126105
126333
  if (hasOutline) {
126106
- if (_this29.outlinePass) {
126334
+ if (_this30.outlinePass) {
126107
126335
  if (children.isInstancedMesh) {
126108
- var proxy = _this29.ensureOutlineInstanceProxy(children, instanceIndex);
126109
- _this29.pushOutlineTarget(proxy);
126110
- } else if (!_this29.isSourceHiddenInstance(children, instanceId)) {
126111
- _this29.pushOutlineTarget(children);
126336
+ var proxy = _this30.ensureOutlineInstanceProxy(children, instanceIndex);
126337
+ _this30.pushOutlineTarget(proxy);
126338
+ } else if (!_this30.isSourceHiddenInstance(children, instanceId)) {
126339
+ _this30.pushOutlineTarget(children);
126112
126340
  }
126113
126341
  }
126114
126342
  }
@@ -126121,10 +126349,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126121
126349
  isUpdate = true;
126122
126350
  }
126123
126351
  var requestedVisible = Boolean(ele.attr[key]);
126124
- var nextBoxVisible = requestedVisible && _this29.isSourceVisible(instanceId);
126125
- var boxKey = _this29._boxIndex && _this29._boxIndex.has(String(instanceId)) ? String(instanceId) : instanceId;
126126
- if (_this29._boxIndex && _this29._boxIndex.has(boxKey)) {
126127
- var boxData = _this29._boxIndex.get(boxKey);
126352
+ var nextBoxVisible = requestedVisible && _this30.isSourceVisible(instanceId);
126353
+ var boxKey = _this30._boxIndex && _this30._boxIndex.has(String(instanceId)) ? String(instanceId) : instanceId;
126354
+ if (_this30._boxIndex && _this30._boxIndex.has(boxKey)) {
126355
+ var boxData = _this30._boxIndex.get(boxKey);
126128
126356
  if (boxData && boxData.userData) {
126129
126357
  boxData.userData.visible = nextBoxVisible;
126130
126358
  }
@@ -126134,22 +126362,23 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126134
126362
  if (!instanceInfo) return;
126135
126363
  var instanceIndex = instanceInfo.instanceIndex,
126136
126364
  copyMatrix = instanceInfo.copyMatrix;
126137
- var nextVisible = requestedVisible && _this29.isSourceVisible(instanceId, children);
126365
+ var nextVisible = requestedVisible && _this30.isSourceVisible(instanceId, children);
126138
126366
  instanceInfo.visible = nextVisible;
126139
126367
  if (nextVisible) {
126140
- var restoreMatrix = new _this29.THREE.Matrix4().copy(copyMatrix || children.userData.copyMatrix);
126368
+ var restoreMatrix = new _this30.THREE.Matrix4().copy(copyMatrix || children.userData.copyMatrix);
126141
126369
  children.setMatrixAt(instanceIndex, restoreMatrix);
126142
126370
  } else {
126143
- var _copyMatrix = _this29.getInstanceCopyMatrix(children, instanceId);
126371
+ var _copyMatrix = _this30.getInstanceCopyMatrix(children, instanceId);
126144
126372
  if (!_copyMatrix) return;
126145
- var offsetMatrix = new _this29.THREE.Matrix4().copy(_copyMatrix || children.userData.copyMatrix).makeTranslation(9999999, 9999999, 9999999);
126373
+ var offsetMatrix = new _this30.THREE.Matrix4().copy(_copyMatrix || children.userData.copyMatrix).makeTranslation(9999999, 9999999, 9999999);
126146
126374
  children.setMatrixAt(instanceIndex, offsetMatrix);
126147
- _this29.removeOutlineObject(children, instanceIndex);
126375
+ _this30.removeOutlineObject(children, instanceIndex);
126148
126376
  }
126149
126377
  children.instanceMatrix.needsUpdate = true;
126150
126378
  });
126151
- _this29.refreshCollisionObbDebug();
126152
- _this29.notifyCameraChange(); // 触发场景更新
126379
+ _this30.refreshCollisionObbDebug();
126380
+ _this30.refreshOcclusionBoundsDebug();
126381
+ _this30.notifyCameraChange(); // 触发场景更新
126153
126382
  break;
126154
126383
  }
126155
126384
  case 'opacity':
@@ -126200,13 +126429,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126200
126429
  }
126201
126430
  },
126202
126431
  setAllModelVisible: function setAllModelVisible(visible) {
126203
- var _this30 = this;
126432
+ var _this31 = this;
126204
126433
  var isVisible = Boolean(visible);
126205
126434
  var matrixCache = new this.THREE.Matrix4();
126206
126435
  if (this._boxIndex && this._boxIndex.size > 0) {
126207
126436
  this._boxIndex.forEach(function (box, modelId) {
126208
126437
  if (!box || !box.userData) return;
126209
- box.userData.visible = isVisible && _this30.isSourceVisible(modelId);
126438
+ box.userData.visible = isVisible && _this31.isSourceVisible(modelId);
126210
126439
  });
126211
126440
  }
126212
126441
  if (this.scene) {
@@ -126219,7 +126448,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126219
126448
  var instanceIndex = instanceInfo && typeof instanceInfo.instanceIndex === 'number' ? instanceInfo.instanceIndex : null;
126220
126449
  if (instanceIndex === null) return;
126221
126450
  var copyMatrix = instanceInfo.copyMatrix || userData.copyMatrix;
126222
- if (isVisible && _this30.isSourceVisible(instanceId, child)) {
126451
+ if (isVisible && _this31.isSourceVisible(instanceId, child)) {
126223
126452
  instanceInfo.visible = true;
126224
126453
  matrixCache.copy(copyMatrix);
126225
126454
  child.setMatrixAt(instanceIndex, matrixCache);
@@ -126227,7 +126456,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126227
126456
  instanceInfo.visible = false;
126228
126457
  matrixCache.copy(copyMatrix).makeTranslation(9999999, 9999999, 9999999);
126229
126458
  child.setMatrixAt(instanceIndex, matrixCache);
126230
- _this30.removeOutlineObject(child, instanceIndex);
126459
+ _this31.removeOutlineObject(child, instanceIndex);
126231
126460
  }
126232
126461
  });
126233
126462
  child.instanceMatrix.needsUpdate = true;
@@ -126250,9 +126479,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126250
126479
  this.buildOctreeFromBoxIndex();
126251
126480
  }
126252
126481
  this.refreshCollisionObbDebug();
126482
+ this.refreshOcclusionBoundsDebug();
126253
126483
  },
126254
126484
  showOutlinePass: function showOutlinePass(instanceId) {
126255
- var _this31 = this;
126485
+ var _this32 = this;
126256
126486
  var targetObj = this.getObjectByName(instanceId);
126257
126487
  targetObj.forEach(function (children) {
126258
126488
  if (children.isMesh) {
@@ -126260,27 +126490,27 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126260
126490
  var instanceInfo = (_children$userData3 = children.userData) === null || _children$userData3 === void 0 || (_children$userData3 = _children$userData3.instancesMap) === null || _children$userData3 === void 0 ? void 0 : _children$userData3.get(instanceId);
126261
126491
  if (!instanceInfo) return;
126262
126492
  var instanceIndex = instanceInfo.instanceIndex;
126263
- if (!_this31.isSourceVisible(instanceId, children)) {
126264
- _this31.removeOutlineObject(children, instanceIndex);
126493
+ if (!_this32.isSourceVisible(instanceId, children)) {
126494
+ _this32.removeOutlineObject(children, instanceIndex);
126265
126495
  return;
126266
126496
  }
126267
- if (!_this31.isCurrentVisible(instanceId, children)) {
126268
- _this31.removeOutlineObject(children, instanceIndex);
126497
+ if (!_this32.isCurrentVisible(instanceId, children)) {
126498
+ _this32.removeOutlineObject(children, instanceIndex);
126269
126499
  return;
126270
126500
  }
126271
- if (_this31.outlinePass) {
126501
+ if (_this32.outlinePass) {
126272
126502
  if (children.isInstancedMesh) {
126273
- var proxy = _this31.ensureOutlineInstanceProxy(children, instanceIndex);
126274
- _this31.pushOutlineTarget(proxy);
126503
+ var proxy = _this32.ensureOutlineInstanceProxy(children, instanceIndex);
126504
+ _this32.pushOutlineTarget(proxy);
126275
126505
  } else {
126276
- _this31.pushOutlineTarget(children);
126506
+ _this32.pushOutlineTarget(children);
126277
126507
  }
126278
126508
  }
126279
126509
  }
126280
126510
  });
126281
126511
  },
126282
126512
  hideOutlinePass: function hideOutlinePass(instanceId) {
126283
- var _this32 = this;
126513
+ var _this33 = this;
126284
126514
  var targetObj = this.getObjectByName(instanceId);
126285
126515
  targetObj.forEach(function (children) {
126286
126516
  if (children.isMesh) {
@@ -126288,7 +126518,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126288
126518
  var instanceInfo = (_children$userData4 = children.userData) === null || _children$userData4 === void 0 || (_children$userData4 = _children$userData4.instancesMap) === null || _children$userData4 === void 0 ? void 0 : _children$userData4.get(instanceId);
126289
126519
  if (!instanceInfo) return;
126290
126520
  var instanceIndex = instanceInfo.instanceIndex;
126291
- _this32.removeOutlineObject(children, instanceIndex);
126521
+ _this33.removeOutlineObject(children, instanceIndex);
126292
126522
  }
126293
126523
  });
126294
126524
  },
@@ -126311,17 +126541,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126311
126541
  },
126312
126542
  // 修改材质的自定义数据
126313
126543
  updateMaterialUserData: function updateMaterialUserData(list) {
126314
- var _this33 = this;
126544
+ var _this34 = this;
126315
126545
  var _loop3 = function _loop3() {
126316
126546
  var ele = list[index];
126317
126547
  var instanceId = ele.name;
126318
- var targetObj = _this33.getObjectByName(instanceId);
126548
+ var targetObj = _this34.getObjectByName(instanceId);
126319
126549
  var _loop4 = function _loop4(key) {
126320
126550
  switch (key) {
126321
126551
  case 'nColor':
126322
126552
  targetObj.forEach(function (children) {
126323
126553
  if (children.isMesh) {
126324
- children.material.userData[key] = new _this33.THREE.Color(ele.attr[key]);
126554
+ children.material.userData[key] = new _this34.THREE.Color(ele.attr[key]);
126325
126555
  }
126326
126556
  });
126327
126557
  break;
@@ -126337,12 +126567,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126337
126567
  },
126338
126568
  // 重置
126339
126569
  resetMaterialUserData: function resetMaterialUserData(list) {
126340
- var _this34 = this;
126570
+ var _this35 = this;
126341
126571
  console.log('resetMaterialUserData');
126342
126572
  var _loop5 = function _loop5() {
126343
126573
  var ele = list[index];
126344
126574
  var instanceId = ele.name;
126345
- var targetObj = _this34.getObjectByName(instanceId);
126575
+ var targetObj = _this35.getObjectByName(instanceId);
126346
126576
  var _loop6 = function _loop6(key) {
126347
126577
  switch (key) {
126348
126578
  case 'nColor':
@@ -126370,11 +126600,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126370
126600
  },
126371
126601
  // 清除上一次的属性修改操作 为了方便业务平台参数跟updateProperty方法的参数一样
126372
126602
  resetProperty: function resetProperty(list) {
126373
- var _this35 = this;
126603
+ var _this36 = this;
126374
126604
  var _loop7 = function _loop7() {
126375
126605
  var ele = list[index];
126376
126606
  var instanceId = ele.name;
126377
- var obj = _this35.getObjectByName(instanceId);
126607
+ var obj = _this36.getObjectByName(instanceId);
126378
126608
  if (obj) {
126379
126609
  for (var key in ele.attr) {
126380
126610
  switch (key) {
@@ -126387,12 +126617,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126387
126617
  var instanceIndex = instanceInfo.instanceIndex;
126388
126618
  children.setColorAt(instanceIndex, children.material.userData.nColor);
126389
126619
  children.instanceColor.needsUpdate = true;
126390
- if (_this35.outlinePass) {
126620
+ if (_this36.outlinePass) {
126391
126621
  if (children.isInstancedMesh) {
126392
- _this35.removeOutlineInstanceProxy(children, instanceIndex);
126622
+ _this36.removeOutlineInstanceProxy(children, instanceIndex);
126393
126623
  } else {
126394
- var idx = _this35.outlinePass.selectedObjects.indexOf(children);
126395
- if (idx !== -1) _this35.outlinePass.selectedObjects.splice(idx, 1);
126624
+ var idx = _this36.outlinePass.selectedObjects.indexOf(children);
126625
+ if (idx !== -1) _this36.outlinePass.selectedObjects.splice(idx, 1);
126396
126626
  }
126397
126627
  }
126398
126628
  }
@@ -126405,19 +126635,20 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126405
126635
  if (!instanceInfo) return;
126406
126636
  var instanceIndex = instanceInfo.instanceIndex,
126407
126637
  copyMatrix = instanceInfo.copyMatrix;
126408
- if (_this35.isSourceVisible(instanceId, children)) {
126638
+ if (_this36.isSourceVisible(instanceId, children)) {
126409
126639
  instanceInfo.visible = true;
126410
- var restoreMatrix = new _this35.THREE.Matrix4().copy(copyMatrix);
126640
+ var restoreMatrix = new _this36.THREE.Matrix4().copy(copyMatrix);
126411
126641
  children.setMatrixAt(instanceIndex, restoreMatrix);
126412
126642
  } else {
126413
126643
  instanceInfo.visible = false;
126414
- var offsetMatrix = new _this35.THREE.Matrix4().copy(copyMatrix).makeTranslation(9999999, 9999999, 9999999);
126644
+ var offsetMatrix = new _this36.THREE.Matrix4().copy(copyMatrix).makeTranslation(9999999, 9999999, 9999999);
126415
126645
  children.setMatrixAt(instanceIndex, offsetMatrix);
126416
- _this35.removeOutlineObject(children, instanceIndex);
126646
+ _this36.removeOutlineObject(children, instanceIndex);
126417
126647
  }
126418
126648
  children.instanceMatrix.needsUpdate = true;
126419
126649
  });
126420
- _this35.refreshCollisionObbDebug();
126650
+ _this36.refreshCollisionObbDebug();
126651
+ _this36.refreshOcclusionBoundsDebug();
126421
126652
  break;
126422
126653
  }
126423
126654
  case 'opacity':
@@ -126467,19 +126698,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126467
126698
  // 定位到模型
126468
126699
  // name 模型名称或运行态 uuid,可以是数组
126469
126700
  locateModel: function locateModel(name) {
126470
- var _this36 = this;
126701
+ var _this37 = this;
126471
126702
  if (!this.scene) return false;
126472
126703
  if (Array.isArray(name)) {
126473
126704
  var box3 = new this.THREE.Box3();
126474
126705
  name.forEach(function (n) {
126475
- var objectByUuid = _this36.getObjectByUuid(n);
126706
+ var objectByUuid = _this37.getObjectByUuid(n);
126476
126707
  if (objectByUuid) {
126477
- _this36.expandLocateBoxByObject(box3, objectByUuid);
126708
+ _this37.expandLocateBoxByObject(box3, objectByUuid);
126478
126709
  return;
126479
126710
  }
126480
- var arr = _this36.getObjectByName(n);
126711
+ var arr = _this37.getObjectByName(n);
126481
126712
  arr.forEach(function (o) {
126482
- _this36.expandLocateBoxByObject(box3, o);
126713
+ _this37.expandLocateBoxByObject(box3, o);
126483
126714
  });
126484
126715
  });
126485
126716
  if (!box3.isEmpty()) {
@@ -126524,14 +126755,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126524
126755
  }
126525
126756
  */
126526
126757
  updatePropertyByCustom: function updatePropertyByCustom(params) {
126527
- var _this37 = this;
126758
+ var _this38 = this;
126528
126759
  if (!this.scene) return;
126529
126760
  this.scene.traverse(function (child) {
126530
126761
  if (child.isMesh && child.userData[params.customName] === params.customValue) {
126531
126762
  for (var key in params.attr) {
126532
126763
  switch (key) {
126533
126764
  case 'color':
126534
- child.setColorAt(obj.userData.instanceIndex, new _this37.THREE.Color(params.attr[key]));
126765
+ child.setColorAt(obj.userData.instanceIndex, new _this38.THREE.Color(params.attr[key]));
126535
126766
  child.instanceColor.needsUpdate = true;
126536
126767
  break;
126537
126768
  case 'visible':
@@ -126614,14 +126845,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126614
126845
  passType: 要过滤的类型,默认是group,不返回group类型的实体
126615
126846
  */
126616
126847
  getObjectByName: function getObjectByName(name) {
126617
- var _this38 = this;
126848
+ var _this39 = this;
126618
126849
  var passType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'group';
126619
126850
  if (!this.scene) return [];
126620
126851
  if (Array.isArray(name)) {
126621
126852
  var result = [];
126622
126853
  var exist = new Set();
126623
126854
  name.forEach(function (item) {
126624
- _this38.getObjectByName(item, passType).forEach(function (obj) {
126855
+ _this39.getObjectByName(item, passType).forEach(function (obj) {
126625
126856
  if (!obj || exist.has(obj.uuid)) return;
126626
126857
  exist.add(obj.uuid);
126627
126858
  result.push(obj);
@@ -126659,12 +126890,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126659
126890
  return modelState.colorConfig;
126660
126891
  },
126661
126892
  addBypassCullingModelIds: function addBypassCullingModelIds(modelIds) {
126662
- var _this39 = this;
126893
+ var _this40 = this;
126663
126894
  var modelState = this.noObserver ? this.noObserver.modelStateManager : this.modelStateManager;
126664
126895
  if (!modelIds) return;
126665
126896
  if (Array.isArray(modelIds)) {
126666
126897
  modelIds.forEach(function (id) {
126667
- var modelId = _this39.formatModelId(id);
126898
+ var modelId = _this40.formatModelId(id);
126668
126899
  modelState.bypassCullingModelIds.add(modelId);
126669
126900
  });
126670
126901
  } else {
@@ -126677,12 +126908,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126677
126908
  return com_graphicsvue_type_script_lang_js_toConsumableArray(modelState.bypassCullingModelIds);
126678
126909
  },
126679
126910
  removeBypassCullingModelIds: function removeBypassCullingModelIds(modelIds) {
126680
- var _this40 = this;
126911
+ var _this41 = this;
126681
126912
  var modelState = this.noObserver ? this.noObserver.modelStateManager : this.modelStateManager;
126682
126913
  if (!modelIds) return;
126683
126914
  if (Array.isArray(modelIds)) {
126684
126915
  modelIds.forEach(function (id) {
126685
- var modelId = _this40.formatModelId(id);
126916
+ var modelId = _this41.formatModelId(id);
126686
126917
  modelState.bypassCullingModelIds.delete(modelId);
126687
126918
  });
126688
126919
  } else {
@@ -126696,7 +126927,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126696
126927
  },
126697
126928
  // 通过id删除对象
126698
126929
  removeObjectById: function removeObjectById(id) {
126699
- var _this41 = this;
126930
+ var _this42 = this;
126700
126931
  if (!this.scene) return;
126701
126932
  var array = this.getObjectByName(id);
126702
126933
  array.forEach(function (item) {
@@ -126706,13 +126937,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126706
126937
  if (item.isMesh) {
126707
126938
  item.clear();
126708
126939
  }
126709
- _this41.scene.remove(item);
126940
+ _this42.scene.remove(item);
126710
126941
  }
126711
126942
  });
126712
126943
  },
126713
126944
  // 通过名称删除对象
126714
126945
  removeObjectByName: function removeObjectByName(name) {
126715
- var _this42 = this;
126946
+ var _this43 = this;
126716
126947
  if (!this.scene) return;
126717
126948
  var array = this.getObjectByName(name);
126718
126949
  array.forEach(function (item) {
@@ -126721,17 +126952,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126721
126952
  if (item.isMesh) {
126722
126953
  item.clear();
126723
126954
  }
126724
- if (_this42.scene) _this42.scene.remove(item);
126955
+ if (_this43.scene) _this43.scene.remove(item);
126725
126956
  });
126726
126957
  },
126727
126958
  // 删除场景中所有的实体
126728
126959
  removeAll: function removeAll() {
126729
- var _this43 = this;
126960
+ var _this44 = this;
126730
126961
  return new Promise(function (resolve) {
126731
- if (_this43.scene) {
126732
- _this43.removeAllCustomElements();
126733
- _this43.removeTraverse();
126734
- _this43.removeModelByDocumentId();
126962
+ if (_this44.scene) {
126963
+ _this44.removeAllCustomElements();
126964
+ _this44.removeTraverse();
126965
+ _this44.removeModelByDocumentId();
126735
126966
  resolve();
126736
126967
  } else {
126737
126968
  resolve();
@@ -126739,7 +126970,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126739
126970
  });
126740
126971
  },
126741
126972
  removeTraverse: function removeTraverse() {
126742
- var _this44 = this;
126973
+ var _this45 = this;
126743
126974
  if (!this.modelGroup) return;
126744
126975
  var length = this.modelGroup.children.length;
126745
126976
  if (length > 0) {
@@ -126752,7 +126983,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126752
126983
  item.clear();
126753
126984
  item.material = null;
126754
126985
  item.geometry = null;
126755
- _this44.modelGroup && _this44.modelGroup.remove(item);
126986
+ _this45.modelGroup && _this45.modelGroup.remove(item);
126756
126987
  item = null;
126757
126988
  }
126758
126989
  });
@@ -126769,7 +127000,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126769
127000
  },
126770
127001
  // 销毁场景 释放内存
126771
127002
  destroyScene: function destroyScene() {
126772
- var _this45 = this;
127003
+ var _this46 = this;
126773
127004
  cancelAnimationFrame(this.animateId);
126774
127005
  this.disposeTransformControls();
126775
127006
  if (this.sceneCommandEventDisposers.length > 0) {
@@ -126784,11 +127015,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126784
127015
  }
126785
127016
  if (this.noObserver && this.noObserver.outlineInstanceProxyMap) {
126786
127017
  this.noObserver.outlineInstanceProxyMap.forEach(function (proxy) {
126787
- if (_this45.outlinePass) {
126788
- var idx = _this45.outlinePass.selectedObjects.indexOf(proxy);
126789
- if (idx !== -1) _this45.outlinePass.selectedObjects.splice(idx, 1);
127018
+ if (_this46.outlinePass) {
127019
+ var idx = _this46.outlinePass.selectedObjects.indexOf(proxy);
127020
+ if (idx !== -1) _this46.outlinePass.selectedObjects.splice(idx, 1);
126790
127021
  }
126791
- if (_this45.scene) _this45.scene.remove(proxy);
127022
+ if (_this46.scene) _this46.scene.remove(proxy);
126792
127023
  if (proxy && proxy.material && proxy.material.dispose) proxy.material.dispose();
126793
127024
  });
126794
127025
  this.noObserver.outlineInstanceProxyMap.clear();
@@ -126826,6 +127057,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126826
127057
  }
126827
127058
  this.clearBypassCullingModelIds();
126828
127059
  this.hideCollisionObbDebug();
127060
+ this.hideOcclusionBoundsDebug();
126829
127061
  if (this.scene) {
126830
127062
  this.removeTraverse();
126831
127063
  this.scene.clear();
@@ -126903,11 +127135,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126903
127135
  }
126904
127136
  */
126905
127137
  drawCurve: function drawCurve(params) {
126906
- var _this46 = this;
127138
+ var _this47 = this;
126907
127139
  this.removeObjectByName(params.name);
126908
127140
  var route = [];
126909
127141
  params.path.forEach(function (element) {
126910
- route.push(new _this46.THREE.Vector3(element.x, element.y, element.z));
127142
+ route.push(new _this47.THREE.Vector3(element.x, element.y, element.z));
126911
127143
  });
126912
127144
  if (route.length > 1) {
126913
127145
  this.curve = new this.THREE.CatmullRomCurve3(route);
@@ -126931,11 +127163,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
126931
127163
  }
126932
127164
  */
126933
127165
  drawTextureCurve: function drawTextureCurve(params) {
126934
- var _this47 = this;
127166
+ var _this48 = this;
126935
127167
  this.removeObjectByName(params.name);
126936
127168
  var route = [];
126937
127169
  params.path.forEach(function (element) {
126938
- route.push(new _this47.THREE.Vector3(element.x, element.y, element.z));
127170
+ route.push(new _this48.THREE.Vector3(element.x, element.y, element.z));
126939
127171
  });
126940
127172
  // 画曲线
126941
127173
  if (route.length > 1) {
@@ -127040,14 +127272,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127040
127272
  * 参数val: 爆炸的值
127041
127273
  */
127042
127274
  globalBomb: function globalBomb(val) {
127043
- var _this48 = this;
127275
+ var _this49 = this;
127044
127276
  if (this.scene.children.length === 0) return;
127045
127277
  for (var i = 0; i < this.scene.children.length; i++) {
127046
127278
  console.log('this.scene', this.scene);
127047
127279
  this.scene.children[i].traverse(function (item) {
127048
127280
  if (!item.isMesh || !item.worldDir) return;
127049
127281
  // 爆炸公式
127050
- _this48.computedBomb(item, val);
127282
+ _this49.computedBomb(item, val);
127051
127283
  });
127052
127284
  }
127053
127285
  // this.timeRender();
@@ -127085,18 +127317,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127085
127317
  if (nodeType === 'custom-root') return true;
127086
127318
  if (userData.transformControlHelper === true) return true;
127087
127319
  if (userData.collisionObbDebugHelper === true) return true;
127320
+ if (userData.occlusionBoundsDebugHelper === true) return true;
127088
127321
  if (object.isCamera || object.isLight) return true;
127089
127322
  if (typeof object.type === 'string' && /Helper$/i.test(object.type)) return true;
127090
127323
  return object.type === 'CSS2DObject' || object.type === 'TransformControlsRoot';
127091
127324
  },
127092
127325
  getGlobalClippingRoots: function getGlobalClippingRoots() {
127093
- var _this49 = this;
127326
+ var _this50 = this;
127094
127327
  if (this.modelGroup && this.modelGroup.children && this.modelGroup.children.length) {
127095
127328
  return [this.modelGroup];
127096
127329
  }
127097
127330
  if (!this.scene || !this.scene.children || this.scene.children.length === 0) return [];
127098
127331
  return this.scene.children.filter(function (child) {
127099
- return !_this49.isGlobalClippingExcludedNode(child);
127332
+ return !_this50.isGlobalClippingExcludedNode(child);
127100
127333
  });
127101
127334
  },
127102
127335
  getGlobalClippingBox: function getGlobalClippingBox() {
@@ -127345,71 +127578,71 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127345
127578
  },
127346
127579
  // 页面是否锁定
127347
127580
  initPointerLock: function initPointerLock() {
127348
- var _this50 = this;
127581
+ var _this51 = this;
127349
127582
  this.home();
127350
127583
  setTimeout(function () {
127351
127584
  // 开启第一视角时,将相机与水平面保持水平
127352
- _this50.camera.rotation.x = 0;
127353
- _this50.camera.rotation.z = 0;
127354
- _this50.pointControls = new PointerLockControls(_this50.camera, _this50.renderer.domElement);
127355
- _this50.pointControls.lock();
127356
- if (!_this50._onFirstPersonChange) {
127357
- _this50._onFirstPersonChange = function () {
127358
- if (typeof _this50._cameraChangeObserver === 'function') {
127359
- _this50._cameraChangeObserver('firstPerson');
127585
+ _this51.camera.rotation.x = 0;
127586
+ _this51.camera.rotation.z = 0;
127587
+ _this51.pointControls = new PointerLockControls(_this51.camera, _this51.renderer.domElement);
127588
+ _this51.pointControls.lock();
127589
+ if (!_this51._onFirstPersonChange) {
127590
+ _this51._onFirstPersonChange = function () {
127591
+ if (typeof _this51._cameraChangeObserver === 'function') {
127592
+ _this51._cameraChangeObserver('firstPerson');
127360
127593
  }
127361
127594
  };
127362
127595
  }
127363
127596
  try {
127364
- _this50.pointControls.addEventListener('change', _this50._onFirstPersonChange);
127597
+ _this51.pointControls.addEventListener('change', _this51._onFirstPersonChange);
127365
127598
  } catch (e) {}
127366
127599
  // 锁定
127367
- _this50.pointControls.addEventListener('lock', function () {
127368
- _this50.detachTransformControls();
127369
- if (_this50.cameraControls) {
127370
- _this50.cameraControls.enabled = false;
127600
+ _this51.pointControls.addEventListener('lock', function () {
127601
+ _this51.detachTransformControls();
127602
+ if (_this51.cameraControls) {
127603
+ _this51.cameraControls.enabled = false;
127371
127604
  }
127372
- window.addEventListener('keydown', _this50.onKeyDown, false);
127373
- window.addEventListener('keyup', _this50.onKeyUp, false);
127374
- _this50.unbindScenePointerEvents();
127375
- if (typeof _this50._cameraChangeObserver === 'function') {
127376
- _this50._cameraChangeObserver('firstPersonLock');
127605
+ window.addEventListener('keydown', _this51.onKeyDown, false);
127606
+ window.addEventListener('keyup', _this51.onKeyUp, false);
127607
+ _this51.unbindScenePointerEvents();
127608
+ if (typeof _this51._cameraChangeObserver === 'function') {
127609
+ _this51._cameraChangeObserver('firstPersonLock');
127377
127610
  }
127378
127611
  });
127379
127612
  // 解锁
127380
- _this50.pointControls.addEventListener('unlock', function () {
127381
- _this50.firstPerSign = false;
127382
- if (_this50.cameraControls) {
127383
- _this50.cameraControls.enabled = true;
127613
+ _this51.pointControls.addEventListener('unlock', function () {
127614
+ _this51.firstPerSign = false;
127615
+ if (_this51.cameraControls) {
127616
+ _this51.cameraControls.enabled = true;
127384
127617
  }
127385
127618
  // 返回初始视角
127386
- if (_this50.cameraControls && _this50.camera && _this50.sceneBoundingBox) {
127387
- _this50.home();
127619
+ if (_this51.cameraControls && _this51.camera && _this51.sceneBoundingBox) {
127620
+ _this51.home();
127388
127621
  }
127389
127622
  try {
127390
- if (_this50._onFirstPersonChange && _this50.pointControls) {
127391
- _this50.pointControls.removeEventListener('change', _this50._onFirstPersonChange);
127623
+ if (_this51._onFirstPersonChange && _this51.pointControls) {
127624
+ _this51.pointControls.removeEventListener('change', _this51._onFirstPersonChange);
127392
127625
  }
127393
127626
  } catch (e) {}
127394
- if (_this50.noObserver) {
127395
- _this50.noObserver._firstPersonLastPos = null;
127627
+ if (_this51.noObserver) {
127628
+ _this51.noObserver._firstPersonLastPos = null;
127396
127629
  }
127397
127630
  setTimeout(function () {
127398
- window.removeEventListener('keydown', _this50.onKeyDown);
127399
- window.removeEventListener('keyup', _this50.onKeyUp);
127400
- if (_this50.renderer && _this50.renderer.domElement) {
127401
- _this50.bindScenePointerEvents();
127631
+ window.removeEventListener('keydown', _this51.onKeyDown);
127632
+ window.removeEventListener('keyup', _this51.onKeyUp);
127633
+ if (_this51.renderer && _this51.renderer.domElement) {
127634
+ _this51.bindScenePointerEvents();
127402
127635
  }
127403
- if (_this50.scene) {
127404
- _this50.ensureTransformSelectionValid();
127636
+ if (_this51.scene) {
127637
+ _this51.ensureTransformSelectionValid();
127405
127638
  }
127406
127639
  // this.timeRender()
127407
127640
  }, 0);
127408
- if (typeof _this50._cameraChangeObserver === 'function') {
127409
- _this50._cameraChangeObserver('firstPersonUnlock');
127641
+ if (typeof _this51._cameraChangeObserver === 'function') {
127642
+ _this51._cameraChangeObserver('firstPersonUnlock');
127410
127643
  }
127411
127644
  });
127412
- if (_this50.scene) _this50.scene.add(_this50.pointControls.object);
127645
+ if (_this51.scene) _this51.scene.add(_this51.pointControls.object);
127413
127646
  }, 10);
127414
127647
  },
127415
127648
  // 第一视角运动
@@ -127564,7 +127797,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127564
127797
  return this.scene && this.scene.children ? this.scene.children : [];
127565
127798
  },
127566
127799
  openMeasure: function openMeasure(type) {
127567
- var _this51 = this;
127800
+ var _this52 = this;
127568
127801
  var isClear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
127569
127802
  if (this.threeMeasure) {
127570
127803
  this.threeMeasure.close(isClear);
@@ -127576,7 +127809,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127576
127809
  case 'distance':
127577
127810
  this.threeMeasure = new measure_distance.MeasureDistance(this.renderer, this.scene, this.camera, this.instructions.offsetWidth, this.instructions.offsetHeight, {
127578
127811
  pickRoots: function pickRoots() {
127579
- return _this51.getMeasurePickRoots();
127812
+ return _this52.getMeasurePickRoots();
127580
127813
  }
127581
127814
  });
127582
127815
  this.threeMeasure.start();
@@ -127584,7 +127817,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127584
127817
  case 'area':
127585
127818
  this.threeMeasure = new measure_area.MeasureArea(this.renderer, this.scene, this.camera, this.instructions.offsetWidth, this.instructions.offsetHeight, {
127586
127819
  pickRoots: function pickRoots() {
127587
- return _this51.getMeasurePickRoots();
127820
+ return _this52.getMeasurePickRoots();
127588
127821
  }
127589
127822
  });
127590
127823
  this.threeMeasure.start();
@@ -127592,7 +127825,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127592
127825
  case 'angle':
127593
127826
  this.threeMeasure = new measure_angle.MeasureAngle(this.renderer, this.scene, this.camera, this.instructions.offsetWidth, this.instructions.offsetHeight, {
127594
127827
  pickRoots: function pickRoots() {
127595
- return _this51.getMeasurePickRoots();
127828
+ return _this52.getMeasurePickRoots();
127596
127829
  }
127597
127830
  });
127598
127831
  this.threeMeasure.start();
@@ -127600,7 +127833,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127600
127833
  case 'height':
127601
127834
  this.threeMeasure = new measure_height.MeasureHeight(this.renderer, this.scene, this.camera, this.instructions.offsetWidth, this.instructions.offsetHeight, {
127602
127835
  pickRoots: function pickRoots() {
127603
- return _this51.getMeasurePickRoots();
127836
+ return _this52.getMeasurePickRoots();
127604
127837
  }
127605
127838
  });
127606
127839
  this.threeMeasure.start();
@@ -127646,11 +127879,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127646
127879
  return object.name === 'measureObj' || userData.isMeasureObject === true;
127647
127880
  },
127648
127881
  removeMeasureObjectsFromScene: function removeMeasureObjectsFromScene() {
127649
- var _this52 = this;
127882
+ var _this53 = this;
127650
127883
  if (!this.scene) return;
127651
127884
  var measureObjects = [];
127652
127885
  this.scene.traverse(function (object) {
127653
- if (_this52.isMeasureObject(object)) {
127886
+ if (_this53.isMeasureObject(object)) {
127654
127887
  measureObjects.push(object);
127655
127888
  }
127656
127889
  });
@@ -127658,9 +127891,9 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127658
127891
  if (object.parent) {
127659
127892
  object.parent.remove(object);
127660
127893
  } else {
127661
- _this52.scene.remove(object);
127894
+ _this53.scene.remove(object);
127662
127895
  }
127663
- _this52.disposeMeasureObject(object);
127896
+ _this53.disposeMeasureObject(object);
127664
127897
  });
127665
127898
  },
127666
127899
  // 增加一个清除所有测量结果的方法,清理历史测量实例遗留的对象
@@ -127733,12 +127966,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127733
127966
  参数: object, 目标实体,
127734
127967
  */
127735
127968
  isolate: function isolate(object) {
127736
- var _this53 = this;
127969
+ var _this54 = this;
127737
127970
  if (!this.scene) return;
127738
127971
  // 隔离 将目标实体以外的实体隐藏掉
127739
127972
  this.scene.traverse(function (item) {
127740
127973
  if (item.isMesh && item.name !== object.name) {
127741
- var offsetMatrix = new _this53.THREE.Matrix4().copy(item.userData.copyMatrix).makeTranslation(9999999, 9999999, 9999999);
127974
+ var offsetMatrix = new _this54.THREE.Matrix4().copy(item.userData.copyMatrix).makeTranslation(9999999, 9999999, 9999999);
127742
127975
  item.setMatrixAt(item.userData.instanceIndex, offsetMatrix);
127743
127976
  item.instanceMatrix.needsUpdate = true;
127744
127977
  }
@@ -127746,7 +127979,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127746
127979
  },
127747
127980
  // 还原操作 将修改过的实体进行恢复
127748
127981
  restore: function restore() {
127749
- var _this54 = this;
127982
+ var _this55 = this;
127750
127983
  if (!this.scene) return;
127751
127984
  this.scene.traverse(function (item) {
127752
127985
  if (item.isMesh) {
@@ -127768,20 +128001,20 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127768
128001
  item.userData.translateMatrixInvert = null;
127769
128002
  }
127770
128003
  if (item.userData.combineMatrixInvert) {
127771
- _this54.rotateMesh(item, {
128004
+ _this55.rotateMesh(item, {
127772
128005
  x: 0,
127773
128006
  y: 0,
127774
128007
  z: 0
127775
128008
  });
127776
128009
  item.userData.combineMatrixInvert = null;
127777
128010
  }
127778
- var copyMatrix = _this54.getInstanceCopyMatrix(item, instanceId);
128011
+ var copyMatrix = _this55.getInstanceCopyMatrix(item, instanceId);
127779
128012
  if (!copyMatrix) return;
127780
- var sourceHidden = _this54.isSourceHiddenInstance(item, instanceId);
127781
- var offsetMatrix = new _this54.THREE.Matrix4().copy(copyMatrix);
128013
+ var sourceHidden = _this55.isSourceHiddenInstance(item, instanceId);
128014
+ var offsetMatrix = new _this55.THREE.Matrix4().copy(copyMatrix);
127782
128015
  if (sourceHidden) {
127783
128016
  offsetMatrix.makeTranslation(9999999, 9999999, 9999999);
127784
- _this54.removeOutlineInstanceProxy(item, item.userData.instanceIndex);
128017
+ _this55.removeOutlineInstanceProxy(item, item.userData.instanceIndex);
127785
128018
  }
127786
128019
  item.setMatrixAt(item.userData.instanceIndex, offsetMatrix);
127787
128020
  item.instanceMatrix.needsUpdate = true;
@@ -127790,7 +128023,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127790
128023
  },
127791
128024
  // 添加自定义模型, 暂时只支持glb、gltf格式
127792
128025
  addCustomModel: function addCustomModel(name, position, url) {
127793
- var _this55 = this;
128026
+ var _this56 = this;
127794
128027
  var scale = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
127795
128028
  var immediately = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
127796
128029
  var callback = arguments.length > 5 ? arguments[5] : undefined;
@@ -127801,41 +128034,41 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127801
128034
  locationModel.scale.set(scale, scale, scale);
127802
128035
  locationModel.updateMatrixWorld();
127803
128036
  if (immediately) {
127804
- _this55.cameraControls.fitToSphere(gltf.this.scene, true);
128037
+ _this56.cameraControls.fitToSphere(gltf.this.scene, true);
127805
128038
  }
127806
128039
  // 动画混合器
127807
128040
  // 不参与裁剪
127808
128041
  locationModel.userData.cull = false;
127809
128042
  locationModel.name = name;
127810
- if (_this55.scene) _this55.scene.add(locationModel);
127811
- locationModel.position.copy(new _this55.THREE.Vector3(position.x, position.y, position.z));
128043
+ if (_this56.scene) _this56.scene.add(locationModel);
128044
+ locationModel.position.copy(new _this56.THREE.Vector3(position.x, position.y, position.z));
127812
128045
  if (gltf.animations.length > 0) {
127813
- var actionMixer = new _this55.THREE.AnimationMixer(gltf.this.scene);
128046
+ var actionMixer = new _this56.THREE.AnimationMixer(gltf.this.scene);
127814
128047
  var walkActive = actionMixer.clipAction(gltf.animations[0]);
127815
128048
  walkActive.play();
127816
- _this55.modelActive.push(walkActive);
127817
- _this55.modelActions.push(actionMixer);
128049
+ _this56.modelActive.push(walkActive);
128050
+ _this56.modelActions.push(actionMixer);
127818
128051
  }
127819
128052
  callback && callback();
127820
128053
  });
127821
128054
  },
127822
128055
  // 删除添加的自定义模型
127823
128056
  removeCustomModel: function removeCustomModel(name) {
127824
- var _this56 = this;
128057
+ var _this57 = this;
127825
128058
  var obj = this.getObjectByName(name);
127826
128059
  obj.forEach(function (item, index) {
127827
128060
  if (item.animations > 0) {
127828
128061
  item.removeFromParent();
127829
- _this56.modelActions[index].uncacheRoot(item);
127830
- _this56.modelActions[index].uncacheRoot(_this56.modelActive[index]);
128062
+ _this57.modelActions[index].uncacheRoot(item);
128063
+ _this57.modelActions[index].uncacheRoot(_this57.modelActive[index]);
127831
128064
  }
127832
128065
  item.traverse(function (child) {
127833
- if (child instanceof _this56.THREE.Mesh) {
128066
+ if (child instanceof _this57.THREE.Mesh) {
127834
128067
  child.geometry.dispose();
127835
128068
  child.material.dispose();
127836
128069
  }
127837
128070
  });
127838
- if (_this56.scene) _this56.scene.remove(item);
128071
+ if (_this57.scene) _this57.scene.remove(item);
127839
128072
  });
127840
128073
  this.modelActions.splice(0);
127841
128074
  this.modelActive.splice(0);
@@ -127897,7 +128130,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127897
128130
  return size;
127898
128131
  },
127899
128132
  animate: function animate() {
127900
- var _this57 = this;
128133
+ var _this58 = this;
127901
128134
  if (isDebug) {
127902
128135
  this.stats && this.stats.begin(); // 开始帧率统计
127903
128136
  }
@@ -127911,7 +128144,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
127911
128144
  if (this.timeStamp > singleFrameTime) {
127912
128145
  if (this.modelActions.length > 0) {
127913
128146
  this.modelActions.forEach(function (item) {
127914
- item.update(_this57.timeStamp);
128147
+ item.update(_this58.timeStamp);
127915
128148
  });
127916
128149
  }
127917
128150
  this.cameraControls.enabled && this.cameraControls.update(this.timeStamp);
@@ -128039,6 +128272,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128039
128272
  if (!this.isSourceVisible(instanceId, object)) return false;
128040
128273
  var instanceInfo = object && object.userData && object.userData.instancesMap instanceof Map && object.userData.instancesMap.get(instanceId);
128041
128274
  if (instanceInfo && instanceInfo.visible === false) return false;
128275
+ if (instanceInfo && instanceInfo.cullingVisible === false) return false;
128042
128276
  var box = this._boxIndex && this._boxIndex.has(String(instanceId)) ? this._boxIndex.get(String(instanceId)) : this._boxIndex && this._boxIndex.has(instanceId) ? this._boxIndex.get(instanceId) : null;
128043
128277
  if (box && box.userData && box.userData.visible === false) return false;
128044
128278
  return true;
@@ -128278,25 +128512,25 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128278
128512
  * 加载下一批数据
128279
128513
  */
128280
128514
  loadNextBatch: function loadNextBatch() {
128281
- var _this58 = this;
128515
+ var _this59 = this;
128282
128516
  return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee1() {
128283
128517
  var loadingState, batch, _t3;
128284
128518
  return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context1) {
128285
128519
  while (1) switch (_context1.p = _context1.n) {
128286
128520
  case 0:
128287
- loadingState = _this58.noObserver ? _this58.noObserver.batchLoadingState : _this58.batchLoadingState;
128288
- if (_this58.isBatchLoadingSceneReady()) {
128521
+ loadingState = _this59.noObserver ? _this59.noObserver.batchLoadingState : _this59.batchLoadingState;
128522
+ if (_this59.isBatchLoadingSceneReady()) {
128289
128523
  _context1.n = 1;
128290
128524
  break;
128291
128525
  }
128292
- _this58.stopBatchLoading('scene_unavailable');
128526
+ _this59.stopBatchLoading('scene_unavailable');
128293
128527
  return _context1.a(2);
128294
128528
  case 1:
128295
128529
  if (!(!loadingState.isLoading || loadingState.currentBatch >= loadingState.pendingData.length)) {
128296
128530
  _context1.n = 2;
128297
128531
  break;
128298
128532
  }
128299
- _this58.completeBatchLoading();
128533
+ _this59.completeBatchLoading();
128300
128534
  return _context1.a(2);
128301
128535
  case 2:
128302
128536
  if (!loadingState.isPaused) {
@@ -128305,7 +128539,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128305
128539
  }
128306
128540
  // 如果暂停,延迟一段时间后再次检查
128307
128541
  loadingState.animationFrameId = requestAnimationFrame(function () {
128308
- _this58.loadNextBatch();
128542
+ _this59.loadNextBatch();
128309
128543
  });
128310
128544
  return _context1.a(2);
128311
128545
  case 3:
@@ -128315,7 +128549,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128315
128549
  }
128316
128550
  // 如果正在交互,延迟一段时间后再次检查
128317
128551
  loadingState.animationFrameId = requestAnimationFrame(function () {
128318
- _this58.loadNextBatch();
128552
+ _this59.loadNextBatch();
128319
128553
  });
128320
128554
  return _context1.a(2);
128321
128555
  case 4:
@@ -128324,13 +128558,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128324
128558
  _context1.n = 5;
128325
128559
  break;
128326
128560
  }
128327
- _this58.completeBatchLoading();
128561
+ _this59.completeBatchLoading();
128328
128562
  return _context1.a(2);
128329
128563
  case 5:
128330
128564
  _context1.p = 5;
128331
128565
  console.log('加载批次:', loadingState.currentBatch);
128332
128566
  _context1.n = 6;
128333
- return _this58.processWithMainThread(batch);
128567
+ return _this59.processWithMainThread(batch);
128334
128568
  case 6:
128335
128569
  if (loadingState.isLoading) {
128336
128570
  _context1.n = 7;
@@ -128338,11 +128572,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128338
128572
  }
128339
128573
  return _context1.a(2);
128340
128574
  case 7:
128341
- if (_this58.isBatchLoadingSceneReady()) {
128575
+ if (_this59.isBatchLoadingSceneReady()) {
128342
128576
  _context1.n = 8;
128343
128577
  break;
128344
128578
  }
128345
- _this58.stopBatchLoading('scene_unavailable');
128579
+ _this59.stopBatchLoading('scene_unavailable');
128346
128580
  return _context1.a(2);
128347
128581
  case 8:
128348
128582
  // 更新进度
@@ -128350,8 +128584,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128350
128584
  loadingState.currentBatch++;
128351
128585
 
128352
128586
  // 同步到响应式状态
128353
- _this58.batchLoadingState.loadedCount = loadingState.loadedCount;
128354
- _this58.batchLoadingState.currentBatch = loadingState.currentBatch;
128587
+ _this59.batchLoadingState.loadedCount = loadingState.loadedCount;
128588
+ _this59.batchLoadingState.currentBatch = loadingState.currentBatch;
128355
128589
 
128356
128590
  // 调用进度回调
128357
128591
  if (loadingState.onProgress) {
@@ -128365,7 +128599,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128365
128599
 
128366
128600
  // 使用 requestAnimationFrame 在下一帧继续加载
128367
128601
  loadingState.animationFrameId = requestAnimationFrame(function () {
128368
- _this58.loadNextBatch();
128602
+ _this59.loadNextBatch();
128369
128603
  });
128370
128604
  _context1.n = 10;
128371
128605
  break;
@@ -128376,7 +128610,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128376
128610
 
128377
128611
  // 继续下一批次
128378
128612
  loadingState.animationFrameId = requestAnimationFrame(function () {
128379
- _this58.loadNextBatch();
128613
+ _this59.loadNextBatch();
128380
128614
  });
128381
128615
  case 10:
128382
128616
  return _context1.a(2);
@@ -128388,20 +128622,20 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128388
128622
  * 使用主线程处理批次数据
128389
128623
  */
128390
128624
  processWithMainThread: function processWithMainThread(batch) {
128391
- var _this59 = this;
128625
+ var _this60 = this;
128392
128626
  return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee10() {
128393
128627
  var loadingState;
128394
128628
  return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context10) {
128395
128629
  while (1) switch (_context10.n) {
128396
128630
  case 0:
128397
- loadingState = _this59.noObserver ? _this59.noObserver.batchLoadingState : _this59.batchLoadingState;
128631
+ loadingState = _this60.noObserver ? _this60.noObserver.batchLoadingState : _this60.batchLoadingState;
128398
128632
  loadingState.options.batchSize = loadingState.batchSize;
128399
128633
  loadingState.options.resetState = loadingState.currentBatch === 0;
128400
128634
  // 使用原始的handleInstancedMeshModel方法
128401
128635
 
128402
128636
  isDebug && performance.mark('handleInstancedMeshModel-start');
128403
128637
  _context10.n = 1;
128404
- return handleInstancedMeshModel(_this59.modelGroup, batch.instances, batch.drawObjs, '', _this59.scene, loadingState.color, loadingState.meshNameConfig, '', loadingState.options);
128638
+ return handleInstancedMeshModel(_this60.modelGroup, batch.instances, batch.drawObjs, '', _this60.scene, loadingState.color, loadingState.meshNameConfig, '', loadingState.options);
128405
128639
  case 1:
128406
128640
  isDebug && performance.mark('handleInstancedMeshModel-end');
128407
128641
  isDebug && performance.measure('handleInstancedMeshModel', 'handleInstancedMeshModel-start', 'handleInstancedMeshModel-end');
@@ -128415,7 +128649,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128415
128649
  * 完成批量加载
128416
128650
  */
128417
128651
  completeBatchLoading: function completeBatchLoading() {
128418
- var _this60 = this;
128652
+ var _this61 = this;
128419
128653
  var loadingState = this.noObserver ? this.noObserver.batchLoadingState : this.batchLoadingState;
128420
128654
  if (!loadingState.isLoading) return;
128421
128655
  if (!this.isBatchLoadingSceneReady()) {
@@ -128448,17 +128682,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128448
128682
  this.modelGroup.traverse(function (child) {
128449
128683
  if (child.isMesh && !child.userData.batchInitDone) {
128450
128684
  markRendered(child);
128451
- var json = _this60.getMeshCenterAndVolume(child);
128452
- var meshBox3 = new _this60.THREE.Box3();
128685
+ var json = _this61.getMeshCenterAndVolume(child);
128686
+ var meshBox3 = new _this61.THREE.Box3();
128453
128687
  meshBox3.setFromObject(child);
128454
- var worldPs = new _this60.THREE.Vector3().addVectors(meshBox3.max, meshBox3.min).multiplyScalar(0.5);
128688
+ var worldPs = new _this61.THREE.Vector3().addVectors(meshBox3.max, meshBox3.min).multiplyScalar(0.5);
128455
128689
  if (isNaN(worldPs.x)) return;
128456
- child.worldDir = new _this60.THREE.Vector3().subVectors(worldPs, modelWorldPs).normalize();
128690
+ child.worldDir = new _this61.THREE.Vector3().subVectors(worldPs, modelWorldPs).normalize();
128457
128691
  child.userData.center = json.center;
128458
128692
  child.userData.worldPs = worldPs;
128459
- child.userData.oldPs = child.getWorldPosition(new _this60.THREE.Vector3());
128693
+ child.userData.oldPs = child.getWorldPosition(new _this61.THREE.Vector3());
128460
128694
  child.userData.box = json.box;
128461
- child.userData.position = new _this60.THREE.Vector3().copy(child.position);
128695
+ child.userData.position = new _this61.THREE.Vector3().copy(child.position);
128462
128696
  child.userData.translate = {
128463
128697
  x: 0,
128464
128698
  y: 0,
@@ -128550,7 +128784,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128550
128784
  * @param {Object} options - 配置项 { immediate: boolean }
128551
128785
  */
128552
128786
  setSystemInterruption: function setSystemInterruption(active) {
128553
- var _this61 = this;
128787
+ var _this62 = this;
128554
128788
  var reason = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'user_interaction';
128555
128789
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
128556
128790
  var loadingState = this.noObserver ? this.noObserver.batchLoadingState : this.batchLoadingState;
@@ -128616,7 +128850,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128616
128850
  if (loadingState.interactionState.wheelTimeout) return;
128617
128851
 
128618
128852
  // 2. 如果是 wheel 结束,但 this.userInteracting (this.camera) 还在进行,则不恢复
128619
- if (reason === 'wheel' && _this61.userInteracting) return;
128853
+ if (reason === 'wheel' && _this62.userInteracting) return;
128620
128854
 
128621
128855
  // 3. 检查是否有强制跳过标记 (可能由其他逻辑触发)
128622
128856
  // if (this.forceSkipRendering && reason !== 'user_interaction') return; // 视情况而定
@@ -128627,15 +128861,15 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128627
128861
  loadingState.pauseReason = '';
128628
128862
  loadingState.interactionState.isInteracting = false;
128629
128863
  loadingState.interactionState.interactionType = '';
128630
- _this61.forceSkipRendering = false;
128864
+ _this62.forceSkipRendering = false;
128631
128865
 
128632
128866
  // 恢复本地批量加载 (如果未完成)
128633
128867
  if (loadingState.isLoading && loadingState.currentBatch < loadingState.totalBatches) {
128634
- _this61.loadNextBatch();
128868
+ _this62.loadNextBatch();
128635
128869
  }
128636
128870
 
128637
128871
  // 恢复 StreamLoader
128638
- var streamLoader = _this61.noObserver.streamLoader;
128872
+ var streamLoader = _this62.noObserver.streamLoader;
128639
128873
  if (streamLoader && typeof streamLoader.handleControlEnd === 'function') {
128640
128874
  // StreamLoader 内部通常有防抖或延迟,这里直接通知结束即可
128641
128875
  streamLoader.handleControlEnd();
@@ -128688,7 +128922,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128688
128922
  * 滚轮交互结束的定时检测
128689
128923
  */
128690
128924
  scheduleWheelInteractionEnd: function scheduleWheelInteractionEnd(event) {
128691
- var _this62 = this;
128925
+ var _this63 = this;
128692
128926
  var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
128693
128927
  var loadingState = this.noObserver ? this.noObserver.batchLoadingState : this.batchLoadingState;
128694
128928
  if (loadingState.interactionState.wheelTimeout) {
@@ -128696,15 +128930,15 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128696
128930
  loadingState.interactionState.wheelTimeout = null;
128697
128931
  }
128698
128932
  loadingState.interactionState.wheelTimeout = setTimeout(function () {
128699
- _this62.$emit('wheelEnd', event);
128933
+ _this63.$emit('wheelEnd', event);
128700
128934
  loadingState.interactionState.wheelTimeout = null;
128701
- if (_this62.isCameraControlMoveObserverEnabled()) {
128702
- _this62.resetCameraControlMoveSnapshot(false);
128703
- if (typeof _this62._cameraChangeObserver === 'function') {
128704
- _this62._cameraChangeObserver('wheel');
128935
+ if (_this63.isCameraControlMoveObserverEnabled()) {
128936
+ _this63.resetCameraControlMoveSnapshot(false);
128937
+ if (typeof _this63._cameraChangeObserver === 'function') {
128938
+ _this63._cameraChangeObserver('wheel');
128705
128939
  }
128706
128940
  } else {
128707
- _this62.endInteraction('wheel', event, {
128941
+ _this63.endInteraction('wheel', event, {
128708
128942
  immediateResume: false
128709
128943
  });
128710
128944
  }
@@ -128819,11 +129053,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
128819
129053
  });
128820
129054
  // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=script&lang=js
128821
129055
  /* harmony default export */ var components_com_graphicsvue_type_script_lang_js = (com_graphicsvue_type_script_lang_js);
128822
- // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=27a9d008&prod&lang=scss&scoped=true
128823
- var com_graphicsvue_type_style_index_0_id_27a9d008_prod_lang_scss_scoped_true = __webpack_require__("5313");
129056
+ // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=3b9a926b&prod&lang=scss&scoped=true
129057
+ var com_graphicsvue_type_style_index_0_id_3b9a926b_prod_lang_scss_scoped_true = __webpack_require__("4e61");
128824
129058
 
128825
- // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=1&id=27a9d008&prod&lang=css
128826
- var com_graphicsvue_type_style_index_1_id_27a9d008_prod_lang_css = __webpack_require__("7bbf");
129059
+ // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=1&id=3b9a926b&prod&lang=css
129060
+ var com_graphicsvue_type_style_index_1_id_3b9a926b_prod_lang_css = __webpack_require__("0f44");
128827
129061
 
128828
129062
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
128829
129063
  /* globals __VUE_SSR_CONTEXT__ */
@@ -128935,18 +129169,18 @@ function normalizeComponent(
128935
129169
 
128936
129170
  var component = normalizeComponent(
128937
129171
  components_com_graphicsvue_type_script_lang_js,
128938
- com_graphicsvue_type_template_id_27a9d008_scoped_true_render,
129172
+ com_graphicsvue_type_template_id_3b9a926b_scoped_true_render,
128939
129173
  staticRenderFns,
128940
129174
  false,
128941
129175
  null,
128942
- "27a9d008",
129176
+ "3b9a926b",
128943
129177
  null
128944
129178
 
128945
129179
  )
128946
129180
 
128947
129181
  /* harmony default export */ var com_graphics = (component.exports);
128948
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3c0d80fb-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-flcanvas/index.vue?vue&type=template&id=41b98e1a&scoped=true
128949
- var com_flcanvasvue_type_template_id_41b98e1a_scoped_true_render = function render() {
129182
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"622c1d24-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-flcanvas/index.vue?vue&type=template&id=6175e5c1&scoped=true
129183
+ var com_flcanvasvue_type_template_id_6175e5c1_scoped_true_render = function render() {
128950
129184
  var _vm = this,
128951
129185
  _c = _vm._self._c;
128952
129186
  return _c('div', {
@@ -128959,9 +129193,9 @@ var com_flcanvasvue_type_template_id_41b98e1a_scoped_true_render = function rend
128959
129193
  }
128960
129194
  });
128961
129195
  };
128962
- var com_flcanvasvue_type_template_id_41b98e1a_scoped_true_staticRenderFns = [];
129196
+ var com_flcanvasvue_type_template_id_6175e5c1_scoped_true_staticRenderFns = [];
128963
129197
 
128964
- // CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=template&id=41b98e1a&scoped=true
129198
+ // CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=template&id=6175e5c1&scoped=true
128965
129199
 
128966
129200
  // EXTERNAL MODULE: ./node_modules/konva/lib/index.js
128967
129201
  var lib = __webpack_require__("362d");
@@ -133981,7 +134215,6 @@ function entityFormatting_arrayLikeToArray(r, a) { (null == a || a > r.length) &
133981
134215
 
133982
134216
 
133983
134217
  //rgb转换
133984
-
133985
134218
  function decimalToRGBHex(decimalValue) {
133986
134219
  // Ensure the input is a valid integer
133987
134220
  if (!Number.isInteger(decimalValue)) {
@@ -135358,20 +135591,22 @@ function downloadPDF(base64, fileName) {
135358
135591
  methods: {
135359
135592
  // 图纸居中展示
135360
135593
  centerDraw: function centerDraw() {
135361
- var _this$calculateScaleA = this.calculateScaleAndPosition(this.bounds, this.konvaStage.width(), this.konvaStage.height(), 0.05 // 5% 边距
135362
- ),
135363
- scale = _this$calculateScaleA.scale,
135364
- x = _this$calculateScaleA.x,
135365
- y = _this$calculateScaleA.y;
135366
- this.konvaStage.position({
135367
- x: x,
135368
- y: y
135369
- });
135370
- this.konvaStage.scale({
135371
- x: scale,
135372
- y: scale
135373
- });
135374
- this.konvaStage.batchDraw();
135594
+ if (this.bounds) {
135595
+ var _this$calculateScaleA = this.calculateScaleAndPosition(this.bounds, this.konvaStage.width(), this.konvaStage.height(), 0.05 // 5% 边距
135596
+ ),
135597
+ scale = _this$calculateScaleA.scale,
135598
+ x = _this$calculateScaleA.x,
135599
+ y = _this$calculateScaleA.y;
135600
+ this.konvaStage.position({
135601
+ x: x,
135602
+ y: y
135603
+ });
135604
+ this.konvaStage.scale({
135605
+ x: scale,
135606
+ y: scale
135607
+ });
135608
+ this.konvaStage.batchDraw();
135609
+ }
135375
135610
  },
135376
135611
  calculateScaleAndPosition: function calculateScaleAndPosition(contentBounds, stageWidth, stageHeight) {
135377
135612
  var padding = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.1;
@@ -135467,17 +135702,17 @@ function downloadPDF(base64, fileName) {
135467
135702
  _this$$refs$svgDraw,
135468
135703
  _this$$refs$svgDraw2;
135469
135704
  var _this = this;
135470
-
135471
- /* if(this.layer!=null){
135472
- let nodes=this.layer.find(".item");
135473
- for(let i=0;i<nodes.length;i++){
135474
- nodes[i].destroy();
135475
- }
135476
- }*/
135477
135705
  this.bounds = null;
135478
135706
  this.konvaLayer.destroyChildren();
135479
135707
  var parser = new dxf_parser_dist();
135480
135708
  var dxf = parser.parse(data);
135709
+ // 在这里处理数据为空的时候
135710
+ if (dxf.entities.length === 0) {
135711
+ this.$emit('error', {
135712
+ type: 'entityEmpty'
135713
+ });
135714
+ return;
135715
+ }
135481
135716
  var parser2 = new dxf_parser_DxfParser_DxfParser();
135482
135717
  var dxf2 = parser2.parseSync(data);
135483
135718
  var hatchEntitys = dxf2.entities;
@@ -135626,24 +135861,26 @@ function downloadPDF(base64, fileName) {
135626
135861
  if (_this3.konvaLayer) _this3.konvaLayer.add(_entity2.obj);
135627
135862
  }
135628
135863
  }
135629
- if (group.length > 0) {
135630
- var _group$;
135631
- if ((_group$ = group[0]) !== null && _group$ !== void 0 && _group$.stroke) {
135632
- group[0].stroke = '#000';
135633
- }
135864
+ var shapeGroup = group.filter(function (item) {
135865
+ return item.type !== 'text';
135866
+ });
135867
+ if (shapeGroup.length > 0) {
135868
+ // if (group[0]?.stroke) {
135869
+ // group[0].stroke = '#000';
135870
+ // }
135634
135871
  var customShape = new lib_default.a.Shape({
135635
135872
  x: 0,
135636
135873
  y: 0,
135637
135874
  strokeWidth: 0.2,
135638
135875
  name: key.replace(/\s*/g, ''),
135639
135876
  entityId: key,
135640
- stroke: group[0].stroke,
135641
- customColor: _configParams ? _configParams.color : group[0].stroke,
135877
+ stroke: shapeGroup[0].stroke,
135878
+ customColor: _configParams ? _configParams.color : shapeGroup[0].stroke,
135642
135879
  //visible: configParams ? configParams.visible :true,
135643
135880
  sceneFunc: function sceneFunc(context, shape) {
135644
135881
  context.beginPath();
135645
- for (var _i5 = 0; _i5 < group.length; _i5++) {
135646
- var _entity3 = group[_i5];
135882
+ for (var _i5 = 0; _i5 < shapeGroup.length; _i5++) {
135883
+ var _entity3 = shapeGroup[_i5];
135647
135884
  if (_entity3.type === 'line') {
135648
135885
  context.strokeStyle = _entity3.stroke;
135649
135886
  var x1 = _entity3.x1;
@@ -135848,8 +136085,8 @@ function downloadPDF(base64, fileName) {
135848
136085
  }
135849
136086
  }
135850
136087
  if (_group.length > 0) {
135851
- var _group$2;
135852
- if ((_group$2 = _group[0]) !== null && _group$2 !== void 0 && _group$2.stroke) {
136088
+ var _group$;
136089
+ if ((_group$ = _group[0]) !== null && _group$ !== void 0 && _group$.stroke) {
135853
136090
  _group[0].stroke = '#000';
135854
136091
  }
135855
136092
  var customShape = new lib_default.a.Shape({
@@ -136005,8 +136242,8 @@ function downloadPDF(base64, fileName) {
136005
136242
  });
136006
136243
  // CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=script&lang=js
136007
136244
  /* harmony default export */ var components_com_flcanvasvue_type_script_lang_js = (com_flcanvasvue_type_script_lang_js);
136008
- // EXTERNAL MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=style&index=0&id=41b98e1a&prod&lang=scss&scoped=true
136009
- var com_flcanvasvue_type_style_index_0_id_41b98e1a_prod_lang_scss_scoped_true = __webpack_require__("c89b");
136245
+ // EXTERNAL MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=style&index=0&id=6175e5c1&prod&lang=scss&scoped=true
136246
+ var com_flcanvasvue_type_style_index_0_id_6175e5c1_prod_lang_scss_scoped_true = __webpack_require__("e998");
136010
136247
 
136011
136248
  // CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue
136012
136249
 
@@ -136019,17 +136256,17 @@ var com_flcanvasvue_type_style_index_0_id_41b98e1a_prod_lang_scss_scoped_true =
136019
136256
 
136020
136257
  var com_flcanvas_component = normalizeComponent(
136021
136258
  components_com_flcanvasvue_type_script_lang_js,
136022
- com_flcanvasvue_type_template_id_41b98e1a_scoped_true_render,
136023
- com_flcanvasvue_type_template_id_41b98e1a_scoped_true_staticRenderFns,
136259
+ com_flcanvasvue_type_template_id_6175e5c1_scoped_true_render,
136260
+ com_flcanvasvue_type_template_id_6175e5c1_scoped_true_staticRenderFns,
136024
136261
  false,
136025
136262
  null,
136026
- "41b98e1a",
136263
+ "6175e5c1",
136027
136264
  null
136028
136265
 
136029
136266
  )
136030
136267
 
136031
136268
  /* harmony default export */ var com_flcanvas = (com_flcanvas_component.exports);
136032
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3c0d80fb-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/per-control.vue?vue&type=template&id=f547d5c6&scoped=true
136269
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"622c1d24-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/per-control.vue?vue&type=template&id=f547d5c6&scoped=true
136033
136270
  var per_controlvue_type_template_id_f547d5c6_scoped_true_render = function render() {
136034
136271
  var _vm = this,
136035
136272
  _c = _vm._self._c;
@@ -136137,7 +136374,7 @@ var per_control_component = normalizeComponent(
136137
136374
  )
136138
136375
 
136139
136376
  /* harmony default export */ var per_control = (per_control_component.exports);
136140
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3c0d80fb-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/pid.vue?vue&type=template&id=2572c0e2&scoped=true
136377
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"622c1d24-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/pid.vue?vue&type=template&id=2572c0e2&scoped=true
136141
136378
  var pidvue_type_template_id_2572c0e2_scoped_true_render = function render() {
136142
136379
  var _vm = this,
136143
136380
  _c = _vm._self._c;
@@ -136184,7 +136421,7 @@ var browserify_default = /*#__PURE__*/__webpack_require__.n(browserify);
136184
136421
  var html2canvas = __webpack_require__("c0e9");
136185
136422
  var html2canvas_default = /*#__PURE__*/__webpack_require__.n(html2canvas);
136186
136423
 
136187
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3c0d80fb-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/component/ann-tool.vue?vue&type=template&id=4b17bce0&scoped=true
136424
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"622c1d24-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/component/ann-tool.vue?vue&type=template&id=4b17bce0&scoped=true
136188
136425
  var ann_toolvue_type_template_id_4b17bce0_scoped_true_render = function render() {
136189
136426
  var _vm = this,
136190
136427
  _c = _vm._self._c;