w-threejs-vue 1.0.20 → 1.0.21
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 +1 -1
- package/dist/w-threejs-vue.umd.js +5 -7
- package/dist/w-threejs-vue.umd.js.map +1 -1
- package/docs/examples/app.html +1 -1
- package/docs/examples/app.umd.js +4 -6
- package/docs/examples/app.umd.js.map +1 -1
- package/docs/examples/ex-AppAxAxisXGridLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisXGridLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisXLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisXLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickLabelColor.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickLabelDig.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickLabelDistance.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickLabelFontFamily.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickLabelFontSize.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickLineLength.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisXTickNum.html +1 -1
- package/docs/examples/ex-AppAxAxisXTitle.html +1 -1
- package/docs/examples/ex-AppAxAxisXTitleColor.html +1 -1
- package/docs/examples/ex-AppAxAxisXTitleDistance.html +1 -1
- package/docs/examples/ex-AppAxAxisXTitleFontFamily.html +1 -1
- package/docs/examples/ex-AppAxAxisXTitleFontSize.html +1 -1
- package/docs/examples/ex-AppAxAxisYGridLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisYGridLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisYLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisYLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickLabelColor.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickLabelDig.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickLabelDistance.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickLabelFontFamily.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickLabelFontSize.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickLineLength.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisYTickNum.html +1 -1
- package/docs/examples/ex-AppAxAxisYTitle.html +1 -1
- package/docs/examples/ex-AppAxAxisYTitleColor.html +1 -1
- package/docs/examples/ex-AppAxAxisYTitleDistance.html +1 -1
- package/docs/examples/ex-AppAxAxisYTitleFontFamily.html +1 -1
- package/docs/examples/ex-AppAxAxisYTitleFontSize.html +1 -1
- package/docs/examples/ex-AppAxAxisZGridLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisZGridLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisZLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisZLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickLabelColor.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickLabelDig.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickLabelDistance.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickLabelFontFamily.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickLabelFontSize.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickLineColor.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickLineLength.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickLineWidth.html +1 -1
- package/docs/examples/ex-AppAxAxisZTickNum.html +1 -1
- package/docs/examples/ex-AppAxAxisZTitle.html +1 -1
- package/docs/examples/ex-AppAxAxisZTitleColor.html +1 -1
- package/docs/examples/ex-AppAxAxisZTitleDistance.html +1 -1
- package/docs/examples/ex-AppAxAxisZTitleFontFamily.html +1 -1
- package/docs/examples/ex-AppAxAxisZTitleFontSize.html +1 -1
- package/docs/examples/ex-AppBasicAutoRotateDeg.html +1 -1
- package/docs/examples/ex-AppBasicBackgroundColor.html +1 -1
- package/docs/examples/ex-AppBasicSize.html +1 -1
- package/docs/examples/ex-AppBasicUpload.html +1 -1
- package/docs/examples/ex-AppBasicUseAutoRotate.html +1 -1
- package/docs/examples/ex-AppCmCameraFar.html +1 -1
- package/docs/examples/ex-AppCmCameraFov.html +1 -1
- package/docs/examples/ex-AppCmCameraNear.html +1 -1
- package/docs/examples/ex-AppCmCameraOrthographicRatio.html +1 -1
- package/docs/examples/ex-AppCmCameraType.html +1 -1
- package/docs/examples/ex-AppCmGetCameraViewAngle.html +1 -1
- package/docs/examples/ex-AppCmSetCameraAzimuthAngle.html +1 -1
- package/docs/examples/ex-AppCmSetCameraPolarAngle.html +1 -1
- package/docs/examples/ex-AppCmSetCameraViewAngle.html +1 -1
- package/docs/examples/ex-AppHpHelperAxesLengthRatio.html +1 -1
- package/docs/examples/ex-AppHpHelperGridDensity.html +1 -1
- package/docs/examples/ex-AppHpHelperGridLengthRatio.html +1 -1
- package/docs/examples/ex-AppHpHelperGridPositionRatioZ.html +1 -1
- package/docs/examples/ex-AppHpUseHelperAxes.html +1 -1
- package/docs/examples/ex-AppHpUseHelperGrid.html +1 -1
- package/docs/examples/ex-AppLgLegendBackgroundColor.html +1 -1
- package/docs/examples/ex-AppLgLegendHeight.html +1 -1
- package/docs/examples/ex-AppLgLegendHeightMax.html +1 -1
- package/docs/examples/ex-AppLtLightAmbientColor.html +1 -1
- package/docs/examples/ex-AppLtLightDirectionColor.html +1 -1
- package/docs/examples/ex-AppLtLightDirectionIntensity.html +1 -1
- package/docs/examples/ex-AppLtLightDirectionPos.html +1 -1
- package/docs/examples/ex-AppLtLightPointColor.html +1 -1
- package/docs/examples/ex-AppLtLightPointDecay.html +1 -1
- package/docs/examples/ex-AppLtLightPointDistance.html +1 -1
- package/docs/examples/ex-AppLtLightPointIntensity.html +1 -1
- package/docs/examples/ex-AppLtLightPointPoss.html +1 -1
- package/docs/examples/ex-AppLtUseLightAmbient.html +1 -1
- package/docs/examples/ex-AppLtUseLightDirection.html +1 -1
- package/docs/examples/ex-AppLtUseLightPoint.html +1 -1
- package/docs/examples/ex-AppMhGetMeshsInfor.html +1 -1
- package/docs/examples/ex-AppMhSetMeshColor.html +1 -1
- package/docs/examples/ex-AppMhSetMeshLabelText.html +1 -1
- package/docs/examples/ex-AppMhSetMeshLabelTextColor.html +1 -1
- package/docs/examples/ex-AppMhSetMeshLabelTextFontFamily.html +1 -1
- package/docs/examples/ex-AppMhSetMeshLabelTextFontSize.html +1 -1
- package/docs/examples/ex-AppMhSetMeshLabelVisible.html +1 -1
- package/docs/examples/ex-AppMhSetMeshVisible.html +1 -1
- package/docs/examples/ex-AppMhUseAxis.html +1 -1
- package/docs/examples/ex-AppMuMenuIcons.html +1 -1
- package/docs/examples/ex-AppMuMenuTooltips.html +1 -1
- package/docs/index.html +1 -1
- package/docs/module-WThreejsVue.html +1 -1
- package/package.json +1 -1
- package/src/components/WThreejsVue.vue +138 -141
- package/src/js/addStl.mjs +22 -18
- package/src/js/addVtp.mjs +1 -1
|
@@ -1,143 +1,138 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
<div :style="`color:${m.labelTextColor}; font-size:${m.labelTextFontSize}; font-family:${m.labelTextFontFamily};`">
|
|
128
|
-
{{m.labelText}}
|
|
129
|
-
</div>
|
|
130
|
-
|
|
2
|
+
<div
|
|
3
|
+
:style="`position:relative; width:${widthInp}px; height:${heightInp}px;`"
|
|
4
|
+
:loading="loading"
|
|
5
|
+
>
|
|
6
|
+
|
|
7
|
+
<!-- 圖台區 -->
|
|
8
|
+
<div
|
|
9
|
+
ref="panel"
|
|
10
|
+
:style="`width:${widthInp}px; height:${heightInp}px; opacity:${loading?0:1};`"
|
|
11
|
+
v-domresize
|
|
12
|
+
@domresize="resizePanel"
|
|
13
|
+
></div>
|
|
14
|
+
|
|
15
|
+
<!-- 輔助區 -->
|
|
16
|
+
<!-- 須使用pointer-events:none吃掉事件, 才能點擊選單區透明區域 -->
|
|
17
|
+
<div
|
|
18
|
+
:style="`position:absolute; top:0px; left:0px; pointer-events:none;`"
|
|
19
|
+
v-if="!loading"
|
|
20
|
+
>
|
|
21
|
+
|
|
22
|
+
<div :style="`padding:${space+menuYShiftInp}px ${space}px ${space}px ${space}px; display:flex; align-items:flex-start;`">
|
|
23
|
+
|
|
24
|
+
<!-- 設定區 -->
|
|
25
|
+
<!-- 須使用pointer-events:auto恢復子元素接收事件, 才能點擊與捲動選單 -->
|
|
26
|
+
<WPanelScrolly
|
|
27
|
+
:style="`width:${panelItemsIconSize}px; height:${panelItemsHeight}px; pointer-events:auto;`"
|
|
28
|
+
:bar-opacity="0"
|
|
29
|
+
:bar-opacity-hover="0.8"
|
|
30
|
+
>
|
|
31
|
+
|
|
32
|
+
<WGroupIconCheck
|
|
33
|
+
:items="useItems"
|
|
34
|
+
:dir="'vertical'"
|
|
35
|
+
:iconColor="'#aaa'"
|
|
36
|
+
:iconColorHover="'#ccc'"
|
|
37
|
+
:iconColorFocus="'#ccc'"
|
|
38
|
+
:iconColorActive="'#fff'"
|
|
39
|
+
:backgroundColor="'#000'"
|
|
40
|
+
:backgroundColorHover="'#111'"
|
|
41
|
+
:backgroundColorFocus="'#111'"
|
|
42
|
+
:backgroundColorActive="'#444'"
|
|
43
|
+
:seplineColor="'#333'"
|
|
44
|
+
:tooltipTextFontSize="'0.7rem'"
|
|
45
|
+
:value="itemsSelects"
|
|
46
|
+
_input="updateItem"
|
|
47
|
+
@click="ckItem"
|
|
48
|
+
></WGroupIconCheck>
|
|
49
|
+
|
|
50
|
+
</WPanelScrolly>
|
|
51
|
+
|
|
52
|
+
<template v-if="useLegend">
|
|
53
|
+
|
|
54
|
+
<div :style="`padding-left:${space}px;`"></div>
|
|
55
|
+
|
|
56
|
+
<!-- 圖例區 -->
|
|
57
|
+
<!-- 須使用pointer-events:none吃掉事件, 才能點擊選單區透明區域 -->
|
|
58
|
+
<div :style="`padding:5px; border-radius:4px; background:${useLegendBackgroundColor}; pointer-events:auto;`">
|
|
59
|
+
<div :style="`${useLegendHeight}`">
|
|
60
|
+
|
|
61
|
+
<div
|
|
62
|
+
:style="``"
|
|
63
|
+
:key="'km-'+km"
|
|
64
|
+
v-for="(m,km) in meshs"
|
|
65
|
+
>
|
|
66
|
+
|
|
67
|
+
<div style="display:flex; align-items:center; padding:3px;">
|
|
68
|
+
|
|
69
|
+
<WIcon
|
|
70
|
+
style="cursor:pointer;"
|
|
71
|
+
:icon="m.visible?mdiEyeOutline:mdiEyeOffOutline"
|
|
72
|
+
:color="'#ccc'"
|
|
73
|
+
:colorHover="'#ddd'"
|
|
74
|
+
:size="20"
|
|
75
|
+
@click="toggleMeshVisible(m,km)"
|
|
76
|
+
></WIcon>
|
|
77
|
+
|
|
78
|
+
<div style="padding-left:5px;"></div>
|
|
79
|
+
|
|
80
|
+
<WColorSelect
|
|
81
|
+
:colorBlockBorderColor="'#888'"
|
|
82
|
+
:showColorText="false"
|
|
83
|
+
_colorTextColor="'#ddd'"
|
|
84
|
+
:panelBackgroundColor="'#111'"
|
|
85
|
+
:toolBackgroundColor="'#222'"
|
|
86
|
+
:menuIconColor="'#666'"
|
|
87
|
+
:menuIconColorHover="'#777'"
|
|
88
|
+
:menuIconColorActive="'#ddd'"
|
|
89
|
+
:borderColor="'#333'"
|
|
90
|
+
:borderColorHover="'#333'"
|
|
91
|
+
:borderColorActive="'#444'"
|
|
92
|
+
:backgroundColor="'#111'"
|
|
93
|
+
:menuBackgroundColor="'#111'"
|
|
94
|
+
:menuBackgroundColorHover="'#222'"
|
|
95
|
+
:menuBackgroundColorActive="'#333'"
|
|
96
|
+
:menuTextColor="'#b2b2b2'"
|
|
97
|
+
:menuTextColorHover="'#ccc'"
|
|
98
|
+
:menuTextColorActive="'#ddd'"
|
|
99
|
+
:menuTextFontSize="'0.75rem'"
|
|
100
|
+
:inputBorderColor="'#444'"
|
|
101
|
+
:inputBorderColorHover="'#555'"
|
|
102
|
+
:inputBorderColorActive="'#666'"
|
|
103
|
+
:inputBackgroundColor="'#000'"
|
|
104
|
+
:inputBackgroundColorHover="'#111'"
|
|
105
|
+
:inputBackgroundColorActive="'#222'"
|
|
106
|
+
:inputTextColor="'#999'"
|
|
107
|
+
:inputLabelColor="'#888'"
|
|
108
|
+
:barProgColor="'#888'"
|
|
109
|
+
:barProgBackgroundColor="'#222'"
|
|
110
|
+
:barSliderBackgroundColor="'#ccc'"
|
|
111
|
+
:barSliderBackgroundColorHover="'#ddd'"
|
|
112
|
+
:btnTextColor="'#eee'"
|
|
113
|
+
:btnTextColorHover="'#fff'"
|
|
114
|
+
:btnTextColorActive="'#fff'"
|
|
115
|
+
:btnBackgroundColor="'#444'"
|
|
116
|
+
:btnBackgroundColorHover="'#555'"
|
|
117
|
+
:btnBackgroundColorActive="'#555'"
|
|
118
|
+
:value="getMeshColor(m)"
|
|
119
|
+
@input="(c)=>{setMeshColor(m,km,c)}"
|
|
120
|
+
></WColorSelect>
|
|
121
|
+
|
|
122
|
+
<div style="padding-left:5px;"></div>
|
|
123
|
+
|
|
124
|
+
<div :style="`color:${m.labelTextColor}; font-size:${m.labelTextFontSize}; font-family:${m.labelTextFontFamily};`">
|
|
125
|
+
{{m.labelText}}
|
|
131
126
|
</div>
|
|
132
127
|
|
|
133
128
|
</div>
|
|
134
129
|
|
|
135
130
|
</div>
|
|
136
|
-
</div>
|
|
137
131
|
|
|
138
|
-
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
139
134
|
|
|
140
|
-
</
|
|
135
|
+
</template>
|
|
141
136
|
|
|
142
137
|
</div>
|
|
143
138
|
|
|
@@ -172,7 +167,6 @@ import strleft from 'wsemi/src/strleft.mjs'
|
|
|
172
167
|
import strdelleft from 'wsemi/src/strdelleft.mjs'
|
|
173
168
|
import oc from 'wsemi/src/color.mjs'
|
|
174
169
|
import domResize from 'w-component-vue/src/js/domResize.mjs'
|
|
175
|
-
import WIconLoading from 'w-component-vue/src/components/WIconLoading.vue'
|
|
176
170
|
import WPanelScrolly from 'w-component-vue/src/components/WPanelScrolly.vue'
|
|
177
171
|
import WGroupIconCheck from 'w-component-vue/src/components/WGroupIconCheck.vue'
|
|
178
172
|
import WIcon from 'w-component-vue/src/components/WIcon.vue'
|
|
@@ -314,7 +308,6 @@ export default {
|
|
|
314
308
|
domresize: domResize(),
|
|
315
309
|
},
|
|
316
310
|
components: {
|
|
317
|
-
WIconLoading,
|
|
318
311
|
WPanelScrolly,
|
|
319
312
|
WGroupIconCheck,
|
|
320
313
|
WIcon,
|
|
@@ -1034,8 +1027,9 @@ export default {
|
|
|
1034
1027
|
return
|
|
1035
1028
|
}
|
|
1036
1029
|
|
|
1037
|
-
//show loading
|
|
1030
|
+
//show and emit loading
|
|
1038
1031
|
vo.loading = true
|
|
1032
|
+
vo.$emit('loading', true)
|
|
1039
1033
|
|
|
1040
1034
|
//optPlot3d
|
|
1041
1035
|
let optUsed = cloneDeep(vo.opt)
|
|
@@ -1093,8 +1087,9 @@ export default {
|
|
|
1093
1087
|
//save applied opt
|
|
1094
1088
|
vo.optTemp = cloneDeep(optUsed)
|
|
1095
1089
|
|
|
1096
|
-
//hide loading
|
|
1090
|
+
//hide and emit loading
|
|
1097
1091
|
vo.loading = false
|
|
1092
|
+
vo.$emit('loading', false)
|
|
1098
1093
|
|
|
1099
1094
|
//resolveInit
|
|
1100
1095
|
resolveInit()
|
|
@@ -1111,8 +1106,9 @@ export default {
|
|
|
1111
1106
|
}
|
|
1112
1107
|
// console.log('error', err)
|
|
1113
1108
|
|
|
1114
|
-
//reset
|
|
1109
|
+
//reset and emit loading
|
|
1115
1110
|
vo.loading = false
|
|
1111
|
+
vo.$emit('loading', false)
|
|
1116
1112
|
|
|
1117
1113
|
//emit
|
|
1118
1114
|
vo.$emit('error', err)
|
|
@@ -1124,12 +1120,12 @@ export default {
|
|
|
1124
1120
|
|
|
1125
1121
|
//on
|
|
1126
1122
|
ev.on('init', handleInit)
|
|
1127
|
-
ev.on('
|
|
1123
|
+
ev.on('prog', (msg) => {
|
|
1128
1124
|
if (vo.disposed || nid !== vo.nidInit) {
|
|
1129
1125
|
return
|
|
1130
1126
|
}
|
|
1131
|
-
// console.log('
|
|
1132
|
-
vo.$emit('
|
|
1127
|
+
// console.log('prog', msg)
|
|
1128
|
+
vo.$emit('prog', msg)
|
|
1133
1129
|
})
|
|
1134
1130
|
ev.on('error', handleError)
|
|
1135
1131
|
ev.on('dispose', () => {
|
|
@@ -1190,8 +1186,9 @@ export default {
|
|
|
1190
1186
|
return
|
|
1191
1187
|
}
|
|
1192
1188
|
|
|
1193
|
-
//reset
|
|
1189
|
+
//reset and emit loading
|
|
1194
1190
|
vo.loading = false
|
|
1191
|
+
vo.$emit('loading', false)
|
|
1195
1192
|
|
|
1196
1193
|
//emit
|
|
1197
1194
|
vo.$emit('error', err)
|
package/src/js/addStl.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import get from 'lodash-es/get.js'
|
|
2
|
-
import isNumber from 'lodash-es/isNumber.js'
|
|
1
|
+
import get from 'lodash-es/get.js'
|
|
2
|
+
import isNumber from 'lodash-es/isNumber.js'
|
|
3
3
|
import isestr from 'wsemi/src/isestr.mjs'
|
|
4
4
|
// import genPm from 'wsemi/src/genPm.mjs'
|
|
5
5
|
import oc from 'wsemi/src/color.mjs'
|
|
@@ -28,13 +28,17 @@ let addStl = async(ev, url, opt = {}) => {
|
|
|
28
28
|
|
|
29
29
|
//loader
|
|
30
30
|
let loader = new STLLoader()
|
|
31
|
-
let geometry = await loader.loadAsync(url, (xhr) => {
|
|
32
|
-
let
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
let geometry = await loader.loadAsync(url, (xhr) => {
|
|
32
|
+
let loaded = xhr.loaded || 0
|
|
33
|
+
let total = xhr.total || 0
|
|
34
|
+
let prog = total > 0 ? (loaded / total) * 100 : null
|
|
35
|
+
ev.emit('prog', {
|
|
36
|
+
url,
|
|
37
|
+
loaded,
|
|
38
|
+
total,
|
|
39
|
+
prog,
|
|
40
|
+
})
|
|
41
|
+
})
|
|
38
42
|
// let lad = (url) => {
|
|
39
43
|
// let pm = genPm()
|
|
40
44
|
// let onLoad = (res) => {
|
|
@@ -56,15 +60,15 @@ let addStl = async(ev, url, opt = {}) => {
|
|
|
56
60
|
// loader.load(url, onLoad, onProgress, onError)
|
|
57
61
|
// return pm
|
|
58
62
|
// }
|
|
59
|
-
// let geometry = await lad(url)
|
|
60
|
-
// console.log('geometry', geometry)
|
|
61
|
-
|
|
62
|
-
// STLLoader 不保證後續流程需要的 bounding 資訊已存在,這裡先補齊。
|
|
63
|
-
geometry.computeBoundingBox()
|
|
64
|
-
geometry.computeBoundingSphere()
|
|
65
|
-
|
|
66
|
-
//material, MeshLambertMaterial, MeshPhysicalMaterial
|
|
67
|
-
let material = new THREE.MeshLambertMaterial({
|
|
63
|
+
// let geometry = await lad(url)
|
|
64
|
+
// console.log('geometry', geometry)
|
|
65
|
+
|
|
66
|
+
// STLLoader 不保證後續流程需要的 bounding 資訊已存在,這裡先補齊。
|
|
67
|
+
geometry.computeBoundingBox()
|
|
68
|
+
geometry.computeBoundingSphere()
|
|
69
|
+
|
|
70
|
+
//material, MeshLambertMaterial, MeshPhysicalMaterial
|
|
71
|
+
let material = new THREE.MeshLambertMaterial({
|
|
68
72
|
|
|
69
73
|
// visible:false,
|
|
70
74
|
|