fl-web-component 2.1.1-beta.2 → 2.1.1-beta.4
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 +596 -467
- 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-graphics/index.vue +140 -11
- package/packages/utils/StreamLoaderParser.worker.js +20 -20
- package/src/utils/instance-parser.js +80 -75
|
@@ -202,6 +202,13 @@ module.exports =
|
|
|
202
202
|
/************************************************************************/
|
|
203
203
|
/******/ ({
|
|
204
204
|
|
|
205
|
+
/***/ "0125":
|
|
206
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
207
|
+
|
|
208
|
+
// extracted by mini-css-extract-plugin
|
|
209
|
+
|
|
210
|
+
/***/ }),
|
|
211
|
+
|
|
205
212
|
/***/ "03d6":
|
|
206
213
|
/***/ (function(module, exports, __webpack_require__) {
|
|
207
214
|
|
|
@@ -863,13 +870,6 @@ module.exports = !$assign || __webpack_require__("4b8b")(function () {
|
|
|
863
870
|
|
|
864
871
|
/***/ }),
|
|
865
872
|
|
|
866
|
-
/***/ "075a":
|
|
867
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
868
|
-
|
|
869
|
-
// extracted by mini-css-extract-plugin
|
|
870
|
-
|
|
871
|
-
/***/ }),
|
|
872
|
-
|
|
873
873
|
/***/ "0983":
|
|
874
874
|
/***/ (function(module, exports, __webpack_require__) {
|
|
875
875
|
|
|
@@ -1443,17 +1443,6 @@ module.exports = function (bitmap, value) {
|
|
|
1443
1443
|
};
|
|
1444
1444
|
};
|
|
1445
1445
|
|
|
1446
|
-
/***/ }),
|
|
1447
|
-
|
|
1448
|
-
/***/ "1160":
|
|
1449
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1450
|
-
|
|
1451
|
-
"use strict";
|
|
1452
|
-
/* 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_d40d4870_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7615");
|
|
1453
|
-
/* 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_d40d4870_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_d40d4870_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
|
|
1454
|
-
/* unused harmony reexport * */
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
1446
|
/***/ }),
|
|
1458
1447
|
|
|
1459
1448
|
/***/ "122f":
|
|
@@ -13539,6 +13528,17 @@ deepmerge.all = function deepmergeAll(array, optionsArgument) {
|
|
|
13539
13528
|
var deepmerge_1 = deepmerge;
|
|
13540
13529
|
module.exports = deepmerge_1;
|
|
13541
13530
|
|
|
13531
|
+
/***/ }),
|
|
13532
|
+
|
|
13533
|
+
/***/ "3e93":
|
|
13534
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
13535
|
+
|
|
13536
|
+
"use strict";
|
|
13537
|
+
/* 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_3517cf88_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0125");
|
|
13538
|
+
/* 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_3517cf88_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_3517cf88_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
13539
|
+
/* unused harmony reexport * */
|
|
13540
|
+
|
|
13541
|
+
|
|
13542
13542
|
/***/ }),
|
|
13543
13543
|
|
|
13544
13544
|
/***/ "3f6b":
|
|
@@ -19962,17 +19962,6 @@ _$export.U = 64; // safe
|
|
|
19962
19962
|
_$export.R = 128; // real proto method for `library`
|
|
19963
19963
|
module.exports = _$export;
|
|
19964
19964
|
|
|
19965
|
-
/***/ }),
|
|
19966
|
-
|
|
19967
|
-
/***/ "5144":
|
|
19968
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
19969
|
-
|
|
19970
|
-
"use strict";
|
|
19971
|
-
/* 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_d40d4870_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("075a");
|
|
19972
|
-
/* 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_d40d4870_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_d40d4870_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
19973
|
-
/* unused harmony reexport * */
|
|
19974
|
-
|
|
19975
|
-
|
|
19976
19965
|
/***/ }),
|
|
19977
19966
|
|
|
19978
19967
|
/***/ "5159":
|
|
@@ -41741,13 +41730,6 @@ function unzipSync(data, opts) {
|
|
|
41741
41730
|
|
|
41742
41731
|
/***/ }),
|
|
41743
41732
|
|
|
41744
|
-
/***/ "7615":
|
|
41745
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
41746
|
-
|
|
41747
|
-
// extracted by mini-css-extract-plugin
|
|
41748
|
-
|
|
41749
|
-
/***/ }),
|
|
41750
|
-
|
|
41751
41733
|
/***/ "769d":
|
|
41752
41734
|
/***/ (function(module, exports, __webpack_require__) {
|
|
41753
41735
|
|
|
@@ -43983,6 +43965,13 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
|
|
43983
43965
|
|
|
43984
43966
|
/***/ }),
|
|
43985
43967
|
|
|
43968
|
+
/***/ "89aa":
|
|
43969
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
43970
|
+
|
|
43971
|
+
// extracted by mini-css-extract-plugin
|
|
43972
|
+
|
|
43973
|
+
/***/ }),
|
|
43974
|
+
|
|
43986
43975
|
/***/ "89c1":
|
|
43987
43976
|
/***/ (function(module, exports, __webpack_require__) {
|
|
43988
43977
|
|
|
@@ -56518,7 +56507,7 @@ module.exports = document && document.documentElement;
|
|
|
56518
56507
|
/***/ "9224":
|
|
56519
56508
|
/***/ (function(module) {
|
|
56520
56509
|
|
|
56521
|
-
module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"2.1.1-beta.
|
|
56510
|
+
module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"2.1.1-beta.4\",\"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\"]}");
|
|
56522
56511
|
|
|
56523
56512
|
/***/ }),
|
|
56524
56513
|
|
|
@@ -73493,6 +73482,17 @@ $export($export.S + $export.F, 'Object', {
|
|
|
73493
73482
|
assign: __webpack_require__("072d")
|
|
73494
73483
|
});
|
|
73495
73484
|
|
|
73485
|
+
/***/ }),
|
|
73486
|
+
|
|
73487
|
+
/***/ "e54a":
|
|
73488
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
73489
|
+
|
|
73490
|
+
"use strict";
|
|
73491
|
+
/* 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_3517cf88_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("89aa");
|
|
73492
|
+
/* 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_3517cf88_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_3517cf88_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
|
|
73493
|
+
/* unused harmony reexport * */
|
|
73494
|
+
|
|
73495
|
+
|
|
73496
73496
|
/***/ }),
|
|
73497
73497
|
|
|
73498
73498
|
/***/ "e62d":
|
|
@@ -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":"51c07cb2-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=3517cf88&scoped=true
|
|
78638
|
+
var com_graphicsvue_type_template_id_3517cf88_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_d40d4870_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=3517cf88&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)); }
|
|
@@ -111647,8 +111647,8 @@ function composeInstanceMatrix(instance, mesh, geometry) {
|
|
|
111647
111647
|
return resultMatrix;
|
|
111648
111648
|
}
|
|
111649
111649
|
|
|
111650
|
-
/**
|
|
111651
|
-
* 重置处理状态,用于新的批量加载会话
|
|
111650
|
+
/**
|
|
111651
|
+
* 重置处理状态,用于新的批量加载会话
|
|
111652
111652
|
*/
|
|
111653
111653
|
function resetProcessingState() {
|
|
111654
111654
|
drawObjMapInstance = {};
|
|
@@ -112489,9 +112489,14 @@ function draw2Dmodel(geom, instanceName, instanceCount, nColor, nOpacity) {
|
|
|
112489
112489
|
color = _geom$prop2.color,
|
|
112490
112490
|
linewidth = _geom$prop2.linewidth;
|
|
112491
112491
|
var formatLinewidth = (linewidth < 1 ? linewidth * 50 : linewidth) || 5;
|
|
112492
|
+
var meshLineResolution = options.meshLineResolution || {};
|
|
112493
|
+
var resolutionWidth = meshLineResolution.width || window.innerWidth || 1;
|
|
112494
|
+
var resolutionHeight = meshLineResolution.height || window.innerHeight || 1;
|
|
112492
112495
|
var material = new dist_MeshLineMaterial({
|
|
112493
112496
|
color: new Color("rgb(".concat(color[0], ", ").concat(color[1], ", ").concat(color[2], ")")),
|
|
112494
|
-
lineWidth: formatLinewidth
|
|
112497
|
+
lineWidth: formatLinewidth,
|
|
112498
|
+
resolution: new Vector2(resolutionWidth, resolutionHeight),
|
|
112499
|
+
sizeAttenuation: 0
|
|
112495
112500
|
});
|
|
112496
112501
|
var lineGeometry = new dist_MeshLineGeometry();
|
|
112497
112502
|
lineGeometry.setPoints(geometry);
|
|
@@ -121487,7 +121492,7 @@ var LOG_INTERVAL = 30;
|
|
|
121487
121492
|
|
|
121488
121493
|
var isDebug = false || false === true;
|
|
121489
121494
|
// const isDebug = false;
|
|
121490
|
-
var COLLISION_PENETRATION_EPSILON =
|
|
121495
|
+
var COLLISION_PENETRATION_EPSILON = 1;
|
|
121491
121496
|
var COLLISION_OBB_AXIS_EPSILON = 1e-8;
|
|
121492
121497
|
var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
121493
121498
|
/* harmony default export */ var com_graphicsvue_type_script_lang_js = ({
|
|
@@ -121536,7 +121541,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
121536
121541
|
isPaused: false
|
|
121537
121542
|
},
|
|
121538
121543
|
isolateMode: false,
|
|
121539
|
-
collisionObbDebugEnabled: isDebug
|
|
121544
|
+
// collisionObbDebugEnabled: isDebug,
|
|
121545
|
+
collisionObbDebugEnabled: false
|
|
121540
121546
|
};
|
|
121541
121547
|
},
|
|
121542
121548
|
watch: {
|
|
@@ -123065,6 +123071,45 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123065
123071
|
box: box
|
|
123066
123072
|
});
|
|
123067
123073
|
},
|
|
123074
|
+
_buildCollisionOctreeFromEntries: function _buildCollisionOctreeFromEntries(entries) {
|
|
123075
|
+
var _this10 = this;
|
|
123076
|
+
if (!Array.isArray(entries) || entries.length === 0) {
|
|
123077
|
+
return null;
|
|
123078
|
+
}
|
|
123079
|
+
var minX = Infinity;
|
|
123080
|
+
var minY = Infinity;
|
|
123081
|
+
var minZ = Infinity;
|
|
123082
|
+
var maxX = -Infinity;
|
|
123083
|
+
var maxY = -Infinity;
|
|
123084
|
+
var maxZ = -Infinity;
|
|
123085
|
+
entries.forEach(function (item) {
|
|
123086
|
+
var box = item && item.box;
|
|
123087
|
+
if (!box || !box.isBox3) return;
|
|
123088
|
+
var mn = box.min;
|
|
123089
|
+
var mx = box.max;
|
|
123090
|
+
if (mn.x < minX) minX = mn.x;
|
|
123091
|
+
if (mn.y < minY) minY = mn.y;
|
|
123092
|
+
if (mn.z < minZ) minZ = mn.z;
|
|
123093
|
+
if (mx.x > maxX) maxX = mx.x;
|
|
123094
|
+
if (mx.y > maxY) maxY = mx.y;
|
|
123095
|
+
if (mx.z > maxZ) maxZ = mx.z;
|
|
123096
|
+
});
|
|
123097
|
+
if (minX === Infinity) {
|
|
123098
|
+
return null;
|
|
123099
|
+
}
|
|
123100
|
+
var rootBox = new this.THREE.Box3(new this.THREE.Vector3(minX, minY, minZ), new this.THREE.Vector3(maxX, maxY, maxZ));
|
|
123101
|
+
var root = {
|
|
123102
|
+
box: rootBox,
|
|
123103
|
+
items: [],
|
|
123104
|
+
children: null,
|
|
123105
|
+
depth: 0
|
|
123106
|
+
};
|
|
123107
|
+
entries.forEach(function (item) {
|
|
123108
|
+
if (!item || !item.box) return;
|
|
123109
|
+
_this10._octreeInsert(root, String(item.id), item.box);
|
|
123110
|
+
});
|
|
123111
|
+
return root;
|
|
123112
|
+
},
|
|
123068
123113
|
_isCollisionBoxAvailable: function _isCollisionBoxAvailable(box) {
|
|
123069
123114
|
if (!box || !box.isBox3 || box.isEmpty()) return false;
|
|
123070
123115
|
if (box.userData && box.userData.visible === false) return false;
|
|
@@ -123189,7 +123234,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123189
123234
|
return pairMap;
|
|
123190
123235
|
},
|
|
123191
123236
|
refreshCollisionObbDebug: function refreshCollisionObbDebug() {
|
|
123192
|
-
var
|
|
123237
|
+
var _this11 = this;
|
|
123193
123238
|
if (!this.collisionObbDebugEnabled) return;
|
|
123194
123239
|
var group = this._getCollisionDebugGroup();
|
|
123195
123240
|
if (!group) return;
|
|
@@ -123197,14 +123242,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123197
123242
|
var pairMap = this._buildCollisionPairMap();
|
|
123198
123243
|
if (pairMap.size === 0) return;
|
|
123199
123244
|
pairMap.forEach(function (relatedIds, modelId) {
|
|
123200
|
-
var box =
|
|
123201
|
-
if (!
|
|
123202
|
-
var obbs =
|
|
123245
|
+
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;
|
|
123246
|
+
if (!_this11._isCollisionBoxAvailable(box)) return;
|
|
123247
|
+
var obbs = _this11._getCollisionObbs(box);
|
|
123203
123248
|
if (!obbs.length) return;
|
|
123204
123249
|
var isColliding = relatedIds && relatedIds.size > 0;
|
|
123205
123250
|
var color = isColliding ? 0xff3b30 : 0x36cfc9;
|
|
123206
123251
|
for (var i = 0; i < obbs.length; i++) {
|
|
123207
|
-
var lineSegments =
|
|
123252
|
+
var lineSegments = _this11._createCollisionObbLineSegments(obbs[i], color);
|
|
123208
123253
|
if (!lineSegments) continue;
|
|
123209
123254
|
lineSegments.name = "".concat(COLLISION_DEBUG_GROUP_NAME, ":").concat(modelId, ":").concat(i);
|
|
123210
123255
|
lineSegments.userData.modelId = modelId;
|
|
@@ -123240,7 +123285,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123240
123285
|
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]));
|
|
123241
123286
|
},
|
|
123242
123287
|
_getObbMinPenetration: function _getObbMinPenetration(obbA, obbB) {
|
|
123243
|
-
var
|
|
123288
|
+
var _this12 = this;
|
|
123244
123289
|
var axisInfoA = this._getObbAxisInfo(obbA);
|
|
123245
123290
|
var axisInfoB = this._getObbAxisInfo(obbB);
|
|
123246
123291
|
var centerDelta = new this.THREE.Vector3().subVectors(axisInfoB.center, axisInfoA.center);
|
|
@@ -123250,7 +123295,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123250
123295
|
if (lengthSq <= COLLISION_OBB_AXIS_EPSILON) return true;
|
|
123251
123296
|
var normalizedAxis = axis.clone().multiplyScalar(1 / Math.sqrt(lengthSq));
|
|
123252
123297
|
var projectionDistance = Math.abs(centerDelta.dot(normalizedAxis));
|
|
123253
|
-
var penetration =
|
|
123298
|
+
var penetration = _this12._getObbProjectionRadius(axisInfoA, normalizedAxis) + _this12._getObbProjectionRadius(axisInfoB, normalizedAxis) - projectionDistance;
|
|
123254
123299
|
if (penetration <= 0) {
|
|
123255
123300
|
minPenetration = penetration;
|
|
123256
123301
|
return false;
|
|
@@ -123288,9 +123333,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123288
123333
|
}
|
|
123289
123334
|
return false;
|
|
123290
123335
|
},
|
|
123291
|
-
|
|
123336
|
+
_queryOctreeByBoxWithRoot: function _queryOctreeByBoxWithRoot(root, box) {
|
|
123292
123337
|
var results = [];
|
|
123293
|
-
var root = this._octree;
|
|
123294
123338
|
if (!root || !this._isCollisionBoxAvailable(box)) return results;
|
|
123295
123339
|
var stack = [root];
|
|
123296
123340
|
while (stack.length) {
|
|
@@ -123312,29 +123356,95 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123312
123356
|
}
|
|
123313
123357
|
return results;
|
|
123314
123358
|
},
|
|
123359
|
+
_queryOctreeByBox: function _queryOctreeByBox(box) {
|
|
123360
|
+
return this._queryOctreeByBoxWithRoot(this._octree, box);
|
|
123361
|
+
},
|
|
123315
123362
|
getOctreeCollisionPairs: function getOctreeCollisionPairs() {
|
|
123316
|
-
var
|
|
123363
|
+
var _this13 = this;
|
|
123364
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
123317
123365
|
var pairs = [];
|
|
123318
123366
|
if (!this._boxIndex || this._boxIndex.size === 0) return {
|
|
123319
123367
|
pairs: pairs
|
|
123320
123368
|
};
|
|
123321
|
-
|
|
123322
|
-
|
|
123323
|
-
|
|
123324
|
-
|
|
123325
|
-
|
|
123369
|
+
var normalizeIds = function normalizeIds(value) {
|
|
123370
|
+
return Array.isArray(value) ? Array.from(new Set(value.map(function (item) {
|
|
123371
|
+
return item === null || item === undefined ? '' : String(item);
|
|
123372
|
+
}).filter(function (item) {
|
|
123373
|
+
return item !== '';
|
|
123374
|
+
}))) : [];
|
|
123326
123375
|
};
|
|
123327
|
-
|
|
123328
|
-
|
|
123329
|
-
var
|
|
123376
|
+
var getEntriesByIds = function getEntriesByIds(ids) {
|
|
123377
|
+
var entries = [];
|
|
123378
|
+
var idSet = new Set(ids);
|
|
123379
|
+
_this13._boxIndex.forEach(function (box, id) {
|
|
123380
|
+
var key = String(id);
|
|
123381
|
+
if (idSet.has(key)) {
|
|
123382
|
+
entries.push({
|
|
123383
|
+
id: key,
|
|
123384
|
+
box: box
|
|
123385
|
+
});
|
|
123386
|
+
}
|
|
123387
|
+
});
|
|
123388
|
+
return entries;
|
|
123389
|
+
};
|
|
123390
|
+
var sourceIds = normalizeIds(options.sourceIds);
|
|
123391
|
+
var targetIds = normalizeIds(options.targetIds);
|
|
123392
|
+
var includeIds = Array.isArray(options.includeIds) ? normalizeIds(options.includeIds) : [];
|
|
123393
|
+
var root = this._octree;
|
|
123394
|
+
var sourceEntries = [];
|
|
123395
|
+
var dedupePairKeySet = null;
|
|
123396
|
+
if (sourceIds.length > 0 && targetIds.length > 0) {
|
|
123397
|
+
var targetEntries = getEntriesByIds(targetIds);
|
|
123398
|
+
sourceEntries = getEntriesByIds(sourceIds);
|
|
123399
|
+
if (sourceEntries.length === 0 || targetEntries.length === 0) return {
|
|
123400
|
+
pairs: pairs
|
|
123401
|
+
};
|
|
123402
|
+
root = this._buildCollisionOctreeFromEntries(targetEntries);
|
|
123403
|
+
if (!root) return {
|
|
123404
|
+
pairs: pairs
|
|
123405
|
+
};
|
|
123406
|
+
dedupePairKeySet = new Set();
|
|
123407
|
+
} else if (includeIds.length > 0) {
|
|
123408
|
+
sourceEntries = getEntriesByIds(includeIds);
|
|
123409
|
+
if (sourceEntries.length === 0) return {
|
|
123410
|
+
pairs: pairs
|
|
123411
|
+
};
|
|
123412
|
+
root = this._buildCollisionOctreeFromEntries(sourceEntries);
|
|
123413
|
+
if (!root) return {
|
|
123414
|
+
pairs: pairs
|
|
123415
|
+
};
|
|
123416
|
+
} else {
|
|
123417
|
+
if (!this._octree) {
|
|
123418
|
+
this.buildOctreeFromBoxIndex();
|
|
123419
|
+
}
|
|
123420
|
+
if (!this._octree) return {
|
|
123421
|
+
pairs: pairs
|
|
123422
|
+
};
|
|
123423
|
+
this._boxIndex.forEach(function (box, id) {
|
|
123424
|
+
sourceEntries.push({
|
|
123425
|
+
id: String(id),
|
|
123426
|
+
box: box
|
|
123427
|
+
});
|
|
123428
|
+
});
|
|
123429
|
+
}
|
|
123430
|
+
sourceEntries.forEach(function (_ref) {
|
|
123431
|
+
var idA = _ref.id,
|
|
123432
|
+
boxA = _ref.box;
|
|
123433
|
+
if (!_this13._isCollisionBoxAvailable(boxA)) return;
|
|
123434
|
+
var hits = _this13._queryOctreeByBoxWithRoot(root, boxA);
|
|
123330
123435
|
for (var i = 0; i < hits.length; i++) {
|
|
123331
123436
|
var item = hits[i];
|
|
123332
123437
|
if (!item || String(item.id) === String(idA)) continue;
|
|
123333
123438
|
var boxB = item.box;
|
|
123334
|
-
if (!
|
|
123439
|
+
if (!_this13._isCollisionBoxMatched(boxA, boxB)) continue;
|
|
123440
|
+
if (dedupePairKeySet) {
|
|
123441
|
+
var pairKey = "".concat(String(idA), "__").concat(String(item.id));
|
|
123442
|
+
if (dedupePairKeySet.has(pairKey)) continue;
|
|
123443
|
+
dedupePairKeySet.add(pairKey);
|
|
123444
|
+
}
|
|
123335
123445
|
pairs.push({
|
|
123336
|
-
idA:
|
|
123337
|
-
idB:
|
|
123446
|
+
idA: _this13._formatCollisionPairId(idA),
|
|
123447
|
+
idB: _this13._formatCollisionPairId(item.id)
|
|
123338
123448
|
});
|
|
123339
123449
|
}
|
|
123340
123450
|
});
|
|
@@ -123471,7 +123581,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123471
123581
|
* @returns {Object|null} { planeBox: THREE.Box3|null, frustumBox: THREE.Box3, frustumY: {min, max} } 或 null(当没有平面交点且未请求 frustumY)
|
|
123472
123582
|
*/
|
|
123473
123583
|
getScreenPlaneBounds: function getScreenPlaneBounds(camera, width, height, plane) {
|
|
123474
|
-
var
|
|
123584
|
+
var _this14 = this;
|
|
123475
123585
|
var opts = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
123476
123586
|
var _opts$includeFrustumY = opts.includeFrustumY,
|
|
123477
123587
|
includeFrustumY = _opts$includeFrustumY === void 0 ? false : _opts$includeFrustumY;
|
|
@@ -123516,7 +123626,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123516
123626
|
var volumeCorners = nearCorners.concat(farCorners);
|
|
123517
123627
|
var projectedPoints = volumeCorners.map(function (p) {
|
|
123518
123628
|
var yProj = -(a * p.x + c * p.z + d) / b;
|
|
123519
|
-
return new
|
|
123629
|
+
return new _this14.THREE.Vector3(p.x, yProj, p.z);
|
|
123520
123630
|
});
|
|
123521
123631
|
planeBox = new this.THREE.Box3().setFromPoints(projectedPoints);
|
|
123522
123632
|
}
|
|
@@ -123746,14 +123856,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123746
123856
|
* 执行视椎体裁切,清理视椎体外的InstancedMesh实例
|
|
123747
123857
|
*/
|
|
123748
123858
|
performFrustumCulling: function performFrustumCulling() {
|
|
123749
|
-
var
|
|
123859
|
+
var _this15 = this;
|
|
123750
123860
|
return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee3() {
|
|
123751
123861
|
var 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;
|
|
123752
123862
|
return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context3) {
|
|
123753
123863
|
while (1) switch (_context3.p = _context3.n) {
|
|
123754
123864
|
case 0:
|
|
123755
|
-
modelState =
|
|
123756
|
-
if (!(!
|
|
123865
|
+
modelState = _this15.noObserver ? _this15.noObserver.modelStateManager : _this15.modelStateManager;
|
|
123866
|
+
if (!(!_this15.modelStateManager.frustumCheckEnabled || !_this15.scene)) {
|
|
123757
123867
|
_context3.n = 1;
|
|
123758
123868
|
break;
|
|
123759
123869
|
}
|
|
@@ -123769,10 +123879,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123769
123879
|
modelState.lastCullingTime = now;
|
|
123770
123880
|
|
|
123771
123881
|
// 预先创建视椎体,供后续遍历复用
|
|
123772
|
-
if (!
|
|
123773
|
-
if (!
|
|
123774
|
-
globalFrustum =
|
|
123775
|
-
globalVpMatrix =
|
|
123882
|
+
if (!_this15._frustum) _this15._frustum = new _this15.THREE.Frustum();
|
|
123883
|
+
if (!_this15._vpMatrix) _this15._vpMatrix = new _this15.THREE.Matrix4();
|
|
123884
|
+
globalFrustum = _this15._frustum;
|
|
123885
|
+
globalVpMatrix = _this15._vpMatrix.multiplyMatrices(_this15.camera.projectionMatrix, _this15.camera.matrixWorldInverse);
|
|
123776
123886
|
globalFrustum.setFromProjectionMatrix(globalVpMatrix);
|
|
123777
123887
|
|
|
123778
123888
|
// 使用局部变量收集 ID,最后一次性赋值
|
|
@@ -123786,13 +123896,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123786
123896
|
});
|
|
123787
123897
|
}
|
|
123788
123898
|
visibleIdSet = new Set(visibleIds);
|
|
123789
|
-
if (!
|
|
123899
|
+
if (!_this15._octree) {
|
|
123790
123900
|
_context3.n = 8;
|
|
123791
123901
|
break;
|
|
123792
123902
|
}
|
|
123793
|
-
frustum =
|
|
123903
|
+
frustum = _this15._getCurrentFrustum();
|
|
123794
123904
|
exclude = bypassList || new Set();
|
|
123795
|
-
hits =
|
|
123905
|
+
hits = _this15.queryOctreeByFrustum(frustum, exclude);
|
|
123796
123906
|
i = 0;
|
|
123797
123907
|
case 3:
|
|
123798
123908
|
if (!(i < hits.length)) {
|
|
@@ -123805,11 +123915,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123805
123915
|
}
|
|
123806
123916
|
return _context3.a(3, 6);
|
|
123807
123917
|
case 4:
|
|
123808
|
-
if (
|
|
123918
|
+
if (_this15.shouldApplyOcclusionByBox(hits[i].box)) {
|
|
123809
123919
|
_context3.n = 5;
|
|
123810
123920
|
break;
|
|
123811
123921
|
}
|
|
123812
|
-
visibleIdSet.add(
|
|
123922
|
+
visibleIdSet.add(_this15.formatModelId(hits[i].modelId));
|
|
123813
123923
|
return _context3.a(3, 6);
|
|
123814
123924
|
case 5:
|
|
123815
123925
|
candidates.push(hits[i]);
|
|
@@ -123821,13 +123931,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123821
123931
|
_context3.n = 9;
|
|
123822
123932
|
break;
|
|
123823
123933
|
case 8:
|
|
123824
|
-
if (
|
|
123825
|
-
|
|
123934
|
+
if (_this15._boxIndex && _this15._boxIndex.size > 0) {
|
|
123935
|
+
_this15._boxIndex.forEach(function (box, modelId) {
|
|
123826
123936
|
if (bypassList && bypassList.size > 0 && bypassList.has(modelId)) return;
|
|
123827
123937
|
if (box.userData && box.userData.visible === false) return;
|
|
123828
|
-
if (
|
|
123829
|
-
if (!
|
|
123830
|
-
visibleIdSet.add(
|
|
123938
|
+
if (_this15.isBoxInFrustum(box)) {
|
|
123939
|
+
if (!_this15.shouldApplyOcclusionByBox(box)) {
|
|
123940
|
+
visibleIdSet.add(_this15.formatModelId(modelId));
|
|
123831
123941
|
return;
|
|
123832
123942
|
}
|
|
123833
123943
|
candidates.push({
|
|
@@ -123838,18 +123948,18 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123838
123948
|
});
|
|
123839
123949
|
}
|
|
123840
123950
|
case 9:
|
|
123841
|
-
occlusionState =
|
|
123842
|
-
occlusionEnabled =
|
|
123951
|
+
occlusionState = _this15.noObserver ? _this15.noObserver.occlusionState : _this15.occlusionState; // 从响应式对象获取开关状态
|
|
123952
|
+
occlusionEnabled = _this15.occlusionState && _this15.occlusionState.enabled;
|
|
123843
123953
|
if (!occlusionEnabled) {
|
|
123844
123954
|
_context3.n = 16;
|
|
123845
123955
|
break;
|
|
123846
123956
|
}
|
|
123847
123957
|
state = occlusionState;
|
|
123848
|
-
w =
|
|
123849
|
-
h =
|
|
123958
|
+
w = _this15.renderer && _this15.renderer.domElement ? _this15.renderer.domElement.clientWidth || _this15.renderer.domElement.width || 0 : 0;
|
|
123959
|
+
h = _this15.renderer && _this15.renderer.domElement ? _this15.renderer.domElement.clientHeight || _this15.renderer.domElement.height || 0 : 0; // bufferWidth/Height 仍从响应式对象读取以支持动态修改
|
|
123850
123960
|
// 性能优化:使用降采样缓冲区进行遮挡剔除,大幅减少 readPixels 耗时 (从全屏降至约 256px 宽)
|
|
123851
123961
|
aspectRatio = h > 0 ? w / h : 1;
|
|
123852
|
-
sw =
|
|
123962
|
+
sw = _this15.occlusionState.bufferWidth || 256;
|
|
123853
123963
|
sh = Math.floor(sw / aspectRatio);
|
|
123854
123964
|
sw = Math.max(1, sw);
|
|
123855
123965
|
sh = Math.max(1, sh);
|
|
@@ -123858,16 +123968,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123858
123968
|
_context3.p = 10;
|
|
123859
123969
|
if (!rt || state._rtW !== sw || state._rtH !== sh) {
|
|
123860
123970
|
if (rt && typeof rt.dispose === 'function') rt.dispose();
|
|
123861
|
-
rt = new
|
|
123971
|
+
rt = new _this15.THREE.WebGLRenderTarget(sw, sh, {
|
|
123862
123972
|
depthBuffer: true,
|
|
123863
123973
|
stencilBuffer: false,
|
|
123864
123974
|
samples: 0
|
|
123865
123975
|
});
|
|
123866
|
-
rt.texture.minFilter =
|
|
123867
|
-
rt.texture.magFilter =
|
|
123976
|
+
rt.texture.minFilter = _this15.THREE.NearestFilter;
|
|
123977
|
+
rt.texture.magFilter = _this15.THREE.NearestFilter;
|
|
123868
123978
|
rt.texture.generateMipmaps = false;
|
|
123869
|
-
rt.texture.type =
|
|
123870
|
-
rt.texture.format =
|
|
123979
|
+
rt.texture.type = _this15.THREE.UnsignedByteType;
|
|
123980
|
+
rt.texture.format = _this15.THREE.RGBAFormat;
|
|
123871
123981
|
rt.samples = 0;
|
|
123872
123982
|
state._colorRT = rt;
|
|
123873
123983
|
state._rtW = sw;
|
|
@@ -123876,7 +123986,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123876
123986
|
} else if (!state._colorBuffer || state._colorBuffer.length !== sw * sh * 4) {
|
|
123877
123987
|
state._colorBuffer = new Uint8Array(sw * sh * 4);
|
|
123878
123988
|
}
|
|
123879
|
-
if (!state._occScene) state._occScene = new
|
|
123989
|
+
if (!state._occScene) state._occScene = new _this15.THREE.Scene();
|
|
123880
123990
|
// if (!state._occPerfStats) state._occPerfStats = Object.create(null);
|
|
123881
123991
|
// const _occRecordPerf = (name, ms, meta) => {
|
|
123882
123992
|
// const this.stats = state._occPerfStats;
|
|
@@ -123925,7 +124035,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123925
124035
|
// child.parent = null;
|
|
123926
124036
|
// // child.dispatchEvent({ type: 'removed' }); // 保持轻量,暂不触发事件
|
|
123927
124037
|
// }
|
|
123928
|
-
asyncBuildEnabled =
|
|
124038
|
+
asyncBuildEnabled = _this15.occlusionState && _this15.occlusionState.asyncBuildEnabled && !!window.requestAnimationFrame;
|
|
123929
124039
|
_occBuild = function _occBuild(opaqueList) {
|
|
123930
124040
|
var tBuild0 = performance.now();
|
|
123931
124041
|
var flag1Items = [];
|
|
@@ -123936,7 +124046,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123936
124046
|
var obbData = c.box && c.box.userData ? c.box.userData.obbData : null;
|
|
123937
124047
|
if (!obbData || !obbData.length) continue;
|
|
123938
124048
|
var idx = globalIdx++;
|
|
123939
|
-
activeIdIndexArr[idx] =
|
|
124049
|
+
activeIdIndexArr[idx] = _this15.formatModelId(c.modelId);
|
|
123940
124050
|
var flag = c.box.userData && c.box.userData.flag || 1;
|
|
123941
124051
|
if (flag === 3 && c.box.userData && c.box.userData.obb) {
|
|
123942
124052
|
flag3Items.push({
|
|
@@ -123952,11 +124062,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123952
124062
|
}
|
|
123953
124063
|
var maxIdx = globalIdx - 1;
|
|
123954
124064
|
activeIdIndexArr.length = maxIdx + 1;
|
|
123955
|
-
var _tempMatrix = occObjs._tempMatrix || (occObjs._tempMatrix = new
|
|
123956
|
-
var _tempColor = occObjs._tempColor || (occObjs._tempColor = new
|
|
123957
|
-
var _tempScale = occObjs._tempScale || (occObjs._tempScale = new
|
|
123958
|
-
var _tempVec3 = occObjs._tempVec3 || (occObjs._tempVec3 = new
|
|
123959
|
-
var _tempMatA = occObjs._tempMatA || (occObjs._tempMatA = new
|
|
124065
|
+
var _tempMatrix = occObjs._tempMatrix || (occObjs._tempMatrix = new _this15.THREE.Matrix4());
|
|
124066
|
+
var _tempColor = occObjs._tempColor || (occObjs._tempColor = new _this15.THREE.Color());
|
|
124067
|
+
var _tempScale = occObjs._tempScale || (occObjs._tempScale = new _this15.THREE.Vector3());
|
|
124068
|
+
var _tempVec3 = occObjs._tempVec3 || (occObjs._tempVec3 = new _this15.THREE.Vector3());
|
|
124069
|
+
var _tempMatA = occObjs._tempMatA || (occObjs._tempMatA = new _this15.THREE.Matrix4());
|
|
123960
124070
|
var boxes = occObjs.boxes;
|
|
123961
124071
|
var boxCount = flag3Items.length;
|
|
123962
124072
|
if (boxCount > 0) {
|
|
@@ -123969,16 +124079,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
123969
124079
|
if (boxes.mesh.material) boxes.mesh.material.dispose();
|
|
123970
124080
|
}
|
|
123971
124081
|
var nextCap = Math.max(needCapacity, capacity > 0 ? capacity * 2 : 256);
|
|
123972
|
-
var geometry = new
|
|
123973
|
-
var mat = new
|
|
124082
|
+
var geometry = new _this15.THREE.BoxGeometry(1, 1, 1);
|
|
124083
|
+
var mat = new _this15.THREE.MeshBasicMaterial({
|
|
123974
124084
|
color: 0xffffff,
|
|
123975
|
-
side:
|
|
123976
|
-
blending:
|
|
124085
|
+
side: _this15.THREE.DoubleSide,
|
|
124086
|
+
blending: _this15.THREE.NoBlending,
|
|
123977
124087
|
depthTest: true,
|
|
123978
124088
|
depthWrite: true,
|
|
123979
124089
|
toneMapped: false
|
|
123980
124090
|
});
|
|
123981
|
-
var mesh = new
|
|
124091
|
+
var mesh = new _this15.THREE.InstancedMesh(geometry, mat, nextCap);
|
|
123982
124092
|
mesh.frustumCulled = false;
|
|
123983
124093
|
mesh.matrixAutoUpdate = false;
|
|
123984
124094
|
state._occScene.add(mesh);
|
|
@@ -124003,8 +124113,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124003
124113
|
_tempScale.copy(halfSize).multiplyScalar(2);
|
|
124004
124114
|
_tempMatrix.copy(matrix);
|
|
124005
124115
|
_tempMatrix.scale(_tempScale);
|
|
124006
|
-
if (typeof
|
|
124007
|
-
_tempMatrix.premultiply(
|
|
124116
|
+
if (typeof _this15.bizToThreeMatrix !== 'undefined' && _this15.bizToThreeMatrix) {
|
|
124117
|
+
_tempMatrix.premultiply(_this15.bizToThreeMatrix);
|
|
124008
124118
|
}
|
|
124009
124119
|
boxes.mesh.setMatrixAt(_i7, _tempMatrix);
|
|
124010
124120
|
boxes.mesh.setColorAt(_i7, _tempColor);
|
|
@@ -124033,16 +124143,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124033
124143
|
var needIdx = totalIdx;
|
|
124034
124144
|
var ensureBatch1 = function ensureBatch1() {
|
|
124035
124145
|
if (batch1 && batch1.mesh && batch1.geometry && batch1.material) return;
|
|
124036
|
-
var geometry = new
|
|
124037
|
-
var material = new
|
|
124146
|
+
var geometry = new _this15.THREE.BufferGeometry();
|
|
124147
|
+
var material = new _this15.THREE.MeshBasicMaterial({
|
|
124038
124148
|
vertexColors: true,
|
|
124039
|
-
side:
|
|
124040
|
-
blending:
|
|
124149
|
+
side: _this15.THREE.DoubleSide,
|
|
124150
|
+
blending: _this15.THREE.NoBlending,
|
|
124041
124151
|
depthTest: true,
|
|
124042
124152
|
depthWrite: true,
|
|
124043
124153
|
toneMapped: false
|
|
124044
124154
|
});
|
|
124045
|
-
var mesh = new
|
|
124155
|
+
var mesh = new _this15.THREE.Mesh(geometry, material);
|
|
124046
124156
|
mesh.frustumCulled = false;
|
|
124047
124157
|
batch1 = occObjs.batch1 = {
|
|
124048
124158
|
mesh: mesh,
|
|
@@ -124066,14 +124176,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124066
124176
|
batch1.positions = _positions;
|
|
124067
124177
|
batch1.colors = _colors;
|
|
124068
124178
|
batch1.indices = _indices2;
|
|
124069
|
-
var _posAttr = new
|
|
124070
|
-
var _colAttr = new
|
|
124071
|
-
_posAttr.setUsage(
|
|
124072
|
-
_colAttr.setUsage(
|
|
124179
|
+
var _posAttr = new _this15.THREE.BufferAttribute(_positions, 3);
|
|
124180
|
+
var _colAttr = new _this15.THREE.BufferAttribute(_colors, 3);
|
|
124181
|
+
_posAttr.setUsage(_this15.THREE.DynamicDrawUsage);
|
|
124182
|
+
_colAttr.setUsage(_this15.THREE.DynamicDrawUsage);
|
|
124073
124183
|
batch1.geometry.setAttribute('position', _posAttr);
|
|
124074
124184
|
batch1.geometry.setAttribute('color', _colAttr);
|
|
124075
|
-
var _idxAttr = new
|
|
124076
|
-
_idxAttr.setUsage(
|
|
124185
|
+
var _idxAttr = new _this15.THREE.BufferAttribute(_indices2, 1);
|
|
124186
|
+
_idxAttr.setUsage(_this15.THREE.DynamicDrawUsage);
|
|
124077
124187
|
batch1.geometry.setIndex(_idxAttr);
|
|
124078
124188
|
}
|
|
124079
124189
|
var positions = batch1.positions;
|
|
@@ -124093,15 +124203,15 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124093
124203
|
var _g = (_idx2 >> 8 & 255) / 255;
|
|
124094
124204
|
var _b = (_idx2 >> 16 & 255) / 255;
|
|
124095
124205
|
var vertexCount = _obbData2.length / 3 | 0;
|
|
124096
|
-
var needTransform = matrixArr && matrixArr.length >= 16 || typeof
|
|
124206
|
+
var needTransform = matrixArr && matrixArr.length >= 16 || typeof _this15.bizToThreeMatrix !== 'undefined' && _this15.bizToThreeMatrix;
|
|
124097
124207
|
if (needTransform) {
|
|
124098
124208
|
if (matrixArr && matrixArr.length >= 16) {
|
|
124099
124209
|
_tempMatA.fromArray(matrixArr);
|
|
124100
124210
|
} else {
|
|
124101
124211
|
_tempMatA.identity();
|
|
124102
124212
|
}
|
|
124103
|
-
if (typeof
|
|
124104
|
-
_tempMatA.premultiply(
|
|
124213
|
+
if (typeof _this15.bizToThreeMatrix !== 'undefined' && _this15.bizToThreeMatrix) {
|
|
124214
|
+
_tempMatA.premultiply(_this15.bizToThreeMatrix);
|
|
124105
124215
|
}
|
|
124106
124216
|
}
|
|
124107
124217
|
if (!needTransform && ArrayBuffer.isView(_obbData2)) {
|
|
@@ -124201,7 +124311,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124201
124311
|
state._occMaxIdx = 0;
|
|
124202
124312
|
activeIdIndexArr.length = 0;
|
|
124203
124313
|
}
|
|
124204
|
-
if (!state._occTransparentScene) state._occTransparentScene = new
|
|
124314
|
+
if (!state._occTransparentScene) state._occTransparentScene = new _this15.THREE.Scene();
|
|
124205
124315
|
transparentMesh = state._occTransparentMesh;
|
|
124206
124316
|
transparentCapacity = transparentMesh && transparentMesh.userData && typeof transparentMesh.userData.capacity === 'number' ? transparentMesh.userData.capacity : 0;
|
|
124207
124317
|
if (!transparentMesh || transparentCapacity < transparentTotal) {
|
|
@@ -124211,16 +124321,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124211
124321
|
state._occTransparentScene.remove(transparentMesh);
|
|
124212
124322
|
}
|
|
124213
124323
|
nextCap = Math.max(transparentTotal, transparentCapacity > 0 ? transparentCapacity * 2 : 256);
|
|
124214
|
-
geometry = new
|
|
124215
|
-
material = new
|
|
124324
|
+
geometry = new _this15.THREE.BoxGeometry(1, 1, 1);
|
|
124325
|
+
material = new _this15.THREE.MeshBasicMaterial({
|
|
124216
124326
|
color: 0xffffff,
|
|
124217
|
-
side:
|
|
124218
|
-
blending:
|
|
124327
|
+
side: _this15.THREE.DoubleSide,
|
|
124328
|
+
blending: _this15.THREE.NoBlending,
|
|
124219
124329
|
depthTest: true,
|
|
124220
124330
|
depthWrite: false,
|
|
124221
124331
|
toneMapped: false
|
|
124222
124332
|
});
|
|
124223
|
-
transparentMesh = new
|
|
124333
|
+
transparentMesh = new _this15.THREE.InstancedMesh(geometry, material, nextCap);
|
|
124224
124334
|
transparentMesh.frustumCulled = false;
|
|
124225
124335
|
transparentMesh.matrixAutoUpdate = false;
|
|
124226
124336
|
transparentMesh.userData.capacity = nextCap;
|
|
@@ -124230,15 +124340,15 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124230
124340
|
state._occTransparentScene.add(transparentMesh);
|
|
124231
124341
|
}
|
|
124232
124342
|
if (transparentTotal > 0) {
|
|
124233
|
-
tempMatrix = new
|
|
124234
|
-
tempScale = new
|
|
124235
|
-
tempObj = new
|
|
124236
|
-
tempColor = new
|
|
124343
|
+
tempMatrix = new _this15.THREE.Matrix4();
|
|
124344
|
+
tempScale = new _this15.THREE.Vector3();
|
|
124345
|
+
tempObj = new _this15.THREE.Object3D();
|
|
124346
|
+
tempColor = new _this15.THREE.Color();
|
|
124237
124347
|
tIdx = 1;
|
|
124238
124348
|
for (_i0 = 0; _i0 < transparentTotal; _i0++) {
|
|
124239
124349
|
c = transparentCandidates[_i0];
|
|
124240
124350
|
idx = tIdx++;
|
|
124241
|
-
transparentIdIndexArr[idx] =
|
|
124351
|
+
transparentIdIndexArr[idx] = _this15.formatModelId(c.modelId);
|
|
124242
124352
|
r = (idx & 255) / 255;
|
|
124243
124353
|
g = (idx >> 8 & 255) / 255;
|
|
124244
124354
|
b = (idx >> 16 & 255) / 255;
|
|
@@ -124248,8 +124358,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124248
124358
|
tempMatrix.copy(matrix);
|
|
124249
124359
|
tempScale.copy(halfSize).multiplyScalar(2);
|
|
124250
124360
|
tempMatrix.scale(tempScale);
|
|
124251
|
-
if (typeof
|
|
124252
|
-
tempMatrix.premultiply(
|
|
124361
|
+
if (typeof _this15.bizToThreeMatrix !== 'undefined' && _this15.bizToThreeMatrix) {
|
|
124362
|
+
tempMatrix.premultiply(_this15.bizToThreeMatrix);
|
|
124253
124363
|
}
|
|
124254
124364
|
} else {
|
|
124255
124365
|
c.box.getSize(tempScale);
|
|
@@ -124277,28 +124387,28 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124277
124387
|
}
|
|
124278
124388
|
|
|
124279
124389
|
// console.log('this.renderer', this.renderer)
|
|
124280
|
-
prevToneMapping =
|
|
124281
|
-
prevTarget =
|
|
124390
|
+
prevToneMapping = _this15.renderer.toneMapping;
|
|
124391
|
+
prevTarget = _this15.renderer.getRenderTarget ? _this15.renderer.getRenderTarget() : null;
|
|
124282
124392
|
prevClearColorHex = 0x000000;
|
|
124283
124393
|
prevClearAlpha = 0;
|
|
124284
124394
|
try {
|
|
124285
|
-
_c3 =
|
|
124395
|
+
_c3 = _this15.renderer.getClearColor ? _this15.renderer.getClearColor() : null;
|
|
124286
124396
|
if (_c3 && _c3.isColor) prevClearColorHex = _c3.getHex();
|
|
124287
|
-
prevClearAlpha = typeof
|
|
124397
|
+
prevClearAlpha = typeof _this15.renderer.getClearAlpha === 'function' ? _this15.renderer.getClearAlpha() : 0;
|
|
124288
124398
|
} catch (_) {}
|
|
124289
|
-
|
|
124290
|
-
|
|
124291
|
-
|
|
124292
|
-
|
|
124293
|
-
|
|
124294
|
-
|
|
124295
|
-
|
|
124399
|
+
_this15.renderer.toneMapping = _this15.THREE.NoToneMapping;
|
|
124400
|
+
_this15.renderer.setRenderTarget(rt);
|
|
124401
|
+
_this15.renderer.setClearColor(new _this15.THREE.Color(0, 0, 0), 0);
|
|
124402
|
+
_this15.renderer.clear(true, true, false);
|
|
124403
|
+
_this15.camera.updateMatrixWorld(true);
|
|
124404
|
+
_this15.renderer.render(state._occScene, _this15.camera);
|
|
124405
|
+
_this15.updateGlobalSceneBoundingBox();
|
|
124296
124406
|
// const t1 = performance.now();
|
|
124297
124407
|
// 从响应式对象读取 previewEnabled
|
|
124298
|
-
|
|
124408
|
+
_this15.$emit('updateBoundingBox');
|
|
124299
124409
|
|
|
124300
124410
|
// const tPreview0 = performance.now();
|
|
124301
|
-
if (
|
|
124411
|
+
if (_this15.occlusionState.previewEnabled) {
|
|
124302
124412
|
if (!state._previewCanvas) {
|
|
124303
124413
|
cvs = document.createElement('canvas');
|
|
124304
124414
|
cvs.style.position = 'fixed';
|
|
@@ -124316,11 +124426,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124316
124426
|
}
|
|
124317
124427
|
state._previewCanvas.width = sw;
|
|
124318
124428
|
state._previewCanvas.height = sh;
|
|
124319
|
-
cssW = Math.min(
|
|
124320
|
-
cssH = Math.min(
|
|
124429
|
+
cssW = Math.min(_this15.renderer.domElement.width / 5);
|
|
124430
|
+
cssH = Math.min(_this15.renderer.domElement.height / 5);
|
|
124321
124431
|
state._previewCanvas.style.width = cssW + 'px';
|
|
124322
124432
|
state._previewCanvas.style.height = cssH + 'px';
|
|
124323
|
-
|
|
124433
|
+
_this15.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._previewBuffer);
|
|
124324
124434
|
if (!state._previewImageData || state._previewImageData.width !== sw || state._previewImageData.height !== sh) {
|
|
124325
124435
|
state._previewImageData = state._previewCtx.createImageData(sw, sh);
|
|
124326
124436
|
}
|
|
@@ -124343,17 +124453,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124343
124453
|
}
|
|
124344
124454
|
// const tPreview1 = performance.now();
|
|
124345
124455
|
// _occRecordPerf('occ_preview_ms', tPreview1 - tPreview0, { sw, sh });
|
|
124346
|
-
|
|
124456
|
+
_this15.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._colorBuffer);
|
|
124347
124457
|
idIndexArr = activeIdIndexArr;
|
|
124348
124458
|
maxIdx = typeof state._occMaxIdx === 'number' ? state._occMaxIdx : 0;
|
|
124349
124459
|
totalPixels = sw * sh;
|
|
124350
124460
|
targetSamples = totalPixels;
|
|
124351
124461
|
baseStride = Math.max(1, Math.floor(Math.sqrt(totalPixels / Math.max(1, targetSamples))));
|
|
124352
|
-
extraStride =
|
|
124462
|
+
extraStride = _this15.occlusionState && _this15.occlusionState.sampleStride ? _this15.occlusionState.sampleStride : 1;
|
|
124353
124463
|
stride = Math.max(1, baseStride * Math.max(1, extraStride));
|
|
124354
|
-
minSampleCount =
|
|
124464
|
+
minSampleCount = _this15.occlusionState && _this15.occlusionState.minSampleCount ? _this15.occlusionState.minSampleCount : 1;
|
|
124355
124465
|
_context3.n = 11;
|
|
124356
|
-
return
|
|
124466
|
+
return _this15.scanOcclusionIndices(state._colorBuffer, sw, sh, stride, maxIdx, minSampleCount);
|
|
124357
124467
|
case 11:
|
|
124358
124468
|
scanResult = _context3.v;
|
|
124359
124469
|
if (scanResult && scanResult.buffer) {
|
|
@@ -124371,13 +124481,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124371
124481
|
_context3.n = 13;
|
|
124372
124482
|
break;
|
|
124373
124483
|
}
|
|
124374
|
-
|
|
124375
|
-
|
|
124376
|
-
|
|
124377
|
-
|
|
124484
|
+
_this15.renderer.setClearColor(new _this15.THREE.Color(0, 0, 0), 0);
|
|
124485
|
+
_this15.renderer.clear(true, false, false);
|
|
124486
|
+
_this15.renderer.render(state._occTransparentScene, _this15.camera);
|
|
124487
|
+
_this15.renderer.readRenderTargetPixels(rt, 0, 0, sw, sh, state._colorBuffer);
|
|
124378
124488
|
tIdIndexArr = transparentIdIndexArr;
|
|
124379
124489
|
_context3.n = 12;
|
|
124380
|
-
return
|
|
124490
|
+
return _this15.scanOcclusionIndices(state._colorBuffer, sw, sh, stride, transparentMaxIdx, minSampleCount);
|
|
124381
124491
|
case 12:
|
|
124382
124492
|
tScanResult = _context3.v;
|
|
124383
124493
|
if (tScanResult && tScanResult.buffer) {
|
|
@@ -124391,9 +124501,9 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124391
124501
|
}
|
|
124392
124502
|
}
|
|
124393
124503
|
case 13:
|
|
124394
|
-
|
|
124395
|
-
|
|
124396
|
-
|
|
124504
|
+
_this15.renderer.setRenderTarget(prevTarget);
|
|
124505
|
+
_this15.renderer.setClearColor(prevClearColorHex, prevClearAlpha);
|
|
124506
|
+
_this15.renderer.toneMapping = prevToneMapping;
|
|
124397
124507
|
_context3.n = 15;
|
|
124398
124508
|
break;
|
|
124399
124509
|
case 14:
|
|
@@ -124416,7 +124526,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124416
124526
|
});
|
|
124417
124527
|
toLoadSet = new Set(visibleIdSet);
|
|
124418
124528
|
parentsToCheck = new Set();
|
|
124419
|
-
|
|
124529
|
+
_this15.scene.traverse(function (child) {
|
|
124420
124530
|
if (!child.isInstancedMesh) return;
|
|
124421
124531
|
// 如果复用数量等于大于2个,则跳过裁剪和剔除处理(始终保留)
|
|
124422
124532
|
if (child.count >= 2) {
|
|
@@ -124430,7 +124540,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124430
124540
|
var _modelId = _modelIds2[_i13];
|
|
124431
124541
|
// 检查已取消勾选模型进行卸载
|
|
124432
124542
|
var documentId = _modelId.split(':')[1];
|
|
124433
|
-
if (!
|
|
124543
|
+
if (!_this15.noObserver.documentModelIds.get(documentId)) {
|
|
124434
124544
|
toUnload.push({
|
|
124435
124545
|
modelId: _modelId,
|
|
124436
124546
|
child: child
|
|
@@ -124440,12 +124550,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124440
124550
|
if (bypassList && bypassList.size > 0 && bypassList.has(_modelId)) return;
|
|
124441
124551
|
var instanceInfo = instancesMap.get(_modelId);
|
|
124442
124552
|
var instanceIndex = instanceInfo && typeof instanceInfo.instanceIndex === 'number' ? instanceInfo.instanceIndex : null;
|
|
124443
|
-
var _box =
|
|
124444
|
-
if (!
|
|
124553
|
+
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;
|
|
124554
|
+
if (!_this15.shouldApplyOcclusionByBox(_box)) {
|
|
124445
124555
|
allInactive = false;
|
|
124446
124556
|
continue;
|
|
124447
124557
|
}
|
|
124448
|
-
var _inFrustum =
|
|
124558
|
+
var _inFrustum = _this15.isModelInFrustum(child, instanceIndex, globalFrustum);
|
|
124449
124559
|
var _modelInVisible = toLoadSet.has(_modelId);
|
|
124450
124560
|
// console.log('modelId', modelId, 'inFrustum', inFrustum, 'modelInVisible', modelInVisible)
|
|
124451
124561
|
|
|
@@ -124458,8 +124568,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124458
124568
|
// 第二遍遍历:同步状态并决定是否卸载
|
|
124459
124569
|
for (var _i14 = 0, _modelIds3 = modelIds; _i14 < _modelIds3.length; _i14++) {
|
|
124460
124570
|
var _modelId2 = _modelIds3[_i14];
|
|
124461
|
-
var _box2 =
|
|
124462
|
-
if (!
|
|
124571
|
+
var _box2 = _this15._boxIndex && _this15._boxIndex.has(String(_modelId2)) ? _this15._boxIndex.get(String(_modelId2)) : _this15._boxIndex && _this15._boxIndex.has(_modelId2) ? _this15._boxIndex.get(_modelId2) : null;
|
|
124572
|
+
if (!_this15.shouldApplyOcclusionByBox(_box2)) {
|
|
124463
124573
|
if (toLoadSet.has(_modelId2)) {
|
|
124464
124574
|
toLoadSet.delete(_modelId2);
|
|
124465
124575
|
}
|
|
@@ -124471,7 +124581,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124471
124581
|
}
|
|
124472
124582
|
|
|
124473
124583
|
// 仅当所有实例都不活跃时,才执行卸载
|
|
124474
|
-
if (!
|
|
124584
|
+
if (!_this15.firstPerSign && !_this15.roaming && allInactive) {
|
|
124475
124585
|
toUnload.push({
|
|
124476
124586
|
modelId: _modelId2,
|
|
124477
124587
|
child: child
|
|
@@ -124486,19 +124596,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124486
124596
|
}
|
|
124487
124597
|
var modelId = child.parent && child.parent.userData && child.parent.userData.instanceId ? child.parent.userData.instanceId : child.uuid;
|
|
124488
124598
|
if (bypassList && bypassList.size > 0 && bypassList.has(modelId)) return;
|
|
124489
|
-
var box =
|
|
124490
|
-
if (!
|
|
124599
|
+
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;
|
|
124600
|
+
if (!_this15.shouldApplyOcclusionByBox(box)) {
|
|
124491
124601
|
if (toLoadSet.has(modelId)) {
|
|
124492
124602
|
toLoadSet.delete(modelId);
|
|
124493
124603
|
}
|
|
124494
124604
|
return;
|
|
124495
124605
|
}
|
|
124496
|
-
var inFrustum =
|
|
124606
|
+
var inFrustum = _this15.isModelInFrustum(child, null, globalFrustum);
|
|
124497
124607
|
var modelInVisible = toLoadSet.has(modelId);
|
|
124498
124608
|
if (modelInVisible) {
|
|
124499
124609
|
toLoadSet.delete(modelId);
|
|
124500
124610
|
}
|
|
124501
|
-
if (!
|
|
124611
|
+
if (!_this15.firstPerSign && !_this15.roaming && (!inFrustum || !modelInVisible)) {
|
|
124502
124612
|
toUnload.push({
|
|
124503
124613
|
modelId: modelId,
|
|
124504
124614
|
child: child
|
|
@@ -124508,16 +124618,16 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124508
124618
|
for (_i15 = 0, _toUnload = toUnload; _i15 < _toUnload.length; _i15++) {
|
|
124509
124619
|
_toUnload$_i = _toUnload[_i15], modelId = _toUnload$_i.modelId, child = _toUnload$_i.child;
|
|
124510
124620
|
if (child && child.parent) parentsToCheck.add(child.parent);
|
|
124511
|
-
|
|
124621
|
+
_this15.unloadInstancedModel(modelId, child);
|
|
124512
124622
|
}
|
|
124513
|
-
if (
|
|
124623
|
+
if (_this15.scene) {
|
|
124514
124624
|
parentsToCheck.forEach(function (group) {
|
|
124515
124625
|
if (group && group.children && group.children.length === 0) {
|
|
124516
124626
|
group.removeFromParent();
|
|
124517
124627
|
}
|
|
124518
124628
|
});
|
|
124519
124629
|
}
|
|
124520
|
-
|
|
124630
|
+
_this15.modelStateManager.isloadedModelsIds = Object.freeze(Array.from(toLoadSet));
|
|
124521
124631
|
case 18:
|
|
124522
124632
|
return _context3.a(2);
|
|
124523
124633
|
}
|
|
@@ -124544,8 +124654,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124544
124654
|
|
|
124545
124655
|
// 卸载前内存快照
|
|
124546
124656
|
// this.logRendererMemory(`before unload modelId=${modelId}`);
|
|
124547
|
-
var
|
|
124548
|
-
instanceIndex =
|
|
124657
|
+
var _ref2 = instancedMesh.userData.instancesMap.get(modelId) || 0,
|
|
124658
|
+
instanceIndex = _ref2.instanceIndex;
|
|
124549
124659
|
// const instanceIndex = instancedMesh.userData.instanceIndex || 0;
|
|
124550
124660
|
|
|
124551
124661
|
this.removeOutlineInstanceProxy(instancedMesh, instanceIndex);
|
|
@@ -124625,11 +124735,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124625
124735
|
* @param {string} [config.projectId] - 项目ID
|
|
124626
124736
|
*/
|
|
124627
124737
|
initStreamLoader: function initStreamLoader(modelApi) {
|
|
124628
|
-
var
|
|
124738
|
+
var _this16 = this;
|
|
124629
124739
|
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
124630
|
-
var
|
|
124631
|
-
projectId =
|
|
124632
|
-
restConfig = _objectWithoutProperties(
|
|
124740
|
+
var _ref3 = config || {},
|
|
124741
|
+
projectId = _ref3.projectId,
|
|
124742
|
+
restConfig = _objectWithoutProperties(_ref3, _excluded);
|
|
124633
124743
|
var streamLoader = new StreamLoader_StreamLoader(com_graphicsvue_type_script_lang_js_objectSpread({
|
|
124634
124744
|
modelApi: modelApi,
|
|
124635
124745
|
projectId: projectId,
|
|
@@ -124641,7 +124751,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124641
124751
|
return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context4) {
|
|
124642
124752
|
while (1) switch (_context4.n) {
|
|
124643
124753
|
case 0:
|
|
124644
|
-
if (!(
|
|
124754
|
+
if (!(_this16.userInteracting || _this16.noObserver.batchLoadingState.interactionState.isInteracting)) {
|
|
124645
124755
|
_context4.n = 1;
|
|
124646
124756
|
break;
|
|
124647
124757
|
}
|
|
@@ -124691,9 +124801,9 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124691
124801
|
this.noObserver.occlusionWorkerRequestMap = new Map();
|
|
124692
124802
|
streamLoader.worker.addEventListener('message', function (e) {
|
|
124693
124803
|
var payload = e.data || {};
|
|
124694
|
-
var pending =
|
|
124804
|
+
var pending = _this16.noObserver.occlusionWorkerRequestMap.get(payload.id);
|
|
124695
124805
|
if (!pending) return;
|
|
124696
|
-
|
|
124806
|
+
_this16.noObserver.occlusionWorkerRequestMap.delete(payload.id);
|
|
124697
124807
|
pending.resolve(payload);
|
|
124698
124808
|
});
|
|
124699
124809
|
}
|
|
@@ -124704,13 +124814,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124704
124814
|
* @param {Object} materialData - 材质数据
|
|
124705
124815
|
*/
|
|
124706
124816
|
setStreamModel: function setStreamModel(item, materialData) {
|
|
124707
|
-
var
|
|
124817
|
+
var _this17 = this;
|
|
124708
124818
|
if (this.noObserver.streamLoader) {
|
|
124709
124819
|
this.noObserver.streamLoader.setCurrentModel(item, materialData);
|
|
124710
124820
|
// 设置完模型后,尝试触发一次范围加载以渲染初始视图
|
|
124711
124821
|
// 使用 setTimeout 确保在下一帧执行,避免当前栈还在初始化中
|
|
124712
124822
|
setTimeout(function () {
|
|
124713
|
-
|
|
124823
|
+
_this17.getRangeStream();
|
|
124714
124824
|
}, 0);
|
|
124715
124825
|
} else {}
|
|
124716
124826
|
},
|
|
@@ -124718,17 +124828,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124718
124828
|
* 批量加载区域(供外部调用)
|
|
124719
124829
|
*/
|
|
124720
124830
|
batchLoadRegions: function batchLoadRegions(item, divideData, materialData) {
|
|
124721
|
-
var
|
|
124831
|
+
var _this18 = this;
|
|
124722
124832
|
return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee6() {
|
|
124723
124833
|
return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context6) {
|
|
124724
124834
|
while (1) switch (_context6.n) {
|
|
124725
124835
|
case 0:
|
|
124726
|
-
if (!
|
|
124836
|
+
if (!_this18.noObserver.streamLoader) {
|
|
124727
124837
|
_context6.n = 1;
|
|
124728
124838
|
break;
|
|
124729
124839
|
}
|
|
124730
124840
|
_context6.n = 1;
|
|
124731
|
-
return
|
|
124841
|
+
return _this18.noObserver.streamLoader.batchLoadRegions(item, divideData, materialData);
|
|
124732
124842
|
case 1:
|
|
124733
124843
|
return _context6.a(2);
|
|
124734
124844
|
}
|
|
@@ -124739,21 +124849,21 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124739
124849
|
* 获取批量加载详情(供外部调用)
|
|
124740
124850
|
*/
|
|
124741
124851
|
loadModelByIds: function loadModelByIds(options) {
|
|
124742
|
-
var
|
|
124852
|
+
var _this19 = this;
|
|
124743
124853
|
return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee7() {
|
|
124744
|
-
var
|
|
124854
|
+
var _ref4, ids;
|
|
124745
124855
|
return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context7) {
|
|
124746
124856
|
while (1) switch (_context7.n) {
|
|
124747
124857
|
case 0:
|
|
124748
124858
|
// 绕过剔除模型
|
|
124749
|
-
|
|
124750
|
-
|
|
124751
|
-
if (!
|
|
124859
|
+
_ref4 = options.params || {}, ids = _ref4.ids;
|
|
124860
|
+
_this19.addBypassCullingModelIds(ids);
|
|
124861
|
+
if (!_this19.noObserver.streamLoader) {
|
|
124752
124862
|
_context7.n = 2;
|
|
124753
124863
|
break;
|
|
124754
124864
|
}
|
|
124755
124865
|
_context7.n = 1;
|
|
124756
|
-
return
|
|
124866
|
+
return _this19.noObserver.streamLoader.loadModelByIds(options);
|
|
124757
124867
|
case 1:
|
|
124758
124868
|
return _context7.a(2, _context7.v);
|
|
124759
124869
|
case 2:
|
|
@@ -124767,7 +124877,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124767
124877
|
*/
|
|
124768
124878
|
processModelItem: function processModelItem(item) {
|
|
124769
124879
|
var _arguments = arguments,
|
|
124770
|
-
|
|
124880
|
+
_this20 = this;
|
|
124771
124881
|
return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee8() {
|
|
124772
124882
|
var _options$onComplete;
|
|
124773
124883
|
var options, res;
|
|
@@ -124776,22 +124886,22 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124776
124886
|
case 0:
|
|
124777
124887
|
options = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : {};
|
|
124778
124888
|
_context8.n = 1;
|
|
124779
|
-
return
|
|
124889
|
+
return _this20.noObserver.streamLoader.processModelItem(item, options);
|
|
124780
124890
|
case 1:
|
|
124781
124891
|
res = _context8.v;
|
|
124782
124892
|
// item.id is the documentId
|
|
124783
124893
|
if (item && item.id) {
|
|
124784
124894
|
if (res && res.sceneBox) {
|
|
124785
|
-
|
|
124895
|
+
_this20.setSceneBox(res.sceneBox, item.id, true);
|
|
124786
124896
|
}
|
|
124787
124897
|
if (res && res.boxIndex) {
|
|
124788
|
-
|
|
124898
|
+
_this20.setBoxIndex(res.boxIndex, item.id, true);
|
|
124789
124899
|
}
|
|
124790
|
-
|
|
124900
|
+
_this20.tryInitialCenterAfterBoundsReady();
|
|
124791
124901
|
// this.setBoxIndex(boxJson.data, item.id, true);
|
|
124792
124902
|
}
|
|
124793
124903
|
(_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 || _options$onComplete.call(options);
|
|
124794
|
-
|
|
124904
|
+
_this20.notifyCameraChange(); // 触发场景更新
|
|
124795
124905
|
case 2:
|
|
124796
124906
|
return _context8.a(2);
|
|
124797
124907
|
}
|
|
@@ -124845,7 +124955,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124845
124955
|
* 内部渲染流式数据方法
|
|
124846
124956
|
*/
|
|
124847
124957
|
renderModelData: function renderModelData(meshes, primitives, list, range, onComplete, immediateUpdate) {
|
|
124848
|
-
var
|
|
124958
|
+
var _this21 = this;
|
|
124849
124959
|
var renderOptions = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
|
|
124850
124960
|
// 构造 drawModel 需要的数据格式
|
|
124851
124961
|
var modelRegistry = this.noObserver.streamLoader.modelRegistry;
|
|
@@ -124899,8 +125009,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124899
125009
|
resolve(result || {});
|
|
124900
125010
|
};
|
|
124901
125011
|
options.onComplete = function (complete) {
|
|
124902
|
-
if (
|
|
124903
|
-
|
|
125012
|
+
if (_this21.sceneCommandService && typeof _this21.sceneCommandService.retryPendingOriginalModelSaveChanges === 'function') {
|
|
125013
|
+
_this21.sceneCommandService.retryPendingOriginalModelSaveChanges();
|
|
124904
125014
|
}
|
|
124905
125015
|
onComplete === null || onComplete === void 0 || onComplete(complete);
|
|
124906
125016
|
finish(complete);
|
|
@@ -124910,7 +125020,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124910
125020
|
canceled: true
|
|
124911
125021
|
}, cancelInfo || {}));
|
|
124912
125022
|
};
|
|
124913
|
-
|
|
125023
|
+
_this21.drawModel(regionModelData, '', meshNameConfig, options);
|
|
124914
125024
|
});
|
|
124915
125025
|
},
|
|
124916
125026
|
waitNextRenderFrame: function waitNextRenderFrame() {
|
|
@@ -124926,7 +125036,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124926
125036
|
},
|
|
124927
125037
|
handleRangeStreamComplete: function handleRangeStreamComplete() {
|
|
124928
125038
|
var _arguments2 = arguments,
|
|
124929
|
-
|
|
125039
|
+
_this22 = this;
|
|
124930
125040
|
return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee9() {
|
|
124931
125041
|
var payload;
|
|
124932
125042
|
return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context9) {
|
|
@@ -124934,9 +125044,9 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
124934
125044
|
case 0:
|
|
124935
125045
|
payload = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};
|
|
124936
125046
|
_context9.n = 1;
|
|
124937
|
-
return
|
|
125047
|
+
return _this22.waitNextRenderFrame();
|
|
124938
125048
|
case 1:
|
|
124939
|
-
|
|
125049
|
+
_this22.$emit('loadComplete', com_graphicsvue_type_script_lang_js_objectSpread({
|
|
124940
125050
|
source: 'inRangeDis2'
|
|
124941
125051
|
}, payload));
|
|
124942
125052
|
case 2:
|
|
@@ -125105,38 +125215,38 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125105
125215
|
* 统一监听:用户交互(Wheel/Control)、程序化动画、API调用
|
|
125106
125216
|
*/
|
|
125107
125217
|
initCameraChangeObserver: function initCameraChangeObserver() {
|
|
125108
|
-
var
|
|
125218
|
+
var _this23 = this;
|
|
125109
125219
|
// 初始化 control 状态标志
|
|
125110
125220
|
this.noObserver.isControlActive = false;
|
|
125111
125221
|
var _this = this;
|
|
125112
125222
|
// 1. 创建统一的响应触发器 (Debounced)
|
|
125113
125223
|
this._cameraChangeObserver = this.debounce(/*#__PURE__*/function () {
|
|
125114
|
-
var
|
|
125224
|
+
var _ref5 = com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee0(source) {
|
|
125115
125225
|
return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context0) {
|
|
125116
125226
|
while (1) switch (_context0.n) {
|
|
125117
125227
|
case 0:
|
|
125118
|
-
if (
|
|
125228
|
+
if (_this23.noObserver.isObserverEnabled) {
|
|
125119
125229
|
_context0.n = 1;
|
|
125120
125230
|
break;
|
|
125121
125231
|
}
|
|
125122
125232
|
return _context0.a(2);
|
|
125123
125233
|
case 1:
|
|
125124
|
-
if (!(source === 'rest' &&
|
|
125234
|
+
if (!(source === 'rest' && _this23.noObserver.isControlActive)) {
|
|
125125
125235
|
_context0.n = 2;
|
|
125126
125236
|
break;
|
|
125127
125237
|
}
|
|
125128
125238
|
return _context0.a(2);
|
|
125129
125239
|
case 2:
|
|
125130
|
-
if (!
|
|
125240
|
+
if (!_this23.modelStateManager.frustumCheckEnabled) {
|
|
125131
125241
|
_context0.n = 3;
|
|
125132
125242
|
break;
|
|
125133
125243
|
}
|
|
125134
125244
|
_context0.n = 3;
|
|
125135
|
-
return
|
|
125245
|
+
return _this23.performFrustumCulling();
|
|
125136
125246
|
case 3:
|
|
125137
125247
|
// 执行流式加载请求
|
|
125138
|
-
if (
|
|
125139
|
-
|
|
125248
|
+
if (_this23.modelStateManager.isloadedModelsIds && _this23.modelStateManager.isloadedModelsIds.length > 0) {
|
|
125249
|
+
_this23.getRangeStream(false);
|
|
125140
125250
|
}
|
|
125141
125251
|
case 4:
|
|
125142
125252
|
return _context0.a(2);
|
|
@@ -125144,7 +125254,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125144
125254
|
}, _callee0);
|
|
125145
125255
|
}));
|
|
125146
125256
|
return function (_x3) {
|
|
125147
|
-
return
|
|
125257
|
+
return _ref5.apply(this, arguments);
|
|
125148
125258
|
};
|
|
125149
125259
|
}(), function (source) {
|
|
125150
125260
|
// 漫游模式下,或者第一人称移动时,使用节流策略(每300ms触发一次)
|
|
@@ -125161,18 +125271,18 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125161
125271
|
// 2. 公开API:允许外部或业务逻辑手动触发更新
|
|
125162
125272
|
this.notifyCameraChange = function () {
|
|
125163
125273
|
var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'api';
|
|
125164
|
-
|
|
125274
|
+
_this23._cameraChangeObserver(source);
|
|
125165
125275
|
};
|
|
125166
125276
|
|
|
125167
125277
|
// 3. 监听器 - Wheel (用户滚轮)
|
|
125168
125278
|
this._wheelHandler = function (res) {
|
|
125169
|
-
|
|
125279
|
+
_this23.$emit('wheelStart', res);
|
|
125170
125280
|
|
|
125171
125281
|
// 统一交互开始处理
|
|
125172
|
-
|
|
125282
|
+
_this23.beginInteraction('wheel');
|
|
125173
125283
|
|
|
125174
125284
|
// 设置滚轮交互的结束检测
|
|
125175
|
-
|
|
125285
|
+
_this23.scheduleWheelInteractionEnd(res, 100);
|
|
125176
125286
|
|
|
125177
125287
|
// 滚轮逻辑:infinityDolly 与 maxDollyDistance 控制
|
|
125178
125288
|
var event = res;
|
|
@@ -125188,10 +125298,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125188
125298
|
|
|
125189
125299
|
// dolly最大距离限制
|
|
125190
125300
|
try {
|
|
125191
|
-
if (
|
|
125301
|
+
if (_this23.sceneBoundingBox && isFinite(maxDollyDistance)) {
|
|
125192
125302
|
if (isZoomOut) {
|
|
125193
|
-
|
|
125194
|
-
var currentDistance =
|
|
125303
|
+
_this23.camera.updateMatrixWorld(true);
|
|
125304
|
+
var currentDistance = _this23.camera.position.distanceTo(_this23.cameraControls._target);
|
|
125195
125305
|
if (currentDistance >= maxDollyDistance) {
|
|
125196
125306
|
event.preventDefault && event.preventDefault();
|
|
125197
125307
|
event.stopImmediatePropagation && event.stopImmediatePropagation();
|
|
@@ -125204,17 +125314,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125204
125314
|
}
|
|
125205
125315
|
|
|
125206
125316
|
// 触发观察者
|
|
125207
|
-
|
|
125317
|
+
_this23._cameraChangeObserver('wheel');
|
|
125208
125318
|
};
|
|
125209
125319
|
this.renderer.domElement.addEventListener('wheel', this._wheelHandler);
|
|
125210
125320
|
|
|
125211
125321
|
// 4. 监听器 - Controls (用户拖拽/操作)
|
|
125212
125322
|
this._onControlStart = function (res) {
|
|
125213
|
-
|
|
125323
|
+
_this23.noObserver.isControlActive = true;
|
|
125214
125324
|
|
|
125215
125325
|
// 统一交互开始处理(相机)
|
|
125216
|
-
|
|
125217
|
-
|
|
125326
|
+
_this23.beginInteraction('this.camera');
|
|
125327
|
+
_this23.$emit('controlStart', res);
|
|
125218
125328
|
|
|
125219
125329
|
// 记录鼠标按下时的位置
|
|
125220
125330
|
var event = res.originalEvent || window.event;
|
|
@@ -125226,10 +125336,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125226
125336
|
};
|
|
125227
125337
|
this._onControlEnd = function (res) {
|
|
125228
125338
|
_this.noObserver.isControlActive = false;
|
|
125229
|
-
|
|
125339
|
+
_this23.$emit('controlEnd', res);
|
|
125230
125340
|
|
|
125231
125341
|
// 统一交互结束处理(相机)
|
|
125232
|
-
|
|
125342
|
+
_this23.endInteraction('this.camera', res, {
|
|
125233
125343
|
immediateResume: false
|
|
125234
125344
|
});
|
|
125235
125345
|
|
|
@@ -125258,7 +125368,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125258
125368
|
// }
|
|
125259
125369
|
|
|
125260
125370
|
// 触发观察者
|
|
125261
|
-
|
|
125371
|
+
_this23._cameraChangeObserver('control');
|
|
125262
125372
|
}
|
|
125263
125373
|
};
|
|
125264
125374
|
this.cameraControls.addEventListener('controlstart', this._onControlStart);
|
|
@@ -125268,7 +125378,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125268
125378
|
// 监听 rest 事件,捕获 this.cameraControls.setLookAt(..., true) 等动画结束(以及阻尼停止)
|
|
125269
125379
|
// 注意:rest 事件在用户交互完全静止时也会触发,与 controlEnd 有部分重叠,但 Observer 有防抖,影响不大
|
|
125270
125380
|
this._onRest = function () {
|
|
125271
|
-
|
|
125381
|
+
_this23._cameraChangeObserver('rest');
|
|
125272
125382
|
};
|
|
125273
125383
|
this.cameraControls.addEventListener('rest', this._onRest);
|
|
125274
125384
|
},
|
|
@@ -125295,7 +125405,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125295
125405
|
meshNameConfig: {}
|
|
125296
125406
|
*/
|
|
125297
125407
|
drawModel: function drawModel(data) {
|
|
125298
|
-
var
|
|
125408
|
+
var _this24 = this;
|
|
125299
125409
|
var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
125300
125410
|
var meshNameConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
125301
125411
|
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
@@ -125304,14 +125414,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125304
125414
|
// 使用新的分帧加载方法,提供进度回调
|
|
125305
125415
|
return this.drawModelWithBatchLoading(data, color, meshNameConfig, options, function (progress) {
|
|
125306
125416
|
// 触发原有的进度事件
|
|
125307
|
-
|
|
125417
|
+
_this24.$emit('loadProgress', _this24.progress);
|
|
125308
125418
|
}, function (complete) {
|
|
125309
125419
|
var _options$onComplete2;
|
|
125310
125420
|
options === null || options === void 0 || (_options$onComplete2 = options.onComplete) === null || _options$onComplete2 === void 0 || _options$onComplete2.call(options, complete);
|
|
125311
125421
|
console.log('加载完成');
|
|
125312
125422
|
// 触发原有的完成事件
|
|
125313
125423
|
if (!(options !== null && options !== void 0 && options.suppressLoadComplete)) {
|
|
125314
|
-
|
|
125424
|
+
_this24.$emit('loadComplete');
|
|
125315
125425
|
}
|
|
125316
125426
|
});
|
|
125317
125427
|
},
|
|
@@ -125338,14 +125448,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125338
125448
|
};
|
|
125339
125449
|
},
|
|
125340
125450
|
mouseDown: function mouseDown(event) {
|
|
125341
|
-
var
|
|
125451
|
+
var _this25 = this;
|
|
125342
125452
|
// 在鼠标按下时启用渲染中断以提升响应性
|
|
125343
125453
|
this.forceSkipRendering = true;
|
|
125344
125454
|
this.skipNextRenderFrame = true;
|
|
125345
125455
|
var intersects = this.getRaycasterObjects(event);
|
|
125346
125456
|
console.log(intersects);
|
|
125347
125457
|
var shouldBlockCamera = intersects.some(function (item) {
|
|
125348
|
-
return
|
|
125458
|
+
return _this25.isActiveTransformControlIntersection(item);
|
|
125349
125459
|
});
|
|
125350
125460
|
if (shouldBlockCamera) {
|
|
125351
125461
|
this.setPointerCameraGuard(true);
|
|
@@ -125427,19 +125537,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125427
125537
|
return this.isTransformControlIntersection(intersection);
|
|
125428
125538
|
},
|
|
125429
125539
|
getPrimaryIntersection: function getPrimaryIntersection() {
|
|
125430
|
-
var
|
|
125540
|
+
var _this26 = this;
|
|
125431
125541
|
var intersects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
125432
125542
|
if (!Array.isArray(intersects) || intersects.length === 0) {
|
|
125433
125543
|
return null;
|
|
125434
125544
|
}
|
|
125435
125545
|
var validIntersects = intersects.filter(function (item) {
|
|
125436
|
-
return item && item.object && !
|
|
125546
|
+
return item && item.object && !_this26.isTransformControlIntersection(item);
|
|
125437
125547
|
});
|
|
125438
125548
|
if (validIntersects.length === 0) {
|
|
125439
125549
|
return null;
|
|
125440
125550
|
}
|
|
125441
125551
|
var selectableIntersect = validIntersects.find(function (item) {
|
|
125442
|
-
return
|
|
125552
|
+
return _this26.getSelectableSceneObject(item.object);
|
|
125443
125553
|
});
|
|
125444
125554
|
return selectableIntersect || validIntersects[0] || null;
|
|
125445
125555
|
},
|
|
@@ -125511,13 +125621,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125511
125621
|
}
|
|
125512
125622
|
},
|
|
125513
125623
|
mouseClick: function mouseClick(event) {
|
|
125514
|
-
var
|
|
125624
|
+
var _this27 = this;
|
|
125515
125625
|
// 鼠标抬起时重置渲染中断标记
|
|
125516
125626
|
setTimeout(function () {
|
|
125517
|
-
|
|
125627
|
+
_this27.forceSkipRendering = false;
|
|
125518
125628
|
// interactionFrameCount = 0;
|
|
125519
125629
|
// 恢复批次加载操作
|
|
125520
|
-
|
|
125630
|
+
_this27.resumeBatchLoading();
|
|
125521
125631
|
}, 50); // 短暂延迟确保交互完成
|
|
125522
125632
|
|
|
125523
125633
|
// 在测量模式下,不进行事件暴露
|
|
@@ -125576,21 +125686,21 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125576
125686
|
this.setPointerCameraGuard(false);
|
|
125577
125687
|
this.$emit('rightClick', params);
|
|
125578
125688
|
onContextHandle(event, 'fl-model', '隐藏', this.isolateMode ? '取消隔离' : '隔离', function () {
|
|
125579
|
-
|
|
125689
|
+
_this27.updateProperty([{
|
|
125580
125690
|
name: params.instanceId,
|
|
125581
125691
|
attr: {
|
|
125582
125692
|
visible: false
|
|
125583
125693
|
}
|
|
125584
125694
|
}]);
|
|
125585
125695
|
}, function () {
|
|
125586
|
-
|
|
125587
|
-
|
|
125696
|
+
_this27.setAllModelVisible(_this27.isolateMode);
|
|
125697
|
+
_this27.updateProperty([{
|
|
125588
125698
|
name: params.instanceId,
|
|
125589
125699
|
attr: {
|
|
125590
125700
|
visible: true
|
|
125591
125701
|
}
|
|
125592
125702
|
}]);
|
|
125593
|
-
|
|
125703
|
+
_this27.isolateMode = !_this27.isolateMode;
|
|
125594
125704
|
});
|
|
125595
125705
|
}
|
|
125596
125706
|
} else if (event.button === 2) {
|
|
@@ -125598,21 +125708,21 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125598
125708
|
this.setPointerCameraGuard(false);
|
|
125599
125709
|
this.$emit('rightClick', params);
|
|
125600
125710
|
onContextHandle(event, 'fl-model', '隐藏', this.isolateMode ? '取消隔离' : '隔离', function () {
|
|
125601
|
-
|
|
125711
|
+
_this27.updateProperty([{
|
|
125602
125712
|
name: params.instanceId,
|
|
125603
125713
|
attr: {
|
|
125604
125714
|
visible: false
|
|
125605
125715
|
}
|
|
125606
125716
|
}]);
|
|
125607
125717
|
}, function () {
|
|
125608
|
-
|
|
125609
|
-
|
|
125718
|
+
_this27.setAllModelVisible(_this27.isolateMode);
|
|
125719
|
+
_this27.updateProperty([{
|
|
125610
125720
|
name: params.instanceId,
|
|
125611
125721
|
attr: {
|
|
125612
125722
|
visible: true
|
|
125613
125723
|
}
|
|
125614
125724
|
}]);
|
|
125615
|
-
|
|
125725
|
+
_this27.isolateMode = !_this27.isolateMode;
|
|
125616
125726
|
});
|
|
125617
125727
|
}
|
|
125618
125728
|
}
|
|
@@ -125640,8 +125750,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125640
125750
|
if (this.threeMeasure) {
|
|
125641
125751
|
this.threeMeasure.updateParams(width, height);
|
|
125642
125752
|
}
|
|
125753
|
+
this.updateMeshLineResolution(width, height);
|
|
125643
125754
|
}
|
|
125644
125755
|
},
|
|
125756
|
+
updateMeshLineResolution: function updateMeshLineResolution(width, height) {
|
|
125757
|
+
if (!this.modelGroup || !width || !height) return;
|
|
125758
|
+
this.modelGroup.traverse(function (child) {
|
|
125759
|
+
var material = child && child.material;
|
|
125760
|
+
if (material && material.type === 'MeshLineMaterial' && material.resolution) {
|
|
125761
|
+
material.resolution.set(width, height);
|
|
125762
|
+
material.needsUpdate = true;
|
|
125763
|
+
}
|
|
125764
|
+
});
|
|
125765
|
+
},
|
|
125645
125766
|
setModelCenter: function setModelCenter(target) {
|
|
125646
125767
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
125647
125768
|
// return
|
|
@@ -125692,7 +125813,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125692
125813
|
},
|
|
125693
125814
|
// 带防抖和用户交互检测的智能居中方法
|
|
125694
125815
|
smartModelCenter: function smartModelCenter(mesh) {
|
|
125695
|
-
var
|
|
125816
|
+
var _this28 = this;
|
|
125696
125817
|
var debounceDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
|
|
125697
125818
|
// if (this.hasExecutedCentering) {
|
|
125698
125819
|
// return;
|
|
@@ -125712,13 +125833,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125712
125833
|
// 设置新的防抖定时器
|
|
125713
125834
|
this.centeringDebounceTimer = setTimeout(function () {
|
|
125714
125835
|
// 如果已经执行过居中操作,则不再执行
|
|
125715
|
-
if (!
|
|
125716
|
-
|
|
125836
|
+
if (!_this28.userInteracting && !_this28.hasExecutedCentering && _this28.noObserver.documentModelIds.size > 0) {
|
|
125837
|
+
_this28.setModelCenter(mesh, {
|
|
125717
125838
|
enableTransition: false
|
|
125718
125839
|
});
|
|
125719
|
-
|
|
125840
|
+
_this28.hasExecutedCentering = true;
|
|
125720
125841
|
// 触发场景更新
|
|
125721
|
-
|
|
125842
|
+
_this28.notifyCameraChange();
|
|
125722
125843
|
}
|
|
125723
125844
|
}, debounceDelay);
|
|
125724
125845
|
},
|
|
@@ -125742,14 +125863,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125742
125863
|
* }
|
|
125743
125864
|
*/
|
|
125744
125865
|
updateProperty: function updateProperty(list) {
|
|
125745
|
-
var
|
|
125866
|
+
var _this29 = this;
|
|
125746
125867
|
var hasOutline = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
125747
125868
|
var isUpdate = false;
|
|
125748
125869
|
var _loop = function _loop() {
|
|
125749
125870
|
var ele = list[index];
|
|
125750
125871
|
var type = ele.type || 'mesh';
|
|
125751
125872
|
var instanceId = ele.name;
|
|
125752
|
-
var targetObj =
|
|
125873
|
+
var targetObj = _this29.getObjectByName(instanceId);
|
|
125753
125874
|
var _loop2 = function _loop2(key) {
|
|
125754
125875
|
switch (key) {
|
|
125755
125876
|
case 'color':
|
|
@@ -125759,19 +125880,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125759
125880
|
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);
|
|
125760
125881
|
if (!instanceInfo) return;
|
|
125761
125882
|
var instanceIndex = instanceInfo.instanceIndex;
|
|
125762
|
-
children.setColorAt(instanceIndex, new
|
|
125883
|
+
children.setColorAt(instanceIndex, new _this29.THREE.Color(ele.attr[key]));
|
|
125763
125884
|
children.instanceColor.needsUpdate = true;
|
|
125764
|
-
if (!
|
|
125765
|
-
|
|
125885
|
+
if (!_this29.isCurrentVisible(instanceId, children)) {
|
|
125886
|
+
_this29.removeOutlineObject(children, instanceIndex);
|
|
125766
125887
|
return;
|
|
125767
125888
|
}
|
|
125768
125889
|
if (hasOutline) {
|
|
125769
|
-
if (
|
|
125890
|
+
if (_this29.outlinePass) {
|
|
125770
125891
|
if (children.isInstancedMesh) {
|
|
125771
|
-
var proxy =
|
|
125772
|
-
|
|
125773
|
-
} else if (!
|
|
125774
|
-
|
|
125892
|
+
var proxy = _this29.ensureOutlineInstanceProxy(children, instanceIndex);
|
|
125893
|
+
_this29.pushOutlineTarget(proxy);
|
|
125894
|
+
} else if (!_this29.isSourceHiddenInstance(children, instanceId)) {
|
|
125895
|
+
_this29.pushOutlineTarget(children);
|
|
125775
125896
|
}
|
|
125776
125897
|
}
|
|
125777
125898
|
}
|
|
@@ -125784,10 +125905,10 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125784
125905
|
isUpdate = true;
|
|
125785
125906
|
}
|
|
125786
125907
|
var requestedVisible = Boolean(ele.attr[key]);
|
|
125787
|
-
var nextBoxVisible = requestedVisible &&
|
|
125788
|
-
var boxKey =
|
|
125789
|
-
if (
|
|
125790
|
-
var boxData =
|
|
125908
|
+
var nextBoxVisible = requestedVisible && _this29.isSourceVisible(instanceId);
|
|
125909
|
+
var boxKey = _this29._boxIndex && _this29._boxIndex.has(String(instanceId)) ? String(instanceId) : instanceId;
|
|
125910
|
+
if (_this29._boxIndex && _this29._boxIndex.has(boxKey)) {
|
|
125911
|
+
var boxData = _this29._boxIndex.get(boxKey);
|
|
125791
125912
|
if (boxData && boxData.userData) {
|
|
125792
125913
|
boxData.userData.visible = nextBoxVisible;
|
|
125793
125914
|
}
|
|
@@ -125797,22 +125918,22 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125797
125918
|
if (!instanceInfo) return;
|
|
125798
125919
|
var instanceIndex = instanceInfo.instanceIndex,
|
|
125799
125920
|
copyMatrix = instanceInfo.copyMatrix;
|
|
125800
|
-
var nextVisible = requestedVisible &&
|
|
125921
|
+
var nextVisible = requestedVisible && _this29.isSourceVisible(instanceId, children);
|
|
125801
125922
|
instanceInfo.visible = nextVisible;
|
|
125802
125923
|
if (nextVisible) {
|
|
125803
|
-
var restoreMatrix = new
|
|
125924
|
+
var restoreMatrix = new _this29.THREE.Matrix4().copy(copyMatrix || children.userData.copyMatrix);
|
|
125804
125925
|
children.setMatrixAt(instanceIndex, restoreMatrix);
|
|
125805
125926
|
} else {
|
|
125806
|
-
var _copyMatrix =
|
|
125927
|
+
var _copyMatrix = _this29.getInstanceCopyMatrix(children, instanceId);
|
|
125807
125928
|
if (!_copyMatrix) return;
|
|
125808
|
-
var offsetMatrix = new
|
|
125929
|
+
var offsetMatrix = new _this29.THREE.Matrix4().copy(_copyMatrix || children.userData.copyMatrix).makeTranslation(9999999, 9999999, 9999999);
|
|
125809
125930
|
children.setMatrixAt(instanceIndex, offsetMatrix);
|
|
125810
|
-
|
|
125931
|
+
_this29.removeOutlineObject(children, instanceIndex);
|
|
125811
125932
|
}
|
|
125812
125933
|
children.instanceMatrix.needsUpdate = true;
|
|
125813
125934
|
});
|
|
125814
|
-
|
|
125815
|
-
|
|
125935
|
+
_this29.refreshCollisionObbDebug();
|
|
125936
|
+
_this29.notifyCameraChange(); // 触发场景更新
|
|
125816
125937
|
break;
|
|
125817
125938
|
}
|
|
125818
125939
|
case 'opacity':
|
|
@@ -125863,13 +125984,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125863
125984
|
}
|
|
125864
125985
|
},
|
|
125865
125986
|
setAllModelVisible: function setAllModelVisible(visible) {
|
|
125866
|
-
var
|
|
125987
|
+
var _this30 = this;
|
|
125867
125988
|
var isVisible = Boolean(visible);
|
|
125868
125989
|
var matrixCache = new this.THREE.Matrix4();
|
|
125869
125990
|
if (this._boxIndex && this._boxIndex.size > 0) {
|
|
125870
125991
|
this._boxIndex.forEach(function (box, modelId) {
|
|
125871
125992
|
if (!box || !box.userData) return;
|
|
125872
|
-
box.userData.visible = isVisible &&
|
|
125993
|
+
box.userData.visible = isVisible && _this30.isSourceVisible(modelId);
|
|
125873
125994
|
});
|
|
125874
125995
|
}
|
|
125875
125996
|
if (this.scene) {
|
|
@@ -125882,7 +126003,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125882
126003
|
var instanceIndex = instanceInfo && typeof instanceInfo.instanceIndex === 'number' ? instanceInfo.instanceIndex : null;
|
|
125883
126004
|
if (instanceIndex === null) return;
|
|
125884
126005
|
var copyMatrix = instanceInfo.copyMatrix || userData.copyMatrix;
|
|
125885
|
-
if (isVisible &&
|
|
126006
|
+
if (isVisible && _this30.isSourceVisible(instanceId, child)) {
|
|
125886
126007
|
instanceInfo.visible = true;
|
|
125887
126008
|
matrixCache.copy(copyMatrix);
|
|
125888
126009
|
child.setMatrixAt(instanceIndex, matrixCache);
|
|
@@ -125890,7 +126011,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125890
126011
|
instanceInfo.visible = false;
|
|
125891
126012
|
matrixCache.copy(copyMatrix).makeTranslation(9999999, 9999999, 9999999);
|
|
125892
126013
|
child.setMatrixAt(instanceIndex, matrixCache);
|
|
125893
|
-
|
|
126014
|
+
_this30.removeOutlineObject(child, instanceIndex);
|
|
125894
126015
|
}
|
|
125895
126016
|
});
|
|
125896
126017
|
child.instanceMatrix.needsUpdate = true;
|
|
@@ -125915,7 +126036,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125915
126036
|
this.refreshCollisionObbDebug();
|
|
125916
126037
|
},
|
|
125917
126038
|
showOutlinePass: function showOutlinePass(instanceId) {
|
|
125918
|
-
var
|
|
126039
|
+
var _this31 = this;
|
|
125919
126040
|
var targetObj = this.getObjectByName(instanceId);
|
|
125920
126041
|
targetObj.forEach(function (children) {
|
|
125921
126042
|
if (children.isMesh) {
|
|
@@ -125923,27 +126044,27 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125923
126044
|
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);
|
|
125924
126045
|
if (!instanceInfo) return;
|
|
125925
126046
|
var instanceIndex = instanceInfo.instanceIndex;
|
|
125926
|
-
if (!
|
|
125927
|
-
|
|
126047
|
+
if (!_this31.isSourceVisible(instanceId, children)) {
|
|
126048
|
+
_this31.removeOutlineObject(children, instanceIndex);
|
|
125928
126049
|
return;
|
|
125929
126050
|
}
|
|
125930
|
-
if (!
|
|
125931
|
-
|
|
126051
|
+
if (!_this31.isCurrentVisible(instanceId, children)) {
|
|
126052
|
+
_this31.removeOutlineObject(children, instanceIndex);
|
|
125932
126053
|
return;
|
|
125933
126054
|
}
|
|
125934
|
-
if (
|
|
126055
|
+
if (_this31.outlinePass) {
|
|
125935
126056
|
if (children.isInstancedMesh) {
|
|
125936
|
-
var proxy =
|
|
125937
|
-
|
|
126057
|
+
var proxy = _this31.ensureOutlineInstanceProxy(children, instanceIndex);
|
|
126058
|
+
_this31.pushOutlineTarget(proxy);
|
|
125938
126059
|
} else {
|
|
125939
|
-
|
|
126060
|
+
_this31.pushOutlineTarget(children);
|
|
125940
126061
|
}
|
|
125941
126062
|
}
|
|
125942
126063
|
}
|
|
125943
126064
|
});
|
|
125944
126065
|
},
|
|
125945
126066
|
hideOutlinePass: function hideOutlinePass(instanceId) {
|
|
125946
|
-
var
|
|
126067
|
+
var _this32 = this;
|
|
125947
126068
|
var targetObj = this.getObjectByName(instanceId);
|
|
125948
126069
|
targetObj.forEach(function (children) {
|
|
125949
126070
|
if (children.isMesh) {
|
|
@@ -125951,7 +126072,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125951
126072
|
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);
|
|
125952
126073
|
if (!instanceInfo) return;
|
|
125953
126074
|
var instanceIndex = instanceInfo.instanceIndex;
|
|
125954
|
-
|
|
126075
|
+
_this32.removeOutlineObject(children, instanceIndex);
|
|
125955
126076
|
}
|
|
125956
126077
|
});
|
|
125957
126078
|
},
|
|
@@ -125974,17 +126095,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
125974
126095
|
},
|
|
125975
126096
|
// 修改材质的自定义数据
|
|
125976
126097
|
updateMaterialUserData: function updateMaterialUserData(list) {
|
|
125977
|
-
var
|
|
126098
|
+
var _this33 = this;
|
|
125978
126099
|
var _loop3 = function _loop3() {
|
|
125979
126100
|
var ele = list[index];
|
|
125980
126101
|
var instanceId = ele.name;
|
|
125981
|
-
var targetObj =
|
|
126102
|
+
var targetObj = _this33.getObjectByName(instanceId);
|
|
125982
126103
|
var _loop4 = function _loop4(key) {
|
|
125983
126104
|
switch (key) {
|
|
125984
126105
|
case 'nColor':
|
|
125985
126106
|
targetObj.forEach(function (children) {
|
|
125986
126107
|
if (children.isMesh) {
|
|
125987
|
-
children.material.userData[key] = new
|
|
126108
|
+
children.material.userData[key] = new _this33.THREE.Color(ele.attr[key]);
|
|
125988
126109
|
}
|
|
125989
126110
|
});
|
|
125990
126111
|
break;
|
|
@@ -126000,12 +126121,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126000
126121
|
},
|
|
126001
126122
|
// 重置
|
|
126002
126123
|
resetMaterialUserData: function resetMaterialUserData(list) {
|
|
126003
|
-
var
|
|
126124
|
+
var _this34 = this;
|
|
126004
126125
|
console.log('resetMaterialUserData');
|
|
126005
126126
|
var _loop5 = function _loop5() {
|
|
126006
126127
|
var ele = list[index];
|
|
126007
126128
|
var instanceId = ele.name;
|
|
126008
|
-
var targetObj =
|
|
126129
|
+
var targetObj = _this34.getObjectByName(instanceId);
|
|
126009
126130
|
var _loop6 = function _loop6(key) {
|
|
126010
126131
|
switch (key) {
|
|
126011
126132
|
case 'nColor':
|
|
@@ -126033,11 +126154,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126033
126154
|
},
|
|
126034
126155
|
// 清除上一次的属性修改操作 为了方便业务平台参数跟updateProperty方法的参数一样
|
|
126035
126156
|
resetProperty: function resetProperty(list) {
|
|
126036
|
-
var
|
|
126157
|
+
var _this35 = this;
|
|
126037
126158
|
var _loop7 = function _loop7() {
|
|
126038
126159
|
var ele = list[index];
|
|
126039
126160
|
var instanceId = ele.name;
|
|
126040
|
-
var obj =
|
|
126161
|
+
var obj = _this35.getObjectByName(instanceId);
|
|
126041
126162
|
if (obj) {
|
|
126042
126163
|
for (var key in ele.attr) {
|
|
126043
126164
|
switch (key) {
|
|
@@ -126050,12 +126171,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126050
126171
|
var instanceIndex = instanceInfo.instanceIndex;
|
|
126051
126172
|
children.setColorAt(instanceIndex, children.material.userData.nColor);
|
|
126052
126173
|
children.instanceColor.needsUpdate = true;
|
|
126053
|
-
if (
|
|
126174
|
+
if (_this35.outlinePass) {
|
|
126054
126175
|
if (children.isInstancedMesh) {
|
|
126055
|
-
|
|
126176
|
+
_this35.removeOutlineInstanceProxy(children, instanceIndex);
|
|
126056
126177
|
} else {
|
|
126057
|
-
var idx =
|
|
126058
|
-
if (idx !== -1)
|
|
126178
|
+
var idx = _this35.outlinePass.selectedObjects.indexOf(children);
|
|
126179
|
+
if (idx !== -1) _this35.outlinePass.selectedObjects.splice(idx, 1);
|
|
126059
126180
|
}
|
|
126060
126181
|
}
|
|
126061
126182
|
}
|
|
@@ -126068,19 +126189,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126068
126189
|
if (!instanceInfo) return;
|
|
126069
126190
|
var instanceIndex = instanceInfo.instanceIndex,
|
|
126070
126191
|
copyMatrix = instanceInfo.copyMatrix;
|
|
126071
|
-
if (
|
|
126192
|
+
if (_this35.isSourceVisible(instanceId, children)) {
|
|
126072
126193
|
instanceInfo.visible = true;
|
|
126073
|
-
var restoreMatrix = new
|
|
126194
|
+
var restoreMatrix = new _this35.THREE.Matrix4().copy(copyMatrix);
|
|
126074
126195
|
children.setMatrixAt(instanceIndex, restoreMatrix);
|
|
126075
126196
|
} else {
|
|
126076
126197
|
instanceInfo.visible = false;
|
|
126077
|
-
var offsetMatrix = new
|
|
126198
|
+
var offsetMatrix = new _this35.THREE.Matrix4().copy(copyMatrix).makeTranslation(9999999, 9999999, 9999999);
|
|
126078
126199
|
children.setMatrixAt(instanceIndex, offsetMatrix);
|
|
126079
|
-
|
|
126200
|
+
_this35.removeOutlineObject(children, instanceIndex);
|
|
126080
126201
|
}
|
|
126081
126202
|
children.instanceMatrix.needsUpdate = true;
|
|
126082
126203
|
});
|
|
126083
|
-
|
|
126204
|
+
_this35.refreshCollisionObbDebug();
|
|
126084
126205
|
break;
|
|
126085
126206
|
}
|
|
126086
126207
|
case 'opacity':
|
|
@@ -126130,19 +126251,19 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126130
126251
|
// 定位到模型
|
|
126131
126252
|
// name 模型名称或运行态 uuid,可以是数组
|
|
126132
126253
|
locateModel: function locateModel(name) {
|
|
126133
|
-
var
|
|
126254
|
+
var _this36 = this;
|
|
126134
126255
|
if (!this.scene) return false;
|
|
126135
126256
|
if (Array.isArray(name)) {
|
|
126136
126257
|
var box3 = new this.THREE.Box3();
|
|
126137
126258
|
name.forEach(function (n) {
|
|
126138
|
-
var objectByUuid =
|
|
126259
|
+
var objectByUuid = _this36.getObjectByUuid(n);
|
|
126139
126260
|
if (objectByUuid) {
|
|
126140
|
-
|
|
126261
|
+
_this36.expandLocateBoxByObject(box3, objectByUuid);
|
|
126141
126262
|
return;
|
|
126142
126263
|
}
|
|
126143
|
-
var arr =
|
|
126264
|
+
var arr = _this36.getObjectByName(n);
|
|
126144
126265
|
arr.forEach(function (o) {
|
|
126145
|
-
|
|
126266
|
+
_this36.expandLocateBoxByObject(box3, o);
|
|
126146
126267
|
});
|
|
126147
126268
|
});
|
|
126148
126269
|
if (!box3.isEmpty()) {
|
|
@@ -126187,14 +126308,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126187
126308
|
}
|
|
126188
126309
|
*/
|
|
126189
126310
|
updatePropertyByCustom: function updatePropertyByCustom(params) {
|
|
126190
|
-
var
|
|
126311
|
+
var _this37 = this;
|
|
126191
126312
|
if (!this.scene) return;
|
|
126192
126313
|
this.scene.traverse(function (child) {
|
|
126193
126314
|
if (child.isMesh && child.userData[params.customName] === params.customValue) {
|
|
126194
126315
|
for (var key in params.attr) {
|
|
126195
126316
|
switch (key) {
|
|
126196
126317
|
case 'color':
|
|
126197
|
-
child.setColorAt(obj.userData.instanceIndex, new
|
|
126318
|
+
child.setColorAt(obj.userData.instanceIndex, new _this37.THREE.Color(params.attr[key]));
|
|
126198
126319
|
child.instanceColor.needsUpdate = true;
|
|
126199
126320
|
break;
|
|
126200
126321
|
case 'visible':
|
|
@@ -126277,14 +126398,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126277
126398
|
passType: 要过滤的类型,默认是group,不返回group类型的实体
|
|
126278
126399
|
*/
|
|
126279
126400
|
getObjectByName: function getObjectByName(name) {
|
|
126280
|
-
var
|
|
126401
|
+
var _this38 = this;
|
|
126281
126402
|
var passType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'group';
|
|
126282
126403
|
if (!this.scene) return [];
|
|
126283
126404
|
if (Array.isArray(name)) {
|
|
126284
126405
|
var result = [];
|
|
126285
126406
|
var exist = new Set();
|
|
126286
126407
|
name.forEach(function (item) {
|
|
126287
|
-
|
|
126408
|
+
_this38.getObjectByName(item, passType).forEach(function (obj) {
|
|
126288
126409
|
if (!obj || exist.has(obj.uuid)) return;
|
|
126289
126410
|
exist.add(obj.uuid);
|
|
126290
126411
|
result.push(obj);
|
|
@@ -126322,12 +126443,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126322
126443
|
return modelState.colorConfig;
|
|
126323
126444
|
},
|
|
126324
126445
|
addBypassCullingModelIds: function addBypassCullingModelIds(modelIds) {
|
|
126325
|
-
var
|
|
126446
|
+
var _this39 = this;
|
|
126326
126447
|
var modelState = this.noObserver ? this.noObserver.modelStateManager : this.modelStateManager;
|
|
126327
126448
|
if (!modelIds) return;
|
|
126328
126449
|
if (Array.isArray(modelIds)) {
|
|
126329
126450
|
modelIds.forEach(function (id) {
|
|
126330
|
-
var modelId =
|
|
126451
|
+
var modelId = _this39.formatModelId(id);
|
|
126331
126452
|
modelState.bypassCullingModelIds.add(modelId);
|
|
126332
126453
|
});
|
|
126333
126454
|
} else {
|
|
@@ -126340,12 +126461,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126340
126461
|
return com_graphicsvue_type_script_lang_js_toConsumableArray(modelState.bypassCullingModelIds);
|
|
126341
126462
|
},
|
|
126342
126463
|
removeBypassCullingModelIds: function removeBypassCullingModelIds(modelIds) {
|
|
126343
|
-
var
|
|
126464
|
+
var _this40 = this;
|
|
126344
126465
|
var modelState = this.noObserver ? this.noObserver.modelStateManager : this.modelStateManager;
|
|
126345
126466
|
if (!modelIds) return;
|
|
126346
126467
|
if (Array.isArray(modelIds)) {
|
|
126347
126468
|
modelIds.forEach(function (id) {
|
|
126348
|
-
var modelId =
|
|
126469
|
+
var modelId = _this40.formatModelId(id);
|
|
126349
126470
|
modelState.bypassCullingModelIds.delete(modelId);
|
|
126350
126471
|
});
|
|
126351
126472
|
} else {
|
|
@@ -126359,7 +126480,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126359
126480
|
},
|
|
126360
126481
|
// 通过id删除对象
|
|
126361
126482
|
removeObjectById: function removeObjectById(id) {
|
|
126362
|
-
var
|
|
126483
|
+
var _this41 = this;
|
|
126363
126484
|
if (!this.scene) return;
|
|
126364
126485
|
var array = this.getObjectByName(id);
|
|
126365
126486
|
array.forEach(function (item) {
|
|
@@ -126369,13 +126490,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126369
126490
|
if (item.isMesh) {
|
|
126370
126491
|
item.clear();
|
|
126371
126492
|
}
|
|
126372
|
-
|
|
126493
|
+
_this41.scene.remove(item);
|
|
126373
126494
|
}
|
|
126374
126495
|
});
|
|
126375
126496
|
},
|
|
126376
126497
|
// 通过名称删除对象
|
|
126377
126498
|
removeObjectByName: function removeObjectByName(name) {
|
|
126378
|
-
var
|
|
126499
|
+
var _this42 = this;
|
|
126379
126500
|
if (!this.scene) return;
|
|
126380
126501
|
var array = this.getObjectByName(name);
|
|
126381
126502
|
array.forEach(function (item) {
|
|
@@ -126384,17 +126505,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126384
126505
|
if (item.isMesh) {
|
|
126385
126506
|
item.clear();
|
|
126386
126507
|
}
|
|
126387
|
-
if (
|
|
126508
|
+
if (_this42.scene) _this42.scene.remove(item);
|
|
126388
126509
|
});
|
|
126389
126510
|
},
|
|
126390
126511
|
// 删除场景中所有的实体
|
|
126391
126512
|
removeAll: function removeAll() {
|
|
126392
|
-
var
|
|
126513
|
+
var _this43 = this;
|
|
126393
126514
|
return new Promise(function (resolve) {
|
|
126394
|
-
if (
|
|
126395
|
-
|
|
126396
|
-
|
|
126397
|
-
|
|
126515
|
+
if (_this43.scene) {
|
|
126516
|
+
_this43.removeAllCustomElements();
|
|
126517
|
+
_this43.removeTraverse();
|
|
126518
|
+
_this43.removeModelByDocumentId();
|
|
126398
126519
|
resolve();
|
|
126399
126520
|
} else {
|
|
126400
126521
|
resolve();
|
|
@@ -126402,7 +126523,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126402
126523
|
});
|
|
126403
126524
|
},
|
|
126404
126525
|
removeTraverse: function removeTraverse() {
|
|
126405
|
-
var
|
|
126526
|
+
var _this44 = this;
|
|
126406
126527
|
if (!this.modelGroup) return;
|
|
126407
126528
|
var length = this.modelGroup.children.length;
|
|
126408
126529
|
if (length > 0) {
|
|
@@ -126415,7 +126536,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126415
126536
|
item.clear();
|
|
126416
126537
|
item.material = null;
|
|
126417
126538
|
item.geometry = null;
|
|
126418
|
-
|
|
126539
|
+
_this44.modelGroup && _this44.modelGroup.remove(item);
|
|
126419
126540
|
item = null;
|
|
126420
126541
|
}
|
|
126421
126542
|
});
|
|
@@ -126432,7 +126553,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126432
126553
|
},
|
|
126433
126554
|
// 销毁场景 释放内存
|
|
126434
126555
|
destroyScene: function destroyScene() {
|
|
126435
|
-
var
|
|
126556
|
+
var _this45 = this;
|
|
126436
126557
|
cancelAnimationFrame(this.animateId);
|
|
126437
126558
|
this.disposeTransformControls();
|
|
126438
126559
|
if (this.sceneCommandEventDisposers.length > 0) {
|
|
@@ -126447,11 +126568,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126447
126568
|
}
|
|
126448
126569
|
if (this.noObserver && this.noObserver.outlineInstanceProxyMap) {
|
|
126449
126570
|
this.noObserver.outlineInstanceProxyMap.forEach(function (proxy) {
|
|
126450
|
-
if (
|
|
126451
|
-
var idx =
|
|
126452
|
-
if (idx !== -1)
|
|
126571
|
+
if (_this45.outlinePass) {
|
|
126572
|
+
var idx = _this45.outlinePass.selectedObjects.indexOf(proxy);
|
|
126573
|
+
if (idx !== -1) _this45.outlinePass.selectedObjects.splice(idx, 1);
|
|
126453
126574
|
}
|
|
126454
|
-
if (
|
|
126575
|
+
if (_this45.scene) _this45.scene.remove(proxy);
|
|
126455
126576
|
if (proxy && proxy.material && proxy.material.dispose) proxy.material.dispose();
|
|
126456
126577
|
});
|
|
126457
126578
|
this.noObserver.outlineInstanceProxyMap.clear();
|
|
@@ -126566,11 +126687,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126566
126687
|
}
|
|
126567
126688
|
*/
|
|
126568
126689
|
drawCurve: function drawCurve(params) {
|
|
126569
|
-
var
|
|
126690
|
+
var _this46 = this;
|
|
126570
126691
|
this.removeObjectByName(params.name);
|
|
126571
126692
|
var route = [];
|
|
126572
126693
|
params.path.forEach(function (element) {
|
|
126573
|
-
route.push(new
|
|
126694
|
+
route.push(new _this46.THREE.Vector3(element.x, element.y, element.z));
|
|
126574
126695
|
});
|
|
126575
126696
|
if (route.length > 1) {
|
|
126576
126697
|
this.curve = new this.THREE.CatmullRomCurve3(route);
|
|
@@ -126594,11 +126715,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126594
126715
|
}
|
|
126595
126716
|
*/
|
|
126596
126717
|
drawTextureCurve: function drawTextureCurve(params) {
|
|
126597
|
-
var
|
|
126718
|
+
var _this47 = this;
|
|
126598
126719
|
this.removeObjectByName(params.name);
|
|
126599
126720
|
var route = [];
|
|
126600
126721
|
params.path.forEach(function (element) {
|
|
126601
|
-
route.push(new
|
|
126722
|
+
route.push(new _this47.THREE.Vector3(element.x, element.y, element.z));
|
|
126602
126723
|
});
|
|
126603
126724
|
// 画曲线
|
|
126604
126725
|
if (route.length > 1) {
|
|
@@ -126703,14 +126824,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126703
126824
|
* 参数val: 爆炸的值
|
|
126704
126825
|
*/
|
|
126705
126826
|
globalBomb: function globalBomb(val) {
|
|
126706
|
-
var
|
|
126827
|
+
var _this48 = this;
|
|
126707
126828
|
if (this.scene.children.length === 0) return;
|
|
126708
126829
|
for (var i = 0; i < this.scene.children.length; i++) {
|
|
126709
126830
|
console.log('this.scene', this.scene);
|
|
126710
126831
|
this.scene.children[i].traverse(function (item) {
|
|
126711
126832
|
if (!item.isMesh || !item.worldDir) return;
|
|
126712
126833
|
// 爆炸公式
|
|
126713
|
-
|
|
126834
|
+
_this48.computedBomb(item, val);
|
|
126714
126835
|
});
|
|
126715
126836
|
}
|
|
126716
126837
|
// this.timeRender();
|
|
@@ -126753,13 +126874,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126753
126874
|
return object.type === 'CSS2DObject' || object.type === 'TransformControlsRoot';
|
|
126754
126875
|
},
|
|
126755
126876
|
getGlobalClippingRoots: function getGlobalClippingRoots() {
|
|
126756
|
-
var
|
|
126877
|
+
var _this49 = this;
|
|
126757
126878
|
if (this.modelGroup && this.modelGroup.children && this.modelGroup.children.length) {
|
|
126758
126879
|
return [this.modelGroup];
|
|
126759
126880
|
}
|
|
126760
126881
|
if (!this.scene || !this.scene.children || this.scene.children.length === 0) return [];
|
|
126761
126882
|
return this.scene.children.filter(function (child) {
|
|
126762
|
-
return !
|
|
126883
|
+
return !_this49.isGlobalClippingExcludedNode(child);
|
|
126763
126884
|
});
|
|
126764
126885
|
},
|
|
126765
126886
|
getGlobalClippingBox: function getGlobalClippingBox() {
|
|
@@ -126990,11 +127111,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
126990
127111
|
},
|
|
126991
127112
|
// 开启第一视角
|
|
126992
127113
|
startFirstPer: function startFirstPer(options) {
|
|
126993
|
-
var
|
|
126994
|
-
|
|
126995
|
-
moveSpeed =
|
|
126996
|
-
|
|
126997
|
-
jumpSpeed =
|
|
127114
|
+
var _ref6 = options || {},
|
|
127115
|
+
_ref6$moveSpeed = _ref6.moveSpeed,
|
|
127116
|
+
moveSpeed = _ref6$moveSpeed === void 0 ? 200 : _ref6$moveSpeed,
|
|
127117
|
+
_ref6$jumpSpeed = _ref6.jumpSpeed,
|
|
127118
|
+
jumpSpeed = _ref6$jumpSpeed === void 0 ? 200 : _ref6$jumpSpeed;
|
|
126998
127119
|
this.removeSpeed = this.getFirstPersonMoveSpeed(moveSpeed);
|
|
126999
127120
|
var jumpConfig = this.getFirstPersonJumpConfig(jumpSpeed);
|
|
127000
127121
|
this.upSpeed = jumpConfig.jumpSpeed;
|
|
@@ -127008,71 +127129,71 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127008
127129
|
},
|
|
127009
127130
|
// 页面是否锁定
|
|
127010
127131
|
initPointerLock: function initPointerLock() {
|
|
127011
|
-
var
|
|
127132
|
+
var _this50 = this;
|
|
127012
127133
|
this.home();
|
|
127013
127134
|
setTimeout(function () {
|
|
127014
127135
|
// 开启第一视角时,将相机与水平面保持水平
|
|
127015
|
-
|
|
127016
|
-
|
|
127017
|
-
|
|
127018
|
-
|
|
127019
|
-
if (!
|
|
127020
|
-
|
|
127021
|
-
if (typeof
|
|
127022
|
-
|
|
127136
|
+
_this50.camera.rotation.x = 0;
|
|
127137
|
+
_this50.camera.rotation.z = 0;
|
|
127138
|
+
_this50.pointControls = new PointerLockControls(_this50.camera, _this50.renderer.domElement);
|
|
127139
|
+
_this50.pointControls.lock();
|
|
127140
|
+
if (!_this50._onFirstPersonChange) {
|
|
127141
|
+
_this50._onFirstPersonChange = function () {
|
|
127142
|
+
if (typeof _this50._cameraChangeObserver === 'function') {
|
|
127143
|
+
_this50._cameraChangeObserver('firstPerson');
|
|
127023
127144
|
}
|
|
127024
127145
|
};
|
|
127025
127146
|
}
|
|
127026
127147
|
try {
|
|
127027
|
-
|
|
127148
|
+
_this50.pointControls.addEventListener('change', _this50._onFirstPersonChange);
|
|
127028
127149
|
} catch (e) {}
|
|
127029
127150
|
// 锁定
|
|
127030
|
-
|
|
127031
|
-
|
|
127032
|
-
if (
|
|
127033
|
-
|
|
127151
|
+
_this50.pointControls.addEventListener('lock', function () {
|
|
127152
|
+
_this50.detachTransformControls();
|
|
127153
|
+
if (_this50.cameraControls) {
|
|
127154
|
+
_this50.cameraControls.enabled = false;
|
|
127034
127155
|
}
|
|
127035
|
-
window.addEventListener('keydown',
|
|
127036
|
-
window.addEventListener('keyup',
|
|
127037
|
-
|
|
127038
|
-
if (typeof
|
|
127039
|
-
|
|
127156
|
+
window.addEventListener('keydown', _this50.onKeyDown, false);
|
|
127157
|
+
window.addEventListener('keyup', _this50.onKeyUp, false);
|
|
127158
|
+
_this50.unbindScenePointerEvents();
|
|
127159
|
+
if (typeof _this50._cameraChangeObserver === 'function') {
|
|
127160
|
+
_this50._cameraChangeObserver('firstPersonLock');
|
|
127040
127161
|
}
|
|
127041
127162
|
});
|
|
127042
127163
|
// 解锁
|
|
127043
|
-
|
|
127044
|
-
|
|
127045
|
-
if (
|
|
127046
|
-
|
|
127164
|
+
_this50.pointControls.addEventListener('unlock', function () {
|
|
127165
|
+
_this50.firstPerSign = false;
|
|
127166
|
+
if (_this50.cameraControls) {
|
|
127167
|
+
_this50.cameraControls.enabled = true;
|
|
127047
127168
|
}
|
|
127048
127169
|
// 返回初始视角
|
|
127049
|
-
if (
|
|
127050
|
-
|
|
127170
|
+
if (_this50.cameraControls && _this50.camera && _this50.sceneBoundingBox) {
|
|
127171
|
+
_this50.home();
|
|
127051
127172
|
}
|
|
127052
127173
|
try {
|
|
127053
|
-
if (
|
|
127054
|
-
|
|
127174
|
+
if (_this50._onFirstPersonChange && _this50.pointControls) {
|
|
127175
|
+
_this50.pointControls.removeEventListener('change', _this50._onFirstPersonChange);
|
|
127055
127176
|
}
|
|
127056
127177
|
} catch (e) {}
|
|
127057
|
-
if (
|
|
127058
|
-
|
|
127178
|
+
if (_this50.noObserver) {
|
|
127179
|
+
_this50.noObserver._firstPersonLastPos = null;
|
|
127059
127180
|
}
|
|
127060
127181
|
setTimeout(function () {
|
|
127061
|
-
window.removeEventListener('keydown',
|
|
127062
|
-
window.removeEventListener('keyup',
|
|
127063
|
-
if (
|
|
127064
|
-
|
|
127182
|
+
window.removeEventListener('keydown', _this50.onKeyDown);
|
|
127183
|
+
window.removeEventListener('keyup', _this50.onKeyUp);
|
|
127184
|
+
if (_this50.renderer && _this50.renderer.domElement) {
|
|
127185
|
+
_this50.bindScenePointerEvents();
|
|
127065
127186
|
}
|
|
127066
|
-
if (
|
|
127067
|
-
|
|
127187
|
+
if (_this50.scene) {
|
|
127188
|
+
_this50.ensureTransformSelectionValid();
|
|
127068
127189
|
}
|
|
127069
127190
|
// this.timeRender()
|
|
127070
127191
|
}, 0);
|
|
127071
|
-
if (typeof
|
|
127072
|
-
|
|
127192
|
+
if (typeof _this50._cameraChangeObserver === 'function') {
|
|
127193
|
+
_this50._cameraChangeObserver('firstPersonUnlock');
|
|
127073
127194
|
}
|
|
127074
127195
|
});
|
|
127075
|
-
if (
|
|
127196
|
+
if (_this50.scene) _this50.scene.add(_this50.pointControls.object);
|
|
127076
127197
|
}, 10);
|
|
127077
127198
|
},
|
|
127078
127199
|
// 第一视角运动
|
|
@@ -127227,7 +127348,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127227
127348
|
return this.scene && this.scene.children ? this.scene.children : [];
|
|
127228
127349
|
},
|
|
127229
127350
|
openMeasure: function openMeasure(type) {
|
|
127230
|
-
var
|
|
127351
|
+
var _this51 = this;
|
|
127231
127352
|
var isClear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
127232
127353
|
if (this.threeMeasure) {
|
|
127233
127354
|
this.threeMeasure.close(isClear);
|
|
@@ -127239,7 +127360,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127239
127360
|
case 'distance':
|
|
127240
127361
|
this.threeMeasure = new measure_distance.MeasureDistance(this.renderer, this.scene, this.camera, this.instructions.offsetWidth, this.instructions.offsetHeight, {
|
|
127241
127362
|
pickRoots: function pickRoots() {
|
|
127242
|
-
return
|
|
127363
|
+
return _this51.getMeasurePickRoots();
|
|
127243
127364
|
}
|
|
127244
127365
|
});
|
|
127245
127366
|
this.threeMeasure.start();
|
|
@@ -127247,7 +127368,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127247
127368
|
case 'area':
|
|
127248
127369
|
this.threeMeasure = new measure_area.MeasureArea(this.renderer, this.scene, this.camera, this.instructions.offsetWidth, this.instructions.offsetHeight, {
|
|
127249
127370
|
pickRoots: function pickRoots() {
|
|
127250
|
-
return
|
|
127371
|
+
return _this51.getMeasurePickRoots();
|
|
127251
127372
|
}
|
|
127252
127373
|
});
|
|
127253
127374
|
this.threeMeasure.start();
|
|
@@ -127255,7 +127376,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127255
127376
|
case 'angle':
|
|
127256
127377
|
this.threeMeasure = new measure_angle.MeasureAngle(this.renderer, this.scene, this.camera, this.instructions.offsetWidth, this.instructions.offsetHeight, {
|
|
127257
127378
|
pickRoots: function pickRoots() {
|
|
127258
|
-
return
|
|
127379
|
+
return _this51.getMeasurePickRoots();
|
|
127259
127380
|
}
|
|
127260
127381
|
});
|
|
127261
127382
|
this.threeMeasure.start();
|
|
@@ -127263,7 +127384,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127263
127384
|
case 'height':
|
|
127264
127385
|
this.threeMeasure = new measure_height.MeasureHeight(this.renderer, this.scene, this.camera, this.instructions.offsetWidth, this.instructions.offsetHeight, {
|
|
127265
127386
|
pickRoots: function pickRoots() {
|
|
127266
|
-
return
|
|
127387
|
+
return _this51.getMeasurePickRoots();
|
|
127267
127388
|
}
|
|
127268
127389
|
});
|
|
127269
127390
|
this.threeMeasure.start();
|
|
@@ -127309,11 +127430,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127309
127430
|
return object.name === 'measureObj' || userData.isMeasureObject === true;
|
|
127310
127431
|
},
|
|
127311
127432
|
removeMeasureObjectsFromScene: function removeMeasureObjectsFromScene() {
|
|
127312
|
-
var
|
|
127433
|
+
var _this52 = this;
|
|
127313
127434
|
if (!this.scene) return;
|
|
127314
127435
|
var measureObjects = [];
|
|
127315
127436
|
this.scene.traverse(function (object) {
|
|
127316
|
-
if (
|
|
127437
|
+
if (_this52.isMeasureObject(object)) {
|
|
127317
127438
|
measureObjects.push(object);
|
|
127318
127439
|
}
|
|
127319
127440
|
});
|
|
@@ -127321,9 +127442,9 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127321
127442
|
if (object.parent) {
|
|
127322
127443
|
object.parent.remove(object);
|
|
127323
127444
|
} else {
|
|
127324
|
-
|
|
127445
|
+
_this52.scene.remove(object);
|
|
127325
127446
|
}
|
|
127326
|
-
|
|
127447
|
+
_this52.disposeMeasureObject(object);
|
|
127327
127448
|
});
|
|
127328
127449
|
},
|
|
127329
127450
|
// 增加一个清除所有测量结果的方法,清理历史测量实例遗留的对象
|
|
@@ -127396,12 +127517,12 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127396
127517
|
参数: object, 目标实体,
|
|
127397
127518
|
*/
|
|
127398
127519
|
isolate: function isolate(object) {
|
|
127399
|
-
var
|
|
127520
|
+
var _this53 = this;
|
|
127400
127521
|
if (!this.scene) return;
|
|
127401
127522
|
// 隔离 将目标实体以外的实体隐藏掉
|
|
127402
127523
|
this.scene.traverse(function (item) {
|
|
127403
127524
|
if (item.isMesh && item.name !== object.name) {
|
|
127404
|
-
var offsetMatrix = new
|
|
127525
|
+
var offsetMatrix = new _this53.THREE.Matrix4().copy(item.userData.copyMatrix).makeTranslation(9999999, 9999999, 9999999);
|
|
127405
127526
|
item.setMatrixAt(item.userData.instanceIndex, offsetMatrix);
|
|
127406
127527
|
item.instanceMatrix.needsUpdate = true;
|
|
127407
127528
|
}
|
|
@@ -127409,7 +127530,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127409
127530
|
},
|
|
127410
127531
|
// 还原操作 将修改过的实体进行恢复
|
|
127411
127532
|
restore: function restore() {
|
|
127412
|
-
var
|
|
127533
|
+
var _this54 = this;
|
|
127413
127534
|
if (!this.scene) return;
|
|
127414
127535
|
this.scene.traverse(function (item) {
|
|
127415
127536
|
if (item.isMesh) {
|
|
@@ -127431,20 +127552,20 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127431
127552
|
item.userData.translateMatrixInvert = null;
|
|
127432
127553
|
}
|
|
127433
127554
|
if (item.userData.combineMatrixInvert) {
|
|
127434
|
-
|
|
127555
|
+
_this54.rotateMesh(item, {
|
|
127435
127556
|
x: 0,
|
|
127436
127557
|
y: 0,
|
|
127437
127558
|
z: 0
|
|
127438
127559
|
});
|
|
127439
127560
|
item.userData.combineMatrixInvert = null;
|
|
127440
127561
|
}
|
|
127441
|
-
var copyMatrix =
|
|
127562
|
+
var copyMatrix = _this54.getInstanceCopyMatrix(item, instanceId);
|
|
127442
127563
|
if (!copyMatrix) return;
|
|
127443
|
-
var sourceHidden =
|
|
127444
|
-
var offsetMatrix = new
|
|
127564
|
+
var sourceHidden = _this54.isSourceHiddenInstance(item, instanceId);
|
|
127565
|
+
var offsetMatrix = new _this54.THREE.Matrix4().copy(copyMatrix);
|
|
127445
127566
|
if (sourceHidden) {
|
|
127446
127567
|
offsetMatrix.makeTranslation(9999999, 9999999, 9999999);
|
|
127447
|
-
|
|
127568
|
+
_this54.removeOutlineInstanceProxy(item, item.userData.instanceIndex);
|
|
127448
127569
|
}
|
|
127449
127570
|
item.setMatrixAt(item.userData.instanceIndex, offsetMatrix);
|
|
127450
127571
|
item.instanceMatrix.needsUpdate = true;
|
|
@@ -127453,7 +127574,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127453
127574
|
},
|
|
127454
127575
|
// 添加自定义模型, 暂时只支持glb、gltf格式
|
|
127455
127576
|
addCustomModel: function addCustomModel(name, position, url) {
|
|
127456
|
-
var
|
|
127577
|
+
var _this55 = this;
|
|
127457
127578
|
var scale = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
127458
127579
|
var immediately = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
127459
127580
|
var callback = arguments.length > 5 ? arguments[5] : undefined;
|
|
@@ -127464,41 +127585,41 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127464
127585
|
locationModel.scale.set(scale, scale, scale);
|
|
127465
127586
|
locationModel.updateMatrixWorld();
|
|
127466
127587
|
if (immediately) {
|
|
127467
|
-
|
|
127588
|
+
_this55.cameraControls.fitToSphere(gltf.this.scene, true);
|
|
127468
127589
|
}
|
|
127469
127590
|
// 动画混合器
|
|
127470
127591
|
// 不参与裁剪
|
|
127471
127592
|
locationModel.userData.cull = false;
|
|
127472
127593
|
locationModel.name = name;
|
|
127473
|
-
if (
|
|
127474
|
-
locationModel.position.copy(new
|
|
127594
|
+
if (_this55.scene) _this55.scene.add(locationModel);
|
|
127595
|
+
locationModel.position.copy(new _this55.THREE.Vector3(position.x, position.y, position.z));
|
|
127475
127596
|
if (gltf.animations.length > 0) {
|
|
127476
|
-
var actionMixer = new
|
|
127597
|
+
var actionMixer = new _this55.THREE.AnimationMixer(gltf.this.scene);
|
|
127477
127598
|
var walkActive = actionMixer.clipAction(gltf.animations[0]);
|
|
127478
127599
|
walkActive.play();
|
|
127479
|
-
|
|
127480
|
-
|
|
127600
|
+
_this55.modelActive.push(walkActive);
|
|
127601
|
+
_this55.modelActions.push(actionMixer);
|
|
127481
127602
|
}
|
|
127482
127603
|
callback && callback();
|
|
127483
127604
|
});
|
|
127484
127605
|
},
|
|
127485
127606
|
// 删除添加的自定义模型
|
|
127486
127607
|
removeCustomModel: function removeCustomModel(name) {
|
|
127487
|
-
var
|
|
127608
|
+
var _this56 = this;
|
|
127488
127609
|
var obj = this.getObjectByName(name);
|
|
127489
127610
|
obj.forEach(function (item, index) {
|
|
127490
127611
|
if (item.animations > 0) {
|
|
127491
127612
|
item.removeFromParent();
|
|
127492
|
-
|
|
127493
|
-
|
|
127613
|
+
_this56.modelActions[index].uncacheRoot(item);
|
|
127614
|
+
_this56.modelActions[index].uncacheRoot(_this56.modelActive[index]);
|
|
127494
127615
|
}
|
|
127495
127616
|
item.traverse(function (child) {
|
|
127496
|
-
if (child instanceof
|
|
127617
|
+
if (child instanceof _this56.THREE.Mesh) {
|
|
127497
127618
|
child.geometry.dispose();
|
|
127498
127619
|
child.material.dispose();
|
|
127499
127620
|
}
|
|
127500
127621
|
});
|
|
127501
|
-
if (
|
|
127622
|
+
if (_this56.scene) _this56.scene.remove(item);
|
|
127502
127623
|
});
|
|
127503
127624
|
this.modelActions.splice(0);
|
|
127504
127625
|
this.modelActive.splice(0);
|
|
@@ -127560,7 +127681,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127560
127681
|
return size;
|
|
127561
127682
|
},
|
|
127562
127683
|
animate: function animate() {
|
|
127563
|
-
var
|
|
127684
|
+
var _this57 = this;
|
|
127564
127685
|
if (isDebug) {
|
|
127565
127686
|
this.stats && this.stats.begin(); // 开始帧率统计
|
|
127566
127687
|
}
|
|
@@ -127574,7 +127695,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127574
127695
|
if (this.timeStamp > singleFrameTime) {
|
|
127575
127696
|
if (this.modelActions.length > 0) {
|
|
127576
127697
|
this.modelActions.forEach(function (item) {
|
|
127577
|
-
item.update(
|
|
127698
|
+
item.update(_this57.timeStamp);
|
|
127578
127699
|
});
|
|
127579
127700
|
}
|
|
127580
127701
|
this.cameraControls.enabled && this.cameraControls.update(this.timeStamp);
|
|
@@ -127751,6 +127872,14 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127751
127872
|
var onProgress = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
127752
127873
|
var onComplete = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
127753
127874
|
var loadingState = this.noObserver ? this.noObserver.batchLoadingState : this.batchLoadingState;
|
|
127875
|
+
var rect = this.renderer ? this.renderer.domElement.getBoundingClientRect() : {
|
|
127876
|
+
width: window.innerWidth,
|
|
127877
|
+
height: window.innerHeight
|
|
127878
|
+
};
|
|
127879
|
+
options.meshLineResolution = {
|
|
127880
|
+
width: rect.width || window.innerWidth || 1,
|
|
127881
|
+
height: rect.height || window.innerHeight || 1
|
|
127882
|
+
};
|
|
127754
127883
|
// 如果已经在加载中,先停止之前的加载
|
|
127755
127884
|
if (loadingState.isLoading) {
|
|
127756
127885
|
this.stopBatchLoading('restart');
|
|
@@ -127932,25 +128061,25 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127932
128061
|
* 加载下一批数据
|
|
127933
128062
|
*/
|
|
127934
128063
|
loadNextBatch: function loadNextBatch() {
|
|
127935
|
-
var
|
|
128064
|
+
var _this58 = this;
|
|
127936
128065
|
return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee1() {
|
|
127937
128066
|
var loadingState, batch, _t3;
|
|
127938
128067
|
return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context1) {
|
|
127939
128068
|
while (1) switch (_context1.p = _context1.n) {
|
|
127940
128069
|
case 0:
|
|
127941
|
-
loadingState =
|
|
127942
|
-
if (
|
|
128070
|
+
loadingState = _this58.noObserver ? _this58.noObserver.batchLoadingState : _this58.batchLoadingState;
|
|
128071
|
+
if (_this58.isBatchLoadingSceneReady()) {
|
|
127943
128072
|
_context1.n = 1;
|
|
127944
128073
|
break;
|
|
127945
128074
|
}
|
|
127946
|
-
|
|
128075
|
+
_this58.stopBatchLoading('scene_unavailable');
|
|
127947
128076
|
return _context1.a(2);
|
|
127948
128077
|
case 1:
|
|
127949
128078
|
if (!(!loadingState.isLoading || loadingState.currentBatch >= loadingState.pendingData.length)) {
|
|
127950
128079
|
_context1.n = 2;
|
|
127951
128080
|
break;
|
|
127952
128081
|
}
|
|
127953
|
-
|
|
128082
|
+
_this58.completeBatchLoading();
|
|
127954
128083
|
return _context1.a(2);
|
|
127955
128084
|
case 2:
|
|
127956
128085
|
if (!loadingState.isPaused) {
|
|
@@ -127959,7 +128088,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127959
128088
|
}
|
|
127960
128089
|
// 如果暂停,延迟一段时间后再次检查
|
|
127961
128090
|
loadingState.animationFrameId = requestAnimationFrame(function () {
|
|
127962
|
-
|
|
128091
|
+
_this58.loadNextBatch();
|
|
127963
128092
|
});
|
|
127964
128093
|
return _context1.a(2);
|
|
127965
128094
|
case 3:
|
|
@@ -127969,7 +128098,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127969
128098
|
}
|
|
127970
128099
|
// 如果正在交互,延迟一段时间后再次检查
|
|
127971
128100
|
loadingState.animationFrameId = requestAnimationFrame(function () {
|
|
127972
|
-
|
|
128101
|
+
_this58.loadNextBatch();
|
|
127973
128102
|
});
|
|
127974
128103
|
return _context1.a(2);
|
|
127975
128104
|
case 4:
|
|
@@ -127978,13 +128107,13 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127978
128107
|
_context1.n = 5;
|
|
127979
128108
|
break;
|
|
127980
128109
|
}
|
|
127981
|
-
|
|
128110
|
+
_this58.completeBatchLoading();
|
|
127982
128111
|
return _context1.a(2);
|
|
127983
128112
|
case 5:
|
|
127984
128113
|
_context1.p = 5;
|
|
127985
128114
|
console.log('加载批次:', loadingState.currentBatch);
|
|
127986
128115
|
_context1.n = 6;
|
|
127987
|
-
return
|
|
128116
|
+
return _this58.processWithMainThread(batch);
|
|
127988
128117
|
case 6:
|
|
127989
128118
|
if (loadingState.isLoading) {
|
|
127990
128119
|
_context1.n = 7;
|
|
@@ -127992,11 +128121,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
127992
128121
|
}
|
|
127993
128122
|
return _context1.a(2);
|
|
127994
128123
|
case 7:
|
|
127995
|
-
if (
|
|
128124
|
+
if (_this58.isBatchLoadingSceneReady()) {
|
|
127996
128125
|
_context1.n = 8;
|
|
127997
128126
|
break;
|
|
127998
128127
|
}
|
|
127999
|
-
|
|
128128
|
+
_this58.stopBatchLoading('scene_unavailable');
|
|
128000
128129
|
return _context1.a(2);
|
|
128001
128130
|
case 8:
|
|
128002
128131
|
// 更新进度
|
|
@@ -128004,8 +128133,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128004
128133
|
loadingState.currentBatch++;
|
|
128005
128134
|
|
|
128006
128135
|
// 同步到响应式状态
|
|
128007
|
-
|
|
128008
|
-
|
|
128136
|
+
_this58.batchLoadingState.loadedCount = loadingState.loadedCount;
|
|
128137
|
+
_this58.batchLoadingState.currentBatch = loadingState.currentBatch;
|
|
128009
128138
|
|
|
128010
128139
|
// 调用进度回调
|
|
128011
128140
|
if (loadingState.onProgress) {
|
|
@@ -128019,7 +128148,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128019
128148
|
|
|
128020
128149
|
// 使用 requestAnimationFrame 在下一帧继续加载
|
|
128021
128150
|
loadingState.animationFrameId = requestAnimationFrame(function () {
|
|
128022
|
-
|
|
128151
|
+
_this58.loadNextBatch();
|
|
128023
128152
|
});
|
|
128024
128153
|
_context1.n = 10;
|
|
128025
128154
|
break;
|
|
@@ -128030,7 +128159,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128030
128159
|
|
|
128031
128160
|
// 继续下一批次
|
|
128032
128161
|
loadingState.animationFrameId = requestAnimationFrame(function () {
|
|
128033
|
-
|
|
128162
|
+
_this58.loadNextBatch();
|
|
128034
128163
|
});
|
|
128035
128164
|
case 10:
|
|
128036
128165
|
return _context1.a(2);
|
|
@@ -128042,20 +128171,20 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128042
128171
|
* 使用主线程处理批次数据
|
|
128043
128172
|
*/
|
|
128044
128173
|
processWithMainThread: function processWithMainThread(batch) {
|
|
128045
|
-
var
|
|
128174
|
+
var _this59 = this;
|
|
128046
128175
|
return com_graphicsvue_type_script_lang_js_asyncToGenerator(/*#__PURE__*/com_graphicsvue_type_script_lang_js_regenerator().m(function _callee10() {
|
|
128047
128176
|
var loadingState;
|
|
128048
128177
|
return com_graphicsvue_type_script_lang_js_regenerator().w(function (_context10) {
|
|
128049
128178
|
while (1) switch (_context10.n) {
|
|
128050
128179
|
case 0:
|
|
128051
|
-
loadingState =
|
|
128180
|
+
loadingState = _this59.noObserver ? _this59.noObserver.batchLoadingState : _this59.batchLoadingState;
|
|
128052
128181
|
loadingState.options.batchSize = loadingState.batchSize;
|
|
128053
128182
|
loadingState.options.resetState = loadingState.currentBatch === 0;
|
|
128054
128183
|
// 使用原始的handleInstancedMeshModel方法
|
|
128055
128184
|
|
|
128056
128185
|
isDebug && performance.mark('handleInstancedMeshModel-start');
|
|
128057
128186
|
_context10.n = 1;
|
|
128058
|
-
return handleInstancedMeshModel(
|
|
128187
|
+
return handleInstancedMeshModel(_this59.modelGroup, batch.instances, batch.drawObjs, '', _this59.scene, loadingState.color, loadingState.meshNameConfig, '', loadingState.options);
|
|
128059
128188
|
case 1:
|
|
128060
128189
|
isDebug && performance.mark('handleInstancedMeshModel-end');
|
|
128061
128190
|
isDebug && performance.measure('handleInstancedMeshModel', 'handleInstancedMeshModel-start', 'handleInstancedMeshModel-end');
|
|
@@ -128069,7 +128198,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128069
128198
|
* 完成批量加载
|
|
128070
128199
|
*/
|
|
128071
128200
|
completeBatchLoading: function completeBatchLoading() {
|
|
128072
|
-
var
|
|
128201
|
+
var _this60 = this;
|
|
128073
128202
|
var loadingState = this.noObserver ? this.noObserver.batchLoadingState : this.batchLoadingState;
|
|
128074
128203
|
if (!loadingState.isLoading) return;
|
|
128075
128204
|
if (!this.isBatchLoadingSceneReady()) {
|
|
@@ -128102,17 +128231,17 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128102
128231
|
this.modelGroup.traverse(function (child) {
|
|
128103
128232
|
if (child.isMesh && !child.userData.batchInitDone) {
|
|
128104
128233
|
markRendered(child);
|
|
128105
|
-
var json =
|
|
128106
|
-
var meshBox3 = new
|
|
128234
|
+
var json = _this60.getMeshCenterAndVolume(child);
|
|
128235
|
+
var meshBox3 = new _this60.THREE.Box3();
|
|
128107
128236
|
meshBox3.setFromObject(child);
|
|
128108
|
-
var worldPs = new
|
|
128237
|
+
var worldPs = new _this60.THREE.Vector3().addVectors(meshBox3.max, meshBox3.min).multiplyScalar(0.5);
|
|
128109
128238
|
if (isNaN(worldPs.x)) return;
|
|
128110
|
-
child.worldDir = new
|
|
128239
|
+
child.worldDir = new _this60.THREE.Vector3().subVectors(worldPs, modelWorldPs).normalize();
|
|
128111
128240
|
child.userData.center = json.center;
|
|
128112
128241
|
child.userData.worldPs = worldPs;
|
|
128113
|
-
child.userData.oldPs = child.getWorldPosition(new
|
|
128242
|
+
child.userData.oldPs = child.getWorldPosition(new _this60.THREE.Vector3());
|
|
128114
128243
|
child.userData.box = json.box;
|
|
128115
|
-
child.userData.position = new
|
|
128244
|
+
child.userData.position = new _this60.THREE.Vector3().copy(child.position);
|
|
128116
128245
|
child.userData.translate = {
|
|
128117
128246
|
x: 0,
|
|
128118
128247
|
y: 0,
|
|
@@ -128204,7 +128333,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128204
128333
|
* @param {Object} options - 配置项 { immediate: boolean }
|
|
128205
128334
|
*/
|
|
128206
128335
|
setSystemInterruption: function setSystemInterruption(active) {
|
|
128207
|
-
var
|
|
128336
|
+
var _this61 = this;
|
|
128208
128337
|
var reason = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'user_interaction';
|
|
128209
128338
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
128210
128339
|
var loadingState = this.noObserver ? this.noObserver.batchLoadingState : this.batchLoadingState;
|
|
@@ -128270,7 +128399,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128270
128399
|
if (loadingState.interactionState.wheelTimeout) return;
|
|
128271
128400
|
|
|
128272
128401
|
// 2. 如果是 wheel 结束,但 this.userInteracting (this.camera) 还在进行,则不恢复
|
|
128273
|
-
if (reason === 'wheel' &&
|
|
128402
|
+
if (reason === 'wheel' && _this61.userInteracting) return;
|
|
128274
128403
|
|
|
128275
128404
|
// 3. 检查是否有强制跳过标记 (可能由其他逻辑触发)
|
|
128276
128405
|
// if (this.forceSkipRendering && reason !== 'user_interaction') return; // 视情况而定
|
|
@@ -128281,15 +128410,15 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128281
128410
|
loadingState.pauseReason = '';
|
|
128282
128411
|
loadingState.interactionState.isInteracting = false;
|
|
128283
128412
|
loadingState.interactionState.interactionType = '';
|
|
128284
|
-
|
|
128413
|
+
_this61.forceSkipRendering = false;
|
|
128285
128414
|
|
|
128286
128415
|
// 恢复本地批量加载 (如果未完成)
|
|
128287
128416
|
if (loadingState.isLoading && loadingState.currentBatch < loadingState.totalBatches) {
|
|
128288
|
-
|
|
128417
|
+
_this61.loadNextBatch();
|
|
128289
128418
|
}
|
|
128290
128419
|
|
|
128291
128420
|
// 恢复 StreamLoader
|
|
128292
|
-
var streamLoader =
|
|
128421
|
+
var streamLoader = _this61.noObserver.streamLoader;
|
|
128293
128422
|
if (streamLoader && typeof streamLoader.handleControlEnd === 'function') {
|
|
128294
128423
|
// StreamLoader 内部通常有防抖或延迟,这里直接通知结束即可
|
|
128295
128424
|
streamLoader.handleControlEnd();
|
|
@@ -128342,7 +128471,7 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128342
128471
|
* 滚轮交互结束的定时检测
|
|
128343
128472
|
*/
|
|
128344
128473
|
scheduleWheelInteractionEnd: function scheduleWheelInteractionEnd(event) {
|
|
128345
|
-
var
|
|
128474
|
+
var _this62 = this;
|
|
128346
128475
|
var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
|
|
128347
128476
|
var loadingState = this.noObserver ? this.noObserver.batchLoadingState : this.batchLoadingState;
|
|
128348
128477
|
if (loadingState.interactionState.wheelTimeout) {
|
|
@@ -128350,8 +128479,8 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128350
128479
|
loadingState.interactionState.wheelTimeout = null;
|
|
128351
128480
|
}
|
|
128352
128481
|
loadingState.interactionState.wheelTimeout = setTimeout(function () {
|
|
128353
|
-
|
|
128354
|
-
|
|
128482
|
+
_this62.$emit('wheelEnd', event);
|
|
128483
|
+
_this62.endInteraction('wheel', event, {
|
|
128355
128484
|
immediateResume: false
|
|
128356
128485
|
});
|
|
128357
128486
|
loadingState.interactionState.wheelTimeout = null;
|
|
@@ -128404,11 +128533,11 @@ var COLLISION_DEBUG_GROUP_NAME = '__collision_obb_debug_group__';
|
|
|
128404
128533
|
});
|
|
128405
128534
|
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=script&lang=js
|
|
128406
128535
|
/* harmony default export */ var components_com_graphicsvue_type_script_lang_js = (com_graphicsvue_type_script_lang_js);
|
|
128407
|
-
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=
|
|
128408
|
-
var
|
|
128536
|
+
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=3517cf88&prod&lang=scss&scoped=true
|
|
128537
|
+
var com_graphicsvue_type_style_index_0_id_3517cf88_prod_lang_scss_scoped_true = __webpack_require__("3e93");
|
|
128409
128538
|
|
|
128410
|
-
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=1&id=
|
|
128411
|
-
var
|
|
128539
|
+
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=1&id=3517cf88&prod&lang=css
|
|
128540
|
+
var com_graphicsvue_type_style_index_1_id_3517cf88_prod_lang_css = __webpack_require__("e54a");
|
|
128412
128541
|
|
|
128413
128542
|
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
|
|
128414
128543
|
/* globals __VUE_SSR_CONTEXT__ */
|
|
@@ -128520,17 +128649,17 @@ function normalizeComponent(
|
|
|
128520
128649
|
|
|
128521
128650
|
var component = normalizeComponent(
|
|
128522
128651
|
components_com_graphicsvue_type_script_lang_js,
|
|
128523
|
-
|
|
128652
|
+
com_graphicsvue_type_template_id_3517cf88_scoped_true_render,
|
|
128524
128653
|
staticRenderFns,
|
|
128525
128654
|
false,
|
|
128526
128655
|
null,
|
|
128527
|
-
"
|
|
128656
|
+
"3517cf88",
|
|
128528
128657
|
null
|
|
128529
128658
|
|
|
128530
128659
|
)
|
|
128531
128660
|
|
|
128532
128661
|
/* harmony default export */ var com_graphics = (component.exports);
|
|
128533
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
128662
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"51c07cb2-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=0f76e7f4&scoped=true
|
|
128534
128663
|
var com_flcanvasvue_type_template_id_0f76e7f4_scoped_true_render = function render() {
|
|
128535
128664
|
var _vm = this,
|
|
128536
128665
|
_c = _vm._self._c;
|
|
@@ -135594,7 +135723,7 @@ var com_flcanvas_component = normalizeComponent(
|
|
|
135594
135723
|
)
|
|
135595
135724
|
|
|
135596
135725
|
/* harmony default export */ var com_flcanvas = (com_flcanvas_component.exports);
|
|
135597
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
135726
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"51c07cb2-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
|
|
135598
135727
|
var per_controlvue_type_template_id_f547d5c6_scoped_true_render = function render() {
|
|
135599
135728
|
var _vm = this,
|
|
135600
135729
|
_c = _vm._self._c;
|
|
@@ -135702,7 +135831,7 @@ var per_control_component = normalizeComponent(
|
|
|
135702
135831
|
)
|
|
135703
135832
|
|
|
135704
135833
|
/* harmony default export */ var per_control = (per_control_component.exports);
|
|
135705
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
135834
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"51c07cb2-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
|
|
135706
135835
|
var pidvue_type_template_id_2572c0e2_scoped_true_render = function render() {
|
|
135707
135836
|
var _vm = this,
|
|
135708
135837
|
_c = _vm._self._c;
|
|
@@ -135749,7 +135878,7 @@ var browserify_default = /*#__PURE__*/__webpack_require__.n(browserify);
|
|
|
135749
135878
|
var html2canvas = __webpack_require__("c0e9");
|
|
135750
135879
|
var html2canvas_default = /*#__PURE__*/__webpack_require__.n(html2canvas);
|
|
135751
135880
|
|
|
135752
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
135881
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"51c07cb2-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
|
|
135753
135882
|
var ann_toolvue_type_template_id_4b17bce0_scoped_true_render = function render() {
|
|
135754
135883
|
var _vm = this,
|
|
135755
135884
|
_c = _vm._self._c;
|