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.
- package/dist/fl-web-component.common.js +825 -588
- package/dist/fl-web-component.common.js.map +1 -1
- package/dist/fl-web-component.css +1 -1
- package/package.json +1 -1
- package/packages/components/com-flcanvas/components/entityFormatting.js +0 -2
- package/packages/components/com-flcanvas/index.vue +29 -26
- package/packages/components/com-graphics/index.vue +389 -89
- package/packages/utils/StreamLoader.js +1 -1
- package/src/utils/instance-parser.js +16 -16
|
@@ -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.
|
|
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":"
|
|
78638
|
-
var
|
|
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=
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
122823
|
-
if (!
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 (
|
|
123317
|
-
|
|
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
|
|
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 =
|
|
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])
|
|
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
|
|
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
|
-
|
|
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 (!
|
|
123507
|
-
var hits =
|
|
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 (!
|
|
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:
|
|
123520
|
-
idB:
|
|
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
|
|
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
|
|
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
|
-
|
|
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 =
|
|
123942
|
-
if (!(!
|
|
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 (!
|
|
123959
|
-
if (!
|
|
123960
|
-
globalFrustum =
|
|
123961
|
-
globalVpMatrix =
|
|
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 (!
|
|
124195
|
+
if (!_this16._octree) {
|
|
123976
124196
|
_context3.n = 8;
|
|
123977
124197
|
break;
|
|
123978
124198
|
}
|
|
123979
|
-
frustum =
|
|
124199
|
+
frustum = _this16._getCurrentFrustum();
|
|
123980
124200
|
exclude = bypassList || new Set();
|
|
123981
|
-
hits =
|
|
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 (
|
|
124214
|
+
if (_this16.shouldApplyOcclusionByBox(hits[i].box)) {
|
|
123995
124215
|
_context3.n = 5;
|
|
123996
124216
|
break;
|
|
123997
124217
|
}
|
|
123998
|
-
visibleIdSet.add(
|
|
124218
|
+
visibleIdSet.add(_this16.formatModelId(hits[i].modelId));
|
|
123999
124219
|
return _context3.a(3, 6);
|
|
124000
124220
|
case 5:
|
|
124001
|
-
|
|
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 (
|
|
124011
|
-
|
|
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 (
|
|
124015
|
-
if (!
|
|
124016
|
-
visibleIdSet.add(
|
|
124234
|
+
if (_this16.isBoxInFrustum(box)) {
|
|
124235
|
+
if (!_this16.shouldApplyOcclusionByBox(box)) {
|
|
124236
|
+
visibleIdSet.add(_this16.formatModelId(modelId));
|
|
124017
124237
|
return;
|
|
124018
124238
|
}
|
|
124019
|
-
|
|
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 =
|
|
124028
|
-
occlusionEnabled =
|
|
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 =
|
|
124035
|
-
h =
|
|
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 =
|
|
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
|
|
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 =
|
|
124053
|
-
rt.texture.magFilter =
|
|
124269
|
+
rt.texture.minFilter = _this16.THREE.NearestFilter;
|
|
124270
|
+
rt.texture.magFilter = _this16.THREE.NearestFilter;
|
|
124054
124271
|
rt.texture.generateMipmaps = false;
|
|
124055
|
-
rt.texture.type =
|
|
124056
|
-
rt.texture.format =
|
|
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
|
|
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 =
|
|
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] =
|
|
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
|
|
124142
|
-
var _tempColor = occObjs._tempColor || (occObjs._tempColor = new
|
|
124143
|
-
var _tempScale = occObjs._tempScale || (occObjs._tempScale = new
|
|
124144
|
-
var _tempVec3 = occObjs._tempVec3 || (occObjs._tempVec3 = new
|
|
124145
|
-
var _tempMatA = occObjs._tempMatA || (occObjs._tempMatA = new
|
|
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
|
|
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
|
|
124159
|
-
var mat = new
|
|
124382
|
+
var geometry = new _this16.THREE.BoxGeometry(1, 1, 1);
|
|
124383
|
+
var mat = new _this16.THREE.MeshBasicMaterial({
|
|
124160
124384
|
color: 0xffffff,
|
|
124161
|
-
side:
|
|
124162
|
-
blending:
|
|
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
|
|
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 =
|
|
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
|
-
|
|
124190
|
-
|
|
124191
|
-
|
|
124192
|
-
|
|
124193
|
-
_tempMatrix.
|
|
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
|
|
124223
|
-
var material = new
|
|
124451
|
+
var geometry = new _this16.THREE.BufferGeometry();
|
|
124452
|
+
var material = new _this16.THREE.MeshBasicMaterial({
|
|
124224
124453
|
vertexColors: true,
|
|
124225
|
-
side:
|
|
124226
|
-
blending:
|
|
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
|
|
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
|
|
124256
|
-
var _colAttr = new
|
|
124257
|
-
_posAttr.setUsage(
|
|
124258
|
-
_colAttr.setUsage(
|
|
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
|
|
124262
|
-
_idxAttr.setUsage(
|
|
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
|
|
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
|
|
124290
|
-
_tempMatA.premultiply(
|
|
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
|
|
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
|
|
124401
|
-
material = new
|
|
124629
|
+
geometry = new _this16.THREE.BoxGeometry(1, 1, 1);
|
|
124630
|
+
material = new _this16.THREE.MeshBasicMaterial({
|
|
124402
124631
|
color: 0xffffff,
|
|
124403
|
-
side:
|
|
124404
|
-
blending:
|
|
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
|
|
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
|
|
124420
|
-
tempScale = new
|
|
124421
|
-
tempObj = new
|
|
124422
|
-
tempColor = new
|
|
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] =
|
|
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
|
|
124438
|
-
tempMatrix.premultiply(
|
|
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 =
|
|
124467
|
-
prevTarget =
|
|
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 =
|
|
124700
|
+
_c3 = _this16.renderer.getClearColor ? _this16.renderer.getClearColor() : null;
|
|
124472
124701
|
if (_c3 && _c3.isColor) prevClearColorHex = _c3.getHex();
|
|
124473
|
-
prevClearAlpha = typeof
|
|
124702
|
+
prevClearAlpha = typeof _this16.renderer.getClearAlpha === 'function' ? _this16.renderer.getClearAlpha() : 0;
|
|
124474
124703
|
} catch (_) {}
|
|
124475
|
-
|
|
124476
|
-
|
|
124477
|
-
|
|
124478
|
-
|
|
124479
|
-
|
|
124480
|
-
|
|
124481
|
-
|
|
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
|
-
|
|
124713
|
+
_this16.$emit('updateBoundingBox');
|
|
124485
124714
|
|
|
124486
124715
|
// const tPreview0 = performance.now();
|
|
124487
|
-
if (
|
|
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(
|
|
124506
|
-
cssH = Math.min(
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
124767
|
+
extraStride = _this16.occlusionState && _this16.occlusionState.sampleStride ? _this16.occlusionState.sampleStride : 1;
|
|
124539
124768
|
stride = Math.max(1, baseStride * Math.max(1, extraStride));
|
|
124540
|
-
minSampleCount =
|
|
124769
|
+
minSampleCount = _this16.occlusionState && _this16.occlusionState.minSampleCount ? _this16.occlusionState.minSampleCount : 1;
|
|
124541
124770
|
_context3.n = 11;
|
|
124542
|
-
return
|
|
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
|
-
|
|
124561
|
-
|
|
124562
|
-
|
|
124563
|
-
|
|
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
|
|
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
|
-
|
|
124581
|
-
|
|
124582
|
-
|
|
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
|
-
|
|
124834
|
+
_this16.scene.traverse(function (child) {
|
|
124606
124835
|
if (!child.isInstancedMesh) return;
|
|
124607
|
-
|
|
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 (!
|
|
124620
|
-
|
|
124621
|
-
|
|
124622
|
-
|
|
124623
|
-
|
|
124624
|
-
|
|
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
|
-
|
|
124627
|
-
|
|
124628
|
-
|
|
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
|
|
124635
|
-
|
|
124636
|
-
// console.log('modelId', modelId, 'inFrustum', inFrustum, 'modelInVisible', modelInVisible)
|
|
124868
|
+
var _modelInVisible = visibleIdSet.has(_formattedModelId);
|
|
124869
|
+
toLoadSet.delete(_formattedModelId);
|
|
124637
124870
|
|
|
124638
|
-
//
|
|
124639
|
-
|
|
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 =
|
|
124648
|
-
if (!
|
|
124649
|
-
|
|
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
|
-
|
|
124656
|
-
|
|
124657
|
-
|
|
124888
|
+
toLoadSet.delete(_this16.formatModelId(_modelId2));
|
|
124889
|
+
if (!unloadModelId) unloadModelId = _modelId2;
|
|
124890
|
+
}
|
|
124658
124891
|
|
|
124659
|
-
|
|
124660
|
-
|
|
124661
|
-
|
|
124662
|
-
|
|
124663
|
-
|
|
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
|
-
|
|
124675
|
-
|
|
124676
|
-
|
|
124677
|
-
|
|
124678
|
-
|
|
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
|
|
124683
|
-
|
|
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
|
-
|
|
124925
|
+
_this16.unloadInstancedModel(modelId, child);
|
|
124698
124926
|
}
|
|
124699
|
-
if (
|
|
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
|
-
|
|
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
|
|
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 (!(
|
|
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 =
|
|
125114
|
+
var pending = _this17.noObserver.occlusionWorkerRequestMap.get(payload.id);
|
|
124887
125115
|
if (!pending) return;
|
|
124888
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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 (!
|
|
125146
|
+
if (!_this19.noObserver.streamLoader) {
|
|
124919
125147
|
_context6.n = 1;
|
|
124920
125148
|
break;
|
|
124921
125149
|
}
|
|
124922
125150
|
_context6.n = 1;
|
|
124923
|
-
return
|
|
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
|
|
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
|
-
|
|
124943
|
-
if (!
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
125205
|
+
_this21.setSceneBox(res.sceneBox, item.id, true);
|
|
124978
125206
|
}
|
|
124979
125207
|
if (res && res.boxIndex) {
|
|
124980
|
-
|
|
125208
|
+
_this21.setBoxIndex(res.boxIndex, item.id, true);
|
|
124981
125209
|
}
|
|
124982
|
-
|
|
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
|
-
|
|
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
|
|
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 (
|
|
125095
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
125357
|
+
return _this23.waitNextRenderFrame();
|
|
125130
125358
|
case 1:
|
|
125131
|
-
|
|
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
|
|
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 (
|
|
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' &&
|
|
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 (!
|
|
125640
|
+
if (!_this24.modelStateManager.frustumCheckEnabled) {
|
|
125413
125641
|
_context0.n = 3;
|
|
125414
125642
|
break;
|
|
125415
125643
|
}
|
|
125416
125644
|
_context0.n = 3;
|
|
125417
|
-
return
|
|
125645
|
+
return _this24.performFrustumCulling({
|
|
125418
125646
|
skipUnload: source === 'controlMove'
|
|
125419
125647
|
});
|
|
125420
125648
|
case 3:
|
|
125421
125649
|
// 执行流式加载请求
|
|
125422
|
-
if (
|
|
125423
|
-
|
|
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 =
|
|
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
|
-
|
|
125684
|
+
_this24._cameraChangeObserver(source);
|
|
125457
125685
|
};
|
|
125458
125686
|
|
|
125459
125687
|
// 3. 监听器 - Wheel (用户滚轮)
|
|
125460
125688
|
this._wheelHandler = function (res) {
|
|
125461
|
-
|
|
125462
|
-
var cameraControlMoveEnabled =
|
|
125463
|
-
var loadingState =
|
|
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
|
-
|
|
125694
|
+
_this24.resetCameraControlMoveSnapshot(true);
|
|
125467
125695
|
} else if (!cameraControlMoveEnabled) {
|
|
125468
125696
|
// 未开启普通视角运动加载时,保持原有交互中断流程。
|
|
125469
|
-
|
|
125697
|
+
_this24.beginInteraction('wheel');
|
|
125470
125698
|
}
|
|
125471
125699
|
|
|
125472
125700
|
// 设置滚轮交互的结束检测
|
|
125473
|
-
|
|
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 (
|
|
125717
|
+
if (_this24.sceneBoundingBox && isFinite(maxDollyDistance)) {
|
|
125490
125718
|
if (isZoomOut) {
|
|
125491
|
-
|
|
125492
|
-
var currentDistance =
|
|
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
|
-
|
|
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
|
-
|
|
125512
|
-
if (
|
|
125513
|
-
|
|
125739
|
+
_this24.noObserver.isControlActive = true;
|
|
125740
|
+
if (_this24.isCameraControlMoveObserverEnabled()) {
|
|
125741
|
+
_this24.resetCameraControlMoveSnapshot(true);
|
|
125514
125742
|
} else {
|
|
125515
125743
|
// 未开启普通视角运动加载时,保持原有交互中断流程。
|
|
125516
|
-
|
|
125744
|
+
_this24.beginInteraction('this.camera');
|
|
125517
125745
|
}
|
|
125518
|
-
|
|
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
|
-
|
|
125531
|
-
if (!
|
|
125758
|
+
_this24.$emit('controlEnd', res);
|
|
125759
|
+
if (!_this24.isCameraControlMoveObserverEnabled()) {
|
|
125532
125760
|
// 未开启普通视角运动加载时,保持原有交互中断流程。
|
|
125533
|
-
|
|
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
|
-
|
|
125791
|
+
_this24._cameraChangeObserver('control');
|
|
125564
125792
|
}
|
|
125565
|
-
if (
|
|
125566
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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 && !
|
|
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
|
|
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
|
|
126068
|
+
var _this28 = this;
|
|
125841
126069
|
// 鼠标抬起时重置渲染中断标记
|
|
125842
126070
|
setTimeout(function () {
|
|
125843
|
-
|
|
126071
|
+
_this28.forceSkipRendering = false;
|
|
125844
126072
|
// interactionFrameCount = 0;
|
|
125845
126073
|
// 恢复批次加载操作
|
|
125846
|
-
|
|
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
|
-
|
|
126133
|
+
_this28.updateProperty([{
|
|
125906
126134
|
name: params.instanceId,
|
|
125907
126135
|
attr: {
|
|
125908
126136
|
visible: false
|
|
125909
126137
|
}
|
|
125910
126138
|
}]);
|
|
125911
126139
|
}, function () {
|
|
125912
|
-
|
|
125913
|
-
|
|
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
|
-
|
|
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
|
-
|
|
126155
|
+
_this28.updateProperty([{
|
|
125928
126156
|
name: params.instanceId,
|
|
125929
126157
|
attr: {
|
|
125930
126158
|
visible: false
|
|
125931
126159
|
}
|
|
125932
126160
|
}]);
|
|
125933
126161
|
}, function () {
|
|
125934
|
-
|
|
125935
|
-
|
|
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
|
-
|
|
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
|
|
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 (!
|
|
126053
|
-
|
|
126280
|
+
if (!_this29.userInteracting && !_this29.hasExecutedCentering && _this29.noObserver.documentModelIds.size > 0) {
|
|
126281
|
+
_this29.setModelCenter(mesh, {
|
|
126054
126282
|
enableTransition: false
|
|
126055
126283
|
});
|
|
126056
|
-
|
|
126284
|
+
_this29.hasExecutedCentering = true;
|
|
126057
126285
|
// 触发场景更新
|
|
126058
|
-
|
|
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
|
|
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 =
|
|
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
|
|
126327
|
+
children.setColorAt(instanceIndex, new _this30.THREE.Color(ele.attr[key]));
|
|
126100
126328
|
children.instanceColor.needsUpdate = true;
|
|
126101
|
-
if (!
|
|
126102
|
-
|
|
126329
|
+
if (!_this30.isCurrentVisible(instanceId, children)) {
|
|
126330
|
+
_this30.removeOutlineObject(children, instanceIndex);
|
|
126103
126331
|
return;
|
|
126104
126332
|
}
|
|
126105
126333
|
if (hasOutline) {
|
|
126106
|
-
if (
|
|
126334
|
+
if (_this30.outlinePass) {
|
|
126107
126335
|
if (children.isInstancedMesh) {
|
|
126108
|
-
var proxy =
|
|
126109
|
-
|
|
126110
|
-
} else if (!
|
|
126111
|
-
|
|
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 &&
|
|
126125
|
-
var boxKey =
|
|
126126
|
-
if (
|
|
126127
|
-
var boxData =
|
|
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 &&
|
|
126365
|
+
var nextVisible = requestedVisible && _this30.isSourceVisible(instanceId, children);
|
|
126138
126366
|
instanceInfo.visible = nextVisible;
|
|
126139
126367
|
if (nextVisible) {
|
|
126140
|
-
var restoreMatrix = new
|
|
126368
|
+
var restoreMatrix = new _this30.THREE.Matrix4().copy(copyMatrix || children.userData.copyMatrix);
|
|
126141
126369
|
children.setMatrixAt(instanceIndex, restoreMatrix);
|
|
126142
126370
|
} else {
|
|
126143
|
-
var _copyMatrix =
|
|
126371
|
+
var _copyMatrix = _this30.getInstanceCopyMatrix(children, instanceId);
|
|
126144
126372
|
if (!_copyMatrix) return;
|
|
126145
|
-
var offsetMatrix = new
|
|
126373
|
+
var offsetMatrix = new _this30.THREE.Matrix4().copy(_copyMatrix || children.userData.copyMatrix).makeTranslation(9999999, 9999999, 9999999);
|
|
126146
126374
|
children.setMatrixAt(instanceIndex, offsetMatrix);
|
|
126147
|
-
|
|
126375
|
+
_this30.removeOutlineObject(children, instanceIndex);
|
|
126148
126376
|
}
|
|
126149
126377
|
children.instanceMatrix.needsUpdate = true;
|
|
126150
126378
|
});
|
|
126151
|
-
|
|
126152
|
-
|
|
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
|
|
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 &&
|
|
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 &&
|
|
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
|
-
|
|
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
|
|
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 (!
|
|
126264
|
-
|
|
126493
|
+
if (!_this32.isSourceVisible(instanceId, children)) {
|
|
126494
|
+
_this32.removeOutlineObject(children, instanceIndex);
|
|
126265
126495
|
return;
|
|
126266
126496
|
}
|
|
126267
|
-
if (!
|
|
126268
|
-
|
|
126497
|
+
if (!_this32.isCurrentVisible(instanceId, children)) {
|
|
126498
|
+
_this32.removeOutlineObject(children, instanceIndex);
|
|
126269
126499
|
return;
|
|
126270
126500
|
}
|
|
126271
|
-
if (
|
|
126501
|
+
if (_this32.outlinePass) {
|
|
126272
126502
|
if (children.isInstancedMesh) {
|
|
126273
|
-
var proxy =
|
|
126274
|
-
|
|
126503
|
+
var proxy = _this32.ensureOutlineInstanceProxy(children, instanceIndex);
|
|
126504
|
+
_this32.pushOutlineTarget(proxy);
|
|
126275
126505
|
} else {
|
|
126276
|
-
|
|
126506
|
+
_this32.pushOutlineTarget(children);
|
|
126277
126507
|
}
|
|
126278
126508
|
}
|
|
126279
126509
|
}
|
|
126280
126510
|
});
|
|
126281
126511
|
},
|
|
126282
126512
|
hideOutlinePass: function hideOutlinePass(instanceId) {
|
|
126283
|
-
var
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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 (
|
|
126620
|
+
if (_this36.outlinePass) {
|
|
126391
126621
|
if (children.isInstancedMesh) {
|
|
126392
|
-
|
|
126622
|
+
_this36.removeOutlineInstanceProxy(children, instanceIndex);
|
|
126393
126623
|
} else {
|
|
126394
|
-
var idx =
|
|
126395
|
-
if (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 (
|
|
126638
|
+
if (_this36.isSourceVisible(instanceId, children)) {
|
|
126409
126639
|
instanceInfo.visible = true;
|
|
126410
|
-
var restoreMatrix = new
|
|
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
|
|
126644
|
+
var offsetMatrix = new _this36.THREE.Matrix4().copy(copyMatrix).makeTranslation(9999999, 9999999, 9999999);
|
|
126415
126645
|
children.setMatrixAt(instanceIndex, offsetMatrix);
|
|
126416
|
-
|
|
126646
|
+
_this36.removeOutlineObject(children, instanceIndex);
|
|
126417
126647
|
}
|
|
126418
126648
|
children.instanceMatrix.needsUpdate = true;
|
|
126419
126649
|
});
|
|
126420
|
-
|
|
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
|
|
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 =
|
|
126706
|
+
var objectByUuid = _this37.getObjectByUuid(n);
|
|
126476
126707
|
if (objectByUuid) {
|
|
126477
|
-
|
|
126708
|
+
_this37.expandLocateBoxByObject(box3, objectByUuid);
|
|
126478
126709
|
return;
|
|
126479
126710
|
}
|
|
126480
|
-
var arr =
|
|
126711
|
+
var arr = _this37.getObjectByName(n);
|
|
126481
126712
|
arr.forEach(function (o) {
|
|
126482
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
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
|
-
|
|
126940
|
+
_this42.scene.remove(item);
|
|
126710
126941
|
}
|
|
126711
126942
|
});
|
|
126712
126943
|
},
|
|
126713
126944
|
// 通过名称删除对象
|
|
126714
126945
|
removeObjectByName: function removeObjectByName(name) {
|
|
126715
|
-
var
|
|
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 (
|
|
126955
|
+
if (_this43.scene) _this43.scene.remove(item);
|
|
126725
126956
|
});
|
|
126726
126957
|
},
|
|
126727
126958
|
// 删除场景中所有的实体
|
|
126728
126959
|
removeAll: function removeAll() {
|
|
126729
|
-
var
|
|
126960
|
+
var _this44 = this;
|
|
126730
126961
|
return new Promise(function (resolve) {
|
|
126731
|
-
if (
|
|
126732
|
-
|
|
126733
|
-
|
|
126734
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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 (
|
|
126788
|
-
var idx =
|
|
126789
|
-
if (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 (
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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 !
|
|
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
|
|
127581
|
+
var _this51 = this;
|
|
127349
127582
|
this.home();
|
|
127350
127583
|
setTimeout(function () {
|
|
127351
127584
|
// 开启第一视角时,将相机与水平面保持水平
|
|
127352
|
-
|
|
127353
|
-
|
|
127354
|
-
|
|
127355
|
-
|
|
127356
|
-
if (!
|
|
127357
|
-
|
|
127358
|
-
if (typeof
|
|
127359
|
-
|
|
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
|
-
|
|
127597
|
+
_this51.pointControls.addEventListener('change', _this51._onFirstPersonChange);
|
|
127365
127598
|
} catch (e) {}
|
|
127366
127599
|
// 锁定
|
|
127367
|
-
|
|
127368
|
-
|
|
127369
|
-
if (
|
|
127370
|
-
|
|
127600
|
+
_this51.pointControls.addEventListener('lock', function () {
|
|
127601
|
+
_this51.detachTransformControls();
|
|
127602
|
+
if (_this51.cameraControls) {
|
|
127603
|
+
_this51.cameraControls.enabled = false;
|
|
127371
127604
|
}
|
|
127372
|
-
window.addEventListener('keydown',
|
|
127373
|
-
window.addEventListener('keyup',
|
|
127374
|
-
|
|
127375
|
-
if (typeof
|
|
127376
|
-
|
|
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
|
-
|
|
127381
|
-
|
|
127382
|
-
if (
|
|
127383
|
-
|
|
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 (
|
|
127387
|
-
|
|
127619
|
+
if (_this51.cameraControls && _this51.camera && _this51.sceneBoundingBox) {
|
|
127620
|
+
_this51.home();
|
|
127388
127621
|
}
|
|
127389
127622
|
try {
|
|
127390
|
-
if (
|
|
127391
|
-
|
|
127623
|
+
if (_this51._onFirstPersonChange && _this51.pointControls) {
|
|
127624
|
+
_this51.pointControls.removeEventListener('change', _this51._onFirstPersonChange);
|
|
127392
127625
|
}
|
|
127393
127626
|
} catch (e) {}
|
|
127394
|
-
if (
|
|
127395
|
-
|
|
127627
|
+
if (_this51.noObserver) {
|
|
127628
|
+
_this51.noObserver._firstPersonLastPos = null;
|
|
127396
127629
|
}
|
|
127397
127630
|
setTimeout(function () {
|
|
127398
|
-
window.removeEventListener('keydown',
|
|
127399
|
-
window.removeEventListener('keyup',
|
|
127400
|
-
if (
|
|
127401
|
-
|
|
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 (
|
|
127404
|
-
|
|
127636
|
+
if (_this51.scene) {
|
|
127637
|
+
_this51.ensureTransformSelectionValid();
|
|
127405
127638
|
}
|
|
127406
127639
|
// this.timeRender()
|
|
127407
127640
|
}, 0);
|
|
127408
|
-
if (typeof
|
|
127409
|
-
|
|
127641
|
+
if (typeof _this51._cameraChangeObserver === 'function') {
|
|
127642
|
+
_this51._cameraChangeObserver('firstPersonUnlock');
|
|
127410
127643
|
}
|
|
127411
127644
|
});
|
|
127412
|
-
if (
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
127882
|
+
var _this53 = this;
|
|
127650
127883
|
if (!this.scene) return;
|
|
127651
127884
|
var measureObjects = [];
|
|
127652
127885
|
this.scene.traverse(function (object) {
|
|
127653
|
-
if (
|
|
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
|
-
|
|
127894
|
+
_this53.scene.remove(object);
|
|
127662
127895
|
}
|
|
127663
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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 =
|
|
128011
|
+
var copyMatrix = _this55.getInstanceCopyMatrix(item, instanceId);
|
|
127779
128012
|
if (!copyMatrix) return;
|
|
127780
|
-
var sourceHidden =
|
|
127781
|
-
var offsetMatrix = new
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 (
|
|
127811
|
-
locationModel.position.copy(new
|
|
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
|
|
128046
|
+
var actionMixer = new _this56.THREE.AnimationMixer(gltf.this.scene);
|
|
127814
128047
|
var walkActive = actionMixer.clipAction(gltf.animations[0]);
|
|
127815
128048
|
walkActive.play();
|
|
127816
|
-
|
|
127817
|
-
|
|
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
|
|
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
|
-
|
|
127830
|
-
|
|
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
|
|
128066
|
+
if (child instanceof _this57.THREE.Mesh) {
|
|
127834
128067
|
child.geometry.dispose();
|
|
127835
128068
|
child.material.dispose();
|
|
127836
128069
|
}
|
|
127837
128070
|
});
|
|
127838
|
-
if (
|
|
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
|
|
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(
|
|
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
|
|
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 =
|
|
128288
|
-
if (
|
|
128521
|
+
loadingState = _this59.noObserver ? _this59.noObserver.batchLoadingState : _this59.batchLoadingState;
|
|
128522
|
+
if (_this59.isBatchLoadingSceneReady()) {
|
|
128289
128523
|
_context1.n = 1;
|
|
128290
128524
|
break;
|
|
128291
128525
|
}
|
|
128292
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 (
|
|
128575
|
+
if (_this59.isBatchLoadingSceneReady()) {
|
|
128342
128576
|
_context1.n = 8;
|
|
128343
128577
|
break;
|
|
128344
128578
|
}
|
|
128345
|
-
|
|
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
|
-
|
|
128354
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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(
|
|
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
|
|
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 =
|
|
128452
|
-
var meshBox3 = new
|
|
128685
|
+
var json = _this61.getMeshCenterAndVolume(child);
|
|
128686
|
+
var meshBox3 = new _this61.THREE.Box3();
|
|
128453
128687
|
meshBox3.setFromObject(child);
|
|
128454
|
-
var worldPs = new
|
|
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
|
|
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
|
|
128693
|
+
child.userData.oldPs = child.getWorldPosition(new _this61.THREE.Vector3());
|
|
128460
128694
|
child.userData.box = json.box;
|
|
128461
|
-
child.userData.position = new
|
|
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
|
|
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' &&
|
|
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
|
-
|
|
128864
|
+
_this62.forceSkipRendering = false;
|
|
128631
128865
|
|
|
128632
128866
|
// 恢复本地批量加载 (如果未完成)
|
|
128633
128867
|
if (loadingState.isLoading && loadingState.currentBatch < loadingState.totalBatches) {
|
|
128634
|
-
|
|
128868
|
+
_this62.loadNextBatch();
|
|
128635
128869
|
}
|
|
128636
128870
|
|
|
128637
128871
|
// 恢复 StreamLoader
|
|
128638
|
-
var 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
|
|
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
|
-
|
|
128933
|
+
_this63.$emit('wheelEnd', event);
|
|
128700
128934
|
loadingState.interactionState.wheelTimeout = null;
|
|
128701
|
-
if (
|
|
128702
|
-
|
|
128703
|
-
if (typeof
|
|
128704
|
-
|
|
128935
|
+
if (_this63.isCameraControlMoveObserverEnabled()) {
|
|
128936
|
+
_this63.resetCameraControlMoveSnapshot(false);
|
|
128937
|
+
if (typeof _this63._cameraChangeObserver === 'function') {
|
|
128938
|
+
_this63._cameraChangeObserver('wheel');
|
|
128705
128939
|
}
|
|
128706
128940
|
} else {
|
|
128707
|
-
|
|
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=
|
|
128823
|
-
var
|
|
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=
|
|
128826
|
-
var
|
|
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
|
-
|
|
129172
|
+
com_graphicsvue_type_template_id_3b9a926b_scoped_true_render,
|
|
128939
129173
|
staticRenderFns,
|
|
128940
129174
|
false,
|
|
128941
129175
|
null,
|
|
128942
|
-
"
|
|
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":"
|
|
128949
|
-
var
|
|
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
|
|
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=
|
|
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
|
-
|
|
135362
|
-
),
|
|
135363
|
-
|
|
135364
|
-
|
|
135365
|
-
|
|
135366
|
-
|
|
135367
|
-
|
|
135368
|
-
|
|
135369
|
-
|
|
135370
|
-
|
|
135371
|
-
|
|
135372
|
-
|
|
135373
|
-
|
|
135374
|
-
|
|
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
|
-
|
|
135630
|
-
|
|
135631
|
-
|
|
135632
|
-
|
|
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:
|
|
135641
|
-
customColor: _configParams ? _configParams.color :
|
|
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 <
|
|
135646
|
-
var _entity3 =
|
|
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
|
|
135852
|
-
if ((_group$
|
|
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=
|
|
136009
|
-
var
|
|
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
|
-
|
|
136023
|
-
|
|
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
|
-
"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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;
|