fl-web-component 1.2.3 → 1.2.5
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
CHANGED
|
@@ -46,35 +46,39 @@ Vue.use(FlWebComponent)
|
|
|
46
46
|
欢迎贡献代码和问题反馈。
|
|
47
47
|
|
|
48
48
|
## 更新日志
|
|
49
|
-
- 2025-06-
|
|
49
|
+
- 1.2.5 2025-06-17
|
|
50
|
+
1. 修改remoAll方法不生效问题
|
|
51
|
+
- 1.2.4 2025-06-12
|
|
52
|
+
1. 优化图形绘制效果
|
|
53
|
+
- 1.2.3 2025-06-11
|
|
50
54
|
1. 修改相机定位
|
|
51
|
-
- 2025-06-09
|
|
55
|
+
- 1.2.2 2025-06-09
|
|
52
56
|
1. 优化图形绘制效果
|
|
53
57
|
2. 调整业务端交互模型时的位置偏差
|
|
54
58
|
3. 图纸模型新增点击、高亮、重置高亮等api,三维图形新增、获取中心点、计算实体大小等接口
|
|
55
|
-
- 2025-06-03
|
|
59
|
+
- 1.2.1 2025-06-03
|
|
56
60
|
1. 修复模型拾取问题
|
|
57
|
-
- 2025-05-30
|
|
61
|
+
- 1.2.0 2025-05-30
|
|
58
62
|
1. 图纸模型新增点击、高亮、重置高亮等api
|
|
59
63
|
2. 三维图形新增、获取中心点、计算实体大小等接口
|
|
60
|
-
- 2025-05-28
|
|
64
|
+
- 1.1.11 2025-05-28
|
|
61
65
|
1. 调整视椎体可视范围
|
|
62
|
-
- 2025-05-27
|
|
66
|
+
- 1.1.10 2025-05-27
|
|
63
67
|
1. 支持更改模型透明度
|
|
64
|
-
- 2025-05-26
|
|
68
|
+
- 1.1.9 2025-05-26
|
|
65
69
|
1. 修复pid组件问题
|
|
66
70
|
2. 修复instance-parser解析问题
|
|
67
|
-
- 2025-05-22
|
|
71
|
+
- 1.1.7 2025-05-22
|
|
68
72
|
1. 修复发版时递归发版的报错
|
|
69
|
-
- 2025-05-22
|
|
73
|
+
- 1.1.0 2025-05-22
|
|
70
74
|
1. 新增FLPerControl,FlSvg组件
|
|
71
75
|
2. 新增功能方法,详细参考文档
|
|
72
|
-
- 2025-05-16
|
|
76
|
+
- 1.0.12 2025-05-16
|
|
73
77
|
1. flcanvas组件更新
|
|
74
|
-
- 2025-05-15
|
|
78
|
+
- 1.0.11 2025-05-15
|
|
75
79
|
1. 去除依赖方解析包,现在业务使用方无需配置解析器
|
|
76
80
|
2. 去除umd产物,提高打包速度
|
|
77
81
|
3. 优化打包产物,大幅减少产物体积
|
|
78
82
|
4. 优化打包产物为兼容语法
|
|
79
|
-
- 2025-05-12
|
|
83
|
+
- 1.0.0 2025-05-12
|
|
80
84
|
1. 初始版本发布
|
|
@@ -762,6 +762,17 @@ exports.Easings = {
|
|
|
762
762
|
}
|
|
763
763
|
};
|
|
764
764
|
|
|
765
|
+
/***/ }),
|
|
766
|
+
|
|
767
|
+
/***/ "0ccb":
|
|
768
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
769
|
+
|
|
770
|
+
"use strict";
|
|
771
|
+
/* 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_0134be08_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cdf6");
|
|
772
|
+
/* 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_0134be08_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_0134be08_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
773
|
+
/* unused harmony reexport * */
|
|
774
|
+
|
|
775
|
+
|
|
765
776
|
/***/ }),
|
|
766
777
|
|
|
767
778
|
/***/ "0ff5":
|
|
@@ -8984,13 +8995,6 @@ exports.Sepia = Sepia;
|
|
|
8984
8995
|
|
|
8985
8996
|
/***/ }),
|
|
8986
8997
|
|
|
8987
|
-
/***/ "7c10":
|
|
8988
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
8989
|
-
|
|
8990
|
-
// extracted by mini-css-extract-plugin
|
|
8991
|
-
|
|
8992
|
-
/***/ }),
|
|
8993
|
-
|
|
8994
8998
|
/***/ "7cc1":
|
|
8995
8999
|
/***/ (function(module, exports, __webpack_require__) {
|
|
8996
9000
|
|
|
@@ -24933,6 +24937,13 @@ module.exports = g;
|
|
|
24933
24937
|
|
|
24934
24938
|
/***/ }),
|
|
24935
24939
|
|
|
24940
|
+
/***/ "cdf6":
|
|
24941
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
24942
|
+
|
|
24943
|
+
// extracted by mini-css-extract-plugin
|
|
24944
|
+
|
|
24945
|
+
/***/ }),
|
|
24946
|
+
|
|
24936
24947
|
/***/ "cf29":
|
|
24937
24948
|
/***/ (function(module, exports, __webpack_require__) {
|
|
24938
24949
|
|
|
@@ -28216,17 +28227,6 @@ Animation.animations = [];
|
|
|
28216
28227
|
Animation.animIdCounter = 0;
|
|
28217
28228
|
Animation.animRunning = false;
|
|
28218
28229
|
|
|
28219
|
-
/***/ }),
|
|
28220
|
-
|
|
28221
|
-
/***/ "effe":
|
|
28222
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
28223
|
-
|
|
28224
|
-
"use strict";
|
|
28225
|
-
/* 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_581c5bb4_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7c10");
|
|
28226
|
-
/* 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_581c5bb4_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_581c5bb4_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
28227
|
-
/* unused harmony reexport * */
|
|
28228
|
-
|
|
28229
|
-
|
|
28230
28230
|
/***/ }),
|
|
28231
28231
|
|
|
28232
28232
|
/***/ "f0b4":
|
|
@@ -29241,8 +29241,8 @@ if (typeof window !== 'undefined') {
|
|
|
29241
29241
|
// Indicate to webpack that this file can be concatenated
|
|
29242
29242
|
/* harmony default export */ var setPublicPath = (null);
|
|
29243
29243
|
|
|
29244
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
29245
|
-
var
|
|
29244
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0cfbbe05-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=0134be08&scoped=true
|
|
29245
|
+
var com_graphicsvue_type_template_id_0134be08_scoped_true_render = function render() {
|
|
29246
29246
|
var _vm = this,
|
|
29247
29247
|
_c = _vm._self._c;
|
|
29248
29248
|
return _c('div', {
|
|
@@ -29253,7 +29253,7 @@ var com_graphicsvue_type_template_id_581c5bb4_scoped_true_render = function rend
|
|
|
29253
29253
|
};
|
|
29254
29254
|
var staticRenderFns = [];
|
|
29255
29255
|
|
|
29256
|
-
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=
|
|
29256
|
+
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=0134be08&scoped=true
|
|
29257
29257
|
|
|
29258
29258
|
// CONCATENATED MODULE: ./node_modules/camera-controls/dist/camera-controls.module.js
|
|
29259
29259
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
@@ -57188,6 +57188,10 @@ function parseData(input) {
|
|
|
57188
57188
|
linewidth: (material === null || material === void 0 ? void 0 : material.linewidth) !== undefined ? material === null || material === void 0 ? void 0 : material.linewidth : 1 // 默认值
|
|
57189
57189
|
};
|
|
57190
57190
|
geomList.push({
|
|
57191
|
+
matrix: {
|
|
57192
|
+
val: primitive.matrix
|
|
57193
|
+
},
|
|
57194
|
+
prmid: primitive.prmid,
|
|
57191
57195
|
geomId: primitiveData.id,
|
|
57192
57196
|
type: primitiveData.geomType,
|
|
57193
57197
|
text: primitiveData.geomText,
|
|
@@ -57211,7 +57215,7 @@ function parseData(input) {
|
|
|
57211
57215
|
drawObjs: Array.from(drawObjMap.values()),
|
|
57212
57216
|
instances: formatInstances
|
|
57213
57217
|
};
|
|
57214
|
-
|
|
57218
|
+
console.log('parseData', map);
|
|
57215
57219
|
return map;
|
|
57216
57220
|
}
|
|
57217
57221
|
|
|
@@ -59463,12 +59467,17 @@ function handleInstancedMeshModel(instances, drawObjs, type, scene, customColor,
|
|
|
59463
59467
|
var _item$matrix;
|
|
59464
59468
|
model.userData.instanceIndex = index;
|
|
59465
59469
|
model.userData.instanceId = instances[_i].instanceId;
|
|
59470
|
+
model.userData.primId = mesh.prmid;
|
|
59466
59471
|
model.name = meshName !== '' ? instances[_i].instanceId + meshName : instances[_i].instanceId;
|
|
59467
59472
|
var matrixVal = (_item$matrix = item.matrix) === null || _item$matrix === void 0 ? void 0 : _item$matrix.val;
|
|
59468
59473
|
if (matrixVal) {
|
|
59469
59474
|
var m4 = new Matrix4();
|
|
59475
|
+
var meshMatrix = new Matrix4();
|
|
59476
|
+
var geomMatrix = new Matrix4();
|
|
59470
59477
|
// m4.setPosition(new THREE.Vector3(9999999, 9999999, 9999999)); // TODO 临时隐藏方案
|
|
59471
|
-
|
|
59478
|
+
meshMatrix.elements = item.matrix.val;
|
|
59479
|
+
geomMatrix.elements = mesh.matrix.val;
|
|
59480
|
+
m4.multiplyMatrices(meshMatrix, geomMatrix);
|
|
59472
59481
|
model.setMatrixAt(index, m4);
|
|
59473
59482
|
var copyMatrix = new Matrix4().copy(m4);
|
|
59474
59483
|
model.userData.copyMatrix = copyMatrix;
|
|
@@ -59489,8 +59498,8 @@ function handleInstancedMeshModel(instances, drawObjs, type, scene, customColor,
|
|
|
59489
59498
|
for (var _i = 0; _i < instances.length; _i++) {
|
|
59490
59499
|
_loop(_i);
|
|
59491
59500
|
}
|
|
59492
|
-
|
|
59493
|
-
|
|
59501
|
+
console.log('modelGroup', modelGroup);
|
|
59502
|
+
console.log('drawObjMapInstance', drawObjMapInstance);
|
|
59494
59503
|
return modelGroup;
|
|
59495
59504
|
// timeRender();
|
|
59496
59505
|
// console.log('scene', scene)
|
|
@@ -59671,8 +59680,9 @@ function draw3Dmodel(geom, instanceName, instanceCount, nColor, nOpacity) {
|
|
|
59671
59680
|
};
|
|
59672
59681
|
customMaterial && Object.assign(customMaterial, materialOptions);
|
|
59673
59682
|
material = customMaterial || new MeshStandardMaterial(instance_parser_objectSpread(instance_parser_objectSpread({}, materialOptions), {}, {
|
|
59674
|
-
roughness: 0.
|
|
59675
|
-
|
|
59683
|
+
roughness: 0.6,
|
|
59684
|
+
metalness: 0.5,
|
|
59685
|
+
envMapIntensity: 1 // 调低环境贴图的强度
|
|
59676
59686
|
// wireframe: true
|
|
59677
59687
|
}));
|
|
59678
59688
|
|
|
@@ -61124,7 +61134,7 @@ var guiParams = {
|
|
|
61124
61134
|
com_graphicsvue_type_script_lang_js_renderer.autoClearStencil = false;
|
|
61125
61135
|
},
|
|
61126
61136
|
initScene: function initScene() {
|
|
61127
|
-
|
|
61137
|
+
// modelGroup = new this.THREE.Group();
|
|
61128
61138
|
com_graphicsvue_type_script_lang_js_scene = new this.THREE.Scene();
|
|
61129
61139
|
},
|
|
61130
61140
|
initCamera: function initCamera() {
|
|
@@ -61172,6 +61182,7 @@ var guiParams = {
|
|
|
61172
61182
|
instances = _parseData.instances,
|
|
61173
61183
|
drawObjs = _parseData.drawObjs;
|
|
61174
61184
|
if (instances.length > 0) {
|
|
61185
|
+
com_graphicsvue_type_script_lang_js_modelGroup = new this.THREE.Group();
|
|
61175
61186
|
com_graphicsvue_type_script_lang_js_modelGroup = handleInstancedMeshModel(instances, drawObjs, '', com_graphicsvue_type_script_lang_js_scene, color, meshNameConfig);
|
|
61176
61187
|
var modelBox3 = new this.THREE.Box3();
|
|
61177
61188
|
modelBox3.expandByObject(com_graphicsvue_type_script_lang_js_modelGroup);
|
|
@@ -61583,28 +61594,39 @@ var guiParams = {
|
|
|
61583
61594
|
},
|
|
61584
61595
|
// 删除场景中所有的实体
|
|
61585
61596
|
removeAll: function removeAll() {
|
|
61586
|
-
var _this5 = this;
|
|
61587
61597
|
if (com_graphicsvue_type_script_lang_js_scene) {
|
|
61588
|
-
|
|
61589
|
-
|
|
61590
|
-
|
|
61591
|
-
|
|
61598
|
+
this.removeTraverse();
|
|
61599
|
+
}
|
|
61600
|
+
},
|
|
61601
|
+
removeTraverse: function removeTraverse() {
|
|
61602
|
+
var length = com_graphicsvue_type_script_lang_js_modelGroup.children.length;
|
|
61603
|
+
if (length > 0) {
|
|
61604
|
+
var list = com_graphicsvue_type_script_lang_js_modelGroup.children[0];
|
|
61605
|
+
list.traverse(function (item) {
|
|
61606
|
+
if (item.isMesh) {
|
|
61607
|
+
item.material.dispose();
|
|
61608
|
+
item.geometry.dispose();
|
|
61592
61609
|
item.clear();
|
|
61610
|
+
com_graphicsvue_type_script_lang_js_modelGroup.remove(item);
|
|
61593
61611
|
}
|
|
61612
|
+
});
|
|
61613
|
+
com_graphicsvue_type_script_lang_js_modelGroup.remove(list);
|
|
61614
|
+
this.removeTraverse();
|
|
61615
|
+
} else {
|
|
61616
|
+
// 在这里清除一些标记之类的
|
|
61617
|
+
com_graphicsvue_type_script_lang_js_scene.traverse(function (item) {
|
|
61594
61618
|
com_graphicsvue_type_script_lang_js_scene.remove(item);
|
|
61595
61619
|
});
|
|
61596
|
-
com_graphicsvue_type_script_lang_js_scene.
|
|
61620
|
+
com_graphicsvue_type_script_lang_js_scene.remove(com_graphicsvue_type_script_lang_js_modelGroup);
|
|
61621
|
+
com_graphicsvue_type_script_lang_js_renderer.clear();
|
|
61622
|
+
com_graphicsvue_type_script_lang_js_modelGroup = null;
|
|
61597
61623
|
}
|
|
61598
61624
|
},
|
|
61599
61625
|
// 销毁场景 释放内存
|
|
61600
61626
|
destroyScene: function destroyScene() {
|
|
61601
61627
|
cancelAnimationFrame(animateId);
|
|
61602
61628
|
if (com_graphicsvue_type_script_lang_js_scene) {
|
|
61603
|
-
|
|
61604
|
-
child.material && child.material.dispose();
|
|
61605
|
-
child.geometry && child.geometry.dispose();
|
|
61606
|
-
child = null;
|
|
61607
|
-
});
|
|
61629
|
+
this.removeTraverse();
|
|
61608
61630
|
com_graphicsvue_type_script_lang_js_scene.clear();
|
|
61609
61631
|
com_graphicsvue_type_script_lang_js_scene = null;
|
|
61610
61632
|
}
|
|
@@ -61625,11 +61647,11 @@ var guiParams = {
|
|
|
61625
61647
|
}
|
|
61626
61648
|
*/
|
|
61627
61649
|
drawCurve: function drawCurve(params) {
|
|
61628
|
-
var
|
|
61650
|
+
var _this5 = this;
|
|
61629
61651
|
this.removeObjectByName(params.name);
|
|
61630
61652
|
var route = [];
|
|
61631
61653
|
params.path.forEach(function (element) {
|
|
61632
|
-
route.push(new
|
|
61654
|
+
route.push(new _this5.THREE.Vector3(element.x, element.y, element.z));
|
|
61633
61655
|
});
|
|
61634
61656
|
if (route.length > 1) {
|
|
61635
61657
|
com_graphicsvue_type_script_lang_js_curve = new this.THREE.CatmullRomCurve3(route);
|
|
@@ -61653,11 +61675,11 @@ var guiParams = {
|
|
|
61653
61675
|
}
|
|
61654
61676
|
*/
|
|
61655
61677
|
drawTextureCurve: function drawTextureCurve(params) {
|
|
61656
|
-
var
|
|
61678
|
+
var _this6 = this;
|
|
61657
61679
|
this.removeObjectByName(params.name);
|
|
61658
61680
|
var route = [];
|
|
61659
61681
|
params.path.forEach(function (element) {
|
|
61660
|
-
route.push(new
|
|
61682
|
+
route.push(new _this6.THREE.Vector3(element.x, element.y, element.z));
|
|
61661
61683
|
});
|
|
61662
61684
|
// 画曲线
|
|
61663
61685
|
if (route.length > 1) {
|
|
@@ -61759,13 +61781,13 @@ var guiParams = {
|
|
|
61759
61781
|
* 参数val: 爆炸的值
|
|
61760
61782
|
*/
|
|
61761
61783
|
globalBomb: function globalBomb(val) {
|
|
61762
|
-
var
|
|
61784
|
+
var _this7 = this;
|
|
61763
61785
|
if (com_graphicsvue_type_script_lang_js_scene.children.length === 0) return;
|
|
61764
61786
|
for (var i = 0; i < com_graphicsvue_type_script_lang_js_scene.children.length; i++) {
|
|
61765
61787
|
com_graphicsvue_type_script_lang_js_scene.children[i].traverse(function (item) {
|
|
61766
61788
|
if (!item.isMesh || !item.worldDir) return;
|
|
61767
61789
|
// 爆炸公式
|
|
61768
|
-
|
|
61790
|
+
_this7.computedBomb(item, val);
|
|
61769
61791
|
});
|
|
61770
61792
|
}
|
|
61771
61793
|
// this.timeRender();
|
|
@@ -61932,7 +61954,7 @@ var guiParams = {
|
|
|
61932
61954
|
},
|
|
61933
61955
|
// 页面是否锁定
|
|
61934
61956
|
initPointerLock: function initPointerLock() {
|
|
61935
|
-
var
|
|
61957
|
+
var _this8 = this;
|
|
61936
61958
|
this.home();
|
|
61937
61959
|
setTimeout(function () {
|
|
61938
61960
|
pointControls = new PointerLockControls(com_graphicsvue_type_script_lang_js_camera, com_graphicsvue_type_script_lang_js_renderer.domElement);
|
|
@@ -61940,10 +61962,10 @@ var guiParams = {
|
|
|
61940
61962
|
// 锁定
|
|
61941
61963
|
pointControls.addEventListener('lock', function () {
|
|
61942
61964
|
cameraControls.enabled = false;
|
|
61943
|
-
window.addEventListener('keydown',
|
|
61944
|
-
window.addEventListener('keyup',
|
|
61945
|
-
com_graphicsvue_type_script_lang_js_renderer.domElement.removeEventListener('mouseup',
|
|
61946
|
-
com_graphicsvue_type_script_lang_js_renderer.domElement.removeEventListener('mousedown',
|
|
61965
|
+
window.addEventListener('keydown', _this8.onKeyDown, false);
|
|
61966
|
+
window.addEventListener('keyup', _this8.onKeyUp, false);
|
|
61967
|
+
com_graphicsvue_type_script_lang_js_renderer.domElement.removeEventListener('mouseup', _this8.mouseClick, false);
|
|
61968
|
+
com_graphicsvue_type_script_lang_js_renderer.domElement.removeEventListener('mousedown', _this8.mouseDown, false);
|
|
61947
61969
|
});
|
|
61948
61970
|
// 解锁
|
|
61949
61971
|
pointControls.addEventListener('unlock', function () {
|
|
@@ -61953,10 +61975,10 @@ var guiParams = {
|
|
|
61953
61975
|
cameraControls.reset(true);
|
|
61954
61976
|
cameraControls.update(0);
|
|
61955
61977
|
setTimeout(function () {
|
|
61956
|
-
window.removeEventListener('keydown',
|
|
61957
|
-
window.removeEventListener('keyup',
|
|
61958
|
-
com_graphicsvue_type_script_lang_js_renderer.domElement.addEventListener('mouseup',
|
|
61959
|
-
com_graphicsvue_type_script_lang_js_renderer.domElement.addEventListener('mousedown',
|
|
61978
|
+
window.removeEventListener('keydown', _this8.onKeyDown);
|
|
61979
|
+
window.removeEventListener('keyup', _this8.onKeyUp);
|
|
61980
|
+
com_graphicsvue_type_script_lang_js_renderer.domElement.addEventListener('mouseup', _this8.mouseClick, false);
|
|
61981
|
+
com_graphicsvue_type_script_lang_js_renderer.domElement.addEventListener('mousedown', _this8.mouseDown, false);
|
|
61960
61982
|
// this.timeRender()
|
|
61961
61983
|
}, 0);
|
|
61962
61984
|
});
|
|
@@ -62159,11 +62181,11 @@ var guiParams = {
|
|
|
62159
62181
|
参数: object, 目标实体,
|
|
62160
62182
|
*/
|
|
62161
62183
|
isolate: function isolate(object) {
|
|
62162
|
-
var
|
|
62184
|
+
var _this9 = this;
|
|
62163
62185
|
// 隔离 将目标实体以外的实体隐藏掉
|
|
62164
62186
|
com_graphicsvue_type_script_lang_js_scene.traverse(function (item) {
|
|
62165
62187
|
if (item.isMesh && item.name !== object.name) {
|
|
62166
|
-
var offsetMatrix = new
|
|
62188
|
+
var offsetMatrix = new _this9.THREE.Matrix4().copy(item.userData.copyMatrix).makeTranslation(9999999, 9999999, 9999999);
|
|
62167
62189
|
item.setMatrixAt(item.userData.instanceIndex, offsetMatrix);
|
|
62168
62190
|
item.instanceMatrix.needsUpdate = true;
|
|
62169
62191
|
}
|
|
@@ -62171,7 +62193,7 @@ var guiParams = {
|
|
|
62171
62193
|
},
|
|
62172
62194
|
// 还原操作 将修改过的实体进行恢复
|
|
62173
62195
|
restore: function restore() {
|
|
62174
|
-
var
|
|
62196
|
+
var _this0 = this;
|
|
62175
62197
|
com_graphicsvue_type_script_lang_js_scene.traverse(function (item) {
|
|
62176
62198
|
if (item.isMesh) {
|
|
62177
62199
|
item.setColorAt(item.userData.instanceIndex, item.material.userData.nColor);
|
|
@@ -62191,14 +62213,14 @@ var guiParams = {
|
|
|
62191
62213
|
item.userData.translateMatrixInvert = null;
|
|
62192
62214
|
}
|
|
62193
62215
|
if (item.userData.combineMatrixInvert) {
|
|
62194
|
-
|
|
62216
|
+
_this0.rotateMesh(item, {
|
|
62195
62217
|
x: 0,
|
|
62196
62218
|
y: 0,
|
|
62197
62219
|
z: 0
|
|
62198
62220
|
});
|
|
62199
62221
|
item.userData.combineMatrixInvert = null;
|
|
62200
62222
|
}
|
|
62201
|
-
var offsetMatrix = new
|
|
62223
|
+
var offsetMatrix = new _this0.THREE.Matrix4().copy(item.userData.copyMatrix);
|
|
62202
62224
|
item.setMatrixAt(item.userData.instanceIndex, offsetMatrix);
|
|
62203
62225
|
item.instanceMatrix.needsUpdate = true;
|
|
62204
62226
|
}
|
|
@@ -62206,7 +62228,7 @@ var guiParams = {
|
|
|
62206
62228
|
},
|
|
62207
62229
|
// 添加自定义模型, 暂时只支持glb、gltf格式
|
|
62208
62230
|
addCustomModel: function addCustomModel(name, position, url) {
|
|
62209
|
-
var
|
|
62231
|
+
var _this1 = this;
|
|
62210
62232
|
var scale = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
62211
62233
|
var immediately = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
62212
62234
|
var callback = arguments.length > 5 ? arguments[5] : undefined;
|
|
@@ -62224,9 +62246,9 @@ var guiParams = {
|
|
|
62224
62246
|
locationModel.userData.cull = false;
|
|
62225
62247
|
locationModel.name = name;
|
|
62226
62248
|
com_graphicsvue_type_script_lang_js_scene.add(locationModel);
|
|
62227
|
-
locationModel.position.copy(new
|
|
62249
|
+
locationModel.position.copy(new _this1.THREE.Vector3(position.x, position.y, position.z));
|
|
62228
62250
|
if (gltf.animations.length > 0) {
|
|
62229
|
-
var actionMixer = new
|
|
62251
|
+
var actionMixer = new _this1.THREE.AnimationMixer(gltf.scene);
|
|
62230
62252
|
var walkActive = actionMixer.clipAction(gltf.animations[0]);
|
|
62231
62253
|
walkActive.play();
|
|
62232
62254
|
modelActive.push(walkActive);
|
|
@@ -62237,7 +62259,7 @@ var guiParams = {
|
|
|
62237
62259
|
},
|
|
62238
62260
|
// 删除添加的自定义模型
|
|
62239
62261
|
removeCustomModel: function removeCustomModel(name) {
|
|
62240
|
-
var
|
|
62262
|
+
var _this10 = this;
|
|
62241
62263
|
var obj = this.getObjectByName(name);
|
|
62242
62264
|
obj.forEach(function (item, index) {
|
|
62243
62265
|
if (item.animations > 0) {
|
|
@@ -62246,7 +62268,7 @@ var guiParams = {
|
|
|
62246
62268
|
modelActions[index].uncacheRoot(modelActive[index]);
|
|
62247
62269
|
}
|
|
62248
62270
|
item.traverse(function (child) {
|
|
62249
|
-
if (child instanceof
|
|
62271
|
+
if (child instanceof _this10.THREE.Mesh) {
|
|
62250
62272
|
child.geometry.dispose();
|
|
62251
62273
|
child.material.dispose();
|
|
62252
62274
|
}
|
|
@@ -62331,8 +62353,8 @@ var guiParams = {
|
|
|
62331
62353
|
});
|
|
62332
62354
|
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=script&lang=js
|
|
62333
62355
|
/* harmony default export */ var components_com_graphicsvue_type_script_lang_js = (com_graphicsvue_type_script_lang_js);
|
|
62334
|
-
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=
|
|
62335
|
-
var
|
|
62356
|
+
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=0134be08&prod&lang=scss&scoped=true
|
|
62357
|
+
var com_graphicsvue_type_style_index_0_id_0134be08_prod_lang_scss_scoped_true = __webpack_require__("0ccb");
|
|
62336
62358
|
|
|
62337
62359
|
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
|
|
62338
62360
|
/* globals __VUE_SSR_CONTEXT__ */
|
|
@@ -62443,17 +62465,17 @@ function normalizeComponent(
|
|
|
62443
62465
|
|
|
62444
62466
|
var component = normalizeComponent(
|
|
62445
62467
|
components_com_graphicsvue_type_script_lang_js,
|
|
62446
|
-
|
|
62468
|
+
com_graphicsvue_type_template_id_0134be08_scoped_true_render,
|
|
62447
62469
|
staticRenderFns,
|
|
62448
62470
|
false,
|
|
62449
62471
|
null,
|
|
62450
|
-
"
|
|
62472
|
+
"0134be08",
|
|
62451
62473
|
null
|
|
62452
62474
|
|
|
62453
62475
|
)
|
|
62454
62476
|
|
|
62455
62477
|
/* harmony default export */ var com_graphics = (component.exports);
|
|
62456
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
62478
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0cfbbe05-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=1eba8e28&scoped=true
|
|
62457
62479
|
var com_flcanvasvue_type_template_id_1eba8e28_scoped_true_render = function render() {
|
|
62458
62480
|
var _vm = this,
|
|
62459
62481
|
_c = _vm._self._c;
|
|
@@ -65652,7 +65674,7 @@ var com_flcanvas_component = normalizeComponent(
|
|
|
65652
65674
|
)
|
|
65653
65675
|
|
|
65654
65676
|
/* harmony default export */ var com_flcanvas = (com_flcanvas_component.exports);
|
|
65655
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
65677
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0cfbbe05-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
|
|
65656
65678
|
var per_controlvue_type_template_id_f547d5c6_scoped_true_render = function render() {
|
|
65657
65679
|
var _vm = this,
|
|
65658
65680
|
_c = _vm._self._c;
|
|
@@ -65760,7 +65782,7 @@ var per_control_component = normalizeComponent(
|
|
|
65760
65782
|
)
|
|
65761
65783
|
|
|
65762
65784
|
/* harmony default export */ var per_control = (per_control_component.exports);
|
|
65763
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
65785
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0cfbbe05-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=0ec35ee4&scoped=true
|
|
65764
65786
|
var pidvue_type_template_id_0ec35ee4_scoped_true_render = function render() {
|
|
65765
65787
|
var _vm = this,
|
|
65766
65788
|
_c = _vm._self._c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";#fl-model[data-v-
|
|
1
|
+
@charset "UTF-8";#fl-model[data-v-0134be08],#konva-container[data-v-1eba8e28]{width:100%;height:100%;cursor:pointer}#konva-container[data-v-1eba8e28]{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-0ec35ee4]{cursor:pointer;height:100%;width:100%}
|
package/package.json
CHANGED
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
renderer.autoClearStencil = false;
|
|
169
169
|
},
|
|
170
170
|
initScene() {
|
|
171
|
-
modelGroup = new this.THREE.Group();
|
|
171
|
+
// modelGroup = new this.THREE.Group();
|
|
172
172
|
scene = new this.THREE.Scene();
|
|
173
173
|
},
|
|
174
174
|
initCamera() {
|
|
@@ -216,6 +216,7 @@
|
|
|
216
216
|
}
|
|
217
217
|
const { instances, drawObjs } = parseData(data);
|
|
218
218
|
if (instances.length > 0) {
|
|
219
|
+
modelGroup = new this.THREE.Group();
|
|
219
220
|
modelGroup = handleInstancedMeshModel(
|
|
220
221
|
instances,
|
|
221
222
|
drawObjs,
|
|
@@ -669,26 +670,39 @@
|
|
|
669
670
|
// 删除场景中所有的实体
|
|
670
671
|
removeAll() {
|
|
671
672
|
if (scene) {
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
673
|
+
this.removeTraverse()
|
|
674
|
+
}
|
|
675
|
+
},
|
|
676
|
+
removeTraverse() {
|
|
677
|
+
let length = modelGroup.children.length
|
|
678
|
+
if (length > 0) {
|
|
679
|
+
let list = modelGroup.children[0]
|
|
680
|
+
list.traverse(item => {
|
|
681
|
+
if (item.isMesh) {
|
|
682
|
+
item.material.dispose();
|
|
683
|
+
item.geometry.dispose();
|
|
676
684
|
item.clear();
|
|
685
|
+
modelGroup.remove(item);
|
|
677
686
|
}
|
|
678
|
-
scene.remove(item);
|
|
679
687
|
});
|
|
680
|
-
|
|
688
|
+
modelGroup.remove(list);
|
|
689
|
+
this.removeTraverse();
|
|
690
|
+
} else {
|
|
691
|
+
// 在这里清除一些标记之类的
|
|
692
|
+
scene.traverse(item => {
|
|
693
|
+
scene.remove(item)
|
|
694
|
+
})
|
|
695
|
+
scene.remove(modelGroup);
|
|
696
|
+
renderer.clear();
|
|
697
|
+
modelGroup = null
|
|
681
698
|
}
|
|
699
|
+
|
|
682
700
|
},
|
|
683
701
|
// 销毁场景 释放内存
|
|
684
702
|
destroyScene() {
|
|
685
703
|
cancelAnimationFrame(animateId);
|
|
686
704
|
if (scene) {
|
|
687
|
-
|
|
688
|
-
child.material && child.material.dispose();
|
|
689
|
-
child.geometry && child.geometry.dispose();
|
|
690
|
-
child = null;
|
|
691
|
-
});
|
|
705
|
+
this.removeTraverse();
|
|
692
706
|
scene.clear();
|
|
693
707
|
scene = null;
|
|
694
708
|
}
|
|
@@ -112,6 +112,10 @@ function parseData(input) {
|
|
|
112
112
|
};
|
|
113
113
|
|
|
114
114
|
geomList.push({
|
|
115
|
+
matrix: {
|
|
116
|
+
val: primitive.matrix,
|
|
117
|
+
},
|
|
118
|
+
prmid: primitive.prmid,
|
|
115
119
|
geomId: primitiveData.id,
|
|
116
120
|
type: primitiveData.geomType,
|
|
117
121
|
text: primitiveData.geomText,
|
|
@@ -138,7 +142,7 @@ function parseData(input) {
|
|
|
138
142
|
drawObjs: Array.from(drawObjMap.values()),
|
|
139
143
|
instances: formatInstances,
|
|
140
144
|
};
|
|
141
|
-
|
|
145
|
+
console.log('parseData', map);
|
|
142
146
|
return map;
|
|
143
147
|
}
|
|
144
148
|
|
|
@@ -86,13 +86,18 @@ function handleInstancedMeshModel(
|
|
|
86
86
|
if (item.instanceId == instances[i].instanceId) {
|
|
87
87
|
model.userData.instanceIndex = index;
|
|
88
88
|
model.userData.instanceId = instances[i].instanceId;
|
|
89
|
+
model.userData.primId = mesh.prmid;
|
|
89
90
|
model.name =
|
|
90
91
|
meshName !== '' ? instances[i].instanceId + meshName : instances[i].instanceId;
|
|
91
92
|
const matrixVal = item.matrix?.val;
|
|
92
93
|
if (matrixVal) {
|
|
93
94
|
const m4 = new THREE.Matrix4();
|
|
95
|
+
const meshMatrix = new THREE.Matrix4();
|
|
96
|
+
const geomMatrix = new THREE.Matrix4();
|
|
94
97
|
// m4.setPosition(new THREE.Vector3(9999999, 9999999, 9999999)); // TODO 临时隐藏方案
|
|
95
|
-
|
|
98
|
+
meshMatrix.elements = item.matrix.val;
|
|
99
|
+
geomMatrix.elements = mesh.matrix.val;
|
|
100
|
+
m4.multiplyMatrices(meshMatrix, geomMatrix);
|
|
96
101
|
model.setMatrixAt(index, m4);
|
|
97
102
|
const copyMatrix = new THREE.Matrix4().copy(m4);
|
|
98
103
|
model.userData.copyMatrix = copyMatrix;
|
|
@@ -112,8 +117,8 @@ function handleInstancedMeshModel(
|
|
|
112
117
|
}
|
|
113
118
|
}
|
|
114
119
|
}
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
console.log('modelGroup', modelGroup);
|
|
121
|
+
console.log('drawObjMapInstance', drawObjMapInstance);
|
|
117
122
|
return modelGroup;
|
|
118
123
|
// timeRender();
|
|
119
124
|
// console.log('scene', scene)
|
|
@@ -318,8 +323,9 @@ function draw3Dmodel(geom, instanceName, instanceCount, nColor, nOpacity) {
|
|
|
318
323
|
material = customMaterial ||
|
|
319
324
|
new THREE.MeshStandardMaterial({
|
|
320
325
|
...materialOptions,
|
|
321
|
-
roughness: 0.
|
|
322
|
-
|
|
326
|
+
roughness: 0.6,
|
|
327
|
+
metalness: 0.5,
|
|
328
|
+
envMapIntensity: 1, // 调低环境贴图的强度
|
|
323
329
|
// wireframe: true
|
|
324
330
|
});
|
|
325
331
|
|