@wandelbots/wandelbots-js-react-components 1.33.4 → 1.34.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.
Files changed (118) hide show
  1. package/dist/components/robots/DHRobot.d.ts.map +1 -1
  2. package/dist/components/robots/GenericRobot.d.ts +3 -0
  3. package/dist/components/robots/GenericRobot.d.ts.map +1 -0
  4. package/dist/components/robots/Robot.d.ts +1 -1
  5. package/dist/components/robots/Robot.d.ts.map +1 -1
  6. package/dist/components/robots/RobotAnimator.d.ts +3 -4
  7. package/dist/components/robots/RobotAnimator.d.ts.map +1 -1
  8. package/dist/components/robots/SupportedRobot.d.ts +1 -1
  9. package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
  10. package/dist/components/robots/types.d.ts +1 -1
  11. package/dist/components/robots/types.d.ts.map +1 -1
  12. package/dist/index.cjs +32 -32
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.js +5630 -13020
  15. package/dist/index.js.map +1 -1
  16. package/dist/themes/theming.d.ts +1 -1
  17. package/dist/themes/theming.d.ts.map +1 -1
  18. package/package.json +1 -1
  19. package/src/components/robots/DHRobot.tsx +1 -0
  20. package/src/components/robots/GenericRobot.tsx +54 -0
  21. package/src/components/robots/Robot.tsx +1 -1
  22. package/src/components/robots/RobotAnimator.tsx +11 -9
  23. package/src/components/robots/SupportedRobot.tsx +11 -160
  24. package/src/components/robots/types.ts +1 -1
  25. package/src/themes/theming.ts +9 -2
  26. package/dist/components/robots/ABB_1200_07_7.d.ts +0 -8
  27. package/dist/components/robots/ABB_1200_07_7.d.ts.map +0 -1
  28. package/dist/components/robots/ABB_1300_115_10.d.ts +0 -8
  29. package/dist/components/robots/ABB_1300_115_10.d.ts.map +0 -1
  30. package/dist/components/robots/FANUC_ARC_Mate_100iD.d.ts +0 -8
  31. package/dist/components/robots/FANUC_ARC_Mate_100iD.d.ts.map +0 -1
  32. package/dist/components/robots/FANUC_ARC_Mate_120iD.d.ts +0 -8
  33. package/dist/components/robots/FANUC_ARC_Mate_120iD.d.ts.map +0 -1
  34. package/dist/components/robots/FANUC_CRX10iA.d.ts +0 -8
  35. package/dist/components/robots/FANUC_CRX10iA.d.ts.map +0 -1
  36. package/dist/components/robots/FANUC_CRX10iAL.d.ts +0 -8
  37. package/dist/components/robots/FANUC_CRX10iAL.d.ts.map +0 -1
  38. package/dist/components/robots/FANUC_CRX20iAL.d.ts +0 -8
  39. package/dist/components/robots/FANUC_CRX20iAL.d.ts.map +0 -1
  40. package/dist/components/robots/FANUC_CRX25iA.d.ts +0 -8
  41. package/dist/components/robots/FANUC_CRX25iA.d.ts.map +0 -1
  42. package/dist/components/robots/FANUC_CRX25iAL.d.ts +0 -8
  43. package/dist/components/robots/FANUC_CRX25iAL.d.ts.map +0 -1
  44. package/dist/components/robots/FANUC_LR_Mate_200iD.d.ts +0 -8
  45. package/dist/components/robots/FANUC_LR_Mate_200iD.d.ts.map +0 -1
  46. package/dist/components/robots/FANUC_LR_Mate_200iD4S.d.ts +0 -8
  47. package/dist/components/robots/FANUC_LR_Mate_200iD4S.d.ts.map +0 -1
  48. package/dist/components/robots/FANUC_LR_Mate_200iD7L.d.ts +0 -8
  49. package/dist/components/robots/FANUC_LR_Mate_200iD7L.d.ts.map +0 -1
  50. package/dist/components/robots/KUKA_KR16_R2010_2.d.ts +0 -9
  51. package/dist/components/robots/KUKA_KR16_R2010_2.d.ts.map +0 -1
  52. package/dist/components/robots/KUKA_KR20_R1810_2.d.ts +0 -9
  53. package/dist/components/robots/KUKA_KR20_R1810_2.d.ts.map +0 -1
  54. package/dist/components/robots/KUKA_KR210_R2700.d.ts +0 -8
  55. package/dist/components/robots/KUKA_KR210_R2700.d.ts.map +0 -1
  56. package/dist/components/robots/KUKA_KR270_R2700.d.ts +0 -8
  57. package/dist/components/robots/KUKA_KR270_R2700.d.ts.map +0 -1
  58. package/dist/components/robots/KUKA_KR6_R700_2.d.ts +0 -9
  59. package/dist/components/robots/KUKA_KR6_R700_2.d.ts.map +0 -1
  60. package/dist/components/robots/UniversalRobots_UR10CB.d.ts +0 -3
  61. package/dist/components/robots/UniversalRobots_UR10CB.d.ts.map +0 -1
  62. package/dist/components/robots/UniversalRobots_UR10e.d.ts +0 -3
  63. package/dist/components/robots/UniversalRobots_UR10e.d.ts.map +0 -1
  64. package/dist/components/robots/UniversalRobots_UR16e.d.ts +0 -3
  65. package/dist/components/robots/UniversalRobots_UR16e.d.ts.map +0 -1
  66. package/dist/components/robots/UniversalRobots_UR3CB.d.ts +0 -3
  67. package/dist/components/robots/UniversalRobots_UR3CB.d.ts.map +0 -1
  68. package/dist/components/robots/UniversalRobots_UR3e.d.ts +0 -3
  69. package/dist/components/robots/UniversalRobots_UR3e.d.ts.map +0 -1
  70. package/dist/components/robots/UniversalRobots_UR5CB.d.ts +0 -3
  71. package/dist/components/robots/UniversalRobots_UR5CB.d.ts.map +0 -1
  72. package/dist/components/robots/UniversalRobots_UR5e.d.ts +0 -3
  73. package/dist/components/robots/UniversalRobots_UR5e.d.ts.map +0 -1
  74. package/dist/components/robots/Yaskawa_AR1440.d.ts +0 -9
  75. package/dist/components/robots/Yaskawa_AR1440.d.ts.map +0 -1
  76. package/dist/components/robots/Yaskawa_AR1730.d.ts +0 -9
  77. package/dist/components/robots/Yaskawa_AR1730.d.ts.map +0 -1
  78. package/dist/components/robots/Yaskawa_AR2010.d.ts +0 -8
  79. package/dist/components/robots/Yaskawa_AR2010.d.ts.map +0 -1
  80. package/dist/components/robots/Yaskawa_AR3120.d.ts +0 -9
  81. package/dist/components/robots/Yaskawa_AR3120.d.ts.map +0 -1
  82. package/dist/components/robots/Yaskawa_AR900.d.ts +0 -8
  83. package/dist/components/robots/Yaskawa_AR900.d.ts.map +0 -1
  84. package/dist/components/robots/Yaskawa_GP50.d.ts +0 -8
  85. package/dist/components/robots/Yaskawa_GP50.d.ts.map +0 -1
  86. package/dist/components/robots/Yaskawa_GP88.d.ts +0 -8
  87. package/dist/components/robots/Yaskawa_GP88.d.ts.map +0 -1
  88. package/src/components/robots/ABB_1200_07_7.tsx +0 -161
  89. package/src/components/robots/ABB_1300_115_10.tsx +0 -179
  90. package/src/components/robots/FANUC_ARC_Mate_100iD.tsx +0 -151
  91. package/src/components/robots/FANUC_ARC_Mate_120iD.tsx +0 -151
  92. package/src/components/robots/FANUC_CRX10iA.tsx +0 -137
  93. package/src/components/robots/FANUC_CRX10iAL.tsx +0 -205
  94. package/src/components/robots/FANUC_CRX20iAL.tsx +0 -142
  95. package/src/components/robots/FANUC_CRX25iA.tsx +0 -135
  96. package/src/components/robots/FANUC_CRX25iAL.tsx +0 -146
  97. package/src/components/robots/FANUC_LR_Mate_200iD.tsx +0 -122
  98. package/src/components/robots/FANUC_LR_Mate_200iD4S.tsx +0 -112
  99. package/src/components/robots/FANUC_LR_Mate_200iD7L.tsx +0 -157
  100. package/src/components/robots/KUKA_KR16_R2010_2.tsx +0 -149
  101. package/src/components/robots/KUKA_KR20_R1810_2.tsx +0 -205
  102. package/src/components/robots/KUKA_KR210_R2700.tsx +0 -232
  103. package/src/components/robots/KUKA_KR270_R2700.tsx +0 -194
  104. package/src/components/robots/KUKA_KR6_R700_2.tsx +0 -129
  105. package/src/components/robots/UniversalRobots_UR10CB.tsx +0 -246
  106. package/src/components/robots/UniversalRobots_UR10e.tsx +0 -273
  107. package/src/components/robots/UniversalRobots_UR16e.tsx +0 -234
  108. package/src/components/robots/UniversalRobots_UR3CB.tsx +0 -89
  109. package/src/components/robots/UniversalRobots_UR3e.tsx +0 -209
  110. package/src/components/robots/UniversalRobots_UR5CB.tsx +0 -203
  111. package/src/components/robots/UniversalRobots_UR5e.tsx +0 -219
  112. package/src/components/robots/Yaskawa_AR1440.tsx +0 -125
  113. package/src/components/robots/Yaskawa_AR1730.tsx +0 -138
  114. package/src/components/robots/Yaskawa_AR2010.tsx +0 -139
  115. package/src/components/robots/Yaskawa_AR3120.tsx +0 -133
  116. package/src/components/robots/Yaskawa_AR900.tsx +0 -148
  117. package/src/components/robots/Yaskawa_GP50.tsx +0 -196
  118. package/src/components/robots/Yaskawa_GP88.tsx +0 -169
@@ -1,4 +1,4 @@
1
- import type { Theme, ThemeOptions } from "@mui/material/styles";
1
+ import { type Theme, type ThemeOptions } from "@mui/material/styles";
2
2
  /**
3
3
  * Create the default Wandelbots Nova Material UI theme, overriding
4
4
  * any defaults with the provided theme options.
@@ -1 +1 @@
1
- {"version":3,"file":"theming.d.ts","sourceRoot":"","sources":["../../src/themes/theming.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAI/D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAW5D"}
1
+ {"version":3,"file":"theming.d.ts","sourceRoot":"","sources":["../../src/themes/theming.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAA;AAI7B;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAc5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wandelbots/wandelbots-js-react-components",
3
- "version": "1.33.4",
3
+ "version": "1.34.0",
4
4
  "description": "React UI toolkit for building applications on top of the Wandelbots platform",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -93,6 +93,7 @@ export function DHRobot({
93
93
  <>
94
94
  <RobotAnimator
95
95
  rapidlyChangingMotionState={rapidlyChangingMotionState}
96
+ dhParameters={dhParameters}
96
97
  jointCollector={jointCollector}
97
98
  onRotationChanged={setRotation}
98
99
  >
@@ -0,0 +1,54 @@
1
+ import { animated } from "@react-spring/three"
2
+ import { useGLTF } from "@react-three/drei"
3
+ import type { Mesh } from "three"
4
+ import { type Object3D } from "three"
5
+ import type { RobotModelProps } from "./types"
6
+
7
+ function isMesh(node: Object3D): node is Mesh {
8
+ return node.type === "Mesh"
9
+ }
10
+
11
+ function isFlange(node: Object3D): boolean {
12
+ return node.name.endsWith("_FLG")
13
+ }
14
+
15
+ export function GenericRobot({
16
+ modelURL,
17
+ flangeRef,
18
+ ...props
19
+ }: RobotModelProps) {
20
+ const gltf = useGLTF(modelURL)
21
+
22
+ const renderNode = (node: Object3D): React.ReactNode => {
23
+ if (isMesh(node)) {
24
+ return (
25
+ <mesh
26
+ name={node.name}
27
+ key={node.uuid}
28
+ geometry={node.geometry}
29
+ material={node.material}
30
+ position={node.position}
31
+ rotation={node.rotation}
32
+ />
33
+ )
34
+ } else {
35
+ return (
36
+ <animated.group
37
+ name={node.name}
38
+ key={node.uuid}
39
+ position={node.position}
40
+ rotation={node.rotation}
41
+ ref={isFlange(node) ? flangeRef : undefined}
42
+ >
43
+ {node.children.map(renderNode)}
44
+ </animated.group>
45
+ )
46
+ }
47
+ }
48
+
49
+ return (
50
+ <group {...props} dispose={null}>
51
+ {renderNode(gltf.scene)}
52
+ </group>
53
+ )
54
+ }
@@ -8,7 +8,7 @@ export type RobotProps = {
8
8
  connectedMotionGroup: ConnectedMotionGroup
9
9
  getModel?: (modelFromController: string) => string
10
10
  isGhost?: boolean
11
- flangeRef?: React.MutableRefObject<Group>
11
+ flangeRef?: React.Ref<Group>
12
12
  } & GroupProps
13
13
 
14
14
  /**
@@ -1,6 +1,9 @@
1
1
  import { Globals, useSpring } from "@react-spring/three"
2
2
  import { useThree } from "@react-three/fiber"
3
- import type { MotionGroupStateResponse } from "@wandelbots/wandelbots-api-client"
3
+ import type {
4
+ DHParameter,
5
+ MotionGroupStateResponse,
6
+ } from "@wandelbots/wandelbots-api-client"
4
7
  import React, { useRef } from "react"
5
8
  import type * as THREE from "three"
6
9
  import { useAutorun } from "../utils/hooks"
@@ -8,21 +11,20 @@ import {
8
11
  getAllJointsByName,
9
12
  type RobotSceneJoint,
10
13
  } from "../utils/robotTreeQuery"
11
- import type { RobotModelConfig } from "./types"
12
14
 
13
15
  type RobotAnimatorProps = {
14
16
  rapidlyChangingMotionState: MotionGroupStateResponse
17
+ dhParameters: DHParameter[]
15
18
  onRotationChanged?: (joints: THREE.Object3D[], jointValues: number[]) => void
16
19
  jointCollector?: (rootObject: THREE.Object3D) => RobotSceneJoint[]
17
- robotConfig?: RobotModelConfig
18
20
  children: React.ReactNode
19
21
  }
20
22
 
21
23
  export default function RobotAnimator({
22
24
  rapidlyChangingMotionState,
25
+ dhParameters,
23
26
  jointCollector,
24
27
  onRotationChanged,
25
- robotConfig,
26
28
  children,
27
29
  }: RobotAnimatorProps) {
28
30
  Globals.assign({ frameLoop: "always" })
@@ -47,9 +49,6 @@ export default function RobotAnimator({
47
49
  setSpring.start(Object.assign({}, jointValues.current) as any)
48
50
  }
49
51
 
50
- const rotationSign = robotConfig?.rotationSign || [1, 1, 1, 1, 1, 1]
51
- const rotationOffsets = robotConfig?.rotationOffsets || [0, 0, 0, 0, 0, 0]
52
-
53
52
  function setRotation() {
54
53
  const updatedJointValues = jointObjects.current.map((_, objectIndex) =>
55
54
  (axisValues as any)[objectIndex].get(),
@@ -59,9 +58,12 @@ export default function RobotAnimator({
59
58
  onRotationChanged(jointObjects.current, updatedJointValues)
60
59
  } else {
61
60
  for (const [index, object] of jointObjects.current.entries()) {
61
+ const dhParam = dhParameters[index]
62
+ const rotationOffset = dhParam.theta || 0
63
+ const rotationSign = dhParam.reverse_rotation_direction ? -1 : 1
64
+
62
65
  object.rotation.y =
63
- rotationSign[index]! * updatedJointValues[index]! +
64
- rotationOffsets[index]!
66
+ rotationSign * updatedJointValues[index]! + rotationOffset
65
67
  }
66
68
  }
67
69
  }
@@ -1,37 +1,5 @@
1
1
  import { Suspense, useCallback, useEffect, useRef } from "react"
2
2
 
3
- import { ABB_1200_07_7 } from "./ABB_1200_07_7"
4
- import { ABB_1300_115_10 } from "./ABB_1300_115_10"
5
- import { FANUC_ARC_Mate_100iD } from "./FANUC_ARC_Mate_100iD"
6
- import { FANUC_ARC_Mate_120iD } from "./FANUC_ARC_Mate_120iD"
7
- import { FANUC_CRX10iA } from "./FANUC_CRX10iA"
8
- import { FANUC_CRX10iAL } from "./FANUC_CRX10iAL"
9
- import { FANUC_CRX20iAL } from "./FANUC_CRX20iAL"
10
- import { FANUC_CRX25iA } from "./FANUC_CRX25iA"
11
- import { FANUC_CRX25iAL } from "./FANUC_CRX25iAL"
12
- import { FANUC_LR_Mate_200iD } from "./FANUC_LR_Mate_200iD"
13
- import { FANUC_LR_Mate_200iD4S } from "./FANUC_LR_Mate_200iD4S"
14
- import { FANUC_LR_Mate_200iD7L } from "./FANUC_LR_Mate_200iD7L"
15
- import { KUKA_KR16_R2010_2 } from "./KUKA_KR16_R2010_2"
16
- import { KUKA_KR20_R1810_2 } from "./KUKA_KR20_R1810_2"
17
- import { KUKA_KR210_R2700 } from "./KUKA_KR210_R2700"
18
- import { KUKA_KR270_R2700 } from "./KUKA_KR270_R2700"
19
- import { KUKA_KR6_R700_2 } from "./KUKA_KR6_R700_2"
20
- import { UniversalRobots_UR10CB } from "./UniversalRobots_UR10CB"
21
- import { UniversalRobots_UR10e } from "./UniversalRobots_UR10e"
22
- import { UniversalRobots_UR16e } from "./UniversalRobots_UR16e"
23
- import { UniversalRobots_UR3CB } from "./UniversalRobots_UR3CB"
24
- import { UniversalRobots_UR3e } from "./UniversalRobots_UR3e"
25
- import { UniversalRobots_UR5CB } from "./UniversalRobots_UR5CB"
26
- import { UniversalRobots_UR5e } from "./UniversalRobots_UR5e"
27
- import { Yaskawa_AR1440 } from "./Yaskawa_AR1440"
28
- import { Yaskawa_AR1730 } from "./Yaskawa_AR1730"
29
- import { Yaskawa_AR2010 } from "./Yaskawa_AR2010"
30
- import { Yaskawa_AR3120 } from "./Yaskawa_AR3120"
31
- import { Yaskawa_AR900 } from "./Yaskawa_AR900"
32
- import { Yaskawa_GP50 } from "./Yaskawa_GP50"
33
- import { Yaskawa_GP88 } from "./Yaskawa_GP88"
34
-
35
3
  import { version } from "../../../package.json"
36
4
 
37
5
  import type { GroupProps } from "@react-three/fiber"
@@ -45,8 +13,8 @@ import { ErrorBoundary } from "react-error-boundary"
45
13
  import * as THREE from "three"
46
14
  import { externalizeComponent } from "../../externalizeComponent"
47
15
  import ConsoleFilter from "../ConsoleFilter"
16
+ import { GenericRobot } from "./GenericRobot"
48
17
  import RobotAnimator from "./RobotAnimator"
49
- import type { RobotModelComponent } from "./types"
50
18
 
51
19
  export type DHRobotProps = {
52
20
  rapidlyChangingMotionState: MotionGroupStateResponse
@@ -59,7 +27,7 @@ export type SupportedRobotProps = {
59
27
  dhParameters: DHParameter[]
60
28
  getModel?: (modelFromController: string) => string
61
29
  isGhost?: boolean
62
- flangeRef?: React.MutableRefObject<THREE.Group>
30
+ flangeRef?: React.Ref<THREE.Group>
63
31
  } & GroupProps
64
32
 
65
33
  export function defaultGetModel(modelFromController: string): string {
@@ -80,8 +48,6 @@ export const SupportedRobot = externalizeComponent(
80
48
  flangeRef,
81
49
  ...props
82
50
  }: SupportedRobotProps) => {
83
- let Robot: RobotModelComponent | null = null
84
-
85
51
  const robotRef = useRef<THREE.Group>()
86
52
 
87
53
  const setRobotRef = useCallback(
@@ -170,114 +136,6 @@ export const SupportedRobot = externalizeComponent(
170
136
  }
171
137
  }, [isGhost])
172
138
 
173
- switch (modelFromController) {
174
- case "UniversalRobots_UR3CB":
175
- Robot = UniversalRobots_UR3CB
176
- break
177
- case "UniversalRobots_UR3e":
178
- Robot = UniversalRobots_UR3e
179
- break
180
- case "UniversalRobots_UR5":
181
- Robot = UniversalRobots_UR5CB
182
- break
183
- case "UniversalRobots_UR5CB":
184
- Robot = UniversalRobots_UR5CB
185
- break
186
- case "UniversalRobots_UR5e":
187
- Robot = UniversalRobots_UR5e
188
- break
189
- case "UniversalRobots_UR10CB":
190
- Robot = UniversalRobots_UR10CB
191
- break
192
- case "UniversalRobots_UR10e":
193
- Robot = UniversalRobots_UR10e
194
- break
195
- case "UniversalRobots_UR16e":
196
- Robot = UniversalRobots_UR16e
197
- break
198
- case "Yaskawa_AR900":
199
- Robot = Yaskawa_AR900
200
- break
201
- case "Yaskawa_GP7":
202
- Robot = Yaskawa_AR900
203
- break
204
- case "Yaskawa_AR1440":
205
- Robot = Yaskawa_AR1440
206
- break
207
- case "Yaskawa_AR1730":
208
- Robot = Yaskawa_AR1730
209
- break
210
- case "Yaskawa_AR2010":
211
- Robot = Yaskawa_AR2010
212
- break
213
- case "Yaskawa_AR3120":
214
- Robot = Yaskawa_AR3120
215
- break
216
- case "Yaskawa_GP50":
217
- Robot = Yaskawa_GP50
218
- break
219
- case "Yaskawa_GP88":
220
- Robot = Yaskawa_GP88
221
- break
222
- case "FANUC_CRX10iA":
223
- Robot = FANUC_CRX10iA
224
- break
225
- case "FANUC_CRX10iAL":
226
- Robot = FANUC_CRX10iAL
227
- break
228
- case "FANUC_CRX20iAL":
229
- Robot = FANUC_CRX20iAL
230
- break
231
- case "FANUC_CRX25iA":
232
- Robot = FANUC_CRX25iA
233
- break
234
- case "FANUC_CRX25iAL":
235
- Robot = FANUC_CRX25iAL
236
- break
237
- case "FANUC_LR_Mate_200iD":
238
- Robot = FANUC_LR_Mate_200iD
239
- break
240
- case "FANUC_LR_Mate_200iD4S":
241
- Robot = FANUC_LR_Mate_200iD4S
242
- break
243
- case "FANUC_LR_Mate_200iD7L":
244
- Robot = FANUC_LR_Mate_200iD7L
245
- break
246
- case "FANUC_ARC_Mate_120iD":
247
- Robot = FANUC_ARC_Mate_120iD
248
- break
249
- case "FANUC_ARC_Mate_120iD35":
250
- Robot = FANUC_ARC_Mate_120iD
251
- break
252
- case "FANUC_ARC_Mate_100iD":
253
- Robot = FANUC_ARC_Mate_100iD
254
- break
255
- case "KUKA_KR210_R2700":
256
- Robot = KUKA_KR210_R2700
257
- break
258
- case "KUKA_KR270_R2700":
259
- Robot = KUKA_KR270_R2700
260
- break
261
- case "KUKA_KR16_R2010_2":
262
- Robot = KUKA_KR16_R2010_2
263
- break
264
- case "KUKA_KR20_R1810_2":
265
- Robot = KUKA_KR20_R1810_2
266
- break
267
- case "KUKA_KR6_R700_2":
268
- Robot = KUKA_KR6_R700_2
269
- break
270
- case "ABB_1200_07_7":
271
- Robot = ABB_1200_07_7
272
- break
273
- case "ABB_1300_115_10":
274
- Robot = ABB_1300_115_10
275
- break
276
- default:
277
- console.warn(`Unknown robot type: ${modelFromController}`)
278
- Robot = null
279
- }
280
-
281
139
  return (
282
140
  <ErrorBoundary
283
141
  fallback={
@@ -298,23 +156,16 @@ export const SupportedRobot = externalizeComponent(
298
156
  }
299
157
  >
300
158
  <group ref={setRobotRef}>
301
- {Robot ? (
302
- <RobotAnimator
303
- rapidlyChangingMotionState={rapidlyChangingMotionState}
304
- robotConfig={Robot.config}
305
- >
306
- <Robot
307
- modelURL={getModel(modelFromController)}
308
- flangeRef={flangeRef}
309
- {...props}
310
- />
311
- </RobotAnimator>
312
- ) : (
313
- <DHRobot
314
- rapidlyChangingMotionState={rapidlyChangingMotionState}
315
- dhParameters={dhParameters}
159
+ <RobotAnimator
160
+ rapidlyChangingMotionState={rapidlyChangingMotionState}
161
+ dhParameters={dhParameters}
162
+ >
163
+ <GenericRobot
164
+ modelURL={getModel(modelFromController)}
165
+ flangeRef={flangeRef}
166
+ {...props}
316
167
  />
317
- )}
168
+ </RobotAnimator>
318
169
  </group>
319
170
  </Suspense>
320
171
  <ConsoleFilter />
@@ -3,7 +3,7 @@ import type { Group } from "three"
3
3
 
4
4
  export type RobotModelProps = {
5
5
  modelURL: string
6
- flangeRef?: React.MutableRefObject<Group>
6
+ flangeRef?: React.Ref<Group>
7
7
  } & GroupProps
8
8
 
9
9
  /**
@@ -1,6 +1,10 @@
1
1
  "use client"
2
2
 
3
- import type { Theme, ThemeOptions } from "@mui/material/styles"
3
+ import {
4
+ createTheme,
5
+ type Theme,
6
+ type ThemeOptions,
7
+ } from "@mui/material/styles"
4
8
  import { createDarkTheme } from "./createDarkTheme"
5
9
  import { createLightTheme } from "./createLightTheme"
6
10
 
@@ -18,5 +22,8 @@ export function createNovaMuiTheme(opts: ThemeOptions): Theme {
18
22
  window.matchMedia?.("(prefers-color-scheme: light)")?.matches
19
23
  isDark = !browserPrefersLight
20
24
  }
21
- return isDark ? createDarkTheme() : createLightTheme()
25
+
26
+ const baseTheme = isDark ? createDarkTheme() : createLightTheme()
27
+
28
+ return createTheme(baseTheme, opts)
22
29
  }
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function ABB_1200_07_7({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace ABB_1200_07_7 {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=ABB_1200_07_7.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ABB_1200_07_7.d.ts","sourceRoot":"","sources":["../../../src/components/robots/ABB_1200_07_7.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAoJjB;yBAxJe,aAAa"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function ABB_1300_115_10({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace ABB_1300_115_10 {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=ABB_1300_115_10.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ABB_1300_115_10.d.ts","sourceRoot":"","sources":["../../../src/components/robots/ABB_1300_115_10.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAsKjB;yBA1Ke,eAAe"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_ARC_Mate_100iD({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_ARC_Mate_100iD {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_ARC_Mate_100iD.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_ARC_Mate_100iD.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_ARC_Mate_100iD.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA0IjB;yBA9Ie,oBAAoB"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_ARC_Mate_120iD({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_ARC_Mate_120iD {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_ARC_Mate_120iD.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_ARC_Mate_120iD.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_ARC_Mate_120iD.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA0IjB;yBA9Ie,oBAAoB"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_CRX10iA({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_CRX10iA {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_CRX10iA.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_CRX10iA.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_CRX10iA.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA4HjB;yBAhIe,aAAa"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_CRX10iAL({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_CRX10iAL {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_CRX10iAL.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_CRX10iAL.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_CRX10iAL.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAgMjB;yBApMe,cAAc"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_CRX20iAL({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_CRX20iAL {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_CRX20iAL.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_CRX20iAL.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_CRX20iAL.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAiIjB;yBArIe,cAAc"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_CRX25iA({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_CRX25iA {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_CRX25iA.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_CRX25iA.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_CRX25iA.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA0HjB;yBA9He,aAAa"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_CRX25iAL({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_CRX25iAL {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_CRX25iAL.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_CRX25iAL.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_CRX25iAL.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAqIjB;yBAzIe,cAAc"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_LR_Mate_200iD({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_LR_Mate_200iD {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_LR_Mate_200iD.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_LR_Mate_200iD.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_LR_Mate_200iD.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAyGjB;yBA7Ge,mBAAmB"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_LR_Mate_200iD4S({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_LR_Mate_200iD4S {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_LR_Mate_200iD4S.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_LR_Mate_200iD4S.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_LR_Mate_200iD4S.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA+FjB;yBAnGe,qBAAqB"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function FANUC_LR_Mate_200iD7L({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace FANUC_LR_Mate_200iD7L {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=FANUC_LR_Mate_200iD7L.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FANUC_LR_Mate_200iD7L.d.ts","sourceRoot":"","sources":["../../../src/components/robots/FANUC_LR_Mate_200iD7L.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA4IjB;yBAhJe,qBAAqB"}
@@ -1,9 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function KUKA_KR16_R2010_2({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace KUKA_KR16_R2010_2 {
4
- var config: {
5
- rotationOffsets: number[];
6
- rotationSign: number[];
7
- };
8
- }
9
- //# sourceMappingURL=KUKA_KR16_R2010_2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KUKA_KR16_R2010_2.d.ts","sourceRoot":"","sources":["../../../src/components/robots/KUKA_KR16_R2010_2.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO9C,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAuIjB;yBA3Ie,iBAAiB"}
@@ -1,9 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function KUKA_KR20_R1810_2({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace KUKA_KR20_R1810_2 {
4
- var config: {
5
- rotationOffsets: number[];
6
- rotationSign: number[];
7
- };
8
- }
9
- //# sourceMappingURL=KUKA_KR20_R1810_2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KUKA_KR20_R1810_2.d.ts","sourceRoot":"","sources":["../../../src/components/robots/KUKA_KR20_R1810_2.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO9C,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA+LjB;yBAnMe,iBAAiB"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function KUKA_KR210_R2700({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace KUKA_KR210_R2700 {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=KUKA_KR210_R2700.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KUKA_KR210_R2700.d.ts","sourceRoot":"","sources":["../../../src/components/robots/KUKA_KR210_R2700.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA2NjB;yBA/Ne,gBAAgB"}
@@ -1,8 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function KUKA_KR270_R2700({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace KUKA_KR270_R2700 {
4
- var config: {
5
- rotationOffsets: number[];
6
- };
7
- }
8
- //# sourceMappingURL=KUKA_KR270_R2700.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KUKA_KR270_R2700.d.ts","sourceRoot":"","sources":["../../../src/components/robots/KUKA_KR270_R2700.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAqLjB;yBAzLe,gBAAgB"}
@@ -1,9 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function KUKA_KR6_R700_2({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- export declare namespace KUKA_KR6_R700_2 {
4
- var config: {
5
- rotationOffsets: number[];
6
- rotationSign: number[];
7
- };
8
- }
9
- //# sourceMappingURL=KUKA_KR6_R700_2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KUKA_KR6_R700_2.d.ts","sourceRoot":"","sources":["../../../src/components/robots/KUKA_KR6_R700_2.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO9C,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAmHjB;yBAvHe,eAAe"}
@@ -1,3 +0,0 @@
1
- import type { RobotModelProps } from "./types";
2
- export declare function UniversalRobots_UR10CB({ modelURL, flangeRef, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element;
3
- //# sourceMappingURL=UniversalRobots_UR10CB.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UniversalRobots_UR10CB.d.ts","sourceRoot":"","sources":["../../../src/components/robots/UniversalRobots_UR10CB.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CA6OjB"}