@labelbee/lb-components 1.6.0-alpha.1 → 1.6.0-alpha.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.
Files changed (66) hide show
  1. package/dist/components/pointCloudView/PointCloud2DView.js +1 -1
  2. package/dist/components/pointCloudView/PointCloud3DView.js +1 -1
  3. package/dist/components/pointCloudView/PointCloudBackView.js +1 -1
  4. package/dist/components/pointCloudView/PointCloudContext.js +1 -1
  5. package/dist/components/pointCloudView/PointCloudInfos.js +1 -1
  6. package/dist/components/pointCloudView/PointCloudListener.js +1 -1
  7. package/dist/components/pointCloudView/PointCloudSideView.js +1 -1
  8. package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
  9. package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  10. package/dist/components/pointCloudView/hooks/usePolygon.js +1 -0
  11. package/dist/components/pointCloudView/hooks/useSingleBox.js +1 -1
  12. package/dist/components/pointCloudView/hooks/useStatus.js +1 -0
  13. package/dist/hooks/annotation.js +1 -1
  14. package/dist/index.css +14 -0
  15. package/dist/store/annotation/reducer.js +1 -1
  16. package/dist/types/components/pointCloudView/PointCloudContext.d.ts +3 -1
  17. package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +5 -1
  18. package/dist/types/components/pointCloudView/hooks/usePolygon.d.ts +9 -0
  19. package/dist/types/components/pointCloudView/hooks/useStatus.d.ts +11 -0
  20. package/dist/types/hooks/annotation.d.ts +4 -0
  21. package/dist/types/utils/data.d.ts +1 -1
  22. package/dist/utils/data.js +1 -1
  23. package/dist/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -1
  24. package/dist/views/MainView/sidebar/GeneralOperation/index.js +1 -1
  25. package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  26. package/dist/views/MainView/toolFooter/index.js +1 -1
  27. package/es/components/pointCloudView/PointCloud2DView.js +1 -1
  28. package/es/components/pointCloudView/PointCloud2DView.js.map +1 -1
  29. package/es/components/pointCloudView/PointCloud3DView.js +1 -1
  30. package/es/components/pointCloudView/PointCloud3DView.js.map +1 -1
  31. package/es/components/pointCloudView/PointCloudBackView.js +1 -1
  32. package/es/components/pointCloudView/PointCloudBackView.js.map +1 -1
  33. package/es/components/pointCloudView/PointCloudContext.js +1 -1
  34. package/es/components/pointCloudView/PointCloudContext.js.map +1 -1
  35. package/es/components/pointCloudView/PointCloudInfos.js +1 -1
  36. package/es/components/pointCloudView/PointCloudInfos.js.map +1 -1
  37. package/es/components/pointCloudView/PointCloudListener.js +1 -1
  38. package/es/components/pointCloudView/PointCloudListener.js.map +1 -1
  39. package/es/components/pointCloudView/PointCloudSideView.js +1 -1
  40. package/es/components/pointCloudView/PointCloudSideView.js.map +1 -1
  41. package/es/components/pointCloudView/PointCloudTopView.js +1 -1
  42. package/es/components/pointCloudView/PointCloudTopView.js.map +1 -1
  43. package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  44. package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -1
  45. package/es/components/pointCloudView/hooks/usePolygon.js +1 -0
  46. package/es/components/pointCloudView/hooks/usePolygon.js.map +1 -0
  47. package/es/components/pointCloudView/hooks/useSingleBox.js +1 -1
  48. package/es/components/pointCloudView/hooks/useSingleBox.js.map +1 -1
  49. package/es/components/pointCloudView/hooks/useStatus.js +1 -0
  50. package/es/components/pointCloudView/hooks/useStatus.js.map +1 -0
  51. package/es/hooks/annotation.js +1 -1
  52. package/es/hooks/annotation.js.map +1 -1
  53. package/es/index.css +14 -0
  54. package/es/store/annotation/reducer.js +1 -1
  55. package/es/store/annotation/reducer.js.map +1 -1
  56. package/es/utils/data.js +1 -1
  57. package/es/utils/data.js.map +1 -1
  58. package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -1
  59. package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js.map +1 -1
  60. package/es/views/MainView/sidebar/GeneralOperation/index.js +1 -1
  61. package/es/views/MainView/sidebar/GeneralOperation/index.js.map +1 -1
  62. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  63. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -1
  64. package/es/views/MainView/toolFooter/index.js +1 -1
  65. package/es/views/MainView/toolFooter/index.js.map +1 -1
  66. package/package.json +5 -6
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),index=require("../AnnotationView/index.js"),PointCloudContext=require("./PointCloudContext.js"),reactRedux=require("react-redux"),icons=require("@ant-design/icons");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,e,n)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,__spreadValues=(t,e)=>{for(var n in e||(e={}))__hasOwnProp.call(e,n)&&__defNormalProp(t,n,e[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(e))__propIsEnum.call(e,n)&&__defNormalProp(t,n,e[n]);return t};const Toolbar=({onNext:t,onPrev:e,imgLength:n,imgIndex:i})=>React__default.default.createElement("div",null,React__default.default.createElement(icons.LeftOutlined,{onClick:e}),React__default.default.createElement("span",null," ",i+1," / ",n," "),React__default.default.createElement(icons.RightOutlined,{onClick:t})),PointCloud2DView=({imgInfo:t})=>{var e,n;const[i,f]=React.useState([]),{pointCloudBoxList:s,topViewInstance:u}=React.useContext(PointCloudContext.PointCloudContext),[c,d]=React.useState(0),o=(e=t==null?void 0:t.mappingImgList)==null?void 0:e[c];React.useEffect(()=>{if(u&&o){const{pointCloudInstance:a}=u,r=[],m={fill:"transparent",color:"green"};s.forEach(v=>{a.lidar2image(v,o.calib).forEach(l=>{switch(l.type){case"polygon":r.push({type:"polygon",annotation:__spreadValues({pointList:l.pointList},m)});break;case"line":r.push({type:"line",annotation:__spreadValues({pointList:l.pointList},m)});break}})}),f(r)}},[s,o]);const g={width:700,height:400};if(!t)return React__default.default.createElement("div",null);const{mappingImgList:p}=t;return p?React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-2d-container"),title:"2D\u89C6\u56FE",toolbar:React__default.default.createElement(Toolbar,{imgIndex:c,imgLength:p.length,onNext:()=>{d(a=>a+1)},onPrev:()=>{d(a=>a-1)}})},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image")},React__default.default.createElement(index,{src:(n=o==null?void 0:o.url)!=null?n:"",annotations:i,size:g}))):React__default.default.createElement("div",null)},mapStateToProps=t=>{const{imgList:e,imgIndex:n}=t.annotation;return console.log("imgList[imgIndex]",e[n],e),{imgInfo:e[n]}};var PointCloud2DView$1=reactRedux.connect(mapStateToProps)(PointCloud2DView);module.exports=PointCloud2DView$1;
1
+ "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),index=require("../AnnotationView/index.js"),PointCloudContext=require("./PointCloudContext.js"),reactRedux=require("react-redux"),icons=require("@ant-design/icons");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,e,n)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,__spreadValues=(t,e)=>{for(var n in e||(e={}))__hasOwnProp.call(e,n)&&__defNormalProp(t,n,e[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(e))__propIsEnum.call(e,n)&&__defNormalProp(t,n,e[n]);return t};const Toolbar=({onNext:t,onPrev:e,imgLength:n,imgIndex:i})=>React__default.default.createElement("div",null,React__default.default.createElement(icons.LeftOutlined,{onClick:e}),React__default.default.createElement("span",null," ",i+1," / ",n," "),React__default.default.createElement(icons.RightOutlined,{onClick:t})),PointCloud2DView=({imgInfo:t})=>{var e,n;const[i,p]=React.useState([]),{pointCloudBoxList:u,topViewInstance:s}=React.useContext(PointCloudContext.PointCloudContext),[a,d]=React.useState(0),r=(e=t==null?void 0:t.mappingImgList)==null?void 0:e[a];React.useEffect(()=>{if(s&&r){const{pointCloudInstance:o}=s,f={fill:"transparent",color:"green"},v=u.reduce((g,C)=>{const P=o.pointCloudLidar2image(C,r.calib);return[...g,...P.map(c=>({type:c.type,annotation:__spreadValues({pointList:c.pointList},f)}))]},[]);p(v)}},[u,r]);const m={width:700,height:400};if(!t)return React__default.default.createElement("div",null);const{mappingImgList:l}=t;return l?React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-2d-container"),title:"2D\u89C6\u56FE",toolbar:React__default.default.createElement(Toolbar,{imgIndex:a,imgLength:l.length,onNext:()=>{a>=l.length-1||d(o=>o+1)},onPrev:()=>{a<=0||d(o=>o-1)}})},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image")},React__default.default.createElement(index,{src:(n=r==null?void 0:r.url)!=null?n:"",annotations:i,size:m}))):React__default.default.createElement("div",null)},mapStateToProps=t=>{const{imgList:e,imgIndex:n}=t.annotation;return{imgInfo:e[n]}};var PointCloud2DView$1=reactRedux.connect(mapStateToProps)(PointCloud2DView);module.exports=PointCloud2DView$1;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),classNames=require("classnames"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),index=require("../../utils/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var classNames__default=_interopDefaultLegacy(classNames),React__default=_interopDefaultLegacy(React);const pointCloudID="LABELBEE-POINTCLOUD",PointCloud3DContext=React__default.default.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{}}),PointCloudViewIcon=({perspectiveView:e})=>{const{isActive:t,setTarget3DView:l}=React.useContext(PointCloud3DContext),a=s=>classNames__default.default({[dom.getClassName("point-cloud-3d-view",s)]:!0,active:t});return React__default.default.createElement("span",{onClick:()=>{l(lbUtils.EPerspectiveView[e])},className:a(e.toLocaleLowerCase())})},PointCloud3DSideBar=()=>{const{reset3DView:e}=React.useContext(PointCloud3DContext);return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebar")},React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Top"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Front"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Left"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Back"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Right"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"LFT"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"RBT"}),React__default.default.createElement("span",{onClick:()=>{e()},className:dom.getClassName("point-cloud-3d-view","reset")}))},PointCloud3D=({currentData:e})=>{const t=React.useContext(PointCloudContext.PointCloudContext),l=React.useRef(null),{selectedID:a,pointCloudBoxList:s}=React.useContext(PointCloudContext.PointCloudContext),c=a,u=n=>{var o;const i=c?s.find(r=>r.id===a):void 0;i&&((o=t.mainViewInstance)==null||o.updateCameraByBox(i,n))},d=()=>{var n;(n=t.mainViewInstance)==null||n.resetCamera()};React.useEffect(()=>{var n;if(l.current&&(e==null?void 0:e.url)){let o=t.mainViewInstance;if(o||(o=new lbAnnotation.PointCloud({container:l.current,backgroundColor:"#4c4c4c"})),e.result){const i=lbUtils.PointCloudUtils.getBoxParamsFromResultList(e.result);i.forEach(r=>{o==null||o.generateBox(r)}),t.setPointCloudResult(i),t.setPointCloudValid((n=index.jsonParser(e.result))==null?void 0:n.valid)}t.setMainViewInstance(o)}},[]),React.useEffect(()=>{a&&u(lbUtils.EPerspectiveView.Top)},[a]);const C=React.useMemo(()=>({reset3DView:d,setTarget3DView:u,isActive:!!a}),[a]);return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-3d-container"),title:"3D\u89C6\u56FE"},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-content")},React__default.default.createElement(PointCloud3DContext.Provider,{value:C},React__default.default.createElement(PointCloud3DSideBar,null)),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-view"),id:pointCloudID,ref:l})))};var PointCloud3DView=reactRedux.connect(map.aMapStateToProps)(PointCloud3D);module.exports=PointCloud3DView;
1
+ "use strict";var dom=require("../../utils/dom.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),classNames=require("classnames"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),index=require("../../utils/index.js"),useSingleBox=require("./hooks/useSingleBox.js"),antd=require("antd");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var classNames__default=_interopDefaultLegacy(classNames),React__default=_interopDefaultLegacy(React);const pointCloudID="LABELBEE-POINTCLOUD",PointCloud3DContext=React__default.default.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{}}),PointCloudViewIcon=({perspectiveView:e})=>{const{isActive:n,setTarget3DView:s}=React.useContext(PointCloud3DContext),r=o=>classNames__default.default({[dom.getClassName("point-cloud-3d-view",o)]:!0,active:n});return React__default.default.createElement("span",{onClick:()=>{s(lbUtils.EPerspectiveView[e])},className:r(e.toLocaleLowerCase())})},PointCloud3DSideBar=()=>{const{reset3DView:e}=React.useContext(PointCloud3DContext);return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-sidebar")},React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Top"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Front"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Left"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Back"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"Right"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"LFT"}),React__default.default.createElement(PointCloudViewIcon,{perspectiveView:"RBT"}),React__default.default.createElement("span",{onClick:()=>{e()},className:dom.getClassName("point-cloud-3d-view","reset")}))},PointCloud3D=({currentData:e})=>{const n=React.useContext(PointCloudContext.PointCloudContext),[s,r]=React.useState(!0),o=React.useRef(null),{selectedBox:l}=useSingleBox.useSingleBox(),u=a=>{var t;const i=l==null?void 0:l.info;i&&((t=n.mainViewInstance)==null||t.updateCameraByBox(i,a))},c=()=>{var a;(a=n.mainViewInstance)==null||a.resetCamera()};React.useEffect(()=>{var a;if(o.current&&(e==null?void 0:e.url)){let t=n.mainViewInstance;if(t||(t=new lbAnnotation.PointCloud({container:o.current,backgroundColor:"#4c4c4c"})),e.result){const i=lbUtils.PointCloudUtils.getBoxParamsFromResultList(e.result);i.forEach(v=>{t==null||t.generateBox(v)}),n.setPointCloudResult(i),n.setPointCloudValid((a=index.jsonParser(e.result))==null?void 0:a.valid)}n.setMainViewInstance(t)}},[]),React.useEffect(()=>{l&&u(lbUtils.EPerspectiveView.Top)},[l]);const d=React.useMemo(()=>({reset3DView:c,setTarget3DView:u,isActive:!!l}),[l]),m=React__default.default.createElement("div",null,React__default.default.createElement("span",{style:{marginRight:8}},"\u663E\u793A\u7BAD\u5934"),React__default.default.createElement(antd.Switch,{size:"small",checked:s,onChange:a=>{var t;r(a),(t=n.mainViewInstance)==null||t.setShowDirection(a)}}));return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-3d-container"),title:"3D\u89C6\u56FE",toolbar:m},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-content")},React__default.default.createElement(PointCloud3DContext.Provider,{value:d},React__default.default.createElement(PointCloud3DSideBar,null)),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-3d-view"),id:pointCloudID,ref:o})))};var PointCloud3DView=reactRedux.connect(map.aMapStateToProps)(PointCloud3D);module.exports=PointCloud3DView;
@@ -1 +1 @@
1
- "use strict";var lbAnnotation=require("@labelbee/lb-annotation"),dom=require("../../utils/dom.js"),PointCloudLayout=require("./PointCloudLayout.js"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),useSingleBox=require("./hooks/useSingleBox.js"),lbUtils=require("@labelbee/lb-utils"),PointCloudInfos=require("./PointCloudInfos.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const TransferCanvas2WorldOffset=(e,t,o=1)=>{const{width:l,height:n}=t,a={x:e.x+l*o/2,y:e.y+n*o/2},i={x:t.width/2,y:t.height/2};return{offsetX:(i.x-a.x)/o,offsetY:-(i.y-a.y)/o}},updateBackViewByCanvas2D=(e,t,o,l,n)=>{const{offsetX:a,offsetY:i}=TransferCanvas2WorldOffset(e,o,t);if(n.camera.zoom=t,e){const r=Math.cos(l.rotation),s=Math.sin(l.rotation),c=a*r,u=a*s,{x:d,y:f,z:h}=n.initCameraPosition;n.camera.position.set(d+u,f-c,h+i)}n.camera.updateProjectionMatrix(),n.render()},PointCloudSideView=({currentData:e})=>{const t=React__default.default.useContext(PointCloudContext.PointCloudContext),[o,l]=React.useState(null),n=React.useRef(null),{updateSelectedBox:a}=useSingleBox.useSingleBox();return React.useEffect(()=>{if(n.current){const i={width:n.current.clientWidth,height:n.current.clientHeight},r=new lbAnnotation.PointCloudAnnotation({container:n.current,size:i});t.setBackViewInstance(r),l(i)}},[]),React.useEffect(()=>{if(!o||!t.backViewInstance)return;const{pointCloud2dOperation:i,pointCloudInstance:r}=t.backViewInstance;i.singleOn("renderZoom",(s,c)=>{!t.selectedPointCloudBox||updateBackViewByCanvas2D(c,s,o,t.selectedPointCloudBox,r)}),i.singleOn("dragMove",({currentPos:s,zoom:c})=>{!t.selectedPointCloudBox||updateBackViewByCanvas2D(s,c,o,t.selectedPointCloudBox,r)}),i.singleOn("updatePolygonByDrag",({newPolygon:s,originPolygon:c})=>{if(!t.selectedPointCloudBox||!t.mainViewInstance||!e.url)return;const[u,d,f]=s.pointList,[h,x,w]=c.pointList,p=lbAnnotation.MathUtils.getLineCenterPoint([u,f]),g=lbAnnotation.MathUtils.getLineCenterPoint([h,w]),P={x:{x:p.x-g.x,y:p.y-g.y}.x,y:0,z:p.y-g.y},y=lbAnnotation.MathUtils.getLineLength(u,d),v=lbAnnotation.MathUtils.getLineLength(h,x),B=y-v,V=lbAnnotation.MathUtils.getLineLength(d,f),m=lbAnnotation.MathUtils.getLineLength(x,w),L=V-m,{newBoxParams:C}=r.getNewBoxByBackUpdate(P,L,B,t.selectedPointCloudBox);usePointCloudViews.synchronizeTopView(C,s,t.topViewInstance,t.mainViewInstance),usePointCloudViews.synchronizeSideView(C,s,t.sideViewInstance,e.url),t.mainViewInstance.hightLightOriginPointCloud(C),a(C)})},[t,o]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","back-view"),title:"\u80CC\u89C6\u56FE",toolbar:React__default.default.createElement(PointCloudInfos.SizeInfoForView,{perspectiveView:lbUtils.EPerspectiveView.Back})},React__default.default.createElement("div",{style:{width:"100%",height:300},ref:n}))};var PointCloudBackView=reactRedux.connect(map.aMapStateToProps)(PointCloudSideView);module.exports=PointCloudBackView;
1
+ "use strict";var lbAnnotation=require("@labelbee/lb-annotation"),dom=require("../../utils/dom.js"),PointCloudLayout=require("./PointCloudLayout.js"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),useSingleBox=require("./hooks/useSingleBox.js"),lbUtils=require("@labelbee/lb-utils"),PointCloudInfos=require("./PointCloudInfos.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,e,t)=>e in n?__defProp(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,__spreadValues=(n,e)=>{for(var t in e||(e={}))__hasOwnProp.call(e,t)&&__defNormalProp(n,t,e[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(e))__propIsEnum.call(e,t)&&__defNormalProp(n,t,e[t]);return n};const TransferCanvas2WorldOffset=(n,e,t=1)=>{const{width:c,height:o}=e,s={x:n.x+c*t/2,y:n.y+o*t/2},u={x:e.width/2,y:e.height/2};return{offsetX:(u.x-s.x)/t,offsetY:-(u.y-s.y)/t}},updateBackViewByCanvas2D=(n,e,t,c,o)=>{const{offsetX:s,offsetY:u}=TransferCanvas2WorldOffset(n,t,e);if(o.camera.zoom=e,n){const r=Math.cos(c.rotation),a=Math.sin(c.rotation),i=s*r,l=s*a,{x:d,y:f,z:p}=o.initCameraPosition;o.camera.position.set(d+l,f-i,p+u)}o.camera.updateProjectionMatrix(),o.render()},PointCloudSideView=({currentData:n})=>{const e=React__default.default.useContext(PointCloudContext.PointCloudContext),[t,c]=React.useState(null),o=React.useRef(null),{updateSelectedBox:s,selectedBox:u}=useSingleBox.useSingleBox();return React.useEffect(()=>{if(o.current){const r={width:o.current.clientWidth,height:o.current.clientHeight},a=new lbAnnotation.PointCloudAnnotation({container:o.current,size:r,polygonOperationProps:{showDirectionLine:!1,forbidAddNew:!0}});e.setBackViewInstance(a),c(r)}},[]),React.useEffect(()=>{if(!t||!e.backViewInstance)return;const{pointCloud2dOperation:r,pointCloudInstance:a}=e.backViewInstance;r.singleOn("renderZoom",(i,l)=>{!e.selectedPointCloudBox||updateBackViewByCanvas2D(l,i,t,e.selectedPointCloudBox,a)}),r.singleOn("dragMove",({currentPos:i,zoom:l})=>{!e.selectedPointCloudBox||updateBackViewByCanvas2D(i,l,t,e.selectedPointCloudBox,a)}),r.singleOn("updatePolygonByDrag",({newPolygon:i,originPolygon:l})=>{if(!e.selectedPointCloudBox||!e.mainViewInstance||!n.url)return;const[d,f,p]=i.pointList,[w,P,x]=l.pointList,C=lbAnnotation.MathUtils.getLineCenterPoint([d,p]),g=lbAnnotation.MathUtils.getLineCenterPoint([w,x]),y={x:{x:C.x-g.x,y:C.y-g.y}.x,y:0,z:C.y-g.y},v=lbAnnotation.MathUtils.getLineLength(d,f),m=lbAnnotation.MathUtils.getLineLength(w,P),B=v-m,V=lbAnnotation.MathUtils.getLineLength(f,p),L=lbAnnotation.MathUtils.getLineLength(P,x),O=V-L,{newBoxParams:h}=a.getNewBoxByBackUpdate(y,O,B,e.selectedPointCloudBox);usePointCloudViews.synchronizeTopView(h,i,e.topViewInstance,e.mainViewInstance),usePointCloudViews.synchronizeSideView(h,i,e.sideViewInstance,n.url),e.mainViewInstance.hightLightOriginPointCloud(h),s(h)})},[e,t]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","back-view"),title:"\u80CC\u89C6\u56FE",toolbar:React__default.default.createElement(PointCloudInfos.SizeInfoForView,{perspectiveView:lbUtils.EPerspectiveView.Back})},React__default.default.createElement("div",{style:{width:"100%",height:300,position:"relative"},ref:o}),!u&&React__default.default.createElement("div",{style:__spreadValues({},t),className:dom.getClassName("point-cloud-container","empty-page")},"\u6682\u65E0\u6570\u636E"))};var PointCloudBackView=reactRedux.connect(map.aMapStateToProps)(PointCloudSideView);module.exports=PointCloudBackView;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react");function _interopDefaultLegacy(s){return s&&typeof s=="object"&&"default"in s?s:{default:s}}var React__default=_interopDefaultLegacy(React);const PointCloudContext=React__default.default.createContext({pointCloudBoxList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>{}}),PointCloudProvider=({children:s})=>{const[n,i]=React.useState([]),[t,a]=React.useState([]),[d,C]=React.useState(!0),[c,S]=React.useState(),[l,I]=React.useState(),[u,x]=React.useState(),[r,P]=React.useState(),f=React.useMemo(()=>t.length===1?t[0]:"",[t]),V=React.useMemo(()=>{const p=n.find(e=>e.id===f),w=e=>{i(n.concat(e))},v=e=>{C(e!==!1)},o=e=>{e===void 0&&a([]),typeof e=="string"&&a([e]),Array.isArray(e)&&a(Array.from(new Set(e)))};return{selectedID:f,pointCloudBoxList:n,selectedIDs:t,setPointCloudResult:i,setSelectedIDs:o,addPointCloudBox:w,valid:d,selectedPointCloudBox:p,setPointCloudValid:v,addSelectedID:e=>{t.includes(e)?o(t.filter(B=>B!==e)):o([...t,e])},selectedAllBoxes:()=>{o(n.map(e=>e.id))},topViewInstance:c,setTopViewInstance:S,sideViewInstance:l,setSideViewInstance:I,backViewInstance:u,setBackViewInstance:x,mainViewInstance:r,setMainViewInstance:P}},[d,t,n,c,l,u,r]);return React__default.default.createElement(PointCloudContext.Provider,{value:V},s)};exports.PointCloudContext=PointCloudContext,exports.PointCloudProvider=PointCloudProvider;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react");function _interopDefaultLegacy(s){return s&&typeof s=="object"&&"default"in s?s:{default:s}}var React__default=_interopDefaultLegacy(React);const PointCloudContext=React__default.default.createContext({pointCloudBoxList:[],polygonList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>{},setPolygonList:()=>{}}),PointCloudProvider=({children:s})=>{const[o,a]=React.useState([]),[c,C]=React.useState([]),[t,i]=React.useState([]),[d,P]=React.useState(!0),[l,p]=React.useState(),[u,I]=React.useState(),[r,x]=React.useState(),[f,V]=React.useState(),S=React.useMemo(()=>t.length===1?t[0]:"",[t]),w=React.useMemo(()=>{const y=o.find(e=>e.id===S),v=e=>{a(o.concat(e))},B=e=>{P(e!==!1)},n=e=>{e===void 0&&i([]),typeof e=="string"&&i([e]),Array.isArray(e)&&i(Array.from(new Set(e)))};return{selectedID:S,pointCloudBoxList:o,selectedIDs:t,setPointCloudResult:a,setSelectedIDs:n,addPointCloudBox:v,valid:d,selectedPointCloudBox:y,setPointCloudValid:B,addSelectedID:e=>{t.includes(e)?n(t.filter(g=>g!==e)):n([...t,e])},selectedAllBoxes:()=>{n(o.map(e=>e.id))},topViewInstance:l,setTopViewInstance:p,sideViewInstance:u,setSideViewInstance:I,backViewInstance:r,setBackViewInstance:x,mainViewInstance:f,setMainViewInstance:V,polygonList:c,setPolygonList:C}},[d,t,o,c,l,u,r,f]);return React__default.default.createElement(PointCloudContext.Provider,{value:w},s)};exports.PointCloudContext=PointCloudContext,exports.PointCloudProvider=PointCloudProvider;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const DECIMAL_PLACES=2,SizeInfoForView=({perspectiveView:e})=>{const{pointCloudBoxList:o,selectedID:n}=React__default.default.useContext(PointCloudContext.PointCloudContext),t=o.find(l=>l.id===n);if(n&&t){const l=e===lbUtils.EPerspectiveView.Back?[{label:"\u5BBD",value:t.width},{label:"\u9AD8",value:t.depth}]:[{label:"\u957F",value:t.height},{label:"\u5BBD",value:t.width}];return React__default.default.createElement(React__default.default.Fragment,null,l.map((a,u)=>React__default.default.createElement("span",{key:u,style:{marginRight:u===0?16:0,fontSize:12}},`${a.label}: ${a.value.toFixed(DECIMAL_PLACES)}`)))}return null},BoxInfos=()=>{const e=React__default.default.useContext(PointCloudContext.PointCloudContext),{selectedID:o,pointCloudBoxList:n}=e,t=n.find(l=>l.id===o);if(o&&t){const{width:l,depth:a,height:u,rotation:r}=t,d=[{label:"\u957F",value:u.toFixed(DECIMAL_PLACES)},{label:"\u5BBD",value:l.toFixed(DECIMAL_PLACES)},{label:"\u9AD8",value:a.toFixed(DECIMAL_PLACES)},{label:"\u671D\u5411\u89D2",value:lbAnnotation.UnitUtils.rad2deg(r).toFixed(DECIMAL_PLACES)},{label:"\u70B9\u6570",value:1e3}];return React__default.default.createElement("div",{style:{position:"absolute",color:"white",backgroundColor:"rgba(153, 153, 153, 0.3)",right:8,top:8,fontSize:12,padding:8,zIndex:20}},d.map(i=>React__default.default.createElement("div",{key:i.label},`${i.label}: ${i.value}`)))}return null},PointCloudValidity=()=>React__default.default.useContext(PointCloudContext.PointCloudContext).valid===!1?React__default.default.createElement("div",{style:{position:"absolute",backgroundColor:"red",left:0,top:0,fontSize:24,padding:8,zIndex:20}},"\u65E0\u6548"):null;exports.BoxInfos=BoxInfos,exports.PointCloudValidity=PointCloudValidity,exports.SizeInfoForView=SizeInfoForView;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const DECIMAL_PLACES=2,SizeInfoForView=({perspectiveView:e})=>{const{pointCloudBoxList:o,selectedID:n}=React__default.default.useContext(PointCloudContext.PointCloudContext),t=o.find(l=>l.id===n);if(n&&t){const l=e===lbUtils.EPerspectiveView.Back?[{label:"\u5BBD",value:t.width},{label:"\u9AD8",value:t.depth}]:[{label:"\u957F",value:t.height},{label:"\u5BBD",value:t.width}];return React__default.default.createElement(React__default.default.Fragment,null,l.map((a,u)=>React__default.default.createElement("span",{key:u,style:{marginRight:u===0?16:0,fontSize:12}},`${a.label}: ${a.value.toFixed(DECIMAL_PLACES)}`)))}return null},BoxInfos=()=>{const e=React__default.default.useContext(PointCloudContext.PointCloudContext),{selectedID:o,pointCloudBoxList:n}=e,t=n.find(l=>l.id===o);if(o&&t){const{width:l,depth:a,height:u,rotation:r}=t,d=[{label:"\u957F",value:u.toFixed(DECIMAL_PLACES)},{label:"\u5BBD",value:l.toFixed(DECIMAL_PLACES)},{label:"\u9AD8",value:a.toFixed(DECIMAL_PLACES)},{label:"\u671D\u5411\u89D2",value:lbAnnotation.UnitUtils.rad2deg(r).toFixed(DECIMAL_PLACES)},{label:"\u70B9\u6570",value:1e3}];return React__default.default.createElement("div",{style:{position:"absolute",color:"white",backgroundColor:"rgba(153, 153, 153, 0.3)",right:8,top:8,fontSize:12,padding:8,zIndex:20}},d.map(i=>React__default.default.createElement("div",{key:i.label},`${i.label}: ${i.value}`)))}return null},PointCloudValidity=()=>React__default.default.useContext(PointCloudContext.PointCloudContext).valid===!1?React__default.default.createElement("div",{style:{position:"absolute",backgroundColor:"rgb(242, 101, 73)",color:"white",left:0,top:0,fontSize:20,padding:"8px 16px",zIndex:20}},"\u65E0\u6548"):null;exports.BoxInfos=BoxInfos,exports.PointCloudValidity=PointCloudValidity,exports.SizeInfoForView=SizeInfoForView;
@@ -1 +1 @@
1
- "use strict";var PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),lbUtils=require("@labelbee/lb-utils"),annotation=require("../../hooks/annotation.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,e,a)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,__spreadValues=(t,e)=>{for(var a in e||(e={}))__hasOwnProp.call(e,a)&&__defNormalProp(t,a,e[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(e))__propIsEnum.call(e,a)&&__defNormalProp(t,a,e[a]);return t},__spreadProps=(t,e)=>__defProps(t,__getOwnPropDescs(e));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:t})=>{const e=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:a,selectNextBox:p,selectPrevBox:v,updateSelectedBox:c}=useSingleBox.useSingleBox(),{copySelectedBoxes:P,pasteSelectedBoxes:b,copiedBoxes:x}=useBoxes.useBoxes(),{toolInstanceRef:i}=annotation.useCustomToolInstance(),{updateRotate:u}=useRotate.useRotate({currentData:t}),f=o=>{const{topViewInstance:n,mainViewInstance:r}=e;if(!n)return;const{pointCloud2dOperation:s}=n;switch(o){case"q":{u(2);break}case"e":u(-2);break;case"g":u(180);break;case"u":{const l=s.pattern===EPolygonPattern.Normal?EPolygonPattern.Rect:EPolygonPattern.Normal;s.setPattern(l);const C={[EPolygonPattern.Normal]:"Normal Pattern",[EPolygonPattern.Rect]:"Rect Pattern"};antd.message.success(`Change Pattern to ${C[l]} successfully`),s.clearActiveStatus(),s.clearDrawingStatus()}break;case"+":r==null||r.updatePointSize(!0);break;case"-":r==null||r.updatePointSize(!1);break;case"v":e.setPointCloudValid(!e.valid);break;case"z":p();break;case"c":v();break;case"f":a();break;default:return}},w=o=>{switch(o){case"c":P();break;case"v":b();break;case"a":e.selectedAllBoxes();break}},d=o=>{const n=o.key.toLocaleLowerCase();if(o.ctrlKey){w(n);return}f(n)};return React.useEffect(()=>{const{topViewInstance:o}=e;if(!!o)return window.addEventListener("keydown",d),()=>{window.removeEventListener("keydown",d)}},[e,x]),React.useEffect(()=>{var o,n;const r=e.mainViewInstance;if((t==null?void 0:t.url)&&r){if(r.loadPCDFile(t.url),e.pointCloudBoxList.forEach(s=>{r==null||r.removeObjectByName(s.id)}),t.result){const s=lbUtils.PointCloudUtils.getBoxParamsFromResultList(t.result);s.forEach(l=>{r==null||r.generateBox(l)}),e.setPointCloudResult(s)}else e.setPointCloudResult([]);r.updateTopCamera(),(o=e.sideViewInstance)==null||o.clearAllData(),(n=e.backViewInstance)==null||n.clearAllData()}},[t,e.mainViewInstance]),React.useEffect(()=>{i.current.exportData=()=>[e.pointCloudBoxList,{}],i.current.setDefaultAttribute=o=>{const n=e.selectedPointCloudBox;n&&(n.attribute=o,c(n))},i.current.setSubAttribute=(o,n)=>{var r;const s=e.selectedPointCloudBox;if(s){const l=(r=s==null?void 0:s.subAttribute)!=null?r:{};s.subAttribute=__spreadProps(__spreadValues({},l),{[o]:n}),c(s)}}},[e.pointCloudBoxList,e.selectedID]),null};var PointCloudListener$1=reactRedux.connect(map.aMapStateToProps)(PointCloudListener);module.exports=PointCloudListener$1;
1
+ "use strict";var PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),lbUtils=require("@labelbee/lb-utils"),annotation=require("../../hooks/annotation.js"),useStatus=require("./hooks/useStatus.js"),index=require("../../utils/index.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(t,e,n)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,__spreadValues=(t,e)=>{for(var n in e||(e={}))__hasOwnProp.call(e,n)&&__defNormalProp(t,n,e[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(e))__propIsEnum.call(e,n)&&__defNormalProp(t,n,e[n]);return t},__spreadProps=(t,e)=>__defProps(t,__getOwnPropDescs(e));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:t})=>{const e=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:n,selectNextBox:b,selectPrevBox:x,updateSelectedBox:v}=useSingleBox.useSingleBox(),{clearAllResult:p}=useStatus.useStatus(),{copySelectedBoxes:f,pasteSelectedBoxes:C,copiedBoxes:w}=useBoxes.useBoxes(),{toolInstanceRef:i}=annotation.useCustomToolInstance(),{updateRotate:c}=useRotate.useRotate({currentData:t}),m=o=>{const{topViewInstance:s,mainViewInstance:l}=e;if(!s)return;const{pointCloud2dOperation:r}=s;switch(o){case"q":{c(2);break}case"e":c(-2);break;case"g":c(180);break;case"u":{const a=r.pattern===EPolygonPattern.Normal?EPolygonPattern.Rect:EPolygonPattern.Normal;r.setPattern(a);const d={[EPolygonPattern.Normal]:"Normal Pattern",[EPolygonPattern.Rect]:"Rect Pattern"};antd.message.success(`Change Pattern to ${d[a]} successfully`),r.clearActiveStatus(),r.clearDrawingStatus()}break;case"+":l==null||l.updatePointSize(!0);break;case"-":l==null||l.updatePointSize(!1);break;case"v":e.setPointCloudValid(!e.valid);break;case"z":b();break;case"c":x();break;case"f":n();break;default:return}},y=o=>{switch(o){case"c":f();break;case"v":C();break;case"a":e.selectedAllBoxes();break}},P=o=>{const s=o.key.toLocaleLowerCase();if(o.ctrlKey){y(s);return}m(s)};return React.useEffect(()=>{const{topViewInstance:o}=e;if(!!o)return window.addEventListener("keydown",P),()=>{window.removeEventListener("keydown",P)}},[e,w]),React.useEffect(()=>{var o,s,l,r;const a=e.mainViewInstance;if((t==null?void 0:t.url)&&a){if(a.loadPCDFile(t.url),e.pointCloudBoxList.forEach(u=>{a==null||a.removeObjectByName(u.id)}),t.result){const u=lbUtils.PointCloudUtils.getBoxParamsFromResultList(t.result),g=lbUtils.PointCloudUtils.getPolygonListFromResultList(t.result);u.forEach(_=>{a==null||a.generateBox(_)}),e.setPointCloudResult(u),e.setPolygonList(g)}else e.setPointCloudResult([]),e.setPolygonList([]);a.updateTopCamera();const d=(s=(o=index.jsonParser(t.result))==null?void 0:o.valid)!=null?s:!0;e.setPointCloudValid(d),(l=e.sideViewInstance)==null||l.clearAllData(),(r=e.backViewInstance)==null||r.clearAllData()}},[t,e.mainViewInstance]),React.useEffect(()=>{i.current.exportData=()=>[e.pointCloudBoxList,{valid:e.valid}],i.current.exportCustomData=()=>{var o;return{renderPolygon:(o=e.polygonList)!=null?o:[]}},i.current.setDefaultAttribute=o=>{const s=e.selectedPointCloudBox;s&&(s.attribute=o,v(s))},i.current.setSubAttribute=(o,s)=>{var l;const r=e.selectedPointCloudBox;if(r){const a=(l=r==null?void 0:r.subAttribute)!=null?l:{};r.subAttribute=__spreadProps(__spreadValues({},a),{[o]:s}),v(r)}},i.current.clearResult=()=>{p==null||p()}},[e.pointCloudBoxList,e.selectedID,e.valid,e.polygonList]),React.useEffect(()=>{i.current.setValid=()=>{e.setPointCloudValid(!e.valid)}},[e.valid]),null};var PointCloudListener$1=reactRedux.connect(map.aMapStateToProps)(PointCloudListener);module.exports=PointCloudListener$1;
@@ -1 +1 @@
1
- "use strict";var lbAnnotation=require("@labelbee/lb-annotation"),dom=require("../../utils/dom.js"),PointCloudLayout=require("./PointCloudLayout.js"),React=require("react"),lbUtils=require("@labelbee/lb-utils"),PointCloudContext=require("./PointCloudContext.js"),PointCloudInfos=require("./PointCloudInfos.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const TransferCanvas2WorldOffset=(t,e,n=1)=>{const{width:u,height:r}=e,o={x:t.x+u*n/2,y:t.y+r*n/2},i={x:e.width/2,y:e.height/2};return{offsetX:(i.x-o.x)/n,offsetY:-(i.y-o.y)/n}},updateSideViewByCanvas2D=(t,e,n,u,r)=>{const{offsetX:o,offsetY:i}=TransferCanvas2WorldOffset(t,n,e);if(r.camera.zoom=e,t){const l=Math.cos(u.rotation),a=Math.sin(u.rotation),s=o*l,c=o*a,{x:d,y:f,z:C}=r.initCameraPosition;r.camera.position.set(d-s,f-c,C+i)}r.camera.updateProjectionMatrix(),r.render()},PointCloudSideView=({currentData:t})=>{const e=React__default.default.useContext(PointCloudContext.PointCloudContext),[n,u]=React.useState(null),{sideViewUpdateBox:r}=usePointCloudViews.usePointCloudViews(),o=React.useRef(null);return React.useEffect(()=>{if(o.current){const i={width:o.current.clientWidth,height:o.current.clientHeight},l=new lbAnnotation.PointCloudAnnotation({container:o.current,size:i});e.setSideViewInstance(l),u(i)}},[]),React.useEffect(()=>{if(!n||!e.sideViewInstance)return;const{pointCloud2dOperation:i,pointCloudInstance:l}=e.sideViewInstance;i.singleOn("renderZoom",(a,s)=>{!e.selectedPointCloudBox||updateSideViewByCanvas2D(s,a,n,e.selectedPointCloudBox,l)}),i.singleOn("dragMove",({currentPos:a,zoom:s})=>{!e.selectedPointCloudBox||updateSideViewByCanvas2D(a,s,n,e.selectedPointCloudBox,l)}),i.singleOn("updatePolygonByDrag",({newPolygon:a,originPolygon:s})=>{r(a,s)})},[e,n]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","side-view"),title:"\u4FA7\u89C6\u56FE",toolbar:React__default.default.createElement(PointCloudInfos.SizeInfoForView,{perspectiveView:lbUtils.EPerspectiveView.Left})},React__default.default.createElement("div",{style:{width:"100%",height:300},ref:o}),React__default.default.createElement("div",{style:{position:"absolute",right:0,top:0,width:200,color:"white"}}))};var PointCloudSideView$1=reactRedux.connect(map.aMapStateToProps)(PointCloudSideView);module.exports=PointCloudSideView$1;
1
+ "use strict";var lbAnnotation=require("@labelbee/lb-annotation"),dom=require("../../utils/dom.js"),PointCloudLayout=require("./PointCloudLayout.js"),React=require("react"),lbUtils=require("@labelbee/lb-utils"),PointCloudContext=require("./PointCloudContext.js"),PointCloudInfos=require("./PointCloudInfos.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),useSingleBox=require("./hooks/useSingleBox.js");function _interopDefaultLegacy(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(o,e,t)=>e in o?__defProp(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,__spreadValues=(o,e)=>{for(var t in e||(e={}))__hasOwnProp.call(e,t)&&__defNormalProp(o,t,e[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(e))__propIsEnum.call(e,t)&&__defNormalProp(o,t,e[t]);return o};const TransferCanvas2WorldOffset=(o,e,t=1)=>{const{width:l,height:r}=e,a={x:o.x+l*t/2,y:o.y+r*t/2},n={x:e.width/2,y:e.height/2};return{offsetX:(n.x-a.x)/t,offsetY:-(n.y-a.y)/t}},updateSideViewByCanvas2D=(o,e,t,l,r)=>{const{offsetX:a,offsetY:n}=TransferCanvas2WorldOffset(o,t,e);if(r.camera.zoom=e,o){const i=Math.cos(l.rotation),c=Math.sin(l.rotation),s=a*i,u=a*c,{x:d,y:f,z:p}=r.initCameraPosition;r.camera.position.set(d-s,f-u,p+n)}r.camera.updateProjectionMatrix(),r.render()},PointCloudSideView=({currentData:o})=>{const e=React__default.default.useContext(PointCloudContext.PointCloudContext),[t,l]=React.useState(null),{sideViewUpdateBox:r}=usePointCloudViews.usePointCloudViews(),{selectedBox:a}=useSingleBox.useSingleBox(),n=React.useRef(null);return React.useEffect(()=>{if(n.current){const i={width:n.current.clientWidth,height:n.current.clientHeight},c=new lbAnnotation.PointCloudAnnotation({container:n.current,size:i,polygonOperationProps:{showDirectionLine:!1,forbidAddNew:!0}});e.setSideViewInstance(c),l(i)}},[]),React.useEffect(()=>{if(!t||!e.sideViewInstance)return;const{pointCloud2dOperation:i,pointCloudInstance:c}=e.sideViewInstance;i.singleOn("renderZoom",(s,u)=>{!e.selectedPointCloudBox||updateSideViewByCanvas2D(u,s,t,e.selectedPointCloudBox,c)}),i.singleOn("dragMove",({currentPos:s,zoom:u})=>{!e.selectedPointCloudBox||updateSideViewByCanvas2D(s,u,t,e.selectedPointCloudBox,c)}),i.singleOn("updatePolygonByDrag",({newPolygon:s,originPolygon:u})=>{r(s,u)})},[e,t]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","side-view"),title:"\u4FA7\u89C6\u56FE",toolbar:React__default.default.createElement(PointCloudInfos.SizeInfoForView,{perspectiveView:lbUtils.EPerspectiveView.Left})},React__default.default.createElement("div",{style:{width:"100%",height:300,position:"relative"},ref:n}),!a&&React__default.default.createElement("div",{style:__spreadValues({},t),className:dom.getClassName("point-cloud-container","empty-page")},"\u6682\u65E0\u6570\u636E"))};var PointCloudSideView$1=reactRedux.connect(map.aMapStateToProps)(PointCloudSideView);module.exports=PointCloudSideView$1;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),index=require("../../views/MainView/toolFooter/index.js"),index$1=require("../../views/MainView/toolFooter/ZoomController/index.js"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useSingleBox=require("./hooks/useSingleBox.js"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudInfos=require("./PointCloudInfos.js"),antd=require("antd"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),usePointCloudViews=require("./hooks/usePointCloudViews.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{EPolygonPattern}=lbAnnotation.cTool,TransferCanvas2WorldOffset=(e,n,t=1)=>{const{width:s,height:r}=n,a={x:e.x+s*t/2,y:e.y+r*t/2},u={x:n.width/2,y:n.height/2};return{offsetX:(u.x-a.x)/t,offsetY:-(u.y-a.y)/t}},TopViewToolbar=({currentData:e})=>{const{selectNextBox:n,selectPrevBox:t}=useSingleBox.useSingleBox(),{updateRotate:s}=useRotate.useRotate({currentData:e}),r=2,a=()=>{s(-r)},u=()=>{s(r)},d=()=>{s(180)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("span",{onClick:u,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:a,className:dom.getClassName("point-cloud","rotate")}),React__default.default.createElement("span",{onClick:d,className:dom.getClassName("point-cloud","rotate-180")}),React__default.default.createElement(index.FooterDivider,null),React__default.default.createElement(icons.UpSquareOutlined,{onClick:()=>{t()},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{n()},className:dom.getClassName("point-cloud","next")}),React__default.default.createElement(index.FooterDivider,null),React__default.default.createElement(index$1.ZoomController,null))},ZAxisSlider=({setZAxisLimit:e,zAxisLimit:n})=>React__default.default.createElement("div",{style:{position:"absolute",top:128,right:8,height:"50%",zIndex:20}},React__default.default.createElement(antd.Slider,{vertical:!0,step:.5,max:10,min:.5,defaultValue:n,onAfterChange:t=>{e(t)}})),PointCloudTopView=({currentData:e})=>{const n=React.useRef(null),t=React__default.default.useContext(PointCloudContext.PointCloudContext),s=React.useRef(),{deletePointCloudBox:r}=useSingleBox.useSingleBox(),[a,u]=React.useState(null),[d,P]=React.useState(10),c=usePointCloudViews.usePointCloudViews();return React.useEffect(()=>{if(n.current&&(e==null?void 0:e.url)&&(e==null?void 0:e.result)){const i={width:n.current.clientWidth,height:n.current.clientHeight};if(t.topViewInstance){t.topViewInstance.updateData(e.url,e.result);return}const o=new lbAnnotation.PointCloudAnnotation({container:n.current,size:i,pcdPath:e.url});o.addPolygonListOnTopView(e.result),t.setTopViewInstance(o);const l=o.pointCloudInstance,w=o.pointCloud2dOperation;s.current=l,w.singleOn("renderZoom",(p,f)=>{const{offsetX:C,offsetY:m}=TransferCanvas2WorldOffset(f,i,p);if(l.camera.zoom=p,f){const{x:v,y:x,z:g}=l.initCameraPosition;l.camera.position.set(v+m,x-C,g)}l.camera.updateProjectionMatrix(),l.render()}),w.singleOn("dragMove",({currentPos:p,zoom:f})=>{const{offsetX:C,offsetY:m}=TransferCanvas2WorldOffset(p,i,f);l.camera.zoom=f;const{x:v,y:x,z:g}=l.initCameraPosition;l.camera.position.set(v+m,x-C,g),l.render()}),u(i)}},[e]),React.useEffect(()=>{if(!a||!t.topViewInstance||!t.sideViewInstance)return;const{pointCloud2dOperation:i}=t.topViewInstance;i.singleOn("polygonCreated",o=>{i.pattern===EPolygonPattern.Normal||!(e==null?void 0:e.url)||c.topViewAddBox(o,a)}),i.singleOn("deletedObject",({id:o})=>{r(o)}),i.singleOn("deleteSelectedIDs",()=>{t.setSelectedIDs([])}),i.singleOn("addSelectedIDs",o=>{t.addSelectedID(o)}),i.singleOn("setSelectedIDs",o=>{t.setSelectedIDs(o)}),i.singleOn("updatePolygonByDrag",({newPolygon:o})=>{var l;(l=c.topViewUpdateBox)==null||l.call(c,o,a)})},[t,a,e,c]),React.useEffect(()=>{s.current&&s.current.applyZAxisPoints(d)},[d]),React.useEffect(()=>{c.topViewSelectedChanged()},[t.selectedIDs]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:"\u4FEF\u89C6\u56FE",toolbar:React__default.default.createElement(TopViewToolbar,{currentData:e})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:n}),React__default.default.createElement(PointCloudInfos.BoxInfos,null),React__default.default.createElement(ZAxisSlider,{zAxisLimit:d,setZAxisLimit:P}),React__default.default.createElement(PointCloudInfos.PointCloudValidity,null)))};var PointCloudTopView$1=reactRedux.connect(map.aMapStateToProps)(PointCloudTopView);module.exports=PointCloudTopView$1;
1
+ "use strict";var dom=require("../../utils/dom.js"),index=require("../../views/MainView/toolFooter/index.js"),index$1=require("../../views/MainView/toolFooter/ZoomController/index.js"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useSingleBox=require("./hooks/useSingleBox.js"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudInfos=require("./PointCloudInfos.js"),usePolygon=require("./hooks/usePolygon.js"),antd=require("antd"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),usePointCloudViews=require("./hooks/usePointCloudViews.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{EPolygonPattern}=lbAnnotation.cTool,TransferCanvas2WorldOffset=(e,n,t=1)=>{const{width:s,height:a}=n,r={x:e.x+s*t/2,y:e.y+a*t/2},u={x:n.width/2,y:n.height/2};return{offsetX:(u.x-r.x)/t,offsetY:-(u.y-r.y)/t}},TopViewToolbar=({currentData:e})=>{const{selectNextBox:n,selectPrevBox:t}=useSingleBox.useSingleBox(),{updateRotate:s}=useRotate.useRotate({currentData:e}),a=2,r=()=>{s(-a)},u=()=>{s(a)},d=()=>{s(180)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("span",{onClick:u,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:r,className:dom.getClassName("point-cloud","rotate")}),React__default.default.createElement("span",{onClick:d,className:dom.getClassName("point-cloud","rotate-180")}),React__default.default.createElement(index.FooterDivider,null),React__default.default.createElement(icons.UpSquareOutlined,{onClick:()=>{t()},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{n()},className:dom.getClassName("point-cloud","next")}),React__default.default.createElement(index.FooterDivider,null),React__default.default.createElement(index$1.ZoomController,null))},ZAxisSlider=({setZAxisLimit:e,zAxisLimit:n})=>React__default.default.createElement("div",{style:{position:"absolute",top:128,right:8,height:"50%",zIndex:20}},React__default.default.createElement(antd.Slider,{vertical:!0,step:.5,max:10,min:.5,defaultValue:n,onAfterChange:t=>{e(t)}})),PointCloudTopView=({currentData:e})=>{const n=React.useRef(null),t=React__default.default.useContext(PointCloudContext.PointCloudContext),s=React.useRef(),{addPolygon:a,deletePolygon:r}=usePolygon.usePolygon(),{deletePointCloudBox:u}=useSingleBox.useSingleBox(),[d,y]=React.useState(null),[C,h]=React.useState(10),c=usePointCloudViews.usePointCloudViews();return React.useEffect(()=>{if(n.current&&(e==null?void 0:e.url)&&(e==null?void 0:e.result)){const i={width:n.current.clientWidth,height:n.current.clientHeight};if(t.topViewInstance){t.topViewInstance.updateData(e.url,e.result);return}const o=new lbAnnotation.PointCloudAnnotation({container:n.current,size:i,pcdPath:e.url});o.addPolygonListOnTopView(e.result),t.setTopViewInstance(o);const l=o.pointCloudInstance,P=o.pointCloud2dOperation;s.current=l,P.singleOn("renderZoom",(p,f)=>{const{offsetX:m,offsetY:g}=TransferCanvas2WorldOffset(f,i,p);if(l.camera.zoom=p,f){const{x:v,y:x,z:w}=l.initCameraPosition;l.camera.position.set(v+g,x-m,w)}l.camera.updateProjectionMatrix(),l.render()}),P.singleOn("dragMove",({currentPos:p,zoom:f})=>{const{offsetX:m,offsetY:g}=TransferCanvas2WorldOffset(p,i,f);l.camera.zoom=f;const{x:v,y:x,z:w}=l.initCameraPosition;l.camera.position.set(v+g,x-m,w),l.render()}),y(i)}},[e]),React.useEffect(()=>{if(!d||!t.topViewInstance||!t.sideViewInstance)return;const{pointCloud2dOperation:i}=t.topViewInstance;i.singleOn("polygonCreated",o=>{if(i.pattern===EPolygonPattern.Normal||!(e==null?void 0:e.url)){a(o);return}c.topViewAddBox(o,d)}),i.singleOn("deletedObject",({id:o})=>{u(o),r(o)}),i.singleOn("deleteSelectedIDs",()=>{t.setSelectedIDs([])}),i.singleOn("addSelectedIDs",o=>{t.addSelectedID(o)}),i.singleOn("setSelectedIDs",o=>{t.setSelectedIDs(o)}),i.singleOn("updatePolygonByDrag",({newPolygon:o})=>{var l;(l=c.topViewUpdateBox)==null||l.call(c,o,d)})},[t,d,e,c]),React.useEffect(()=>{s.current&&s.current.applyZAxisPoints(C)},[C]),React.useEffect(()=>{c.topViewSelectedChanged()},[t.selectedIDs]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:"\u4FEF\u89C6\u56FE",toolbar:React__default.default.createElement(TopViewToolbar,{currentData:e})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:n}),React__default.default.createElement(PointCloudInfos.BoxInfos,null),React__default.default.createElement(ZAxisSlider,{zAxisLimit:C,setZAxisLimit:h}),React__default.default.createElement(PointCloudInfos.PointCloudValidity,null)))};var PointCloudTopView$1=reactRedux.connect(map.aMapStateToProps)(PointCloudTopView);module.exports=PointCloudTopView$1;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("../PointCloudContext.js"),useSingleBox=require("./useSingleBox.js"),_=require("lodash"),reactRedux=require("react-redux");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ___default=_interopDefaultLegacy(_);const DEFAULT_SCOPE=5,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},transferCanvas2World=(t,s)=>{const{width:r,height:o}=s,{x:i,y:n}=t;return{x:-n+o/2,y:-(i-r/2)}},topViewPolygon2PointCloud=(t,s,r,o)=>{const[i,n,l,u]=t.pointList.map(x=>transferCanvas2World(x,s)),c=lbAnnotation.MathUtils.getLineCenterPoint([i,l]),C=lbAnnotation.MathUtils.getLineLength(i,n),h=lbAnnotation.MathUtils.getLineLength(n,l),p=lbAnnotation.MathUtils.getRadiusFromQuadrangle(t.pointList);let B=0,f=1;if(r){const x=r.getSensesPointZAxisInPolygon([i,n,l,u]);B=(x.maxZ+x.minZ)/2,f=x.maxZ-x.minZ}return o&&(B=o.center.z,f=o.depth),{center:{x:c.x,y:c.y,z:B},width:h,height:C,depth:f,rotation:p,id:t.id,attribute:"",valid:!0}},sideViewPolygon2PointCloud=(t,s,r,o)=>{const[i,n,l]=t.pointList,[u,c,C]=s.pointList,h=lbAnnotation.MathUtils.getLineCenterPoint([i,l]),p=lbAnnotation.MathUtils.getLineCenterPoint([u,C]),B={x:h.x-p.x,y:h.y-p.y},f=Math.cos(r.rotation),y=Math.sin(r.rotation),x={x:B.x,y:B.x*y+B.y*f,z:h.y-p.y},w=lbAnnotation.MathUtils.getLineLength(i,n),v=lbAnnotation.MathUtils.getLineLength(u,c),V=w-v,S=lbAnnotation.MathUtils.getLineLength(n,l),m=lbAnnotation.MathUtils.getLineLength(c,C),L=S-m,{newBoxParams:D}=o.getNewBoxBySideUpdate(x,L,V,r);return D},synchronizeSideView=(t,s,r,o)=>{if(!r)return;const{pointCloud2dOperation:i,pointCloudInstance:n}=r;n.loadPCDFileByBox(o,t,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:l}=n.updateOrthoCamera(t,lbUtils.EPerspectiveView.Left);n.setInitCameraPosition(l);const{polygon2d:u,zoom:c}=n.getBoxSidePolygon2DCoordinate(t);n.camera.zoom=c,n.camera.updateProjectionMatrix(),n.render(),i.initPosition(),i.zoomChangeOnCenter(c),i.setResultAndSelectedID([{id:s.id,pointList:u,textAttribute:"",isRect:!0}],s.id)},synchronizeBackView=(t,s,r,o)=>{if(!r)return;const{pointCloud2dOperation:i,pointCloudInstance:n}=r;n.loadPCDFileByBox(o,t,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:l}=n.updateOrthoCamera(t,lbUtils.EPerspectiveView.Back);n.setInitCameraPosition(l);const{polygon2d:u,zoom:c}=n.getBoxBackPolygon2DCoordinate(t);n.camera.zoom=c,n.camera.updateProjectionMatrix(),n.render(),i.initPosition(),i.zoomChangeOnCenter(c),i.setResultAndSelectedID([{id:s.id,pointList:u,textAttribute:"",isRect:!0}],s.id)},synchronizeTopView=(t,s,r,o)=>{if(!r||!o)return;o.generateBox(t,s.id),o.updateCameraByBox(t,lbUtils.EPerspectiveView.Top),o.render();const{pointCloud2dOperation:i,pointCloudInstance:n}=r,{polygon2d:l}=n.getBoxTopPolygon2DCoordinate(t),u=[...i.polygonList],c=u.find(C=>C.id===s.id);c?c.pointList=l:u.push({id:s.id,pointList:l,textAttribute:"",isRect:!0}),i.setResultAndSelectedID(u,s.id)},usePointCloudViews=()=>{const{topViewInstance:t,sideViewInstance:s,backViewInstance:r,mainViewInstance:o,addPointCloudBox:i,setSelectedIDs:n,selectedIDs:l,pointCloudBoxList:u}=React.useContext(PointCloudContext.PointCloudContext),{updateSelectedBox:c}=useSingleBox.useSingleBox(),C=reactRedux.useSelector(e=>e.annotation.imgList[e.annotation.imgIndex]),{selectedBox:h}=useSingleBox.useSingleBox(),p=h==null?void 0:h.info;if(!t||!s)return{topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{}};const{pointCloudInstance:B}=t,f=()=>{var e;return u.length>0?((e=u.sort((a,g)=>a.trackID-g.trackID).slice(-1)[0])==null?void 0:e.trackID)+1:1},y=e=>{o==null||o.generateBox(e),o==null||o.controls.update(),o==null||o.render()},x=(e,d)=>{const a=topViewPolygon2PointCloud(e,d,B),g=t==null?void 0:t.pointCloud2dOperation,P=Object.assign(a,{trackID:f()});g.setSelectedIDs([e.id]),n(P.id),L(PointCloudView.Top,e,P),i(P)},w=()=>{const e=h==null?void 0:h.info,d=t==null?void 0:t.pointCloud2dOperation;if(d.setSelectedIDs(l),!e||!d)return;const a=d.selectedPolygon;L(PointCloudView.Top,a,e)},v=(e,d,a)=>{if(p){const g=sideViewPolygon2PointCloud(e,d,p,s.pointCloudInstance);c(g),L(a,e,g)}},V=(e,d)=>{v(e,d,PointCloudView.Side)},S=(e,d)=>{v(e,d,PointCloudView.Back)},m=(e,d)=>{if(p){const a=topViewPolygon2PointCloud(e,d,void 0,p);Object.assign(p,___default.default.pickBy(a,(g,P)=>["width","height","x","y"])),c(a),L(PointCloudView.Top,e,p)}},L=(e,d,a)=>{const g=C==null?void 0:C.url,P={[PointCloudView.Side]:()=>{synchronizeSideView(a,d,s,g)},[PointCloudView.Back]:()=>{r&&synchronizeBackView(a,d,r,g)},[PointCloudView.Top]:()=>{synchronizeTopView(a,d,t,o)}};Object.keys(P).forEach(U=>{U!==e&&P[U]()}),y(a),o==null||o.hightLightOriginPointCloud(a)};return{topViewAddBox:x,topViewSelectedChanged:w,topViewUpdateBox:m,sideViewUpdateBox:V,backViewUpdateBox:S,pointCloudBoxListUpdated:e=>{t.updatePolygonList(e),o==null||o.generateBoxes(e)}}};exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,exports.topViewPolygon2PointCloud=topViewPolygon2PointCloud,exports.transferCanvas2World=transferCanvas2World,exports.usePointCloudViews=usePointCloudViews;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("../PointCloudContext.js"),useSingleBox=require("./useSingleBox.js"),_=require("lodash"),reactRedux=require("react-redux"),StepUtils=require("../../../utils/StepUtils.js"),index=require("../../../utils/index.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ___default=_interopDefaultLegacy(_);const DEFAULT_SCOPE=5,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},transferCanvas2World=(t,n)=>{const{width:s,height:e}=n,{x:r,y:i}=t;return{x:-i+e/2,y:-(r-s/2)}},topViewPolygon2PointCloud=(t,n,s,e,r)=>{const[i,l,a,u]=t.pointList.map(C=>transferCanvas2World(C,n)),g=lbAnnotation.MathUtils.getLineCenterPoint([i,a]),v=lbAnnotation.MathUtils.getLineLength(i,l),f=lbAnnotation.MathUtils.getLineLength(l,a),x=lbAnnotation.MathUtils.getRadiusFromQuadrangle(t.pointList);let h=0,L=1;if(s){const C=s.getSensesPointZAxisInPolygon([i,l,a,u]);h=(C.maxZ+C.minZ)/2,L=C.maxZ-C.minZ}e&&(h=e.center.z,L=e.depth);const P={center:{x:g.x,y:g.y,z:h},width:f,height:v,depth:L,rotation:x,id:t.id,attribute:"",valid:!0};return r&&Object.assign(P,r),P},sideViewPolygon2PointCloud=(t,n,s,e)=>{const[r,i,l]=t.pointList,[a,u,g]=n.pointList,v=lbAnnotation.MathUtils.getLineCenterPoint([r,l]),f=lbAnnotation.MathUtils.getLineCenterPoint([a,g]),x={x:v.x-f.x,y:v.y-f.y},h=Math.cos(s.rotation),L=Math.sin(s.rotation),P={x:x.x,y:x.x*L+x.y*h,z:v.y-f.y},C=lbAnnotation.MathUtils.getLineLength(r,i),V=lbAnnotation.MathUtils.getLineLength(a,u),U=C-V,y=lbAnnotation.MathUtils.getLineLength(i,l),m=lbAnnotation.MathUtils.getLineLength(u,g),D=y-m,{newBoxParams:O}=e.getNewBoxBySideUpdate(P,D,U,s);return O},synchronizeSideView=(t,n,s,e)=>{if(!s)return;const{pointCloud2dOperation:r,pointCloudInstance:i}=s;i.loadPCDFileByBox(e,t,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:l}=i.updateOrthoCamera(t,lbUtils.EPerspectiveView.Left);i.setInitCameraPosition(l);const{polygon2d:a,zoom:u}=i.getBoxSidePolygon2DCoordinate(t);i.camera.zoom=u,i.camera.updateProjectionMatrix(),i.render(),r.initPosition(),r.zoomChangeOnCenter(u),r.setResultAndSelectedID([{id:n.id,pointList:a,textAttribute:"",isRect:!0}],n.id)},synchronizeBackView=(t,n,s,e)=>{if(!s)return;const{pointCloud2dOperation:r,pointCloudInstance:i}=s;i.loadPCDFileByBox(e,t,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:l}=i.updateOrthoCamera(t,lbUtils.EPerspectiveView.Back);i.setInitCameraPosition(l);const{polygon2d:a,zoom:u}=i.getBoxBackPolygon2DCoordinate(t);i.camera.zoom=u,i.camera.updateProjectionMatrix(),i.render(),r.initPosition(),r.zoomChangeOnCenter(u),r.setResultAndSelectedID([{id:n.id,pointList:a,textAttribute:"",isRect:!0}],n.id)},synchronizeTopView=(t,n,s,e)=>{if(!s||!e)return;e.generateBox(t,n.id),e.updateCameraByBox(t,lbUtils.EPerspectiveView.Top),e.render();const{pointCloud2dOperation:r,pointCloudInstance:i}=s,{polygon2d:l}=i.getBoxTopPolygon2DCoordinate(t),a=[...r.polygonList],u=a.find(g=>g.id===n.id);u?u.pointList=l:a.push({id:n.id,pointList:l,textAttribute:"",isRect:!0}),r.setResultAndSelectedID(a,n.id)},usePointCloudViews=()=>{const{topViewInstance:t,sideViewInstance:n,backViewInstance:s,mainViewInstance:e,addPointCloudBox:r,setSelectedIDs:i,selectedIDs:l,pointCloudBoxList:a,setPointCloudResult:u}=React.useContext(PointCloudContext.PointCloudContext),{updateSelectedBox:g}=useSingleBox.useSingleBox(),{currentData:v,config:f}=reactRedux.useSelector(o=>{const{stepList:d,step:c,imgList:p,imgIndex:B}=o.annotation;return{currentData:p[B],config:index.jsonParser(StepUtils.getCurrentStepInfo(c,d).config)}}),{selectedBox:x}=useSingleBox.useSingleBox(),h=x==null?void 0:x.info;if(!t||!n)return{topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{}};const{pointCloudInstance:L}=t,P=()=>{var o;return a.length>0?((o=a.sort((c,p)=>c.trackID-p.trackID).slice(-1)[0])==null?void 0:o.trackID)+1:1},C=o=>{e==null||e.generateBox(o),e==null||e.controls.update(),e==null||e.render()},V=(o,d)=>{var c,p,B;const w=topViewPolygon2PointCloud(o,d,L,void 0,{attribute:(B=(p=(c=f==null?void 0:f.attributeList)==null?void 0:c[0])==null?void 0:p.value)!=null?B:""}),I=t==null?void 0:t.pointCloud2dOperation,b=Object.assign(w,{trackID:P()});I.setSelectedIDs([o.id]),i(b.id),S(PointCloudView.Top,o,b),r(b)},U=()=>{const o=x==null?void 0:x.info,d=t==null?void 0:t.pointCloud2dOperation;if(d.setSelectedIDs(l),!o||!d)return;const c=d.selectedPolygon;S(PointCloudView.Top,c,o)},y=(o,d,c)=>{if(h){const p=sideViewPolygon2PointCloud(o,d,h,n.pointCloudInstance);g(p),S(c,o,p)}},m=(o,d)=>{y(o,d,PointCloudView.Side)},D=(o,d)=>{y(o,d,PointCloudView.Back)},O=(o,d)=>{if(h){const c=topViewPolygon2PointCloud(o,d,void 0,h);Object.assign(h,___default.default.pickBy(c,(p,B)=>["width","height","x","y"])),g(c),S(PointCloudView.Top,o,h)}},S=(o,d,c)=>{const p=v==null?void 0:v.url,B={[PointCloudView.Side]:()=>{synchronizeSideView(c,d,n,p)},[PointCloudView.Back]:()=>{s&&synchronizeBackView(c,d,s,p)},[PointCloudView.Top]:()=>{synchronizeTopView(c,d,t,e)}};Object.keys(B).forEach(w=>{w!==o&&B[w]()}),C(c),e==null||e.hightLightOriginPointCloud(c)};return{topViewAddBox:V,topViewSelectedChanged:U,topViewUpdateBox:O,sideViewUpdateBox:m,backViewUpdateBox:D,pointCloudBoxListUpdated:o=>{t.updatePolygonList(o),e==null||e.generateBoxes(o)},clearAllResult:()=>{a.forEach(o=>{e==null||e.removeObjectByName(o.id)}),e==null||e.render(),u([]),t.pointCloud2dOperation.clearActiveStatus(),t.pointCloud2dOperation.clearResult()}}};exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,exports.topViewPolygon2PointCloud=topViewPolygon2PointCloud,exports.transferCanvas2World=transferCanvas2World,exports.usePointCloudViews=usePointCloudViews;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js");const usePolygon=()=>{const{polygonList:e,setPolygonList:t}=React.useContext(PointCloudContext.PointCloudContext);return{addPolygon:o=>{t(e.concat(o))},deletePolygon:o=>{const n=e.filter(s=>s.id!==o);t([...n])}}};exports.usePolygon=usePolygon;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),_=require("lodash"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_);const{ESortDirection}=lbAnnotation.cAnnotation,useSingleBox=()=>{const{pointCloudBoxList:e,setPointCloudResult:s,topViewInstance:d,selectedIDs:r,selectedID:l,mainViewInstance:i}=React.useContext(PointCloudContext.PointCloudContext),o=React.useMemo(()=>{const t=e.findIndex(n=>n.id===l);if(t>-1)return{info:e[t],index:t}},[l,e]),c=React.useCallback(t=>{(o==null?void 0:o.info)&&(e.splice(o.index,1,___default.default.merge(o.info,t)),s(___default.default.cloneDeep(e)))},[l,e]),a=React.useCallback(()=>{(o==null?void 0:o.info)&&c({valid:!o.info.valid})},[l]),u=React.useCallback((t=ESortDirection.ascend)=>{if(!d||r.length>1)return;const{pointCloud2dOperation:n}=d;n.switchToNextPolygon(t)},[d]);return{selectedBox:o,updateSelectedBox:c,changeSelectedBoxValid:a,selectNextBox:u,selectPrevBox:()=>{u(ESortDirection.descend)},deletePointCloudBox:t=>{s(e.filter(n=>n.id!==t)),i==null||i.removeObjectByName(t),i==null||i.render()}}};exports.useSingleBox=useSingleBox;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),_=require("lodash"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_);const{ESortDirection}=lbAnnotation.cAnnotation,useSingleBox=()=>{const{pointCloudBoxList:e,setPointCloudResult:c,topViewInstance:s,selectedIDs:r,selectedID:l,mainViewInstance:i,setSelectedIDs:a}=React.useContext(PointCloudContext.PointCloudContext),o=React.useMemo(()=>{const t=e.findIndex(n=>n.id===l);if(t>-1)return{info:e[t],index:t}},[l,e]),d=React.useCallback(t=>{(o==null?void 0:o.info)&&(e.splice(o.index,1,___default.default.merge(o.info,t)),c(___default.default.cloneDeep(e)))},[l,e]),x=React.useCallback(()=>{(o==null?void 0:o.info)&&d({valid:!o.info.valid})},[l]),u=React.useCallback((t=ESortDirection.ascend)=>{if(!s||r.length>1)return;const{pointCloud2dOperation:n}=s,f=n.switchToNextPolygon(t);a(f)},[s]);return{selectedBox:o,updateSelectedBox:d,changeSelectedBoxValid:x,selectNextBox:u,selectPrevBox:()=>{u(ESortDirection.descend)},deletePointCloudBox:t=>{c(e.filter(n=>n.id!==t)),i==null||i.removeObjectByName(t),i==null||i.render()}}};exports.useSingleBox=useSingleBox;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),lbAnnotation=require("@labelbee/lb-annotation");const{EToolName,EPolygonPattern}=lbAnnotation.cTool,useStatus=()=>{const{topViewInstance:t,mainViewInstance:e,pointCloudBoxList:a,setPointCloudResult:r}=React.useContext(PointCloudContext.PointCloudContext),[u,l]=React.useState(EToolName.Rect);return{clearAllResult:()=>{a.forEach(n=>{e==null||e.removeObjectByName(n.id)}),e==null||e.render(),r([]),t==null||t.pointCloud2dOperation.clearActiveStatus(),t==null||t.pointCloud2dOperation.clearResult()},updatePointCloudPattern:n=>{const o=t==null?void 0:t.pointCloud2dOperation;if(!!o)switch(o.clearActiveStatus(),n){case EToolName.Rect:o.setPattern(EPolygonPattern.Rect),l(EToolName.Rect);break;case EToolName.Polygon:o.setPattern(EPolygonPattern.Normal),l(EToolName.Polygon);break}},pointCloudPattern:u}};exports.useStatus=useStatus;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),reactRedux=require("react-redux"),Actions=require("../store/Actions.js");const useCustomToolInstance=()=>{const t=reactRedux.useDispatch(),r=React.useRef({exportData:()=>[[],{}],singleOn:()=>{},on:()=>{},setResult:()=>{},history:{initRecord:()=>{}},setDefaultAttribute:e=>{},setSubAttribute:(e,n)=>{}}),s=e=>{t({type:Actions.ANNOTATION_ACTIONS.SET_TOOL,payload:{instance:e}})},o=()=>{t({type:Actions.ANNOTATION_ACTIONS.SET_TOOL,payload:{instance:void 0}})};return React.useEffect(()=>(s(r.current),()=>{o()}),[]),{toolInstanceRef:r}};exports.useCustomToolInstance=useCustomToolInstance;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),reactRedux=require("react-redux"),Actions=require("../store/Actions.js");const useCustomToolInstance=()=>{const t=reactRedux.useDispatch(),r=React.useRef({exportData:()=>[[],{}],exportCustomData:()=>({}),clearResult:()=>{},singleOn:()=>{},on:()=>{},setResult:()=>{},history:{initRecord:()=>{},pushHistory:()=>{}},setDefaultAttribute:e=>{},setSubAttribute:(e,u)=>{},setValid:()=>{}}),s=e=>{t({type:Actions.ANNOTATION_ACTIONS.SET_TOOL,payload:{instance:e}})},o=()=>{t({type:Actions.ANNOTATION_ACTIONS.SET_TOOL,payload:{instance:void 0}})};return React.useEffect(()=>(s(r.current),()=>{o()}),[]),{toolInstanceRef:r}};exports.useCustomToolInstance=useCustomToolInstance;
package/dist/index.css CHANGED
@@ -1333,6 +1333,19 @@
1333
1333
  display: flex;
1334
1334
  flex-direction: column;
1335
1335
  }
1336
+ .bee-point-cloud-wrapper .bee-point-cloud-container__right .bee-point-cloud-container__empty-page {
1337
+ position: absolute;
1338
+ left: 0;
1339
+ top: 40px;
1340
+ flex: 1;
1341
+ background: black;
1342
+ color: #666666;
1343
+ display: flex;
1344
+ justify-content: center;
1345
+ align-items: center;
1346
+ font-size: 16px;
1347
+ z-index: 20;
1348
+ }
1336
1349
  .bee-point-cloud-wrapper .bee-point-cloud-container__right .bee-point-cloud-container__right-bottom {
1337
1350
  flex: 1;
1338
1351
  display: flex;
@@ -1343,6 +1356,7 @@
1343
1356
  }
1344
1357
  .bee-point-cloud-wrapper .bee-point-cloud-container__right .bee-point-cloud-container__right-bottom .bee-point-cloud-container__side-view,
1345
1358
  .bee-point-cloud-wrapper .bee-point-cloud-container__right .bee-point-cloud-container__right-bottom .bee-point-cloud-container__back-view {
1359
+ position: relative;
1346
1360
  flex: 1;
1347
1361
  background: black;
1348
1362
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$1=require("../../components/customResizeHook/index.js"),styleString=require("../../constant/styleString.js"),Actions=require("../Actions.js"),index=require("../../utils/index.js"),AnnotationDataUtils=require("../../utils/AnnotationDataUtils.js"),ConfigUtils=require("../../utils/ConfigUtils.js"),data=require("../../utils/data.js"),StepUtils=require("../../utils/StepUtils.js"),ToolUtils=require("../../utils/ToolUtils.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),es=require("antd/es"),_=require("lodash"),actionCreators=require("./actionCreators.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__spreadValues=(e,t)=>{for(var o in t||(t={}))__hasOwnProp.call(t,o)&&__defNormalProp(e,o,t[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(t))__propIsEnum.call(t,o)&&__defNormalProp(e,o,t[o]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__async=(e,t,o)=>new Promise((c,r)=>{var A=d=>{try{p(o.next(d))}catch(C){r(C)}},N=d=>{try{p(o.throw(d))}catch(C){r(C)}},p=d=>d.done?c(d.value):Promise.resolve(d.value).then(A,N);p((o=o.apply(e,t)).next())});const getStepConfig=(e,t)=>e.find(o=>o.step===t),initialState={annotationEngine:null,toolInstance:null,imgList:[],config:"{}",imgIndex:-1,basicIndex:0,imgPageSize:1,step:1,stepList:[],imgNode:new Image,basicResultList:[],resultList:[],stepProgress:0,loading:!1,triggerEventAfterIndexChanged:!1},getTotalPage=e=>{const{imgList:t,imgPageSize:o}=e;return Math.ceil(t.length/o)},calcStepProgress=(e,t)=>e.reduce((o,c)=>{if(c){const r=c.result;if(index.jsonParser(r)[`step_${t}`])return o+1}return o},0)/e.length,updateToolInstance=(e,t)=>{const{step:o,stepList:c}=e,r=StepUtils.getCurrentStepInfo(o,c),A=ConfigUtils.ConfigUtils.jsonParser(r.config);if(ToolUtils.isVideoTool(r==null?void 0:r.tool)||ToolUtils.isPointCloudTool(r==null?void 0:r.tool))return;const N=document.getElementById("toolContainer");if(!N)throw"Not exist dom named id-toolContainer";const p=index$1.getFormatSize({width:window.innerWidth,height:window.innerHeight}),d=new lbAnnotation.AnnotationEngine({container:N,toolName:r.tool,size:p,imgNode:t,config:A,style:JSON.parse(styleString)});return{toolInstance:d==null?void 0:d.toolInstance,annotationEngine:d}},LoadFileAndFileData=(e,t)=>(o,c)=>__async(void 0,null,function*(){const{stepList:r,step:A}=c().annotation,N=StepUtils.currentToolIsVideo(A,r),p=StepUtils.currentToolIsPointCloud(A,r);if(actionCreators.SetAnnotationLoading(o,!0),o(TryGetFileDataByAPI(e)),N||p){o(AfterVideoLoaded(e));return}o(AfterImageLoaded(e,t))}),TryGetFileDataByAPI=e=>(t,o)=>__async(void 0,null,function*(){const{getFileData:c,imgList:r}=o().annotation;if(c){const A=yield c(r[e],e);t({type:Actions.ANNOTATION_ACTIONS.SET_FILE_DATA,payload:{fileData:A,index:e}})}}),AfterVideoLoaded=e=>t=>{actionCreators.SetAnnotationLoading(t,!1),t({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{nextIndex:e}})},AfterImageLoaded=(e,t)=>(o,c)=>{var r;const{toolInstance:A,imgList:N}=c().annotation,p=(r=N==null?void 0:N[e])==null?void 0:r.url;lbAnnotation.ImgUtils.load(p).then(d=>{actionCreators.SetAnnotationLoading(o,!1),o({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{imgNode:d,nextIndex:e,nextBasicIndex:t}})}).catch(()=>{actionCreators.SetAnnotationLoading(o,!1),A==null||A.setErrorImg(),o({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{nextIndex:e,nextBasicIndex:t}})})},annotationReducer=(e=initialState,t)=>{var o,c,r,A,N,p,d,C,h,b,U,x,F,j,w,B,q,G;switch(t.type){case Actions.ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE:return __spreadProps(__spreadValues({},e),{toolInstance:t.payload.toolInstance});case Actions.ANNOTATION_ACTIONS.UPDATE_IMG_LIST:return __spreadProps(__spreadValues({},e),{imgList:t.payload.imgList});case Actions.ANNOTATION_ACTIONS.CALC_STEP_PROGRESS:{const{imgList:n,step:s}=e,i=calcStepProgress(n,s);return __spreadProps(__spreadValues({},e),{stepProgress:i})}case Actions.ANNOTATION_ACTIONS.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:s,step:i,stepList:l,toolInstance:u,onSubmit:a,resultList:O}=e;if(!u||!n[s])return e;const T=((o=n[s])==null?void 0:o.result)||"",[,I]=(c=u==null?void 0:u.exportData())!=null?c:[],g=data.composeResultWithBasicImgInfo(T,I),v=data.composeResult(g,{step:i,stepList:l},{rect:O});n[s].result=AnnotationDataUtils.dataCorrection(v,T,i,l),a&&a([n[s]],(r=t.payload)==null?void 0:r.submitType,s);const f=calcStepProgress(n,i);return __spreadProps(__spreadValues({},e),{stepProgress:f,imgList:n})}case Actions.ANNOTATION_ACTIONS.SAVE_RESULT:{const{imgList:n,imgIndex:s,onSave:i}=e;return i==null||i(n[s],s,n),__spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.SUBMIT_RESULT:{const{imgList:n,basicIndex:s,resultList:i,toolInstance:l,basicResultList:u}=e;if(!l)return e;const[a]=(A=l==null?void 0:l.exportData())!=null?A:[];let O=a;if((u==null?void 0:u.length)>0){const T=(N=u[s])==null?void 0:N.id,I=a.map(g=>__spreadProps(__spreadValues({},g),{sourceID:T}));O=___default.default.cloneDeep(i).filter(g=>g.sourceID!==T),O.push(...I)}return __spreadProps(__spreadValues({},e),{resultList:O,imgList:n})}case Actions.ANNOTATION_ACTIONS.SET_BASIC_INDEX:{const{toolInstance:n,step:s,imgList:i,imgIndex:l,stepList:u,annotationEngine:a,resultList:O,basicResultList:T}=e;if(!n||!a)return e;const I=t.payload.basicIndex,g=(p=T[I])==null?void 0:p.id,v=index.jsonParser((d=i[l])==null?void 0:d.result),f=(O||[]).filter(R=>R.sourceID===g),E=getStepConfig(u,s),{dataSourceStep:m,tool:P}=E,D=getStepConfig(u,m);let S=[];return m&&P&&(S=(C=v[`step_${m}`])==null?void 0:C.result,(S==null?void 0:S.length)>0?(a==null||a.setBasicInfo(D.tool,S[I]),a==null||a.launchOperation()):(a==null||a.setBasicInfo(D.tool),a==null||a.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),n==null||n.setResult(f),n==null||n.history.initRecord(f,!0),__spreadProps(__spreadValues({},e),{basicIndex:I})}case Actions.ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED:{const{triggerEventAfterIndexChanged:n}=t.payload;return __spreadProps(__spreadValues({},e),{triggerEventAfterIndexChanged:!!n})}case Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA:{const{imgList:n,step:s,toolInstance:i,annotationEngine:l,stepList:u}=e;if(!i)return __spreadProps(__spreadValues({},e),{imgIndex:t.payload.nextIndex});const a=StepUtils.getCurrentStepInfo(s,u),{nextIndex:O,imgNode:T,nextBasicIndex:I,imgError:g}=t.payload,v=I!=null?I:0,f=index.jsonParser((h=n[O])==null?void 0:h.result),E=f[`step_${s}`],m=!E,P={rotate:(b=f.rotate)!=null?b:0,valid:(U=f.valid)!=null?U:!0};T&&g!==!0&&(l==null||l.setImgNode(T,P));const D=getStepConfig(u,s),{dataSourceStep:S,tool:R}=D,z=getStepConfig(u,S),V=S&&R,L=(F=(x=f[`step_${S}`])==null?void 0:x.result)!=null?F:[],y=AnnotationDataUtils.getInitialResultList(E==null?void 0:E.result,i,D,L,m);if(l==null||l.launchOperation(),V&&((L==null?void 0:L.length)>0?l==null||l.setBasicInfo(z.tool,L[v]):(l==null||l.setBasicInfo(z.tool),l==null||l.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),a.tool!=="check"){const H=(w=(j=L[v])==null?void 0:j.id)!=null?w:"",M=V?y.filter($=>lbAnnotation.CommonToolUtils.isSameSourceID($.sourceID,H)):y;i==null||i.setResult(M),i==null||i.history.initRecord(y,!0)}return __spreadProps(__spreadValues({},e),{imgIndex:O,basicIndex:v,basicResultList:L,resultList:y})}case Actions.ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG:return __spreadProps(__spreadValues({},e),{config:(B=t.payload.config)!=null?B:"{}"});case Actions.ANNOTATION_ACTIONS.SET_TASK_CONFIG:{const{stepList:n,step:s}=t.payload;return __spreadProps(__spreadValues({},e),{stepList:n,step:s})}case Actions.ANNOTATION_ACTIONS.INIT_TOOL:{const{imgNode:n}=e,s=updateToolInstance(e,n);if(s){const{toolInstance:i,annotationEngine:l}=s;return __spreadProps(__spreadValues({},e),{toolInstance:i,annotationEngine:l})}return __spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.SET_TOOL:{const n=(q=t.payload)==null?void 0:q.instance;return n?__spreadProps(__spreadValues({},e),{toolInstance:n}):__spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT:return __spreadProps(__spreadValues({},e),{onSubmit:t.payload.onSubmit});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_SAVE:return __spreadProps(__spreadValues({},e),{onSave:t.payload.onSave});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE:return __spreadProps(__spreadValues({},e),{onPageChange:t.payload.onPageChange});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE:return __spreadProps(__spreadValues({},e),{onStepChange:t.payload.onStepChange});case Actions.ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA:return __spreadProps(__spreadValues({},e),{getFileData:t.payload.getFileData});case Actions.ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE:return __spreadProps(__spreadValues({},e),{pageSize:t.payload.pageSize});case Actions.ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST:return __spreadProps(__spreadValues({},e),{loadFileList:t.payload.loadFileList});case Actions.ANNOTATION_ACTIONS.SET_FILE_DATA:{const{fileData:n,index:s}=t.payload,{imgList:i}=e;return i[s]=__spreadValues(__spreadValues({},i[s]),n),__spreadProps(__spreadValues({},e),{imgList:i})}case Actions.ANNOTATION_ACTIONS.UPDATE_ROTATE:{const{toolInstance:n}=e;return n==null||n.updateRotate(),e}case Actions.ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:s,imgList:i,step:l}=e;if(!n)return e;if(s===0||s>=i.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),e;const u=i[s-1].result;if(!u)return e;const a=AnnotationDataUtils.copyResultChange(u,l,(G=i[s].result)!=null?G:"");i[s].result=a;const T=index.jsonParser(a)[`step_${l}`],I=(T==null?void 0:T.result)||[];return n==null||n.setResult(I),n==null||n.history.pushHistory(I),__spreadProps(__spreadValues({},e),{imgList:[...i]})}case Actions.ANNOTATION_ACTIONS.SET_STEP:{const{stepList:n,annotationEngine:s}=e,{toStep:i}=t.payload;if(!s)return e;const l=getStepConfig(n,i);return s==null||s.setToolName(l.tool,l.config),__spreadProps(__spreadValues({},e),{step:i,toolInstance:s==null?void 0:s.toolInstance})}case Actions.ANNOTATION_ACTIONS.SET_LOADING:{const{loading:n}=t.payload;return __spreadProps(__spreadValues({},e),{loading:!!n})}default:return e}};exports.LoadFileAndFileData=LoadFileAndFileData,exports.annotationReducer=annotationReducer,exports.getStepConfig=getStepConfig,exports.getTotalPage=getTotalPage;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$1=require("../../components/customResizeHook/index.js"),styleString=require("../../constant/styleString.js"),Actions=require("../Actions.js"),index=require("../../utils/index.js"),AnnotationDataUtils=require("../../utils/AnnotationDataUtils.js"),ConfigUtils=require("../../utils/ConfigUtils.js"),data=require("../../utils/data.js"),StepUtils=require("../../utils/StepUtils.js"),ToolUtils=require("../../utils/ToolUtils.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),es=require("antd/es"),_=require("lodash"),actionCreators=require("./actionCreators.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__spreadValues=(e,t)=>{for(var o in t||(t={}))__hasOwnProp.call(t,o)&&__defNormalProp(e,o,t[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(t))__propIsEnum.call(t,o)&&__defNormalProp(e,o,t[o]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__async=(e,t,o)=>new Promise((c,r)=>{var A=d=>{try{p(o.next(d))}catch(L){r(L)}},N=d=>{try{p(o.throw(d))}catch(L){r(L)}},p=d=>d.done?c(d.value):Promise.resolve(d.value).then(A,N);p((o=o.apply(e,t)).next())});const getStepConfig=(e,t)=>e.find(o=>o.step===t),initialState={annotationEngine:null,toolInstance:null,imgList:[],config:"{}",imgIndex:-1,basicIndex:0,imgPageSize:1,step:1,stepList:[],imgNode:new Image,basicResultList:[],resultList:[],stepProgress:0,loading:!1,triggerEventAfterIndexChanged:!1},getTotalPage=e=>{const{imgList:t,imgPageSize:o}=e;return Math.ceil(t.length/o)},calcStepProgress=(e,t)=>e.reduce((o,c)=>{if(c){const r=c.result;if(index.jsonParser(r)[`step_${t}`])return o+1}return o},0)/e.length,updateToolInstance=(e,t)=>{const{step:o,stepList:c}=e,r=StepUtils.getCurrentStepInfo(o,c),A=ConfigUtils.ConfigUtils.jsonParser(r.config);if(ToolUtils.isVideoTool(r==null?void 0:r.tool)||ToolUtils.isPointCloudTool(r==null?void 0:r.tool))return;const N=document.getElementById("toolContainer");if(!N)throw"Not exist dom named id-toolContainer";const p=index$1.getFormatSize({width:window.innerWidth,height:window.innerHeight}),d=new lbAnnotation.AnnotationEngine({container:N,toolName:r.tool,size:p,imgNode:t,config:A,style:JSON.parse(styleString)});return{toolInstance:d==null?void 0:d.toolInstance,annotationEngine:d}},LoadFileAndFileData=(e,t)=>(o,c)=>__async(void 0,null,function*(){const{stepList:r,step:A}=c().annotation,N=StepUtils.currentToolIsVideo(A,r),p=StepUtils.currentToolIsPointCloud(A,r);if(actionCreators.SetAnnotationLoading(o,!0),o(TryGetFileDataByAPI(e)),N||p){o(AfterVideoLoaded(e));return}o(AfterImageLoaded(e,t))}),TryGetFileDataByAPI=e=>(t,o)=>__async(void 0,null,function*(){const{getFileData:c,imgList:r}=o().annotation;if(c){const A=yield c(r[e],e);t({type:Actions.ANNOTATION_ACTIONS.SET_FILE_DATA,payload:{fileData:A,index:e}})}}),AfterVideoLoaded=e=>t=>{actionCreators.SetAnnotationLoading(t,!1),t({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{nextIndex:e}})},AfterImageLoaded=(e,t)=>(o,c)=>{var r;const{toolInstance:A,imgList:N}=c().annotation,p=(r=N==null?void 0:N[e])==null?void 0:r.url;lbAnnotation.ImgUtils.load(p).then(d=>{actionCreators.SetAnnotationLoading(o,!1),o({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{imgNode:d,nextIndex:e,nextBasicIndex:t}})}).catch(()=>{actionCreators.SetAnnotationLoading(o,!1),A==null||A.setErrorImg(),o({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{nextIndex:e,nextBasicIndex:t}})})},annotationReducer=(e=initialState,t)=>{var o,c,r,A,N,p,d,L,b,h,U,x,j,F,w,B,q,G,z,V;switch(t.type){case Actions.ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE:return __spreadProps(__spreadValues({},e),{toolInstance:t.payload.toolInstance});case Actions.ANNOTATION_ACTIONS.UPDATE_IMG_LIST:return __spreadProps(__spreadValues({},e),{imgList:t.payload.imgList});case Actions.ANNOTATION_ACTIONS.CALC_STEP_PROGRESS:{const{imgList:n,step:s}=e,l=calcStepProgress(n,s);return __spreadProps(__spreadValues({},e),{stepProgress:l})}case Actions.ANNOTATION_ACTIONS.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:s,step:l,stepList:i,toolInstance:a,onSubmit:u,resultList:O}=e;if(!a||!n[s])return e;const T=((o=n[s])==null?void 0:o.result)||"",[,I]=(c=a==null?void 0:a.exportData())!=null?c:[],g=(A=(r=a==null?void 0:a.exportCustomData)==null?void 0:r.call(a))!=null?A:{},v=data.composeResultWithBasicImgInfo(T,I),f=data.composeResult(v,{step:l,stepList:i},{rect:O},g);n[s].result=AnnotationDataUtils.dataCorrection(f,T,l,i),u&&u([n[s]],(N=t.payload)==null?void 0:N.submitType,s);const C=calcStepProgress(n,l);return __spreadProps(__spreadValues({},e),{stepProgress:C,imgList:n})}case Actions.ANNOTATION_ACTIONS.SAVE_RESULT:{const{imgList:n,imgIndex:s,onSave:l}=e;return l==null||l(n[s],s,n),__spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.SUBMIT_RESULT:{const{imgList:n,basicIndex:s,resultList:l,toolInstance:i,basicResultList:a}=e;if(!i)return e;const[u]=(p=i==null?void 0:i.exportData())!=null?p:[];let O=u;if((a==null?void 0:a.length)>0){const T=(d=a[s])==null?void 0:d.id,I=u.map(g=>__spreadProps(__spreadValues({},g),{sourceID:T}));O=___default.default.cloneDeep(l).filter(g=>g.sourceID!==T),O.push(...I)}return __spreadProps(__spreadValues({},e),{resultList:O,imgList:n})}case Actions.ANNOTATION_ACTIONS.SET_BASIC_INDEX:{const{toolInstance:n,step:s,imgList:l,imgIndex:i,stepList:a,annotationEngine:u,resultList:O,basicResultList:T}=e;if(!n||!u)return e;const I=t.payload.basicIndex,g=(L=T[I])==null?void 0:L.id,v=index.jsonParser((b=l[i])==null?void 0:b.result),f=(O||[]).filter(R=>R.sourceID===g),C=getStepConfig(a,s),{dataSourceStep:E,tool:P}=C,D=getStepConfig(a,E);let S=[];return E&&P&&(S=(h=v[`step_${E}`])==null?void 0:h.result,(S==null?void 0:S.length)>0?(u==null||u.setBasicInfo(D.tool,S[I]),u==null||u.launchOperation()):(u==null||u.setBasicInfo(D.tool),u==null||u.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),n==null||n.setResult(f),n==null||n.history.initRecord(f,!0),__spreadProps(__spreadValues({},e),{basicIndex:I})}case Actions.ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED:{const{triggerEventAfterIndexChanged:n}=t.payload;return __spreadProps(__spreadValues({},e),{triggerEventAfterIndexChanged:!!n})}case Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA:{const{imgList:n,step:s,toolInstance:l,annotationEngine:i,stepList:a}=e;if(!l)return __spreadProps(__spreadValues({},e),{imgIndex:t.payload.nextIndex});const u=StepUtils.getCurrentStepInfo(s,a),{nextIndex:O,imgNode:T,nextBasicIndex:I,imgError:g}=t.payload,v=I!=null?I:0,f=index.jsonParser((U=n[O])==null?void 0:U.result),C=f[`step_${s}`],E=!C,P={rotate:(x=f.rotate)!=null?x:0,valid:(j=f.valid)!=null?j:!0};T&&g!==!0&&(i==null||i.setImgNode(T,P));const D=getStepConfig(a,s),{dataSourceStep:S,tool:R}=D,H=getStepConfig(a,S),M=S&&R,m=(w=(F=f[`step_${S}`])==null?void 0:F.result)!=null?w:[],y=AnnotationDataUtils.getInitialResultList(C==null?void 0:C.result,l,D,m,E);if(i==null||i.launchOperation(),M&&((m==null?void 0:m.length)>0?i==null||i.setBasicInfo(H.tool,m[v]):(i==null||i.setBasicInfo(H.tool),i==null||i.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),u.tool!=="check"){const $=(q=(B=m[v])==null?void 0:B.id)!=null?q:"",W=M?y.filter(k=>lbAnnotation.CommonToolUtils.isSameSourceID(k.sourceID,$)):y;l==null||l.setResult(W),l==null||l.history.initRecord(y,!0)}return __spreadProps(__spreadValues({},e),{imgIndex:O,basicIndex:v,basicResultList:m,resultList:y})}case Actions.ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG:return __spreadProps(__spreadValues({},e),{config:(G=t.payload.config)!=null?G:"{}"});case Actions.ANNOTATION_ACTIONS.SET_TASK_CONFIG:{const{stepList:n,step:s}=t.payload;return __spreadProps(__spreadValues({},e),{stepList:n,step:s})}case Actions.ANNOTATION_ACTIONS.INIT_TOOL:{const{imgNode:n}=e,s=updateToolInstance(e,n);if(s){const{toolInstance:l,annotationEngine:i}=s;return __spreadProps(__spreadValues({},e),{toolInstance:l,annotationEngine:i})}return __spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.SET_TOOL:{const n=(z=t.payload)==null?void 0:z.instance;return n?__spreadProps(__spreadValues({},e),{toolInstance:n}):__spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT:return __spreadProps(__spreadValues({},e),{onSubmit:t.payload.onSubmit});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_SAVE:return __spreadProps(__spreadValues({},e),{onSave:t.payload.onSave});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE:return __spreadProps(__spreadValues({},e),{onPageChange:t.payload.onPageChange});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE:return __spreadProps(__spreadValues({},e),{onStepChange:t.payload.onStepChange});case Actions.ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA:return __spreadProps(__spreadValues({},e),{getFileData:t.payload.getFileData});case Actions.ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE:return __spreadProps(__spreadValues({},e),{pageSize:t.payload.pageSize});case Actions.ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST:return __spreadProps(__spreadValues({},e),{loadFileList:t.payload.loadFileList});case Actions.ANNOTATION_ACTIONS.SET_FILE_DATA:{const{fileData:n,index:s}=t.payload,{imgList:l}=e;return l[s]=__spreadValues(__spreadValues({},l[s]),n),__spreadProps(__spreadValues({},e),{imgList:l})}case Actions.ANNOTATION_ACTIONS.UPDATE_ROTATE:{const{toolInstance:n}=e;return n==null||n.updateRotate(),e}case Actions.ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:s,imgList:l,step:i}=e;if(!n)return e;if(s===0||s>=l.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),e;const a=l[s-1].result;if(!a)return e;const u=AnnotationDataUtils.copyResultChange(a,i,(V=l[s].result)!=null?V:"");l[s]=__spreadProps(__spreadValues({},l[s]),{result:u});const T=index.jsonParser(u)[`step_${i}`],I=(T==null?void 0:T.result)||[];return n==null||n.setResult(I),n==null||n.history.pushHistory(I),__spreadProps(__spreadValues({},e),{imgList:[...l]})}case Actions.ANNOTATION_ACTIONS.SET_STEP:{const{stepList:n,annotationEngine:s}=e,{toStep:l}=t.payload;if(!s)return e;const i=getStepConfig(n,l);return s==null||s.setToolName(i.tool,i.config),__spreadProps(__spreadValues({},e),{step:l,toolInstance:s==null?void 0:s.toolInstance})}case Actions.ANNOTATION_ACTIONS.SET_LOADING:{const{loading:n}=t.payload;return __spreadProps(__spreadValues({},e),{loading:!!n})}default:return e}};exports.LoadFileAndFileData=LoadFileAndFileData,exports.annotationReducer=annotationReducer,exports.getStepConfig=getStepConfig,exports.getTotalPage=getTotalPage;
@@ -1,4 +1,4 @@
1
- import { IPointCloudBox, IPointCloudBoxList } from '@labelbee/lb-utils';
1
+ import { IPointCloudBox, IPointCloudBoxList, IPolygonData } from '@labelbee/lb-utils';
2
2
  import { PointCloud, PointCloudAnnotation } from '@labelbee/lb-annotation';
3
3
  import React from 'react';
4
4
  interface IPointCloudContextInstances {
@@ -23,6 +23,8 @@ export interface IPointCloudContext extends IPointCloudContextInstances {
23
23
  selectedAllBoxes: () => void;
24
24
  selectedID: string;
25
25
  addPointCloudBox: (boxParams: IPointCloudBox) => void;
26
+ polygonList: IPolygonData[];
27
+ setPolygonList: (polygonList: IPolygonData[]) => void;
26
28
  }
27
29
  export declare const PointCloudContext: React.Context<IPointCloudContext>;
28
30
  export declare const PointCloudProvider: React.FC<{}>;
@@ -19,7 +19,9 @@ export declare const transferCanvas2World: (currentPos: {
19
19
  x: number;
20
20
  y: number;
21
21
  };
22
- export declare const topViewPolygon2PointCloud: (newPolygon: any, size: ISize, pointCloud?: PointCloud | undefined, selectedPointCloud?: IPointCloudBox | undefined) => Omit<IPointCloudBox, "trackID">;
22
+ export declare const topViewPolygon2PointCloud: (newPolygon: any, size: ISize, pointCloud?: PointCloud | undefined, selectedPointCloud?: IPointCloudBox | undefined, defaultValue?: {
23
+ [v: string]: any;
24
+ } | undefined) => Omit<IPointCloudBox, "trackID">;
23
25
  /**
24
26
  * NewBox synchronize sideView
25
27
  * @param boxParams
@@ -45,6 +47,7 @@ export declare const usePointCloudViews: () => {
45
47
  topViewUpdateBox?: undefined;
46
48
  backViewUpdateBox?: undefined;
47
49
  pointCloudBoxListUpdated?: undefined;
50
+ clearAllResult?: undefined;
48
51
  } | {
49
52
  topViewAddBox: (newPolygon: any, size: ISize) => void;
50
53
  topViewSelectedChanged: () => void;
@@ -52,4 +55,5 @@ export declare const usePointCloudViews: () => {
52
55
  sideViewUpdateBox: (newPolygon: any, originPolygon: any) => void;
53
56
  backViewUpdateBox: (newPolygon: any, originPolygon: any) => void;
54
57
  pointCloudBoxListUpdated: (newBoxes: IPointCloudBox[]) => void;
58
+ clearAllResult: () => void;
55
59
  };
@@ -0,0 +1,9 @@
1
+ import { IPolygonData } from '@labelbee/lb-utils';
2
+ /**
3
+ * PointCloud Polygon Hook
4
+ * @returns
5
+ */
6
+ export declare const usePolygon: () => {
7
+ addPolygon: (polygon: IPolygonData) => void;
8
+ deletePolygon: (id: string) => void;
9
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @file Update PointCloud Status
3
+ * @createDate 2022-08-26
4
+ * @author Ron <ron.f.luo@gmail.com>
5
+ */
6
+ import { cTool } from '@labelbee/lb-annotation';
7
+ export declare const useStatus: () => {
8
+ clearAllResult: () => void;
9
+ updatePointCloudPattern: (toolName: any) => void;
10
+ pointCloudPattern: cTool.EToolName;
11
+ };
@@ -1,11 +1,15 @@
1
1
  /// <reference types="react" />
2
2
  export interface ICustomToolInstance {
3
3
  exportData: () => [any[], {}];
4
+ exportCustomData: () => {};
4
5
  singleOn: () => void;
6
+ clearResult: () => void;
5
7
  on: () => void;
6
8
  setResult: () => void;
9
+ setValid: (valid: boolean) => void;
7
10
  history: {
8
11
  initRecord: () => void;
12
+ pushHistory: () => void;
9
13
  };
10
14
  setDefaultAttribute: (attribute: string) => void;
11
15
  setSubAttribute: (key: string, value: string) => void;
@@ -12,4 +12,4 @@ export declare const composeResult: (result: string, pos: {
12
12
  }, newData: {
13
13
  rect: any[];
14
14
  basicRectID?: string;
15
- }) => string;
15
+ }, customObject: Object) => string;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index=require("./index.js"),StepUtils=require("./StepUtils.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(r,e,t)=>e in r?__defProp(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,__spreadValues=(r,e)=>{for(var t in e||(e={}))__hasOwnProp.call(e,t)&&__defNormalProp(r,t,e[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(e))__propIsEnum.call(e,t)&&__defNormalProp(r,t,e[t]);return r},__spreadProps=(r,e)=>__defProps(r,__getOwnPropDescs(e));const composeResultWithBasicImgInfo=(r,e)=>JSON.stringify(__spreadValues(__spreadValues({},index.jsonParser(r)),e)),composeResult=(r,e,t)=>{const{step:u,stepList:a}=e,{rect:o,basicRectID:p}=t;try{const s=index.jsonParser(r),l=StepUtils.getCurrentStepInfo(u,a),{dataSourceStep:f}=l,n=`step_${l.step}`;if(s[n]){const i=s[n];return i.result?(JSON.stringify(i.result)===JSON.stringify(o)||(p?i.result=[...i.result.filter(c=>!(c.sourceID&&c.sourceID===p)),...o.filter(c=>c.sourceID&&c.sourceID===p)]:i.result=o),JSON.stringify(s)):JSON.stringify(__spreadProps(__spreadValues({},s),{[n]:__spreadProps(__spreadValues({},s[n]),{result:o})}))}return JSON.stringify(__spreadProps(__spreadValues({},s),{[n]:{dataSourceStep:f,toolName:a[u-1].tool,result:o}}))}catch(s){return r}};exports.composeResult=composeResult,exports.composeResultWithBasicImgInfo=composeResultWithBasicImgInfo;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index=require("./index.js"),StepUtils=require("./StepUtils.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(r,e,t)=>e in r?__defProp(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,__spreadValues=(r,e)=>{for(var t in e||(e={}))__hasOwnProp.call(e,t)&&__defNormalProp(r,t,e[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(e))__propIsEnum.call(e,t)&&__defNormalProp(r,t,e[t]);return r},__spreadProps=(r,e)=>__defProps(r,__getOwnPropDescs(e));const composeResultWithBasicImgInfo=(r,e)=>JSON.stringify(__spreadValues(__spreadValues({},index.jsonParser(r)),e)),composeResult=(r,e,t,c)=>{const{step:a,stepList:l}=e,{rect:n,basicRectID:u}=t;try{const s=index.jsonParser(r),f=StepUtils.getCurrentStepInfo(a,l),{dataSourceStep:_}=f,i=`step_${f.step}`;if(s[i]){const o=s[i];return Object.assign(o,c),o.result?(JSON.stringify(o.result)===JSON.stringify(n)||(u?o.result=[...o.result.filter(p=>!(p.sourceID&&p.sourceID===u)),...n.filter(p=>p.sourceID&&p.sourceID===u)]:o.result=n),JSON.stringify(s)):JSON.stringify(__spreadProps(__spreadValues({},s),{[i]:__spreadProps(__spreadValues(__spreadValues({},s[i]),c),{result:n})}))}return JSON.stringify(__spreadProps(__spreadValues({},s),{[i]:__spreadProps(__spreadValues({dataSourceStep:_},c),{toolName:l[a-1].tool,result:n})}))}catch(s){return r}};exports.composeResult=composeResult,exports.composeResultWithBasicImgInfo=composeResultWithBasicImgInfo;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),es=require("antd/es"),reactI18next=require("react-i18next");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const PopconfirmTitle=({info:e})=>{const{t:a}=reactI18next.useTranslation();return e.key.startsWith("sure")?React__default.default.createElement("div",{key:e.key},`${a("ConfirmTo")}${e.name.slice(0)}\uFF1F`):React__default.default.createElement("span",null,e.name)},ActionIcon=({icon:e})=>typeof e=="string"?React__default.default.createElement("img",{width:23,height:25,src:e}):e,ActionsConfirm=({allOperation:e})=>{const[a,r]=React.useState(null),{t:n}=reactI18next.useTranslation(),l=Math.floor(24/e.length);return React__default.default.createElement("div",{className:"generalOperation"},e.map((t,c)=>React__default.default.createElement(es.Col,{span:l,key:c},React__default.default.createElement("div",{key:t.key,className:"item",onMouseEnter:()=>{r(t.key)},onMouseLeave:()=>{r(null)}},React__default.default.createElement(es.Popconfirm,{title:React__default.default.createElement(PopconfirmTitle,{info:t}),disabled:!t.key.startsWith("sure"),placement:"topRight",okText:n("Confirm"),cancelText:n("Cancel"),onConfirm:t.onClick},React__default.default.createElement("div",{className:"icon"},React__default.default.createElement(ActionIcon,{icon:t.key===a?t.hoverSvg:t.imgSvg})),React__default.default.createElement("div",{className:"toolName",style:{color:t.key===a?"#666fff":""}},t.name))))))};module.exports=ActionsConfirm;
1
+ "use strict";var React=require("react"),antd=require("antd"),reactI18next=require("react-i18next");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const PopconfirmTitle=({info:e})=>{const{t:a}=reactI18next.useTranslation();return e.key.startsWith("sure")?React__default.default.createElement("div",{key:e.key},`${a("ConfirmTo")}${e.name.slice(0)}\uFF1F`):React__default.default.createElement("span",null,e.name)},ActionIcon=({icon:e})=>typeof e=="string"?React__default.default.createElement("img",{width:23,height:25,src:e}):e,ActionsConfirm=({allOperation:e})=>{const[a,r]=React.useState(null),{t:n}=reactI18next.useTranslation(),l=Math.floor(24/e.length);return React__default.default.createElement("div",{className:"generalOperation"},e.map((t,c)=>React__default.default.createElement(antd.Col,{span:l,key:c},React__default.default.createElement("div",{key:t.key,className:"item",onMouseEnter:()=>{r(t.key)},onMouseLeave:()=>{r(null)}},React__default.default.createElement(antd.Popconfirm,{title:React__default.default.createElement(PopconfirmTitle,{info:t}),placement:"topRight",okText:n("Confirm"),cancelText:n("Cancel"),onConfirm:t.onClick},React__default.default.createElement("div",{className:"icon"},React__default.default.createElement(ActionIcon,{icon:t.key===a?t.hoverSvg:t.imgSvg})),React__default.default.createElement("div",{className:"toolName",style:{color:t.key===a?"#666fff":""}},t.name))))))};module.exports=ActionsConfirm;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),reactRedux=require("react-redux"),StepUtils=require("../../../../utils/StepUtils.js"),index=require("../../../../utils/index.js"),ActionsConfirm=require("./ActionsConfirm.js"),useOperationList=require("./useOperationList.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const mapStateToProps=t=>{var n,e;const o=StepUtils.getCurrentStepInfo((n=t.annotation)==null?void 0:n.step,(e=t.annotation)==null?void 0:e.stepList);return{toolInstance:t.annotation.toolInstance,stepInfo:o,imgList:t.annotation.imgList,imgIndex:t.annotation.imgIndex}},GeneralOperation=({toolInstance:t,stepInfo:n})=>{const e=useOperationList(t),o=index.jsonParser(n==null?void 0:n.config),r=[e.empty];return(n==null?void 0:n.dataSourceStep)===0&&r.push(e.setValidity),(o==null?void 0:o.copyBackwardResult)&&r.push(e.copyPrevious),React__default.default.createElement(ActionsConfirm,{allOperation:r})},PointCloudOperation=reactRedux.connect(mapStateToProps)(({toolInstance:t,stepInfo:n})=>{const e=useOperationList(t),o=[e.copyPrevious,e.empty];return React__default.default.createElement(ActionsConfirm,{allOperation:o})});var GeneralOperation$1=reactRedux.connect(mapStateToProps)(GeneralOperation);exports.PointCloudOperation=PointCloudOperation,exports.default=GeneralOperation$1;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),reactRedux=require("react-redux"),StepUtils=require("../../../../utils/StepUtils.js"),index=require("../../../../utils/index.js"),ActionsConfirm=require("./ActionsConfirm.js"),useOperationList=require("./useOperationList.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const mapStateToProps=t=>{var n,e;const o=StepUtils.getCurrentStepInfo((n=t.annotation)==null?void 0:n.step,(e=t.annotation)==null?void 0:e.stepList);return{toolInstance:t.annotation.toolInstance,stepInfo:o,imgList:t.annotation.imgList,imgIndex:t.annotation.imgIndex}},GeneralOperation=({toolInstance:t,stepInfo:n})=>{const e=useOperationList(t),o=index.jsonParser(n==null?void 0:n.config),r=[e.empty];return(n==null?void 0:n.dataSourceStep)===0&&r.push(e.setValidity),(o==null?void 0:o.copyBackwardResult)&&r.push(e.copyPrevious),React__default.default.createElement(ActionsConfirm,{allOperation:r})},PointCloudOperation=reactRedux.connect(mapStateToProps)(({toolInstance:t,stepInfo:n})=>{const e=useOperationList(t),o=[e.copyPrevious,e.empty,e.setValidity];return React__default.default.createElement(ActionsConfirm,{allOperation:o})});var GeneralOperation$1=reactRedux.connect(mapStateToProps)(GeneralOperation);exports.PointCloudOperation=PointCloudOperation,exports.default=GeneralOperation$1;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const{EToolName,EPolygonPattern}=lbAnnotation.cTool,AttributeUpdater=({attributeList:t,subAttributeList:r,toolInstance:o})=>{var l;const n=React.useContext(PointCloudContext.PointCloudContext),i={fontWeight:400,fontSize:14,marginBottom:14},a=e=>{o.setDefaultAttribute(e)},c=(e,d)=>{o.setSubAttribute(e,d)};return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:20,fontSize:14,fontWeight:500}},"\u6807\u7B7E"),React__default.default.createElement(antd.Row,{style:{marginBottom:12}},React__default.default.createElement(antd.Col,{span:10,style:i},"\u4E3B\u5C5E\u6027"),React__default.default.createElement(antd.Col,{span:14},React__default.default.createElement(antd.Radio.Group,{style:{width:"100%"},value:(l=n.selectedPointCloudBox)==null?void 0:l.attribute,onChange:e=>a(e.target.value)},t.map(e=>React__default.default.createElement(antd.Radio,{key:e.value,value:e.value,style:{marginBottom:16}},e.key))))),React__default.default.createElement("div",{style:i},"\u526F\u5C5E\u6027"),r.map(e=>{var d,s;return React__default.default.createElement(antd.Row,{key:e.value,style:{marginBottom:18}},React__default.default.createElement(antd.Col,{span:10,style:{color:"#999999"}},e.key),React__default.default.createElement(antd.Col,{span:14},React__default.default.createElement(antd.Select,{style:{width:"100%"},bordered:!1,value:(s=(d=n.selectedPointCloudBox)==null?void 0:d.subAttribute)==null?void 0:s[e.value],placeholder:"\u8BF7\u586B\u5199~",onChange:u=>c(e.value,u)},e.subSelected.map(u=>React__default.default.createElement(antd.Select.Option,{key:u.value,value:u.value},u.key)))))}))},PointCloudToolSidebar=({stepInfo:t,toolInstance:r})=>{var o,l;const n=React.useContext(PointCloudContext.PointCloudContext),i=d=>{var s,u;switch(d){case EToolName.Rect:(s=n.topViewInstance)==null||s.pointCloud2dOperation.setPattern(EPolygonPattern.Rect);break;case EToolName.Polygon:(u=n.topViewInstance)==null||u.pointCloud2dOperation.setPattern(EPolygonPattern.Normal);break}},a=index.jsonParser(t.config),c=(o=a==null?void 0:a.attributeList)!=null?o:[],e=(a==null?void 0:a.secondaryAttributeConfigurable)===!0?(l=a==null?void 0:a.inputList)!=null?l:[]:[];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:EToolName.Rect,onChange:i}),n.selectedID&&React__default.default.createElement(AttributeUpdater,{toolInstance:r,attributeList:c,subAttributeList:e}))},mapStateToProps=t=>{var r,o,l;const n=StepUtils.getCurrentStepInfo((r=t.annotation)==null?void 0:r.step,(o=t.annotation)==null?void 0:o.stepList),i=(l=t.annotation)==null?void 0:l.toolInstance;return{stepInfo:n,toolInstance:i}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps)(PointCloudToolSidebar);module.exports=PointCloudToolSidebar$1;
1
+ "use strict";var React=require("react"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const AttributeUpdater=({attributeList:t,subAttributeList:u,toolInstance:o})=>{var l;const r=React.useContext(PointCloudContext.PointCloudContext),a={fontWeight:400,fontSize:14,marginBottom:14},c=e=>{o.setDefaultAttribute(e)},n=(e,i)=>{o.setSubAttribute(e,i)};return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:20,fontSize:14,fontWeight:500}},"\u6807\u7B7E"),React__default.default.createElement(antd.Row,{style:{marginBottom:12}},React__default.default.createElement(antd.Col,{span:10,style:a},"\u4E3B\u5C5E\u6027"),React__default.default.createElement(antd.Col,{span:14},React__default.default.createElement(antd.Radio.Group,{style:{width:"100%"},value:(l=r.selectedPointCloudBox)==null?void 0:l.attribute,onChange:e=>c(e.target.value)},t.map(e=>React__default.default.createElement(antd.Radio,{key:e.value,value:e.value,style:{marginBottom:16}},e.key))))),React__default.default.createElement("div",{style:a},"\u526F\u5C5E\u6027"),u.map(e=>{var i,d;return React__default.default.createElement(antd.Row,{key:e.value,style:{marginBottom:18}},React__default.default.createElement(antd.Col,{span:10,style:{color:"#999999"}},e.key),React__default.default.createElement(antd.Col,{span:14},React__default.default.createElement(antd.Select,{style:{width:"100%"},bordered:!1,value:(d=(i=r.selectedPointCloudBox)==null?void 0:i.subAttribute)==null?void 0:d[e.value],placeholder:"\u8BF7\u586B\u5199~",onChange:s=>n(e.value,s)},e.subSelected.map(s=>React__default.default.createElement(antd.Select.Option,{key:s.value,value:s.value},s.key)))))}))},PointCloudToolSidebar=({stepInfo:t,toolInstance:u})=>{var o,l;const{selectedBox:r}=useSingleBox.useSingleBox(),{updatePointCloudPattern:a,pointCloudPattern:c}=useStatus.useStatus(),n=index.jsonParser(t.config),e=(o=n==null?void 0:n.attributeList)!=null?o:[],i=(n==null?void 0:n.secondaryAttributeConfigurable)===!0?(l=n==null?void 0:n.inputList)!=null?l:[]:[];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:c,onChange:d=>a==null?void 0:a(d)}),r&&React__default.default.createElement(AttributeUpdater,{toolInstance:u,attributeList:e,subAttributeList:i}))},mapStateToProps=t=>{var u,o,l;const r=StepUtils.getCurrentStepInfo((u=t.annotation)==null?void 0:u.step,(o=t.annotation)==null?void 0:o.stepList),a=(l=t.annotation)==null?void 0:l.toolInstance;return{stepInfo:r,toolInstance:a}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps)(PointCloudToolSidebar);module.exports=PointCloudToolSidebar$1;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$4=require("../../../constant/index.js"),actionCreators=require("../../../store/annotation/actionCreators.js"),reducer=require("../../../store/annotation/reducer.js"),es=require("antd/es"),React=require("react"),reactI18next=require("react-i18next"),reactRedux=require("react-redux"),index=require("./FooterTips/index.js"),index$1=require("./HiddenTips/index.js"),index$2=require("./PageNumber/index.js"),index$3=require("./ZoomController/index.js"),Pagination=require("./Pagination.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const footerCls=`${index$4.prefix}-footer`,FooterDivider=()=>React__default.default.createElement(es.Divider,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),renderFooter=({footerTips:e,hiddenTips:t,pageNumber:r,pagination:n,zoomController:a,curItems:o,footerDivider:i})=>React__default.default.createElement(React__default.default.Fragment,null,e,React__default.default.createElement("div",{style:{flex:1}}),t,r,n,o,i,a),ToolFooter=e=>{var t;const{stepList:r,step:n,basicResultList:a,basicIndex:o,mode:i="light",footer:s=renderFooter}=e,l=reactRedux.useDispatch(),{t:u}=reactI18next.useTranslation(),c=!!((t=r[n-1])!=null?t:{}).dataSourceStep,d=()=>{l(actionCreators.PageBackward())},f=()=>{l(actionCreators.PageForward())},g=x=>{const v=~~x-1;l(actionCreators.PageJump(v))},p=React__default.default.createElement(Pagination.Pagination,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:g,pageBackward:d,pageForward:f,footerCls}),m=c&&a.length>0?React__default.default.createElement("span",null,u("curItems",{current:o+1,total:a.length})):null;return typeof s=="function"?React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},s({footerTips:React__default.default.createElement(index,null),hiddenTips:React__default.default.createElement(index$1,null),pageNumber:React__default.default.createElement(index$2,null),pagination:p,zoomController:React__default.default.createElement(index$3.default,{mode:i}),curItems:m,footerDivider:React__default.default.createElement(FooterDivider,null)})):s},mapStateToProps=e=>({totalPage:reducer.getTotalPage(e.annotation),imgIndex:e.annotation.imgIndex,stepList:e.annotation.stepList,step:e.annotation.step,basicIndex:e.annotation.basicIndex,basicResultList:e.annotation.basicResultList});var ToolFooter$1=reactRedux.connect(mapStateToProps)(ToolFooter);exports.FooterDivider=FooterDivider,exports.default=ToolFooter$1,exports.footerCls=footerCls;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$4=require("../../../constant/index.js"),actionCreators=require("../../../store/annotation/actionCreators.js"),reducer=require("../../../store/annotation/reducer.js"),es=require("antd/es"),React=require("react"),reactI18next=require("react-i18next"),reactRedux=require("react-redux"),index=require("./FooterTips/index.js"),index$1=require("./HiddenTips/index.js"),index$2=require("./PageNumber/index.js"),index$3=require("./ZoomController/index.js"),Pagination=require("./Pagination.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{EPointCloudName}=lbAnnotation.cTool,footerCls=`${index$4.prefix}-footer`,FooterDivider=()=>React__default.default.createElement(es.Divider,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),renderFooter=({footerTips:e,hiddenTips:t,pageNumber:n,pagination:r,zoomController:a,curItems:o,footerDivider:i})=>React__default.default.createElement(React__default.default.Fragment,null,e,React__default.default.createElement("div",{style:{flex:1}}),t,n,r,o,i,a),ToolFooter=e=>{var t;const{stepList:n,step:r,basicResultList:a,basicIndex:o,mode:i="light",footer:l=renderFooter}=e,s=reactRedux.useDispatch(),{t:d}=reactI18next.useTranslation(),u=(t=n[r-1])!=null?t:{},f=!!u.dataSourceStep,m=()=>{s(actionCreators.PageBackward())},g=()=>{s(actionCreators.PageForward())},x=v=>{const b=~~v-1;s(actionCreators.PageJump(b))},c=React__default.default.createElement(Pagination.Pagination,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:x,pageBackward:m,pageForward:g,footerCls}),p=f&&a.length>0?React__default.default.createElement("span",null,d("curItems",{current:o+1,total:a.length})):null;return u.tool===EPointCloudName.PointCloud?React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},React__default.default.createElement(index,null),React__default.default.createElement("div",{style:{flex:1}}),c):typeof l=="function"?React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},l({footerTips:React__default.default.createElement(index,null),hiddenTips:React__default.default.createElement(index$1,null),pageNumber:React__default.default.createElement(index$2,null),pagination:c,zoomController:React__default.default.createElement(index$3.default,{mode:i}),curItems:p,footerDivider:React__default.default.createElement(FooterDivider,null)})):l},mapStateToProps=e=>({totalPage:reducer.getTotalPage(e.annotation),imgIndex:e.annotation.imgIndex,stepList:e.annotation.stepList,step:e.annotation.step,basicIndex:e.annotation.basicIndex,basicResultList:e.annotation.basicResultList});var ToolFooter$1=reactRedux.connect(mapStateToProps)(ToolFooter);exports.FooterDivider=FooterDivider,exports.default=ToolFooter$1,exports.footerCls=footerCls;
@@ -1 +1 @@
1
- import{getClassName as g}from"../../utils/dom.js";import o,{useState as v,useContext as h,useEffect as x}from"react";import{PointCloudContainer as y}from"./PointCloudLayout.js";import O from"../AnnotationView/index.js";import{PointCloudContext as I}from"./PointCloudContext.js";import{connect as b}from"react-redux";import{LeftOutlined as V,RightOutlined as j}from"@ant-design/icons";var D=Object.defineProperty,P=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,w=(n,t,e)=>t in n?D(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,C=(n,t)=>{for(var e in t||(t={}))N.call(t,e)&&w(n,e,t[e]);if(P)for(var e of P(t))S.call(t,e)&&w(n,e,t[e]);return n};const A=({onNext:n,onPrev:t,imgLength:e,imgIndex:a})=>o.createElement("div",null,o.createElement(V,{onClick:t}),o.createElement("span",null," ",a+1," / ",e," "),o.createElement(j,{onClick:n})),k=({imgInfo:n})=>{var t,e;const[a,E]=v([]),{pointCloudBoxList:c,topViewInstance:p}=h(I),[m,u]=v(0),i=(t=n==null?void 0:n.mappingImgList)==null?void 0:t[m];x(()=>{if(p&&i){const{pointCloudInstance:r}=p,l=[],f={fill:"transparent",color:"green"};c.forEach(_=>{r.lidar2image(_,i.calib).forEach(s=>{switch(s.type){case"polygon":l.push({type:"polygon",annotation:C({pointList:s.pointList},f)});break;case"line":l.push({type:"line",annotation:C({pointList:s.pointList},f)});break}})}),E(l)}},[c,i]);const L={width:700,height:400};if(!n)return o.createElement("div",null);const{mappingImgList:d}=n;return d?o.createElement(y,{className:g("point-cloud-2d-container"),title:"2D\u89C6\u56FE",toolbar:o.createElement(A,{imgIndex:m,imgLength:d.length,onNext:()=>{u(r=>r+1)},onPrev:()=>{u(r=>r-1)}})},o.createElement("div",{className:g("point-cloud-2d-image")},o.createElement(O,{src:(e=i==null?void 0:i.url)!=null?e:"",annotations:a,size:L}))):o.createElement("div",null)},R=n=>{const{imgList:t,imgIndex:e}=n.annotation;return console.log("imgList[imgIndex]",t[e],t),{imgInfo:t[e]}};var T=b(R)(k);export{T as default};
1
+ import{getClassName as d}from"../../utils/dom.js";import o,{useState as f,useContext as y,useEffect as O}from"react";import{PointCloudContainer as h}from"./PointCloudLayout.js";import I from"../AnnotationView/index.js";import{PointCloudContext as V}from"./PointCloudContext.js";import{connect as b}from"react-redux";import{LeftOutlined as j,RightOutlined as D}from"@ant-design/icons";var N=Object.defineProperty,g=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,v=(n,t,e)=>t in n?N(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,R=(n,t)=>{for(var e in t||(t={}))S.call(t,e)&&v(n,e,t[e]);if(g)for(var e of g(t))A.call(t,e)&&v(n,e,t[e]);return n};const T=({onNext:n,onPrev:t,imgLength:e,imgIndex:l})=>o.createElement("div",null,o.createElement(j,{onClick:t}),o.createElement("span",null," ",l+1," / ",e," "),o.createElement(D,{onClick:n})),z=({imgInfo:n})=>{var t,e;const[l,C]=f([]),{pointCloudBoxList:c,topViewInstance:u}=y(V),[a,p]=f(0),r=(t=n==null?void 0:n.mappingImgList)==null?void 0:t[a];O(()=>{if(u&&r){const{pointCloudInstance:i}=u,w={fill:"transparent",color:"green"},E=c.reduce((_,x)=>{const L=i.pointCloudLidar2image(x,r.calib);return[..._,...L.map(m=>({type:m.type,annotation:R({pointList:m.pointList},w)}))]},[]);C(E)}},[c,r]);const P={width:700,height:400};if(!n)return o.createElement("div",null);const{mappingImgList:s}=n;return s?o.createElement(h,{className:d("point-cloud-2d-container"),title:"2D\u89C6\u56FE",toolbar:o.createElement(T,{imgIndex:a,imgLength:s.length,onNext:()=>{a>=s.length-1||p(i=>i+1)},onPrev:()=>{a<=0||p(i=>i-1)}})},o.createElement("div",{className:d("point-cloud-2d-image")},o.createElement(I,{src:(e=r==null?void 0:r.url)!=null?e:"",annotations:l,size:P}))):o.createElement("div",null)},B=n=>{const{imgList:t,imgIndex:e}=n.annotation;return{imgInfo:t[e]}};var F=b(B)(z);export{F as default};
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud2DView.js","sources":["../../../src/components/pointCloudView/PointCloud2DView.tsx"],"sourcesContent":["import { getClassName } from '@/utils/dom';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { PointCloudContainer } from './PointCloudLayout';\nimport AnnotationView from '@/components/AnnotationView';\nimport { PointCloudContext } from './PointCloudContext';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { IFileItem } from '@/types/data';\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons';\n\ninterface IProps {\n imgInfo: IFileItem;\n}\n\nconst Toolbar = ({\n onNext,\n onPrev,\n imgLength,\n imgIndex,\n}: {\n onNext: () => void;\n onPrev: () => void;\n imgLength: number;\n imgIndex: number;\n}) => {\n return (\n <div>\n <LeftOutlined onClick={onPrev} />\n <span>\n {' '}\n {imgIndex + 1} / {imgLength}{' '}\n </span>\n\n <RightOutlined onClick={onNext} />\n </div>\n );\n};\n\n// TODO, It will be deleted when the exported type of lb-annotation is work.\ninterface IAnnotationDataTemporarily {\n type: string;\n annotation: any;\n}\n\nconst PointCloud2DView = ({ imgInfo }: IProps) => {\n const [annotations2d, setAnnotations2d] = useState<IAnnotationDataTemporarily[]>([]);\n const { pointCloudBoxList, topViewInstance } = useContext(PointCloudContext);\n const [mappingIndex, setMappingIndex] = useState(0);\n const mappingData = imgInfo?.mappingImgList?.[mappingIndex];\n\n useEffect(() => {\n if (topViewInstance && mappingData) {\n const { pointCloudInstance } = topViewInstance;\n const newAnnotations2d: IAnnotationDataTemporarily[] = [];\n const defaultViewStyle = {\n fill: 'transparent',\n color: 'green',\n };\n pointCloudBoxList.forEach((pointCloudBox) => {\n const viewDataPointList = pointCloudInstance.lidar2image(pointCloudBox, mappingData.calib);\n viewDataPointList.forEach((v: any) => {\n switch (v.type) {\n case 'polygon':\n newAnnotations2d.push({\n type: 'polygon',\n annotation: {\n pointList: v.pointList,\n ...defaultViewStyle,\n },\n });\n\n break;\n case 'line':\n newAnnotations2d.push({\n type: 'line',\n annotation: {\n pointList: v.pointList,\n ...defaultViewStyle,\n },\n });\n\n break;\n }\n });\n });\n setAnnotations2d(newAnnotations2d);\n }\n }, [pointCloudBoxList, mappingData]);\n\n const size = {\n width: 700,\n height: 400,\n };\n\n if (!imgInfo) {\n return <div />;\n }\n\n const { mappingImgList } = imgInfo;\n\n if (!mappingImgList) {\n return <div />;\n }\n\n return (\n <PointCloudContainer\n className={getClassName('point-cloud-2d-container')}\n title='2D视图'\n toolbar={\n <Toolbar\n imgIndex={mappingIndex}\n imgLength={mappingImgList.length}\n onNext={() => {\n setMappingIndex((v) => v + 1);\n }}\n onPrev={() => {\n setMappingIndex((v) => v - 1);\n }}\n />\n }\n >\n <div className={getClassName('point-cloud-2d-image')}>\n <AnnotationView src={mappingData?.url ?? ''} annotations={annotations2d} size={size} />\n </div>\n </PointCloudContainer>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n const { imgList, imgIndex } = state.annotation;\n\n console.log('imgList[imgIndex]', imgList[imgIndex], imgList);\n return {\n imgInfo: imgList[imgIndex],\n };\n};\n\nexport default connect(mapStateToProps)(PointCloud2DView);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PointCloud2DView.js","sources":["../../../src/components/pointCloudView/PointCloud2DView.tsx"],"sourcesContent":["import { getClassName } from '@/utils/dom';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { PointCloudContainer } from './PointCloudLayout';\nimport AnnotationView from '@/components/AnnotationView';\nimport { PointCloudContext } from './PointCloudContext';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { IFileItem } from '@/types/data';\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons';\n\ninterface IProps {\n imgInfo: IFileItem;\n}\n\nconst Toolbar = ({\n onNext,\n onPrev,\n imgLength,\n imgIndex,\n}: {\n onNext: () => void;\n onPrev: () => void;\n imgLength: number;\n imgIndex: number;\n}) => {\n return (\n <div>\n <LeftOutlined onClick={onPrev} />\n <span>\n {' '}\n {imgIndex + 1} / {imgLength}{' '}\n </span>\n\n <RightOutlined onClick={onNext} />\n </div>\n );\n};\n\n// TODO, It will be deleted when the exported type of lb-annotation is work.\ninterface IAnnotationDataTemporarily {\n type: string;\n annotation: any;\n}\n\nconst PointCloud2DView = ({ imgInfo }: IProps) => {\n const [annotations2d, setAnnotations2d] = useState<IAnnotationDataTemporarily[]>([]);\n const { pointCloudBoxList, topViewInstance } = useContext(PointCloudContext);\n const [mappingIndex, setMappingIndex] = useState(0);\n\n const mappingData = imgInfo?.mappingImgList?.[mappingIndex];\n\n useEffect(() => {\n if (topViewInstance && mappingData) {\n const { pointCloudInstance } = topViewInstance;\n const defaultViewStyle = {\n fill: 'transparent',\n color: 'green',\n };\n const newAnnotations2d: IAnnotationDataTemporarily[] = pointCloudBoxList.reduce(\n (acc: IAnnotationDataTemporarily[], pointCloudBox) => {\n const viewDataPointList = pointCloudInstance.pointCloudLidar2image(\n pointCloudBox,\n mappingData.calib,\n );\n return [\n ...acc,\n ...viewDataPointList.map((v: any) => {\n return {\n type: v.type,\n annotation: {\n pointList: v.pointList,\n ...defaultViewStyle,\n },\n };\n }),\n ];\n },\n [],\n );\n setAnnotations2d(newAnnotations2d);\n }\n }, [pointCloudBoxList, mappingData]);\n\n const size = {\n width: 700,\n height: 400,\n };\n\n if (!imgInfo) {\n return <div />;\n }\n\n const { mappingImgList } = imgInfo;\n\n if (!mappingImgList) {\n return <div />;\n }\n\n return (\n <PointCloudContainer\n className={getClassName('point-cloud-2d-container')}\n title='2D视图'\n toolbar={\n <Toolbar\n imgIndex={mappingIndex}\n imgLength={mappingImgList.length}\n onNext={() => {\n if (mappingIndex >= mappingImgList.length - 1) {\n return;\n }\n setMappingIndex((v) => v + 1);\n }}\n onPrev={() => {\n if (mappingIndex <= 0) {\n return;\n }\n setMappingIndex((v) => v - 1);\n }}\n />\n }\n >\n <div className={getClassName('point-cloud-2d-image')}>\n <AnnotationView src={mappingData?.url ?? ''} annotations={annotations2d} size={size} />\n </div>\n </PointCloudContainer>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n const { imgList, imgIndex } = state.annotation;\n\n return {\n imgInfo: imgList[imgIndex],\n };\n};\n\nexport default connect(mapStateToProps)(PointCloud2DView);\n"],"names":[],"mappings":"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"}