@wandelbots/wandelbots-js-react-components 1.22.0 → 1.23.0
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/components/jogging/JoggingCartesianAxisControl.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -1
- package/dist/components/jogging/JoggingJointRotationControl.d.ts +1 -0
- package/dist/components/jogging/JoggingJointRotationControl.d.ts.map +1 -1
- package/dist/components/robots/UniversalRobots_UR10CB.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR10CB.d.ts.map +1 -0
- package/dist/components/robots/UniversalRobots_UR3CB.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR3CB.d.ts.map +1 -0
- package/dist/components/robots/UniversalRobots_UR3e.d.ts.map +1 -1
- package/dist/components/robots/UniversalRobots_UR5CB.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR5CB.d.ts.map +1 -0
- package/dist/index.cjs +20 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +901 -655
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +1 -0
- package/src/components/jogging/JoggingJointRotationControl.tsx +6 -5
- package/src/components/robots/SupportedRobot.tsx +9 -9
- package/src/components/robots/{UniversalRobots_UR5.tsx → UniversalRobots_UR10CB.tsx} +130 -72
- package/src/components/robots/{UniversalRobots_UR3.tsx → UniversalRobots_UR3CB.tsx} +1 -1
- package/src/components/robots/UniversalRobots_UR3e.tsx +226 -69
- package/src/components/robots/UniversalRobots_UR5CB.tsx +246 -0
- package/dist/components/robots/UniversalRobots_UR10.d.ts +0 -3
- package/dist/components/robots/UniversalRobots_UR10.d.ts.map +0 -1
- package/dist/components/robots/UniversalRobots_UR3.d.ts +0 -3
- package/dist/components/robots/UniversalRobots_UR3.d.ts.map +0 -1
- package/dist/components/robots/UniversalRobots_UR5.d.ts +0 -3
- package/dist/components/robots/UniversalRobots_UR5.d.ts.map +0 -1
- package/src/components/robots/UniversalRobots_UR10.tsx +0 -305
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { IconButton, Slider, Typography, useTheme } from "@mui/material"
|
|
2
|
-
import Stack from "@mui/material/Stack"
|
|
3
|
-
import { observer, useLocalObservable } from "mobx-react-lite"
|
|
4
1
|
import ChevronLeft from "@mui/icons-material/ChevronLeft"
|
|
5
2
|
import ChevronRight from "@mui/icons-material/ChevronRight"
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
3
|
+
import { IconButton, Slider, Typography } from "@mui/material"
|
|
4
|
+
import Stack from "@mui/material/Stack"
|
|
8
5
|
import throttle from "lodash-es/throttle"
|
|
6
|
+
import { observer, useLocalObservable } from "mobx-react-lite"
|
|
7
|
+
import { useState } from "react"
|
|
9
8
|
import { useTranslation } from "react-i18next"
|
|
10
9
|
import { externalizeComponent } from "../../externalizeComponent"
|
|
10
|
+
import { useAnimationFrame } from "../utils/hooks"
|
|
11
11
|
|
|
12
12
|
type JoggingJointRotationControlProps = {
|
|
13
13
|
startJogging: (direction: "-" | "+") => void
|
|
@@ -19,6 +19,7 @@ type JoggingJointRotationControlProps = {
|
|
|
19
19
|
disabled?: boolean
|
|
20
20
|
} & React.ComponentProps<typeof Stack>
|
|
21
21
|
|
|
22
|
+
/** A input widget to control an individual joint */
|
|
22
23
|
export const JoggingJointRotationControl = externalizeComponent(
|
|
23
24
|
observer(
|
|
24
25
|
({
|
|
@@ -12,11 +12,11 @@ import { KUKA_KR16_R2010_2 } from "./KUKA_KR16_R2010_2"
|
|
|
12
12
|
import { KUKA_KR210_R2700 } from "./KUKA_KR210_R2700"
|
|
13
13
|
import { KUKA_KR270_R2700 } from "./KUKA_KR270_R2700"
|
|
14
14
|
import { KUKA_KR6_R700_2 } from "./KUKA_KR6_R700_2"
|
|
15
|
-
import {
|
|
15
|
+
import { UniversalRobots_UR10CB } from "./UniversalRobots_UR10CB"
|
|
16
16
|
import { UniversalRobots_UR10e } from "./UniversalRobots_UR10e"
|
|
17
|
-
import {
|
|
17
|
+
import { UniversalRobots_UR3CB } from "./UniversalRobots_UR3CB"
|
|
18
18
|
import { UniversalRobots_UR3e } from "./UniversalRobots_UR3e"
|
|
19
|
-
import {
|
|
19
|
+
import { UniversalRobots_UR5CB } from "./UniversalRobots_UR5CB"
|
|
20
20
|
import { UniversalRobots_UR5e } from "./UniversalRobots_UR5e"
|
|
21
21
|
import { Yaskawa_AR1440 } from "./Yaskawa_AR1440"
|
|
22
22
|
import { Yaskawa_AR1730 } from "./Yaskawa_AR1730"
|
|
@@ -156,20 +156,20 @@ export const SupportedRobot = externalizeComponent(
|
|
|
156
156
|
}, [isGhost])
|
|
157
157
|
|
|
158
158
|
switch (modelFromController) {
|
|
159
|
-
case "
|
|
160
|
-
Robot =
|
|
159
|
+
case "UniversalRobots_UR3CB":
|
|
160
|
+
Robot = UniversalRobots_UR3CB
|
|
161
161
|
break
|
|
162
162
|
case "UniversalRobots_UR3e":
|
|
163
163
|
Robot = UniversalRobots_UR3e
|
|
164
164
|
break
|
|
165
|
-
case "
|
|
166
|
-
Robot =
|
|
165
|
+
case "UniversalRobots_UR5CB":
|
|
166
|
+
Robot = UniversalRobots_UR5CB
|
|
167
167
|
break
|
|
168
168
|
case "UniversalRobots_UR5e":
|
|
169
169
|
Robot = UniversalRobots_UR5e
|
|
170
170
|
break
|
|
171
|
-
case "
|
|
172
|
-
Robot =
|
|
171
|
+
case "UniversalRobots_UR10CB":
|
|
172
|
+
Robot = UniversalRobots_UR10CB
|
|
173
173
|
break
|
|
174
174
|
case "UniversalRobots_UR10e":
|
|
175
175
|
Robot = UniversalRobots_UR10e
|
|
@@ -2,17 +2,44 @@ import { animated } from "@react-spring/three"
|
|
|
2
2
|
import { useGLTF } from "@react-three/drei"
|
|
3
3
|
import type { RobotModelProps } from "./types"
|
|
4
4
|
|
|
5
|
-
export function
|
|
5
|
+
export function UniversalRobots_UR10CB({
|
|
6
|
+
modelURL,
|
|
7
|
+
...props
|
|
8
|
+
}: RobotModelProps) {
|
|
6
9
|
const gltf = useGLTF(modelURL) as any
|
|
7
10
|
const nodes = gltf.nodes
|
|
8
11
|
const materials = gltf.materials
|
|
9
12
|
|
|
10
13
|
return (
|
|
11
|
-
|
|
12
|
-
<group
|
|
13
|
-
<group name="
|
|
14
|
-
<
|
|
15
|
-
<
|
|
14
|
+
<group {...props} dispose={null}>
|
|
15
|
+
<group name="Scene">
|
|
16
|
+
<animated.group name="UNIVERSALROBOTS_UR10CB_J00">
|
|
17
|
+
<group name="link_0">
|
|
18
|
+
<mesh
|
|
19
|
+
name="visuals_0"
|
|
20
|
+
castShadow
|
|
21
|
+
receiveShadow
|
|
22
|
+
geometry={nodes.visuals_0.geometry}
|
|
23
|
+
material={materials.universalrobots_aluminum}
|
|
24
|
+
/>
|
|
25
|
+
<mesh
|
|
26
|
+
name="visuals_0_1"
|
|
27
|
+
castShadow
|
|
28
|
+
receiveShadow
|
|
29
|
+
geometry={nodes.visuals_0_1.geometry}
|
|
30
|
+
material={materials.universalrobots_aluminum}
|
|
31
|
+
/>
|
|
32
|
+
</group>
|
|
33
|
+
<animated.group
|
|
34
|
+
name="UNIVERSALROBOTS_UR10CB_J01"
|
|
35
|
+
position={[0, 0.127, 0]}
|
|
36
|
+
rotation={[Math.PI / 2, 0, 0]}
|
|
37
|
+
>
|
|
38
|
+
<group
|
|
39
|
+
name="link_1"
|
|
40
|
+
position={[0, 0, 0.127]}
|
|
41
|
+
rotation={[-Math.PI / 2, 0, 0]}
|
|
42
|
+
>
|
|
16
43
|
<mesh
|
|
17
44
|
name="visuals_1"
|
|
18
45
|
castShadow
|
|
@@ -25,31 +52,44 @@ export function UniversalRobots_UR5({ modelURL, ...props }: RobotModelProps) {
|
|
|
25
52
|
castShadow
|
|
26
53
|
receiveShadow
|
|
27
54
|
geometry={nodes.visuals_1_1.geometry}
|
|
28
|
-
material={materials.
|
|
55
|
+
material={materials.universalrobots_stainlesssteel}
|
|
29
56
|
/>
|
|
30
57
|
<mesh
|
|
31
58
|
name="visuals_1_2"
|
|
32
59
|
castShadow
|
|
33
60
|
receiveShadow
|
|
34
61
|
geometry={nodes.visuals_1_2.geometry}
|
|
35
|
-
material={materials.
|
|
62
|
+
material={materials.universalrobots_stainlesssteel}
|
|
36
63
|
/>
|
|
37
64
|
<mesh
|
|
38
65
|
name="visuals_1_3"
|
|
39
66
|
castShadow
|
|
40
67
|
receiveShadow
|
|
41
68
|
geometry={nodes.visuals_1_3.geometry}
|
|
69
|
+
material={materials.universalrobots_stainlesssteel}
|
|
70
|
+
/>
|
|
71
|
+
<mesh
|
|
72
|
+
name="visuals_1_4"
|
|
73
|
+
castShadow
|
|
74
|
+
receiveShadow
|
|
75
|
+
geometry={nodes.visuals_1_4.geometry}
|
|
76
|
+
material={materials.universalrobots_black}
|
|
77
|
+
/>
|
|
78
|
+
<mesh
|
|
79
|
+
name="visuals_1_5"
|
|
80
|
+
castShadow
|
|
81
|
+
receiveShadow
|
|
82
|
+
geometry={nodes.visuals_1_5.geometry}
|
|
42
83
|
material={materials.universalrobots_lightblue}
|
|
43
84
|
/>
|
|
44
|
-
</
|
|
85
|
+
</group>
|
|
45
86
|
<animated.group
|
|
46
|
-
name="
|
|
47
|
-
position={[0, 0
|
|
48
|
-
rotation={[Math.PI / 2, 0, 0]}
|
|
87
|
+
name="UNIVERSALROBOTS_UR10CB_J02"
|
|
88
|
+
position={[-0.612, 0, 0]}
|
|
49
89
|
>
|
|
50
|
-
<
|
|
90
|
+
<group
|
|
51
91
|
name="link_2"
|
|
52
|
-
position={[0, 0, 0.
|
|
92
|
+
position={[0.612, 0, 0.127]}
|
|
53
93
|
rotation={[-Math.PI / 2, 0, 0]}
|
|
54
94
|
>
|
|
55
95
|
<mesh
|
|
@@ -57,21 +97,21 @@ export function UniversalRobots_UR5({ modelURL, ...props }: RobotModelProps) {
|
|
|
57
97
|
castShadow
|
|
58
98
|
receiveShadow
|
|
59
99
|
geometry={nodes.visuals_2.geometry}
|
|
60
|
-
material={materials.
|
|
100
|
+
material={materials.universalrobots_aluminum}
|
|
61
101
|
/>
|
|
62
102
|
<mesh
|
|
63
103
|
name="visuals_2_1"
|
|
64
104
|
castShadow
|
|
65
105
|
receiveShadow
|
|
66
106
|
geometry={nodes.visuals_2_1.geometry}
|
|
67
|
-
material={materials.
|
|
107
|
+
material={materials.universalrobots_stainlesssteel}
|
|
68
108
|
/>
|
|
69
109
|
<mesh
|
|
70
110
|
name="visuals_2_2"
|
|
71
111
|
castShadow
|
|
72
112
|
receiveShadow
|
|
73
113
|
geometry={nodes.visuals_2_2.geometry}
|
|
74
|
-
material={materials.
|
|
114
|
+
material={materials.universalrobots_darkgrey}
|
|
75
115
|
/>
|
|
76
116
|
<mesh
|
|
77
117
|
name="visuals_2_3"
|
|
@@ -85,16 +125,23 @@ export function UniversalRobots_UR5({ modelURL, ...props }: RobotModelProps) {
|
|
|
85
125
|
castShadow
|
|
86
126
|
receiveShadow
|
|
87
127
|
geometry={nodes.visuals_2_4.geometry}
|
|
88
|
-
material={materials.
|
|
128
|
+
material={materials.universalrobots_stainlesssteel}
|
|
89
129
|
/>
|
|
90
|
-
|
|
130
|
+
<mesh
|
|
131
|
+
name="visuals_2_5"
|
|
132
|
+
castShadow
|
|
133
|
+
receiveShadow
|
|
134
|
+
geometry={nodes.visuals_2_5.geometry}
|
|
135
|
+
material={materials.universalrobots_lightblue}
|
|
136
|
+
/>
|
|
137
|
+
</group>
|
|
91
138
|
<animated.group
|
|
92
|
-
name="
|
|
93
|
-
position={[-0.
|
|
139
|
+
name="UNIVERSALROBOTS_UR10CB_J03"
|
|
140
|
+
position={[-0.572, 0, 0]}
|
|
94
141
|
>
|
|
95
|
-
<
|
|
142
|
+
<group
|
|
96
143
|
name="link_3"
|
|
97
|
-
position={[
|
|
144
|
+
position={[1.184, 0, 0.127]}
|
|
98
145
|
rotation={[-Math.PI / 2, 0, 0]}
|
|
99
146
|
>
|
|
100
147
|
<mesh
|
|
@@ -102,45 +149,46 @@ export function UniversalRobots_UR5({ modelURL, ...props }: RobotModelProps) {
|
|
|
102
149
|
castShadow
|
|
103
150
|
receiveShadow
|
|
104
151
|
geometry={nodes.visuals_3.geometry}
|
|
105
|
-
material={materials.
|
|
152
|
+
material={materials.universalrobots_aluminum}
|
|
106
153
|
/>
|
|
107
154
|
<mesh
|
|
108
155
|
name="visuals_3_1"
|
|
109
156
|
castShadow
|
|
110
157
|
receiveShadow
|
|
111
158
|
geometry={nodes.visuals_3_1.geometry}
|
|
112
|
-
material={materials.
|
|
159
|
+
material={materials.universalrobots_stainlesssteel}
|
|
113
160
|
/>
|
|
114
161
|
<mesh
|
|
115
162
|
name="visuals_3_2"
|
|
116
163
|
castShadow
|
|
117
164
|
receiveShadow
|
|
118
165
|
geometry={nodes.visuals_3_2.geometry}
|
|
119
|
-
material={materials.
|
|
166
|
+
material={materials.universalrobots_darkgrey}
|
|
120
167
|
/>
|
|
121
168
|
<mesh
|
|
122
169
|
name="visuals_3_3"
|
|
123
170
|
castShadow
|
|
124
171
|
receiveShadow
|
|
125
172
|
geometry={nodes.visuals_3_3.geometry}
|
|
126
|
-
material={materials.
|
|
173
|
+
material={materials.universalrobots_black}
|
|
127
174
|
/>
|
|
128
175
|
<mesh
|
|
129
176
|
name="visuals_3_4"
|
|
130
177
|
castShadow
|
|
131
178
|
receiveShadow
|
|
132
179
|
geometry={nodes.visuals_3_4.geometry}
|
|
133
|
-
material={materials.
|
|
180
|
+
material={materials.universalrobots_lightblue}
|
|
134
181
|
/>
|
|
135
|
-
</
|
|
182
|
+
</group>
|
|
136
183
|
<animated.group
|
|
137
|
-
name="
|
|
138
|
-
position={[
|
|
184
|
+
name="UNIVERSALROBOTS_UR10CB_J04"
|
|
185
|
+
position={[0, 0.164, 0]}
|
|
186
|
+
rotation={[Math.PI / 2, 0, 0]}
|
|
139
187
|
>
|
|
140
|
-
<
|
|
188
|
+
<group
|
|
141
189
|
name="link_4"
|
|
142
|
-
position={[
|
|
143
|
-
rotation={[
|
|
190
|
+
position={[1.184, 0.127, 0.164]}
|
|
191
|
+
rotation={[Math.PI, 0, 0]}
|
|
144
192
|
>
|
|
145
193
|
<mesh
|
|
146
194
|
name="visuals_4"
|
|
@@ -154,32 +202,39 @@ export function UniversalRobots_UR5({ modelURL, ...props }: RobotModelProps) {
|
|
|
154
202
|
castShadow
|
|
155
203
|
receiveShadow
|
|
156
204
|
geometry={nodes.visuals_4_1.geometry}
|
|
157
|
-
material={materials.
|
|
205
|
+
material={materials.universalrobots_stainlesssteel}
|
|
158
206
|
/>
|
|
159
207
|
<mesh
|
|
160
208
|
name="visuals_4_2"
|
|
161
209
|
castShadow
|
|
162
210
|
receiveShadow
|
|
163
211
|
geometry={nodes.visuals_4_2.geometry}
|
|
164
|
-
material={materials.
|
|
212
|
+
material={materials.universalrobots_black}
|
|
165
213
|
/>
|
|
166
214
|
<mesh
|
|
167
215
|
name="visuals_4_3"
|
|
168
216
|
castShadow
|
|
169
217
|
receiveShadow
|
|
170
218
|
geometry={nodes.visuals_4_3.geometry}
|
|
171
|
-
material={materials.
|
|
219
|
+
material={materials.universalrobots_stainlesssteel}
|
|
172
220
|
/>
|
|
173
|
-
|
|
221
|
+
<mesh
|
|
222
|
+
name="visuals_4_4"
|
|
223
|
+
castShadow
|
|
224
|
+
receiveShadow
|
|
225
|
+
geometry={nodes.visuals_4_4.geometry}
|
|
226
|
+
material={materials.universalrobots_lightblue}
|
|
227
|
+
/>
|
|
228
|
+
</group>
|
|
174
229
|
<animated.group
|
|
175
|
-
name="
|
|
176
|
-
position={[0, 0.
|
|
177
|
-
rotation={[Math.PI / 2, 0, 0]}
|
|
230
|
+
name="UNIVERSALROBOTS_UR10CB_J05"
|
|
231
|
+
position={[0, 0.116, 0]}
|
|
232
|
+
rotation={[-Math.PI / 2, 0, 0]}
|
|
178
233
|
>
|
|
179
|
-
<
|
|
234
|
+
<group
|
|
180
235
|
name="link_5"
|
|
181
|
-
position={[
|
|
182
|
-
rotation={[Math.PI, 0, 0]}
|
|
236
|
+
position={[1.184, -0.164, 0.012]}
|
|
237
|
+
rotation={[-Math.PI / 2, 0, 0]}
|
|
183
238
|
>
|
|
184
239
|
<mesh
|
|
185
240
|
name="visuals_5"
|
|
@@ -193,56 +248,59 @@ export function UniversalRobots_UR5({ modelURL, ...props }: RobotModelProps) {
|
|
|
193
248
|
castShadow
|
|
194
249
|
receiveShadow
|
|
195
250
|
geometry={nodes.visuals_5_1.geometry}
|
|
196
|
-
material={materials.
|
|
251
|
+
material={materials.universalrobots_stainlesssteel}
|
|
197
252
|
/>
|
|
198
253
|
<mesh
|
|
199
254
|
name="visuals_5_2"
|
|
200
255
|
castShadow
|
|
201
256
|
receiveShadow
|
|
202
257
|
geometry={nodes.visuals_5_2.geometry}
|
|
203
|
-
material={materials.
|
|
258
|
+
material={materials.universalrobots_black}
|
|
204
259
|
/>
|
|
205
260
|
<mesh
|
|
206
261
|
name="visuals_5_3"
|
|
207
262
|
castShadow
|
|
208
263
|
receiveShadow
|
|
209
264
|
geometry={nodes.visuals_5_3.geometry}
|
|
210
|
-
material={materials.
|
|
265
|
+
material={materials.universalrobots_aluminum}
|
|
211
266
|
/>
|
|
212
|
-
</animated.group>
|
|
213
|
-
<animated.group
|
|
214
|
-
name="UNIVERSALROBOTS_UR5CB3_J05"
|
|
215
|
-
position={[0, 0.095, 0]}
|
|
216
|
-
rotation={[-Math.PI / 2, 0, 0]}
|
|
217
|
-
>
|
|
218
267
|
<mesh
|
|
219
|
-
name="
|
|
268
|
+
name="visuals_5_4"
|
|
220
269
|
castShadow
|
|
221
270
|
receiveShadow
|
|
222
|
-
geometry={nodes.
|
|
223
|
-
material={materials.
|
|
224
|
-
position={[0.817, -0.109, -0.005]}
|
|
225
|
-
rotation={[-Math.PI / 2, 0, 0]}
|
|
226
|
-
/>
|
|
227
|
-
<animated.group
|
|
228
|
-
name="UNIVERSALROBOTS_UR5CB3_FLG"
|
|
229
|
-
position={[0, 0.082, 0]}
|
|
271
|
+
geometry={nodes.visuals_5_4.geometry}
|
|
272
|
+
material={materials.universalrobots_lightblue}
|
|
230
273
|
/>
|
|
231
|
-
</
|
|
274
|
+
</group>
|
|
275
|
+
<group
|
|
276
|
+
name="UNIVERSALROBOTS_UR10CB_FLG"
|
|
277
|
+
position={[0, 0.116, 0]}
|
|
278
|
+
rotation={[-Math.PI / 2, 0, 0]}
|
|
279
|
+
>
|
|
280
|
+
<group name="link_6" position={[1.184, -0.012, -0.28]}>
|
|
281
|
+
<mesh
|
|
282
|
+
name="visuals_6"
|
|
283
|
+
castShadow
|
|
284
|
+
receiveShadow
|
|
285
|
+
geometry={nodes.visuals_6.geometry}
|
|
286
|
+
material={materials.universalrobots_aluminum}
|
|
287
|
+
/>
|
|
288
|
+
<mesh
|
|
289
|
+
name="visuals_6_1"
|
|
290
|
+
castShadow
|
|
291
|
+
receiveShadow
|
|
292
|
+
geometry={nodes.visuals_6_1.geometry}
|
|
293
|
+
material={materials.universalrobots_aluminum}
|
|
294
|
+
/>
|
|
295
|
+
</group>
|
|
296
|
+
</group>
|
|
232
297
|
</animated.group>
|
|
233
298
|
</animated.group>
|
|
234
299
|
</animated.group>
|
|
235
300
|
</animated.group>
|
|
236
301
|
</animated.group>
|
|
237
|
-
|
|
238
|
-
name="link_0"
|
|
239
|
-
castShadow
|
|
240
|
-
receiveShadow
|
|
241
|
-
geometry={nodes.link_0.geometry}
|
|
242
|
-
material={materials.universalrobots_aluminum}
|
|
243
|
-
/>
|
|
244
|
-
</group>
|
|
302
|
+
</animated.group>
|
|
245
303
|
</group>
|
|
246
|
-
|
|
304
|
+
</group>
|
|
247
305
|
)
|
|
248
306
|
}
|
|
@@ -2,7 +2,7 @@ import { animated } from "@react-spring/three"
|
|
|
2
2
|
import { useGLTF } from "@react-three/drei"
|
|
3
3
|
import type { RobotModelProps } from "./types"
|
|
4
4
|
|
|
5
|
-
export function
|
|
5
|
+
export function UniversalRobots_UR3CB({ modelURL, ...props }: RobotModelProps) {
|
|
6
6
|
const gltf = useGLTF(modelURL) as any
|
|
7
7
|
const nodes = gltf.nodes
|
|
8
8
|
const materials = gltf.materials
|