fl-web-component 1.2.0 → 1.2.2
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/README.md +6 -0
- package/dist/fl-web-component.common.js +102 -97
- package/dist/fl-web-component.css +1 -1
- package/package.json +1 -1
- package/packages/components/com-flcanvas/index.vue +5 -4
- package/packages/components/com-graphics/index.vue +25 -50
- package/src/utils/flgltf-parser.js +7 -5
- package/src/utils/instance-parser.js +18 -12
- package/src/utils/mock.js +0 -24898
package/README.md
CHANGED
|
@@ -46,6 +46,12 @@ Vue.use(FlWebComponent)
|
|
|
46
46
|
欢迎贡献代码和问题反馈。
|
|
47
47
|
|
|
48
48
|
## 更新日志
|
|
49
|
+
- 2025-06-09 1.2.2
|
|
50
|
+
1. 优化图形绘制效果
|
|
51
|
+
2. 调整业务端交互模型时的位置偏差
|
|
52
|
+
3. 图纸模型新增点击、高亮、重置高亮等api,三维图形新增、获取中心点、计算实体大小等接口
|
|
53
|
+
- 2025-06-03 1.2.1
|
|
54
|
+
1. 修复模型拾取问题
|
|
49
55
|
- 2025-05-30 1.2.0
|
|
50
56
|
1. 图纸模型新增点击、高亮、重置高亮等api
|
|
51
57
|
2. 三维图形新增、获取中心点、计算实体大小等接口
|
|
@@ -202,6 +202,17 @@ module.exports =
|
|
|
202
202
|
/************************************************************************/
|
|
203
203
|
/******/ ({
|
|
204
204
|
|
|
205
|
+
/***/ "0011":
|
|
206
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
207
|
+
|
|
208
|
+
"use strict";
|
|
209
|
+
/* 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_2733ad2c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8122");
|
|
210
|
+
/* 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_2733ad2c_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_2733ad2c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
211
|
+
/* unused harmony reexport * */
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
/***/ }),
|
|
215
|
+
|
|
205
216
|
/***/ "06f8":
|
|
206
217
|
/***/ (function(module, exports, __webpack_require__) {
|
|
207
218
|
|
|
@@ -1170,6 +1181,17 @@ Factory_1.Factory.addGetterSetter(Layer, 'imageSmoothingEnabled', true);
|
|
|
1170
1181
|
Factory_1.Factory.addGetterSetter(Layer, 'clearBeforeDraw', true);
|
|
1171
1182
|
Factory_1.Factory.addGetterSetter(Layer, 'hitGraphEnabled', true, (0, Validators_1.getBooleanValidator)());
|
|
1172
1183
|
|
|
1184
|
+
/***/ }),
|
|
1185
|
+
|
|
1186
|
+
/***/ "106c":
|
|
1187
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1188
|
+
|
|
1189
|
+
"use strict";
|
|
1190
|
+
/* 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_3d926f5d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("fdfd");
|
|
1191
|
+
/* 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_3d926f5d_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_3d926f5d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
1192
|
+
/* unused harmony reexport * */
|
|
1193
|
+
|
|
1194
|
+
|
|
1173
1195
|
/***/ }),
|
|
1174
1196
|
|
|
1175
1197
|
/***/ "122f":
|
|
@@ -3331,17 +3353,6 @@ Factory_1.Factory.addGetterSetter(Node_1.Node, 'hue', 0, (0, Validators_1.getNum
|
|
|
3331
3353
|
Factory_1.Factory.addGetterSetter(Node_1.Node, 'saturation', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);
|
|
3332
3354
|
Factory_1.Factory.addGetterSetter(Node_1.Node, 'value', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);
|
|
3333
3355
|
|
|
3334
|
-
/***/ }),
|
|
3335
|
-
|
|
3336
|
-
/***/ "46ca":
|
|
3337
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
3338
|
-
|
|
3339
|
-
"use strict";
|
|
3340
|
-
/* 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_07e32868_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("92c4");
|
|
3341
|
-
/* 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_07e32868_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_07e32868_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
3342
|
-
/* unused harmony reexport * */
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
3356
|
/***/ }),
|
|
3346
3357
|
|
|
3347
3358
|
/***/ "4971":
|
|
@@ -9085,6 +9096,13 @@ module.exports = JSON.parse("{\"glyphs\":{\"0\":{\"x_min\":73,\"x_max\":715,\"ha
|
|
|
9085
9096
|
|
|
9086
9097
|
/***/ }),
|
|
9087
9098
|
|
|
9099
|
+
/***/ "8122":
|
|
9100
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
9101
|
+
|
|
9102
|
+
// extracted by mini-css-extract-plugin
|
|
9103
|
+
|
|
9104
|
+
/***/ }),
|
|
9105
|
+
|
|
9088
9106
|
/***/ "85b7":
|
|
9089
9107
|
/***/ (function(module, exports, __webpack_require__) {
|
|
9090
9108
|
|
|
@@ -22286,13 +22304,6 @@ exports.HSL = HSL;
|
|
|
22286
22304
|
|
|
22287
22305
|
/***/ }),
|
|
22288
22306
|
|
|
22289
|
-
/***/ "92c4":
|
|
22290
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
22291
|
-
|
|
22292
|
-
// extracted by mini-css-extract-plugin
|
|
22293
|
-
|
|
22294
|
-
/***/ }),
|
|
22295
|
-
|
|
22296
22307
|
/***/ "9470":
|
|
22297
22308
|
/***/ (function(module, exports, __webpack_require__) {
|
|
22298
22309
|
|
|
@@ -23529,17 +23540,6 @@ Factory_1.Factory.backCompat(Sprite, {
|
|
|
23529
23540
|
setIndex: 'setFrameIndex'
|
|
23530
23541
|
});
|
|
23531
23542
|
|
|
23532
|
-
/***/ }),
|
|
23533
|
-
|
|
23534
|
-
/***/ "a988":
|
|
23535
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
23536
|
-
|
|
23537
|
-
"use strict";
|
|
23538
|
-
/* 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_4b99f9dc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cfb3");
|
|
23539
|
-
/* 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_4b99f9dc_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_4b99f9dc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
23540
|
-
/* unused harmony reexport * */
|
|
23541
|
-
|
|
23542
|
-
|
|
23543
23543
|
/***/ }),
|
|
23544
23544
|
|
|
23545
23545
|
/***/ "af55":
|
|
@@ -24961,13 +24961,6 @@ exports.Grayscale = Grayscale;
|
|
|
24961
24961
|
|
|
24962
24962
|
/***/ }),
|
|
24963
24963
|
|
|
24964
|
-
/***/ "cfb3":
|
|
24965
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
24966
|
-
|
|
24967
|
-
// extracted by mini-css-extract-plugin
|
|
24968
|
-
|
|
24969
|
-
/***/ }),
|
|
24970
|
-
|
|
24971
24964
|
/***/ "d488":
|
|
24972
24965
|
/***/ (function(module, exports, __webpack_require__) {
|
|
24973
24966
|
|
|
@@ -29241,8 +29234,8 @@ if (typeof window !== 'undefined') {
|
|
|
29241
29234
|
// Indicate to webpack that this file can be concatenated
|
|
29242
29235
|
/* harmony default export */ var setPublicPath = (null);
|
|
29243
29236
|
|
|
29244
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
29245
|
-
var
|
|
29237
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7865f371-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=3d926f5d&scoped=true
|
|
29238
|
+
var com_graphicsvue_type_template_id_3d926f5d_scoped_true_render = function render() {
|
|
29246
29239
|
var _vm = this,
|
|
29247
29240
|
_c = _vm._self._c;
|
|
29248
29241
|
return _c('div', {
|
|
@@ -29253,7 +29246,7 @@ var com_graphicsvue_type_template_id_07e32868_scoped_true_render = function rend
|
|
|
29253
29246
|
};
|
|
29254
29247
|
var staticRenderFns = [];
|
|
29255
29248
|
|
|
29256
|
-
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=
|
|
29249
|
+
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=3d926f5d&scoped=true
|
|
29257
29250
|
|
|
29258
29251
|
// CONCATENATED MODULE: ./node_modules/camera-controls/dist/camera-controls.module.js
|
|
29259
29252
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
@@ -57090,8 +57083,7 @@ function parseData(input) {
|
|
|
57090
57083
|
}
|
|
57091
57084
|
function flattenAndComputeWorldMatrices(nodes) {
|
|
57092
57085
|
var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
57093
|
-
var
|
|
57094
|
-
var fatherId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
57086
|
+
var fatherId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
57095
57087
|
var _iterator = flgltf_parser_createForOfIteratorHelper(nodes),
|
|
57096
57088
|
_step;
|
|
57097
57089
|
try {
|
|
@@ -57112,7 +57104,10 @@ function parseData(input) {
|
|
|
57112
57104
|
}
|
|
57113
57105
|
|
|
57114
57106
|
// 计算世界矩阵
|
|
57115
|
-
|
|
57107
|
+
// const worldMatrix = parentWorldMatrix
|
|
57108
|
+
// ? parentWorldMatrix.clone().multiply(localMatrix)
|
|
57109
|
+
// : localMatrix.clone();
|
|
57110
|
+
var worldMatrix = localMatrix.clone();
|
|
57116
57111
|
|
|
57117
57112
|
// 构造输出节点
|
|
57118
57113
|
result.push({
|
|
@@ -57128,7 +57123,8 @@ function parseData(input) {
|
|
|
57128
57123
|
|
|
57129
57124
|
// 递归处理子节点,传递当前世界矩阵
|
|
57130
57125
|
if (children) {
|
|
57131
|
-
flattenAndComputeWorldMatrices(children, result, worldMatrix, instanceId);
|
|
57126
|
+
// flattenAndComputeWorldMatrices(children, result, worldMatrix, instanceId);
|
|
57127
|
+
flattenAndComputeWorldMatrices(children, result, instanceId);
|
|
57132
57128
|
// flattenAndComputeWorldMatrices(children, result);
|
|
57133
57129
|
}
|
|
57134
57130
|
}
|
|
@@ -59649,7 +59645,7 @@ function draw3Dmodel(geom, instanceName, instanceCount, nColor, nOpacity) {
|
|
|
59649
59645
|
if (Array.isArray(color) && color.length) {
|
|
59650
59646
|
colors = color;
|
|
59651
59647
|
opacity = colors[3];
|
|
59652
|
-
} else if (color) {
|
|
59648
|
+
} else if (typeof color === 'string') {
|
|
59653
59649
|
colors = color.split(',');
|
|
59654
59650
|
opacity = colors[3];
|
|
59655
59651
|
} else {
|
|
@@ -59658,17 +59654,20 @@ function draw3Dmodel(geom, instanceName, instanceCount, nColor, nOpacity) {
|
|
|
59658
59654
|
}
|
|
59659
59655
|
|
|
59660
59656
|
// 使用自定义材质或创建标准材质(默认参数配置)
|
|
59661
|
-
|
|
59662
|
-
roughness: 0.8,
|
|
59663
|
-
envMapIntensity: 0.5,
|
|
59664
|
-
// 调低环境贴图的强度
|
|
59665
|
-
side: DoubleSide,
|
|
59657
|
+
var materialOptions = {
|
|
59666
59658
|
userData: {
|
|
59667
59659
|
nColor: nColor ? new Color(nColor) : new Color("rgb(".concat(colors[0], ", ").concat(colors[1], ", ").concat(colors[2], ")")),
|
|
59668
59660
|
nOpacity: nOpacity ? nOpacity : opacity
|
|
59669
59661
|
},
|
|
59662
|
+
side: DoubleSide,
|
|
59670
59663
|
transparent: true // 着色器中需要设置透明度
|
|
59671
|
-
}
|
|
59664
|
+
};
|
|
59665
|
+
customMaterial && Object.assign(customMaterial, materialOptions);
|
|
59666
|
+
material = customMaterial || new MeshStandardMaterial(instance_parser_objectSpread(instance_parser_objectSpread({}, materialOptions), {}, {
|
|
59667
|
+
roughness: 0.8,
|
|
59668
|
+
envMapIntensity: 0.5 // 调低环境贴图的强度
|
|
59669
|
+
// wireframe: true
|
|
59670
|
+
}));
|
|
59672
59671
|
|
|
59673
59672
|
// 为每个实例存储透明度(opacity)
|
|
59674
59673
|
var opacities = new Float32Array(instanceCount);
|
|
@@ -59693,9 +59692,9 @@ function draw3Dmodel(geom, instanceName, instanceCount, nColor, nOpacity) {
|
|
|
59693
59692
|
}
|
|
59694
59693
|
mesh = new InstancedMesh(geometry, material, instanceCount);
|
|
59695
59694
|
mesh.userData.drawObjectId = instanceName;
|
|
59695
|
+
mesh.userData.is3D = geom.type == GEOM_TYPES.geom_3d || geom.type == GEOM_TYPES.geom_3d_obj;
|
|
59696
59696
|
|
|
59697
59697
|
// mesh.material = material;
|
|
59698
|
-
|
|
59699
59698
|
return mesh;
|
|
59700
59699
|
}
|
|
59701
59700
|
|
|
@@ -61119,7 +61118,7 @@ var guiParams = {
|
|
|
61119
61118
|
com_graphicsvue_type_script_lang_js_scene = new this.THREE.Scene();
|
|
61120
61119
|
},
|
|
61121
61120
|
initCamera: function initCamera() {
|
|
61122
|
-
com_graphicsvue_type_script_lang_js_camera = new this.THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1,
|
|
61121
|
+
com_graphicsvue_type_script_lang_js_camera = new this.THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000000000);
|
|
61123
61122
|
com_graphicsvue_type_script_lang_js_camera.position.set(0, 100, 150);
|
|
61124
61123
|
},
|
|
61125
61124
|
initControl: function initControl() {
|
|
@@ -61201,9 +61200,9 @@ var guiParams = {
|
|
|
61201
61200
|
child.userData.modelWorldPs = modelWorldPs;
|
|
61202
61201
|
}
|
|
61203
61202
|
});
|
|
61204
|
-
// this.compileShader();
|
|
61205
61203
|
// cameraControls.fitToSphere(scene, true); // TODO 待处理,先用 setModelCenter 进行定位
|
|
61206
61204
|
this.setModelCenter(com_graphicsvue_type_script_lang_js_modelGroup);
|
|
61205
|
+
this.$emit('modelLoaded');
|
|
61207
61206
|
// cameraControls.saveState();
|
|
61208
61207
|
}
|
|
61209
61208
|
},
|
|
@@ -61219,21 +61218,6 @@ var guiParams = {
|
|
|
61219
61218
|
box: volume
|
|
61220
61219
|
};
|
|
61221
61220
|
},
|
|
61222
|
-
compileShader: function compileShader() {
|
|
61223
|
-
com_graphicsvue_type_script_lang_js_scene.traverse(function (child) {
|
|
61224
|
-
if (child.isMesh) {
|
|
61225
|
-
child.material.onBeforeCompile = function (shader) {
|
|
61226
|
-
var vertexShader = "\n precision lowp float;\n attribute float visible;\n varying float vVisible;\n void main() {\n vVisible = visible;\n ";
|
|
61227
|
-
var fragmentShader = "\n precision lowp float;\n varying float vVisible;\n void main() {\n ";
|
|
61228
|
-
var fragColor = "\n #include <dithering_fragment>\n if (vVisible > 0.0) {\n gl_FragColor = vec4(outgoingLight, diffuseColor.a);\n } else {\n discard;\n }\n ";
|
|
61229
|
-
shader.vertexShader = shader.vertexShader.replace('void main() {', vertexShader);
|
|
61230
|
-
shader.fragmentShader = shader.fragmentShader.replace('void main() {', fragmentShader);
|
|
61231
|
-
shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>', fragColor);
|
|
61232
|
-
child.material.transparent = true;
|
|
61233
|
-
};
|
|
61234
|
-
}
|
|
61235
|
-
});
|
|
61236
|
-
},
|
|
61237
61221
|
mouseDown: function mouseDown() {
|
|
61238
61222
|
firstTime = new Date().getTime();
|
|
61239
61223
|
},
|
|
@@ -61242,8 +61226,15 @@ var guiParams = {
|
|
|
61242
61226
|
if (!measureFlag) {
|
|
61243
61227
|
lastTime = new Date().getTime();
|
|
61244
61228
|
if (lastTime - firstTime < 300) {
|
|
61245
|
-
|
|
61246
|
-
|
|
61229
|
+
// 获取元素在页面中的偏移位置
|
|
61230
|
+
var rect = com_graphicsvue_type_script_lang_js_renderer.domElement.getBoundingClientRect();
|
|
61231
|
+
var x = event.clientX - rect.left;
|
|
61232
|
+
var y = event.clientY - rect.top;
|
|
61233
|
+
|
|
61234
|
+
// mouse.x = (event.clientX / instructions.offsetWidth) * 2 - 1;
|
|
61235
|
+
// mouse.y = -(event.clientY / instructions.offsetHeight) * 2 + 1;
|
|
61236
|
+
com_graphicsvue_type_script_lang_js_mouse.x = x / rect.width * 2 - 1;
|
|
61237
|
+
com_graphicsvue_type_script_lang_js_mouse.y = -(y / rect.height) * 2 + 1;
|
|
61247
61238
|
com_graphicsvue_type_script_lang_js_raycaster.setFromCamera(com_graphicsvue_type_script_lang_js_mouse, com_graphicsvue_type_script_lang_js_camera);
|
|
61248
61239
|
var intersects = com_graphicsvue_type_script_lang_js_raycaster.intersectObjects(com_graphicsvue_type_script_lang_js_scene.children, true);
|
|
61249
61240
|
var params = {};
|
|
@@ -61457,7 +61448,10 @@ var guiParams = {
|
|
|
61457
61448
|
if (obj.isGroup) {
|
|
61458
61449
|
this.setModelCenter(obj);
|
|
61459
61450
|
} else if (obj.isMesh) {
|
|
61460
|
-
this.
|
|
61451
|
+
var box = this.getSize(obj);
|
|
61452
|
+
var center = this.getCenter(obj);
|
|
61453
|
+
this.locateByCenterBox(center, box);
|
|
61454
|
+
// this.setModelCenter(obj.parent);
|
|
61461
61455
|
}
|
|
61462
61456
|
}
|
|
61463
61457
|
},
|
|
@@ -62284,20 +62278,23 @@ var guiParams = {
|
|
|
62284
62278
|
},
|
|
62285
62279
|
// 获取中心点
|
|
62286
62280
|
getCenter: function getCenter(obj) {
|
|
62287
|
-
console.log(obj);
|
|
62288
62281
|
var center = new this.THREE.Vector3();
|
|
62289
62282
|
obj.boundingBox.getCenter(center);
|
|
62290
|
-
|
|
62291
|
-
|
|
62292
|
-
|
|
62283
|
+
if (obj.userData.is3D) {
|
|
62284
|
+
var mat4 = new this.THREE.Matrix4();
|
|
62285
|
+
mat4.makeRotationX(-Math.PI / 2);
|
|
62286
|
+
center.applyMatrix4(mat4);
|
|
62287
|
+
}
|
|
62293
62288
|
return center;
|
|
62294
62289
|
},
|
|
62295
62290
|
getSize: function getSize(obj) {
|
|
62296
62291
|
var size = new this.THREE.Vector3();
|
|
62297
62292
|
obj.boundingBox.getSize(size);
|
|
62298
|
-
|
|
62299
|
-
|
|
62300
|
-
|
|
62293
|
+
if (obj.userData.is3D) {
|
|
62294
|
+
var mat4 = new this.THREE.Matrix4();
|
|
62295
|
+
mat4.makeRotationX(-Math.PI / 2);
|
|
62296
|
+
size.applyMatrix4(mat4);
|
|
62297
|
+
}
|
|
62301
62298
|
return size;
|
|
62302
62299
|
},
|
|
62303
62300
|
animate: function animate() {
|
|
@@ -62327,8 +62324,8 @@ var guiParams = {
|
|
|
62327
62324
|
});
|
|
62328
62325
|
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=script&lang=js
|
|
62329
62326
|
/* harmony default export */ var components_com_graphicsvue_type_script_lang_js = (com_graphicsvue_type_script_lang_js);
|
|
62330
|
-
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=
|
|
62331
|
-
var
|
|
62327
|
+
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=3d926f5d&prod&lang=scss&scoped=true
|
|
62328
|
+
var com_graphicsvue_type_style_index_0_id_3d926f5d_prod_lang_scss_scoped_true = __webpack_require__("106c");
|
|
62332
62329
|
|
|
62333
62330
|
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
|
|
62334
62331
|
/* globals __VUE_SSR_CONTEXT__ */
|
|
@@ -62439,18 +62436,18 @@ function normalizeComponent(
|
|
|
62439
62436
|
|
|
62440
62437
|
var component = normalizeComponent(
|
|
62441
62438
|
components_com_graphicsvue_type_script_lang_js,
|
|
62442
|
-
|
|
62439
|
+
com_graphicsvue_type_template_id_3d926f5d_scoped_true_render,
|
|
62443
62440
|
staticRenderFns,
|
|
62444
62441
|
false,
|
|
62445
62442
|
null,
|
|
62446
|
-
"
|
|
62443
|
+
"3d926f5d",
|
|
62447
62444
|
null
|
|
62448
62445
|
|
|
62449
62446
|
)
|
|
62450
62447
|
|
|
62451
62448
|
/* harmony default export */ var com_graphics = (component.exports);
|
|
62452
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
62453
|
-
var
|
|
62449
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7865f371-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=2733ad2c&scoped=true
|
|
62450
|
+
var com_flcanvasvue_type_template_id_2733ad2c_scoped_true_render = function render() {
|
|
62454
62451
|
var _vm = this,
|
|
62455
62452
|
_c = _vm._self._c;
|
|
62456
62453
|
return _c('div', {
|
|
@@ -62463,9 +62460,9 @@ var com_flcanvasvue_type_template_id_4b99f9dc_scoped_true_render = function rend
|
|
|
62463
62460
|
}
|
|
62464
62461
|
});
|
|
62465
62462
|
};
|
|
62466
|
-
var
|
|
62463
|
+
var com_flcanvasvue_type_template_id_2733ad2c_scoped_true_staticRenderFns = [];
|
|
62467
62464
|
|
|
62468
|
-
// CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=template&id=
|
|
62465
|
+
// CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=template&id=2733ad2c&scoped=true
|
|
62469
62466
|
|
|
62470
62467
|
// EXTERNAL MODULE: ./node_modules/konva/lib/index.js
|
|
62471
62468
|
var lib = __webpack_require__("362d");
|
|
@@ -65296,7 +65293,6 @@ var konvaStage = null,
|
|
|
65296
65293
|
var _this = this;
|
|
65297
65294
|
//resize方法
|
|
65298
65295
|
window.addEventListener('resize', function () {
|
|
65299
|
-
console.log('resize');
|
|
65300
65296
|
if (konvaStage) {
|
|
65301
65297
|
var obj = document.getElementById('konva-container');
|
|
65302
65298
|
konvaStage.setWidth(obj.clientWidth);
|
|
@@ -65305,8 +65301,6 @@ var konvaStage = null,
|
|
|
65305
65301
|
}
|
|
65306
65302
|
});
|
|
65307
65303
|
this.$nextTick(function () {
|
|
65308
|
-
console.log(document.getElementById('konva-container'));
|
|
65309
|
-
console.log(_this.$refs.svgDraw);
|
|
65310
65304
|
konvaStage = new lib_default.a.Stage({
|
|
65311
65305
|
className: 'stage',
|
|
65312
65306
|
container: 'konva-container',
|
|
@@ -65365,7 +65359,6 @@ var konvaStage = null,
|
|
|
65365
65359
|
position = null;
|
|
65366
65360
|
if (e.target.attrs.hasOwnProperty("className") && e.target.attrs.className === "stage") {
|
|
65367
65361
|
var obj = _this.getIntersects(inspectionRect.getClientRect());
|
|
65368
|
-
console.log(obj);
|
|
65369
65362
|
clickObj = obj.length > 0 ? obj[obj.length - 1] : null;
|
|
65370
65363
|
} else {
|
|
65371
65364
|
clickObj = e.target.attrs;
|
|
@@ -65605,6 +65598,11 @@ var konvaStage = null,
|
|
|
65605
65598
|
obj = null;
|
|
65606
65599
|
}
|
|
65607
65600
|
},
|
|
65601
|
+
resize: function resize(width, height) {
|
|
65602
|
+
konvaStage.setWidth(width);
|
|
65603
|
+
konvaStage.setHeight(height);
|
|
65604
|
+
konvaStage._resizeDOM();
|
|
65605
|
+
},
|
|
65608
65606
|
beforeDestroy: function beforeDestroy() {
|
|
65609
65607
|
this.clearCache();
|
|
65610
65608
|
}
|
|
@@ -65612,8 +65610,8 @@ var konvaStage = null,
|
|
|
65612
65610
|
});
|
|
65613
65611
|
// CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=script&lang=js
|
|
65614
65612
|
/* harmony default export */ var components_com_flcanvasvue_type_script_lang_js = (com_flcanvasvue_type_script_lang_js);
|
|
65615
|
-
// EXTERNAL MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=style&index=0&id=
|
|
65616
|
-
var
|
|
65613
|
+
// EXTERNAL MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=style&index=0&id=2733ad2c&prod&lang=scss&scoped=true
|
|
65614
|
+
var com_flcanvasvue_type_style_index_0_id_2733ad2c_prod_lang_scss_scoped_true = __webpack_require__("0011");
|
|
65617
65615
|
|
|
65618
65616
|
// CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue
|
|
65619
65617
|
|
|
@@ -65626,17 +65624,17 @@ var com_flcanvasvue_type_style_index_0_id_4b99f9dc_prod_lang_scss_scoped_true =
|
|
|
65626
65624
|
|
|
65627
65625
|
var com_flcanvas_component = normalizeComponent(
|
|
65628
65626
|
components_com_flcanvasvue_type_script_lang_js,
|
|
65629
|
-
|
|
65630
|
-
|
|
65627
|
+
com_flcanvasvue_type_template_id_2733ad2c_scoped_true_render,
|
|
65628
|
+
com_flcanvasvue_type_template_id_2733ad2c_scoped_true_staticRenderFns,
|
|
65631
65629
|
false,
|
|
65632
65630
|
null,
|
|
65633
|
-
"
|
|
65631
|
+
"2733ad2c",
|
|
65634
65632
|
null
|
|
65635
65633
|
|
|
65636
65634
|
)
|
|
65637
65635
|
|
|
65638
65636
|
/* harmony default export */ var com_flcanvas = (com_flcanvas_component.exports);
|
|
65639
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
65637
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7865f371-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
|
|
65640
65638
|
var per_controlvue_type_template_id_f547d5c6_scoped_true_render = function render() {
|
|
65641
65639
|
var _vm = this,
|
|
65642
65640
|
_c = _vm._self._c;
|
|
@@ -65744,7 +65742,7 @@ var per_control_component = normalizeComponent(
|
|
|
65744
65742
|
)
|
|
65745
65743
|
|
|
65746
65744
|
/* harmony default export */ var per_control = (per_control_component.exports);
|
|
65747
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
65745
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7865f371-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=09d5c9d8&scoped=true
|
|
65748
65746
|
var pidvue_type_template_id_09d5c9d8_scoped_true_render = function render() {
|
|
65749
65747
|
var _vm = this,
|
|
65750
65748
|
_c = _vm._self._c;
|
|
@@ -66681,6 +66679,13 @@ exports.Konva = _CoreInternals_1.Konva.Util._assign(_CoreInternals_1.Konva, {
|
|
|
66681
66679
|
}
|
|
66682
66680
|
});
|
|
66683
66681
|
|
|
66682
|
+
/***/ }),
|
|
66683
|
+
|
|
66684
|
+
/***/ "fdfd":
|
|
66685
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
66686
|
+
|
|
66687
|
+
// extracted by mini-css-extract-plugin
|
|
66688
|
+
|
|
66684
66689
|
/***/ })
|
|
66685
66690
|
|
|
66686
66691
|
/******/ });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";#fl-model[data-v-
|
|
1
|
+
@charset "UTF-8";#fl-model[data-v-3d926f5d],#konva-container[data-v-2733ad2c]{width:100%;height:100%;cursor:pointer}#konva-container[data-v-2733ad2c]{z-index:3;overflow:hidden}span[data-v-f547d5c6]{font-weight:bolder}.text[data-v-f547d5c6]{margin-top:20px}.line[data-v-f547d5c6]{border-bottom:1px solid #dcdfe6;margin:20px 0}.center[data-v-f547d5c6]{display:flex;flex-direction:column;align-items:center}.center .cen span[data-v-f547d5c6],.center .top span[data-v-f547d5c6]{color:"#53a8ff";display:inline-block;width:30px;height:30px;text-align:center;line-height:30px;border:1px solid;padding:5px;margin-bottom:10px;background-color:#e9f3ff}.center .cen span[data-v-f547d5c6]{margin:10px}.button[data-v-f547d5c6]{display:flex;justify-content:end;margin-top:20px}@font-face{font-family:iconfont;src:url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff2?t=1646635700216) format("woff2"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff?t=1646635700216) format("woff"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.ttf?t=1646635700216) format("truetype")}.iconfont[data-v-f547d5c6]{font-family:iconfont!important;font-size:50px;font-style:normal;color:"#53a8ff";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-shubiao[data-v-f547d5c6]:before{content:""}#svg-tigger[data-v-09d5c9d8]{cursor:pointer;height:100%;width:100%}
|
package/package.json
CHANGED
|
@@ -51,7 +51,6 @@ var preTarget = [];
|
|
|
51
51
|
mounted() {
|
|
52
52
|
//resize方法
|
|
53
53
|
window.addEventListener('resize', () => {
|
|
54
|
-
console.log('resize');
|
|
55
54
|
if (konvaStage) {
|
|
56
55
|
const obj = document.getElementById('konva-container');
|
|
57
56
|
konvaStage.setWidth(obj.clientWidth);
|
|
@@ -61,8 +60,6 @@ var preTarget = [];
|
|
|
61
60
|
});
|
|
62
61
|
|
|
63
62
|
this.$nextTick(() => {
|
|
64
|
-
console.log(document.getElementById('konva-container'));
|
|
65
|
-
console.log(this.$refs.svgDraw);
|
|
66
63
|
konvaStage = new Konva.Stage({
|
|
67
64
|
className: 'stage',
|
|
68
65
|
container: 'konva-container',
|
|
@@ -121,7 +118,6 @@ var preTarget = [];
|
|
|
121
118
|
e.target.attrs.className === "stage"
|
|
122
119
|
) {
|
|
123
120
|
let obj = this.getIntersects(inspectionRect.getClientRect());
|
|
124
|
-
console.log(obj);
|
|
125
121
|
clickObj = obj.length > 0 ? obj[obj.length - 1] : null;
|
|
126
122
|
} else {
|
|
127
123
|
clickObj = e.target.attrs;
|
|
@@ -385,6 +381,11 @@ var preTarget = [];
|
|
|
385
381
|
obj = null;
|
|
386
382
|
}
|
|
387
383
|
},
|
|
384
|
+
resize(width, height) {
|
|
385
|
+
konvaStage.setWidth(width);
|
|
386
|
+
konvaStage.setHeight(height);
|
|
387
|
+
konvaStage._resizeDOM();
|
|
388
|
+
},
|
|
388
389
|
beforeDestroy() {
|
|
389
390
|
this.clearCache();
|
|
390
391
|
},
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
45,
|
|
174
174
|
window.innerWidth / window.innerHeight,
|
|
175
175
|
0.1,
|
|
176
|
-
|
|
176
|
+
1000000000
|
|
177
177
|
);
|
|
178
178
|
camera.position.set(0, 100, 150);
|
|
179
179
|
},
|
|
@@ -264,9 +264,9 @@
|
|
|
264
264
|
child.userData.modelWorldPs = modelWorldPs;
|
|
265
265
|
}
|
|
266
266
|
});
|
|
267
|
-
// this.compileShader();
|
|
268
267
|
// cameraControls.fitToSphere(scene, true); // TODO 待处理,先用 setModelCenter 进行定位
|
|
269
268
|
this.setModelCenter(modelGroup);
|
|
269
|
+
this.$emit('modelLoaded')
|
|
270
270
|
// cameraControls.saveState();
|
|
271
271
|
}
|
|
272
272
|
},
|
|
@@ -282,44 +282,6 @@
|
|
|
282
282
|
box: volume,
|
|
283
283
|
};
|
|
284
284
|
},
|
|
285
|
-
compileShader() {
|
|
286
|
-
scene.traverse(child => {
|
|
287
|
-
if (child.isMesh) {
|
|
288
|
-
child.material.onBeforeCompile = shader => {
|
|
289
|
-
const vertexShader = `
|
|
290
|
-
precision lowp float;
|
|
291
|
-
attribute float visible;
|
|
292
|
-
varying float vVisible;
|
|
293
|
-
void main() {
|
|
294
|
-
vVisible = visible;
|
|
295
|
-
`;
|
|
296
|
-
const fragmentShader = `
|
|
297
|
-
precision lowp float;
|
|
298
|
-
varying float vVisible;
|
|
299
|
-
void main() {
|
|
300
|
-
`;
|
|
301
|
-
const fragColor = `
|
|
302
|
-
#include <dithering_fragment>
|
|
303
|
-
if (vVisible > 0.0) {
|
|
304
|
-
gl_FragColor = vec4(outgoingLight, diffuseColor.a);
|
|
305
|
-
} else {
|
|
306
|
-
discard;
|
|
307
|
-
}
|
|
308
|
-
`;
|
|
309
|
-
shader.vertexShader = shader.vertexShader.replace('void main() {', vertexShader);
|
|
310
|
-
shader.fragmentShader = shader.fragmentShader.replace(
|
|
311
|
-
'void main() {',
|
|
312
|
-
fragmentShader
|
|
313
|
-
);
|
|
314
|
-
shader.fragmentShader = shader.fragmentShader.replace(
|
|
315
|
-
'#include <dithering_fragment>',
|
|
316
|
-
fragColor
|
|
317
|
-
);
|
|
318
|
-
child.material.transparent = true;
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
});
|
|
322
|
-
},
|
|
323
285
|
mouseDown() {
|
|
324
286
|
firstTime = new Date().getTime();
|
|
325
287
|
},
|
|
@@ -328,8 +290,15 @@
|
|
|
328
290
|
if (!measureFlag) {
|
|
329
291
|
lastTime = new Date().getTime();
|
|
330
292
|
if (lastTime - firstTime < 300) {
|
|
331
|
-
|
|
332
|
-
|
|
293
|
+
// 获取元素在页面中的偏移位置
|
|
294
|
+
const rect = renderer.domElement.getBoundingClientRect();
|
|
295
|
+
const x = event.clientX - rect.left;
|
|
296
|
+
const y = event.clientY - rect.top;
|
|
297
|
+
|
|
298
|
+
// mouse.x = (event.clientX / instructions.offsetWidth) * 2 - 1;
|
|
299
|
+
// mouse.y = -(event.clientY / instructions.offsetHeight) * 2 + 1;
|
|
300
|
+
mouse.x = (x / rect.width) * 2 - 1;
|
|
301
|
+
mouse.y = -(y / rect.height) * 2 + 1;
|
|
333
302
|
raycaster.setFromCamera(mouse, camera);
|
|
334
303
|
const intersects = raycaster.intersectObjects(scene.children, true);
|
|
335
304
|
let params = {};
|
|
@@ -550,7 +519,10 @@
|
|
|
550
519
|
if (obj.isGroup) {
|
|
551
520
|
this.setModelCenter(obj);
|
|
552
521
|
} else if (obj.isMesh) {
|
|
553
|
-
this.
|
|
522
|
+
let box = this.getSize(obj)
|
|
523
|
+
let center = this.getCenter(obj)
|
|
524
|
+
this.locateByCenterBox(center, box)
|
|
525
|
+
// this.setModelCenter(obj.parent);
|
|
554
526
|
}
|
|
555
527
|
}
|
|
556
528
|
},
|
|
@@ -1451,20 +1423,23 @@
|
|
|
1451
1423
|
},
|
|
1452
1424
|
// 获取中心点
|
|
1453
1425
|
getCenter(obj) {
|
|
1454
|
-
console.log(obj)
|
|
1455
1426
|
let center = new this.THREE.Vector3();
|
|
1456
1427
|
obj.boundingBox.getCenter(center);
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1428
|
+
if (obj.userData.is3D) {
|
|
1429
|
+
const mat4 = new this.THREE.Matrix4();
|
|
1430
|
+
mat4.makeRotationX(-Math.PI / 2);
|
|
1431
|
+
center.applyMatrix4(mat4)
|
|
1432
|
+
}
|
|
1460
1433
|
return center;
|
|
1461
1434
|
},
|
|
1462
1435
|
getSize(obj) {
|
|
1463
1436
|
let size = new this.THREE.Vector3();
|
|
1464
1437
|
obj.boundingBox.getSize(size);
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1438
|
+
if (obj.userData.is3D) {
|
|
1439
|
+
const mat4 = new this.THREE.Matrix4();
|
|
1440
|
+
mat4.makeRotationX(-Math.PI / 2);
|
|
1441
|
+
size.applyMatrix4(mat4)
|
|
1442
|
+
}
|
|
1468
1443
|
return size;
|
|
1469
1444
|
},
|
|
1470
1445
|
animate() {
|