@wandelbots/wandelbots-js-react-components 5.5.2-pr.fix-performance-issues.594.c24b644 → 5.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d.cjs +1 -1
- package/dist/3d.js +1 -1
- package/dist/SafetyBar/index.cjs +1 -1
- package/dist/SafetyBar/index.js +1 -1
- package/dist/chunks/MotionGroupVisualizer-C6wNomDj.cjs +1 -0
- package/dist/chunks/{MotionGroupVisualizer-3kwxPNYU.js → MotionGroupVisualizer-DDvhDBEq.js} +453 -455
- package/dist/chunks/{SafetyBar-C8whliAf.js → SafetyBar-CLp3W5D7.js} +1 -1
- package/dist/chunks/{SafetyBar-CLm3UQRA.cjs → SafetyBar-Dq9qSLtS.cjs} +1 -1
- package/dist/chunks/{externalizeComponent-D6S3WLFc.js → externalizeComponent-BuuzAqKe.js} +32 -34
- package/dist/chunks/{externalizeComponent-BHZdH14U.cjs → externalizeComponent-UnCHtc94.cjs} +2 -2
- package/dist/chunks/{interpolation-B84QX33C.cjs → interpolation-B8AQk0uI.cjs} +1 -1
- package/dist/chunks/{interpolation-D9WFd-j_.js → interpolation-BfD7X52s.js} +1 -1
- package/dist/chunks/{theming-DnEooKgA.cjs → theming-B8Wz2VOQ.cjs} +1 -1
- package/dist/chunks/{theming-CLIhckeP.js → theming-DT32b-FT.js} +3 -3
- package/dist/core.cjs +1 -1
- package/dist/core.js +4 -4
- package/dist/index.cjs +1 -1
- package/dist/index.js +5 -5
- package/package.json +1 -1
- package/dist/chunks/MotionGroupVisualizer-4AcH6kaR.cjs +0 -1
package/dist/3d.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/MotionGroupVisualizer-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/MotionGroupVisualizer-C6wNomDj.cjs");exports.CollisionSceneRenderer=e.CollisionSceneRenderer;exports.LinearAxis=e.LinearAxis;exports.MANUFACTURER_HOME_CONFIGS=e.MANUFACTURER_HOME_CONFIGS;exports.MotionGroupVisualizer=e.MotionGroupVisualizer;exports.PresetEnvironment=e.PresetEnvironment;exports.Robot=e.Robot;exports.RobotCard=e.RobotCard;exports.SafetyZonesRenderer=e.SafetyZonesRenderer;exports.SupportedLinearAxis=e.SupportedLinearAxis;exports.SupportedRobot=e.SupportedRobot;exports.TrajectoryRenderer=e.TrajectoryRenderer;exports.defaultAxisConfig=e.defaultAxisConfig;exports.defaultGetModel=e.defaultGetModel;exports.extractManufacturer=e.extractManufacturer;exports.getDefaultHomeConfig=e.getDefaultHomeConfig;
|
package/dist/3d.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as o, L as r, M as s, h as t, P as n, b as i, R as d, S as f, c as u, f as R, T as l, a as C, d as p, e as M, g as S } from "./chunks/MotionGroupVisualizer-
|
|
1
|
+
import { C as o, L as r, M as s, h as t, P as n, b as i, R as d, S as f, c as u, f as R, T as l, a as C, d as p, e as M, g as S } from "./chunks/MotionGroupVisualizer-DDvhDBEq.js";
|
|
2
2
|
export {
|
|
3
3
|
o as CollisionSceneRenderer,
|
|
4
4
|
r as LinearAxis,
|
package/dist/SafetyBar/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../chunks/SafetyBar-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../chunks/SafetyBar-Dq9qSLtS.cjs");exports.SafetyBar=e.SafetyBar;exports.default=e.SafetyBar;
|
package/dist/SafetyBar/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t=require("react/jsx-runtime"),g=require("three"),V=require("three-stdlib"),p=require("react"),T=require("./externalizeComponent-UnCHtc94.cjs"),M=require("@react-three/drei"),de=require("@mui/material/styles"),v=require("@mui/material/Box"),Y=require("@mui/material/Button"),pe=require("@mui/material/Card"),Q=require("@mui/material/Divider"),X=require("@mui/material/Typography"),L=require("@react-three/fiber"),he=require("mobx-react-lite"),me=require("react-i18next"),C=require("./interpolation-B8AQk0uI.cjs"),R=require("@wandelbots/nova-js/v2"),Z=require("react-error-boundary");function xe(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:()=>e[r]})}}return n.default=e,Object.freeze(n)}const b=xe(g);function ye(e){switch(e.shape_type){case"convex_hull":return new V.ConvexGeometry(e.vertices.map(r=>new b.Vector3(r[0]/1e3,r[1]/1e3,r[2]/1e3)));case"box":return new b.BoxGeometry(e.size_x/1e3,e.size_y/1e3,e.size_z/1e3);case"sphere":return new b.SphereGeometry(e.radius/1e3);case"capsule":return new b.CapsuleGeometry(e.radius/1e3,e.cylinder_height/1e3);case"cylinder":return new b.CylinderGeometry(e.radius/1e3,e.radius/1e3,e.height/1e3);case"rectangle":return new b.BoxGeometry(e.size_x/1e3,e.size_y/1e3,0);default:return console.warn(`${e.shape_type} is not supported`),new b.BufferGeometry}}function ge({name:e,collider:n,children:r}){var f,u;const i=((f=n.pose)==null?void 0:f.position)??[0,0,0],o=((u=n.pose)==null?void 0:u.orientation)??[0,0,0];return n.margin&&console.warn(`${e} margin is not supported`),t.jsx("mesh",{name:e,position:new b.Vector3(i[0],i[1],i[2]).divideScalar(1e3),rotation:new b.Euler(o[0],o[1],o[2],"XYZ"),geometry:ye(n.shape),children:r})}function je({name:e,colliders:n,meshChildrenProvider:r,...i}){return t.jsx("group",{name:e,...i,children:Object.entries(n).map(([o,f])=>t.jsx(ge,{name:o,collider:f,children:r(o,f)},o))})}function be({scene:e,meshChildrenProvider:n}){const r=e.colliders;return t.jsx("group",{children:r&&t.jsx(je,{meshChildrenProvider:n,colliders:r})})}function O(){return t.jsx(M.Environment,{children:t.jsx(we,{})})}function we({positions:e=[2,0,2,0,2,0,2,0]}){return t.jsxs(t.Fragment,{children:[t.jsx(M.Lightformer,{intensity:5,"rotation-x":Math.PI/2,position:[0,5,-9],scale:[10,10,1]}),t.jsx("group",{rotation:[0,.5,0],children:t.jsx("group",{children:e.map((n,r)=>t.jsx(M.Lightformer,{form:"circle",intensity:5,rotation:[Math.PI/2,0,0],position:[n,4,r*4],scale:[3,1,1]},r))})}),t.jsx(M.Lightformer,{intensity:40,"rotation-y":Math.PI/2,position:[-5,1,-1],scale:[20,.1,1]}),t.jsx(M.Lightformer,{intensity:20,"rotation-y":-Math.PI,position:[-5,-2,-1],scale:[20,.1,1]}),t.jsx(M.Lightformer,{"rotation-y":Math.PI/2,position:[-5,-1,-1],scale:[20,.5,1],intensity:5}),t.jsx(M.Lightformer,{"rotation-y":-Math.PI/2,position:[10,1,0],scale:[20,1,1],intensity:10}),t.jsx(M.Lightformer,{form:"ring",color:"white",intensity:5,scale:10,position:[-15,4,-18],target:[0,0,0]})]})}function Re({safetyZones:e,dhParameters:n,...r}){const i={attach:"material",color:"#009f4d",opacity:.2,depthTest:!1,depthWrite:!1,transparent:!0,polygonOffset:!0},o=T.dhParametersToPlaneSize(n??[]),f=(m,c)=>{var h,y;if(!((h=c==null?void 0:c.pose)!=null&&h.position)||!((y=c==null?void 0:c.pose)!=null&&y.orientation))return null;const a=new b.Vector3(c.pose.position[0]/1e3,c.pose.position[1]/1e3,c.pose.position[2]/1e3),x=new b.Vector3(c.pose.orientation[0],c.pose.orientation[1],c.pose.orientation[2]);let s;const l=c.shape.shape_type==="plane"?{...i,side:b.DoubleSide}:{...i,side:b.FrontSide};switch(c.shape.shape_type){case"plane":s=t.jsx("planeGeometry",{args:[o,o]});break;case"sphere":{const d=(c==null?void 0:c.shape).radius/1e3;s=t.jsx("sphereGeometry",{args:[d]});break}case"capsule":{const d=(c==null?void 0:c.shape).radius/1e3,w=(c==null?void 0:c.shape).cylinder_height/1e3;s=t.jsx("capsuleGeometry",{args:[d,w]});break}case"convex_hull":{const d=(c==null?void 0:c.shape).vertices.map(j=>new b.Vector3(j[0]/1e3,j[1]/1e3,j[2]/1e3)),w=T.verticesToCoplanarity(d);if(w.isCoplanar&&w.normal){const S=new b.Vector3().addVectors(d[0],w.normal.multiplyScalar(1e-4));d.push(S)}try{s=t.jsx("primitive",{object:new V.ConvexGeometry(d),attach:"geometry"})}catch(j){return console.log("Error creating ConvexGeometry:",j),null}break}case"rectangular_capsule":{const d=c.shape,w=d.radius/1e3,j=d.sphere_center_distance_x/1e3,S=d.sphere_center_distance_y/1e3,k=w*2;s=t.jsx("primitive",{object:new V.RoundedBoxGeometry(j,S,k,2,w),attach:"geometry"});break}default:console.warn("Unsupported safety zone shape type:",c.shape.shape_type),s=null}return t.jsxs("mesh",{renderOrder:m,position:a,quaternion:T.orientationToQuaternion(x),children:[s,t.jsx("meshStandardMaterial",{...l,polygonOffsetFactor:-m})]},`safety-zone-${c.shape.shape_type}-${m}`)},u=p.useMemo(()=>Object.values(e??{}).map((m,c)=>f(c,m)),[e,o]);return t.jsx("group",{...r,children:u})}function Me({trajectory:e,...n}){const r=(e==null?void 0:e.map(i=>{if(i.position&&i.position.length>=3){const[o,f,u]=i.position;if(Number.isFinite(o)&&Number.isFinite(f)&&Number.isFinite(u))return new b.Vector3(o/1e3,u/1e3,-f/1e3)}return null}).filter(i=>i!==null))||[];return t.jsx("group",{...n,children:r.length>0&&t.jsx(M.Line,{points:r,lineWidth:3,polygonOffset:!0,polygonOffsetFactor:10,polygonOffsetUnits:10})})}const P=new Map;async function G(e,n){if(P.has(e))return P.get(e);const r=(async()=>{var u;const i=n||"",o=new R.NovaClient({instanceUrl:i}),f=o.api.motionGroupModels;(u=f.axios)!=null&&u.interceptors&&f.axios.interceptors.request.use(m=>{var c;return(c=m.url)!=null&&c.includes("/glb")&&(m.responseType="blob"),m});try{const m=await o.api.motionGroupModels.getMotionGroupGlbModel(e);return URL.createObjectURL(m)}catch(m){throw console.error("Failed to fetch model:",m),m}})();return P.set(e,r),r}function K(e){function n(r){return r.children.length===0?[r]:[r,...r.children.flatMap(i=>n(i))]}return n(e).filter(r=>ee(r))}function z(e){return e.name.endsWith("_FLG")}function ee(e){return/_J[0-9]+$/.test(e.name)}function ve(e,n){let r;function i(o){if(z(o)){if(r)throw Error(`Found multiple flange groups in robot model ${n}; first ${r.name} then ${o.name}. Only one _FLG group is allowed.`);r=o}ee(o),o.children.map(i)}if(i(e.scene),!r)throw Error(`No flange group found in robot model ${n}. Flange must be identified with a name ending in _FLG.`);return{gltf:e}}function te({rapidlyChangingMotionState:e,dhParameters:n,onRotationChanged:r,children:i}){const o=p.useRef([]),f=p.useRef([]),u=p.useRef(null),{invalidate:m}=L.useThree();p.useEffect(()=>{const s=e.joint_position.filter(l=>l!==void 0);return u.current=new C.ValueInterpolator(s,{tension:120,friction:20,threshold:.001}),()=>{var l;(l=u.current)==null||l.destroy()}},[]),L.useFrame((s,l)=>{if(u.current){const h=u.current.update(l);a(),h||m()}});function c(s){s&&(f.current=K(s),a(),m())}function a(){var l;const s=((l=u.current)==null?void 0:l.getCurrentValues())||[];if(r)r(f.current,s);else for(const[h,y]of f.current.entries()){const d=n[h],w=d.theta||0,j=d.reverse_rotation_direction?-1:1;y.rotation.y=j*(s[h]||0)+w}}const x=p.useCallback(()=>{const s=e.joint_position.filter(l=>l!==void 0);requestAnimationFrame(()=>{var l;o.current=s,(l=u.current)==null||l.setTarget(s)})},[e]);return p.useEffect(()=>{x()},[e,x]),C.useAutorun(()=>{x()}),t.jsx("group",{ref:c,children:i})}const _e="line",Se="mesh";function Te({rapidlyChangingMotionState:e,dhParameters:n,...r}){const i=new g.Matrix4,o=p.useRef([]),f=p.useRef([]);p.useEffect(()=>{o.current=new Array(n.length).fill(null),f.current=new Array(n.length).fill(null)},[n.length]);function u(a,x){const s=new g.Vector3,l=new g.Quaternion,h=new g.Vector3;i.decompose(s,l,h);const y=s.clone(),d=new g.Matrix4().makeRotationY(a.theta+x*(a.reverse_rotation_direction?-1:1)).multiply(new g.Matrix4().makeTranslation(0,a.d/1e3,0)).multiply(new g.Matrix4().makeTranslation(a.a/1e3,0,0)).multiply(new g.Matrix4().makeRotationX(a.alpha));return i.multiply(d),i.decompose(s,l,h),{a:y,b:s}}function m(a,x,s,l){if(!n)return;const h=n[a];if(!h)return;const{a:y,b:d}=u(h,l);x.geometry.setPositions([y.toArray(),d.toArray()].flat()),s.position.set(d.x,d.y,d.z)}function c(a,x){i.identity();for(let s=0;s<Math.min(a.length,x.length);s++){const l=o.current[s],h=f.current[s];l&&h&&m(s,l,h,x[s])}}return t.jsx(te,{rapidlyChangingMotionState:e,dhParameters:n,onRotationChanged:c,children:t.jsxs("group",{...r,name:"Scene",children:[t.jsxs("mesh",{children:[t.jsx("sphereGeometry",{args:[.01,32,32]}),t.jsx("meshStandardMaterial",{color:"black",depthTest:!0})]}),n==null?void 0:n.map((a,x)=>{const{a:s,b:l}=u(a,e.joint_position[x]??0),h=`dhrobot_J0${x}`;return t.jsxs("group",{name:h,children:[t.jsx(M.Line,{ref:y=>{o.current[x]=y},name:_e,points:[s,l],color:"white",lineWidth:5}),t.jsxs("mesh",{ref:y=>{f.current[x]=y},name:Se,position:l,children:[t.jsx("sphereGeometry",{args:[.01,32,32]}),t.jsx("meshStandardMaterial",{color:"black",depthTest:!0})]},`mesh_${x}`)]},h)})]})})}const ke=console.warn;function re(){return p.useEffect(()=>{console.warn=e=>{e!=="Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"&&ke(e)}},[]),null}function Le(e){return e.type==="Mesh"}function Ce({url:e,flangeRef:n,postModelRender:r,...i}){const o=M.useGLTF(e),u=ve(o,"robot.glb").gltf,m=p.useCallback(a=>{a&&r&&r()},[r]);function c(a){try{return Le(a)?a.geometry?t.jsx("mesh",{name:a.name,geometry:a.geometry,material:a.material,position:a.position,rotation:a.rotation},a.uuid):t.jsx("group",{name:a.name,position:a.position,rotation:a.rotation},a.uuid):t.jsx("group",{name:a.name,position:a.position,rotation:a.rotation,ref:z(a)?n:void 0,children:a.children.map(c)},a.uuid)}catch(x){return console.warn("Error rendering node",a.name,x),null}}return t.jsx("group",{...i,dispose:null,ref:m,children:c(u.scene)})}function ne({modelURL:e,flangeRef:n,postModelRender:r,...i}){const[o,f]=p.useState(null);return p.useEffect(()=>{(async()=>{try{if(typeof e=="string")f(e);else{const m=await e;f(m)}}catch(m){console.error("Failed to resolve model URL:",m)}})()},[e]),o?t.jsx(Ce,{url:o,flangeRef:n,postModelRender:r,...i}):null}const se=(e,n)=>{e.userData.isGhost||(e.traverse(r=>{if(r instanceof b.Mesh){r.material instanceof b.Material&&(r.material.colorWrite=!1);const i=r.clone(),o=r.clone();i.material=new b.MeshStandardMaterial({depthTest:!0,depthWrite:!0,colorWrite:!1,polygonOffset:!0,polygonOffsetFactor:-1,side:b.DoubleSide}),i.userData.isGhost=!0,o.material=new b.MeshStandardMaterial({color:n,opacity:.3,depthTest:!0,depthWrite:!1,transparent:!0,polygonOffset:!0,polygonOffsetFactor:-2,side:b.DoubleSide}),o.userData.isGhost=!0,r.parent&&(r.parent.add(i),r.parent.add(o))}}),e.userData.isGhost=!0)},oe=e=>{if(!e.userData.isGhost)return;const n=[];e.traverse(r=>{var i;r instanceof b.Mesh&&((i=r.userData)!=null&&i.isGhost?n.push(r):r.material instanceof b.Material&&(r.material.colorWrite=!0))}),n.forEach(r=>{r.parent&&r.parent.remove(r)}),e.userData.isGhost=!1},q=T.externalizeComponent(({rapidlyChangingMotionState:e,modelFromController:n,dhParameters:r,getModel:i=G,flangeRef:o,postModelRender:f,transparentColor:u,instanceUrl:m,...c})=>{const[a,x]=p.useState(null),s=p.useCallback(h=>{x(h)},[]);p.useEffect(()=>{a&&(u?se(a,u):oe(a))},[a,u]);const l=t.jsx(Te,{rapidlyChangingMotionState:e,dhParameters:r,...c});return t.jsxs(Z.ErrorBoundary,{fallback:l,onError:h=>{console.warn(h)},children:[t.jsx(p.Suspense,{fallback:l,children:t.jsx("group",{ref:s,children:t.jsx(te,{rapidlyChangingMotionState:e,dhParameters:r,children:t.jsx(ne,{modelURL:(()=>{const h=i(n,m);if(!h){const y=new Blob([],{type:"model/gltf-binary"}),d=new File([y],`${n}.glb`,{type:"model/gltf-binary"});return Promise.resolve(URL.createObjectURL(d))}return h})(),postModelRender:f,flangeRef:o,...c})})})}),t.jsx(re,{})]})});function ie({connectedMotionGroup:e,getModel:n=G,flangeRef:r,transparentColor:i,postModelRender:o,...f}){return e.dhParameters?t.jsx(q,{rapidlyChangingMotionState:e.rapidlyChangingMotionState,modelFromController:e.modelFromController||"",dhParameters:e.dhParameters,getModel:n,flangeRef:r,transparentColor:i,postModelRender:o,...f}):null}const Ge=T.externalizeComponent(he.observer(({robotName:e,programState:n,safetyState:r,operationMode:i,driveToHomeEnabled:o=!1,onDriveToHomePress:f,onDriveToHomeRelease:u,connectedMotionGroup:m,robotComponent:c=ie,customContentComponent:a,className:x})=>{var W;const s=de.useTheme(),{t:l}=me.useTranslation(),[h,y]=p.useState(!1),d=p.useRef(null),w=p.useRef(null),[j,S]=p.useState(!1),[k,ue]=p.useState({width:400,height:600}),[Pe,fe]=p.useState(0);p.useEffect(()=>{const I=()=>{if(w.current){const{offsetWidth:$,offsetHeight:H}=w.current;S($>H),ue({width:$,height:H})}};I();const N=new ResizeObserver(I);return w.current&&N.observe(w.current),()=>{N.disconnect()}},[]);const J=p.useCallback(()=>{fe(I=>I+1)},[]),E=p.useCallback(()=>{!o||!f||(y(!0),f())},[o,f]),A=p.useCallback(()=>{!o||!u||(y(!1),u())},[o,u]),B=p.useCallback(()=>{h&&u&&(y(!1),u())},[h,u]),_=j?k.width<350:k.height<200,F=j?k.height<310:k.height<450;return t.jsx(pe,{ref:w,className:x,sx:{width:"100%",height:"100%",display:"flex",flexDirection:j?"row":"column",position:"relative",overflow:"hidden",minWidth:{xs:180,sm:220,md:250},minHeight:j?{xs:200,sm:240,md:260}:{xs:150,sm:180,md:220},border:`1px solid ${s.palette.divider}`,borderRadius:"18px",boxShadow:"none",backgroundColor:((W=s.palette.backgroundPaperElevation)==null?void 0:W[8])||"#2A2A3F",backgroundImage:"none"},children:j?t.jsxs(t.Fragment,{children:[t.jsx(v,{sx:{flex:"0 0 50%",position:"relative",height:"100%",minHeight:"100%",maxHeight:"100%",borderRadius:1,m:{xs:1.5,sm:2,md:3},mr:{xs:.75,sm:1,md:1.5},overflow:"hidden",display:_?"none":"block"},children:!_&&t.jsxs(L.Canvas,{orthographic:!0,camera:{position:[3,2,3],zoom:1},shadows:!0,frameloop:"demand",style:{borderRadius:s.shape.borderRadius,width:"100%",height:"100%",background:"transparent",position:"absolute",top:0,left:0},dpr:[1,2],gl:{alpha:!0,antialias:!0},children:[t.jsx(O,{}),t.jsx(M.Bounds,{fit:!0,observe:!0,margin:1,maxDuration:1,children:t.jsx(c,{connectedMotionGroup:m,postModelRender:J})})]})}),t.jsxs(v,{sx:{flex:"1",display:"flex",flexDirection:"column",justifyContent:"flex-start",width:_?"100%":"50%"},children:[t.jsxs(v,{sx:{p:{xs:1.5,sm:2,md:3},pb:{xs:1,sm:1.5,md:2},textAlign:"left"},children:[t.jsx(X,{variant:"h6",component:"h2",sx:{mb:1},children:e}),t.jsx(C.ProgramStateIndicator,{programState:n,safetyState:r,operationMode:i})]}),t.jsxs(v,{sx:{p:{xs:1.5,sm:2,md:3},pt:0,flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[!F&&a&&t.jsxs(v,{children:[t.jsx(a,{}),t.jsx(Q,{sx:{mt:1,mb:0,borderColor:s.palette.divider,opacity:.5}})]}),t.jsx(v,{sx:{mt:!F&&a?"auto":0},children:t.jsx(v,{sx:{display:"flex",justifyContent:"flex-start",mt:{xs:1,sm:1.5,md:2},mb:{xs:.5,sm:.75,md:1}},children:t.jsx(Y,{ref:d,variant:"contained",color:"secondary",size:"small",disabled:!o,onMouseDown:E,onMouseUp:A,onMouseLeave:B,onTouchStart:E,onTouchEnd:A,sx:{textTransform:"none",px:1.5,py:.5},children:l("RobotCard.DriveToHome.bt")})})})]})]})]}):t.jsx(t.Fragment,{children:t.jsxs(v,{sx:{p:3,height:"100%",display:"flex",flexDirection:"column"},children:[t.jsxs(v,{children:[t.jsx(X,{variant:"h6",component:"h2",sx:{mb:1},children:e}),t.jsx(C.ProgramStateIndicator,{programState:n,safetyState:r,operationMode:i})]}),t.jsx(v,{sx:{flex:_?0:1,position:"relative",minHeight:_?0:{xs:120,sm:150,md:200},height:_?0:"auto",borderRadius:1,overflow:"hidden",display:_?"none":"block"},children:!_&&t.jsxs(L.Canvas,{orthographic:!0,camera:{position:[3,2,3],zoom:1},shadows:!0,frameloop:"demand",style:{borderRadius:s.shape.borderRadius,width:"100%",height:"100%",background:"transparent",position:"absolute"},dpr:[1,2],gl:{alpha:!0,antialias:!0},children:[t.jsx(O,{}),t.jsx(M.Bounds,{fit:!0,clip:!0,observe:!0,margin:1,maxDuration:1,children:t.jsx(c,{connectedMotionGroup:m,postModelRender:J})})]})}),t.jsxs(v,{children:[!F&&a&&t.jsxs(t.Fragment,{children:[t.jsx(a,{}),t.jsx(Q,{sx:{mt:1,mb:0,borderColor:s.palette.divider,opacity:.5}})]}),t.jsx(v,{sx:{display:"flex",justifyContent:"flex-start",mt:!F&&a?{xs:1,sm:2,md:5}:{xs:.5,sm:1,md:2},mb:{xs:.5,sm:.75,md:1}},children:t.jsx(Y,{ref:d,variant:"contained",color:"secondary",size:"small",disabled:!o,onMouseDown:E,onMouseUp:A,onMouseLeave:B,onTouchStart:E,onTouchEnd:A,sx:{textTransform:"none",px:1.5,py:.5},children:l("RobotCard.DriveToHome.bt")})})]})]})})})})),Ee=Array(6).fill(2*Math.PI);function ae({rapidlyChangingMotionState:e,dhParameters:n,onTranslationChanged:r,children:i}){const o=p.useRef([]),f=p.useRef([]),u=p.useRef(null),{invalidate:m}=L.useThree();p.useEffect(()=>{const s=e.joint_position.filter(l=>l!==void 0);return u.current=new C.ValueInterpolator(s,{tension:120,friction:20,threshold:.001}),()=>{var l;(l=u.current)==null||l.destroy()}},[]),L.useFrame((s,l)=>{if(u.current){const h=u.current.update(l);a(),h||m()}});function c(s){s&&(f.current=K(s),a(),m())}function a(){var l;const s=((l=u.current)==null?void 0:l.getCurrentValues())||[];if(r)r(f.current,s);else for(const[h,y]of f.current.entries()){const w=n[h].reverse_rotation_direction?-1:1;y.position.y=w*(s[h]||0)/1e3}}const x=p.useCallback(()=>{const s=e.joint_position.filter(l=>l!==void 0);requestAnimationFrame(()=>{var l;o.current=s,(l=u.current)==null||l.setTarget(s)})},[e]);return p.useEffect(()=>{x()},[e,x]),C.useAutorun(()=>{x()}),t.jsx("group",{ref:c,children:i})}function ce({rapidlyChangingMotionState:e,dhParameters:n,...r}){const i=new g.Matrix4,o=p.useRef(null),f=p.useRef(null);function u(a){const x=new g.Matrix4;for(let y=0;y<n.length;y++){const d=n[y],w=a[y]??0,j=new g.Matrix4().makeRotationY(d.theta).multiply(new g.Matrix4().makeTranslation(d.a/1e3,(d.d+w*(d.reverse_rotation_direction?-1:1))/1e3,0)).multiply(new g.Matrix4().makeRotationX(d.alpha));x.multiply(j)}const s=new g.Vector3,l=new g.Quaternion,h=new g.Vector3;return x.decompose(s,l,h),s}const m=u(e.joint_position);function c(a,x){i.identity();let s=new g.Vector3;for(let d=0;d<n.length;d++){const w=x[d]??0,j=n[d],S=new g.Matrix4().makeRotationY(j.theta).multiply(new g.Matrix4().makeTranslation(j.a/1e3,(j.d+w*(j.reverse_rotation_direction?-1:1))/1e3,0)).multiply(new g.Matrix4().makeRotationX(j.alpha));i.multiply(S)}const l=new g.Vector3,h=new g.Quaternion,y=new g.Vector3;if(i.decompose(l,h,y),s=l,o.current&&o.current.position.set(s.x,s.y,s.z),f.current){const d=f.current.geometry;d!=null&&d.setPositions&&d.setPositions([0,0,0,s.x,s.y,s.z])}}return t.jsx(ae,{rapidlyChangingMotionState:e,dhParameters:n,onTranslationChanged:c,children:t.jsxs("group",{...r,name:"Scene",children:[t.jsxs("mesh",{name:"Base",position:[0,0,0],children:[t.jsx("sphereGeometry",{args:[.02,32,32]}),t.jsx("meshStandardMaterial",{color:"green",depthTest:!0})]}),t.jsx(M.Line,{ref:f,points:[new g.Vector3(0,0,0),m],color:"White",lineWidth:5}),t.jsxs("mesh",{ref:o,name:"TCP",position:m,children:[t.jsx("sphereGeometry",{args:[.025,32,32]}),t.jsx("meshStandardMaterial",{color:"red",depthTest:!0})]})]})})}const U=T.externalizeComponent(({rapidlyChangingMotionState:e,modelFromController:n,dhParameters:r,getModel:i=G,flangeRef:o,postModelRender:f,transparentColor:u,instanceUrl:m,...c})=>{const[a,x]=p.useState(null),s=p.useCallback(h=>{x(h)},[]);p.useEffect(()=>{a&&(u?se(a,u):oe(a))},[a,u]);const l=t.jsx(ce,{rapidlyChangingMotionState:e,dhParameters:r,...c});return t.jsxs(Z.ErrorBoundary,{fallback:l,onError:h=>{console.warn(h)},children:[t.jsx(p.Suspense,{fallback:l,children:t.jsx("group",{ref:s,children:t.jsx(ae,{rapidlyChangingMotionState:e,dhParameters:r,children:t.jsx(ne,{modelURL:(()=>{const h=i(n,m);if(!h){const y=new Blob([],{type:"model/gltf-binary"}),d=new File([y],`${n}.glb`,{type:"model/gltf-binary"});return Promise.resolve(URL.createObjectURL(d))}return h})(),postModelRender:f,flangeRef:o,...c})})})}),t.jsx(re,{})]})});function Ae({connectedMotionGroup:e,getModel:n=G,flangeRef:r,transparentColor:i,postModelRender:o,...f}){if(!e.dhParameters)return null;const u=e.modelFromController||"";return u&&n(u)?t.jsx(U,{rapidlyChangingMotionState:e.rapidlyChangingMotionState,modelFromController:u,dhParameters:e.dhParameters,getModel:n,flangeRef:r,transparentColor:i,postModelRender:o,...f}):t.jsx(ce,{rapidlyChangingMotionState:e.rapidlyChangingMotionState,dhParameters:e.dhParameters,...f})}const D={[R.Manufacturer.Abb]:[0,0,0,0,Math.PI/2,0,0],[R.Manufacturer.Fanuc]:[0,0,0,0,-Math.PI/2,0,0],[R.Manufacturer.Yaskawa]:[0,0,0,0,-Math.PI/2,0,0],[R.Manufacturer.Kuka]:[0,-Math.PI/2,Math.PI/2,0,Math.PI/2,0,0],[R.Manufacturer.Universalrobots]:[0,-Math.PI/2,-Math.PI/2,-Math.PI/2,Math.PI/2,-Math.PI/2,0]};function le(e){const[n]=e.split("_");switch(n){case"ABB":return R.Manufacturer.Abb;case"FANUC":return R.Manufacturer.Fanuc;case"YASKAWA":return R.Manufacturer.Yaskawa;case"KUKA":return R.Manufacturer.Kuka;case"UniversalRobots":return R.Manufacturer.Universalrobots;default:return null}}function Fe(e,n){const r=le(e);return r&&r in D?D[r]:n||null}const Ie=T.externalizeComponent(e=>{const{inverseSolver:n,dhParameters:r,...i}=e,[o,f]=p.useState(R.JointTypeEnum.RevoluteJoint);p.useEffect(()=>{r.length&&f(r[0].type??R.JointTypeEnum.RevoluteJoint)},[r]);const u=p.useMemo(()=>n===null&&o===R.JointTypeEnum.RevoluteJoint,[n,o]),m=p.useMemo(()=>n===null&&o===R.JointTypeEnum.PrismaticJoint,[n,o]);return p.useMemo(()=>!!n,[n])||u?t.jsx(q,{dhParameters:r,...i}):m?t.jsx(U,{dhParameters:r,...i}):null});exports.CollisionSceneRenderer=be;exports.LinearAxis=Ae;exports.MANUFACTURER_HOME_CONFIGS=D;exports.MotionGroupVisualizer=Ie;exports.PresetEnvironment=O;exports.Robot=ie;exports.RobotCard=Ge;exports.SafetyZonesRenderer=Re;exports.SupportedLinearAxis=U;exports.SupportedRobot=q;exports.TrajectoryRenderer=Me;exports.defaultAxisConfig=Ee;exports.defaultGetModel=G;exports.extractManufacturer=le;exports.getDefaultHomeConfig=Fe;
|