@labelbee/lb-components 1.15.1-alpha.2 → 1.16.0-alpha.1

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 (35) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/components/pointCloud2DRectOperationView/index.js +1 -0
  3. package/dist/components/pointCloudView/PointCloud2DSingleView.js +1 -1
  4. package/dist/components/pointCloudView/PointCloud2DView.js +1 -1
  5. package/dist/components/pointCloudView/PointCloudContext.js +1 -1
  6. package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  7. package/dist/components/pointCloudView/hooks/useSingleBox.js +1 -1
  8. package/dist/components/pointCloudView/index.js +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/types/components/AnnotationView/index.d.ts +1 -1
  11. package/dist/types/components/pointCloud2DRectOperationView/index.d.ts +15 -0
  12. package/dist/types/components/pointCloudView/PointCloud2DSingleView.d.ts +2 -1
  13. package/dist/types/components/pointCloudView/PointCloud2DView.d.ts +3 -1
  14. package/dist/types/components/pointCloudView/PointCloudContext.d.ts +10 -1
  15. package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +8 -1
  16. package/dist/types/components/pointCloudView/hooks/useSingleBox.d.ts +5 -1
  17. package/dist/types/index.d.ts +2 -1
  18. package/dist/types/utils/index.d.ts +23 -0
  19. package/dist/types/views/MainView/toolFooter/SwitchCuboidBoxIn2DView/index.d.ts +3 -0
  20. package/dist/utils/index.js +1 -1
  21. package/dist/views/MainView/toolFooter/SwitchCuboidBoxIn2DView/index.js +1 -0
  22. package/dist/views/MainView/toolFooter/index.js +1 -1
  23. package/es/App.js +1 -1
  24. package/es/components/pointCloud2DRectOperationView/index.js +1 -0
  25. package/es/components/pointCloudView/PointCloud2DSingleView.js +1 -1
  26. package/es/components/pointCloudView/PointCloud2DView.js +1 -1
  27. package/es/components/pointCloudView/PointCloudContext.js +1 -1
  28. package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  29. package/es/components/pointCloudView/hooks/useSingleBox.js +1 -1
  30. package/es/components/pointCloudView/index.js +1 -1
  31. package/es/index.js +1 -1
  32. package/es/utils/index.js +1 -1
  33. package/es/views/MainView/toolFooter/SwitchCuboidBoxIn2DView/index.js +1 -0
  34. package/es/views/MainView/toolFooter/index.js +1 -1
  35. package/package.json +3 -3
package/dist/App.js CHANGED
@@ -1 +1 @@
1
- "use strict";var index$1=require("./views/MainView/index.js"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),reactRedux=require("react-redux"),index=require("./index.js"),ctx=require("./store/ctx.js"),Actions=require("./store/Actions.js"),actionCreators=require("./store/annotation/actionCreators.js"),reducer=require("./store/annotation/reducer.js"),es=require("antd/es"),zhCN=require("antd/es/locale/zh_CN"),enUS=require("antd/es/locale/en_US");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),zhCN__default=_interopDefaultLegacy(zhCN),enUS__default=_interopDefaultLegacy(enUS),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,a)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,__spreadValues=(e,t)=>{for(var a in t||(t={}))__hasOwnProp.call(t,a)&&__defNormalProp(e,a,t[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(t))__propIsEnum.call(t,a)&&__defNormalProp(e,a,t[a]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const App=e=>{const[t,a]=React.useState(0),{imgList:o,step:m=1,stepList:i,onSubmit:s,onSave:l,onPageChange:c,onStepChange:u,initialIndex:d=0,toolInstance:P,setToolInstance:I,getFileData:p,pageSize:f=10,loadFileList:r,defaultLang:g="cn",skipBeforePageTurning:O,beforeRotate:v,checkMode:S=!1,intelligentFit:L=!0,highlightAttribute:_="",preDataProcess:h}=e;React.useEffect(()=>{index.store.dispatch(actionCreators.InitTaskData({onSubmit:s,stepList:i,step:m,getFileData:p,pageSize:f,loadFileList:r,onSave:l,onPageChange:c,onStepChange:u,skipBeforePageTurning:O,beforeRotate:v,checkMode:S,highlightAttribute:_,preDataProcess:h})),b(),lbUtils.i18n.changeLanguage(g);const n=()=>{a(C=>C+1)};return lbUtils.i18n.on("languageChanged",n),()=>{lbUtils.i18n.off("languageChanged",n),actionCreators.InitAnnotationState(index.store.dispatch)}},[]),React.useEffect(()=>{index.store.dispatch(actionCreators.UpdateInjectFunc({onSubmit:s,stepList:i,getFileData:p,pageSize:f,loadFileList:r,onSave:l,onPageChange:c,onStepChange:u,beforeRotate:v,highlightAttribute:_,preDataProcess:h})),lbUtils.i18n.changeLanguage(g)},[s,i,p,f,r,l,c,u,g,v,_,h]),React.useEffect(()=>{I==null||I(P)},[P]);const b=()=>{r?actionCreators.loadImgList(index.store.dispatch,index.store.getState,d,!0).then(n=>{n&&index.store.dispatch(reducer.LoadFileAndFileData(d))}):o&&o.length>0&&(index.store.dispatch({type:Actions.ANNOTATION_ACTIONS.UPDATE_IMG_LIST,payload:{imgList:o}}),index.store.dispatch(reducer.LoadFileAndFileData(d)))};return React__default.default.createElement("div",null,React__default.default.createElement(es.ConfigProvider,{locale:lbUtils.i18n.language==="en"?enUS__default.default:zhCN__default.default},React__default.default.createElement(index$1,__spreadProps(__spreadValues({},e),{intelligentFit:L}))))},mapStateToProps=e=>({toolInstance:e.annotation.toolInstance});var App$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(App);module.exports=App$1;
1
+ "use strict";var index$1=require("./views/MainView/index.js"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),reactRedux=require("react-redux"),index=require("./index.js"),ctx=require("./store/ctx.js"),Actions=require("./store/Actions.js"),actionCreators=require("./store/annotation/actionCreators.js"),reducer=require("./store/annotation/reducer.js"),es=require("antd/es"),zhCN=require("antd/es/locale/zh_CN"),enUS=require("antd/es/locale/en_US");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),zhCN__default=_interopDefaultLegacy(zhCN),enUS__default=_interopDefaultLegacy(enUS),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,a)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,__spreadValues=(e,t)=>{for(var a in t||(t={}))__hasOwnProp.call(t,a)&&__defNormalProp(e,a,t[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(t))__propIsEnum.call(t,a)&&__defNormalProp(e,a,t[a]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const App=e=>{const[t,a]=React.useState(0),{imgList:o,step:O=1,stepList:i,onSubmit:s,onSave:l,onPageChange:c,onStepChange:u,initialIndex:d=0,toolInstance:P,setToolInstance:I,getFileData:p,pageSize:f=10,loadFileList:r,defaultLang:g="cn",skipBeforePageTurning:S,beforeRotate:v,checkMode:m=!1,intelligentFit:L=!0,highlightAttribute:_="",preDataProcess:h}=e;React.useEffect(()=>{index.store.dispatch(actionCreators.InitTaskData({onSubmit:s,stepList:i,step:O,getFileData:p,pageSize:f,loadFileList:r,onSave:l,onPageChange:c,onStepChange:u,skipBeforePageTurning:S,beforeRotate:v,checkMode:m,highlightAttribute:_,preDataProcess:h})),b(),lbUtils.i18n.changeLanguage(g);const n=()=>{a(C=>C+1)};return lbUtils.i18n.on("languageChanged",n),()=>{lbUtils.i18n.off("languageChanged",n),actionCreators.InitAnnotationState(index.store.dispatch)}},[]),React.useEffect(()=>{index.store.dispatch(actionCreators.UpdateInjectFunc({onSubmit:s,stepList:i,getFileData:p,pageSize:f,loadFileList:r,onSave:l,onPageChange:c,onStepChange:u,beforeRotate:v,highlightAttribute:_,preDataProcess:h})),lbUtils.i18n.changeLanguage(g)},[s,i,p,f,r,l,c,u,g,v,_,h]),React.useEffect(()=>{I==null||I(P)},[P]);const b=()=>{r?actionCreators.loadImgList(index.store.dispatch,index.store.getState,d,!0).then(n=>{n&&index.store.dispatch(reducer.LoadFileAndFileData(d))}):o&&o.length>0&&(index.store.dispatch({type:Actions.ANNOTATION_ACTIONS.UPDATE_IMG_LIST,payload:{imgList:o}}),index.store.dispatch(reducer.LoadFileAndFileData(d)))};return React__default.default.createElement("div",null,React__default.default.createElement(es.ConfigProvider,{locale:lbUtils.i18n.language==="en"?enUS__default.default:zhCN__default.default},React__default.default.createElement(index$1,__spreadProps(__spreadValues({},e),{intelligentFit:L,checkMode:m}))))},mapStateToProps=e=>({toolInstance:e.annotation.toolInstance});var App$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(App);module.exports=App$1;
@@ -0,0 +1 @@
1
+ "use strict";var ahooks=require("ahooks"),es=require("antd/es"),React=require("react"),reactRedux=require("react-redux"),usePointCloudViews=require("../pointCloudView/hooks/usePointCloudViews.js"),PointCloudContext=require("../pointCloudView/PointCloudContext.js"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.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),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,r,t)=>r in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,__spreadValues=(e,r)=>{for(var t in r||(r={}))__hasOwnProp.call(r,t)&&__defNormalProp(e,t,r[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(r))__propIsEnum.call(r,t)&&__defNormalProp(e,t,r[t]);return e},__spreadProps=(e,r)=>__defProps(e,__getOwnPropDescs(r));const PointCloud2DRectOperationView=e=>{var r;const{mappingData:t,size:i,config:g,checkMode:C,afterImgOnLoad:b}=e,l=(r=t==null?void 0:t.url)!=null?r:"",{pointCloudBoxList:p,setPointCloudResult:w,selectedID:s}=React.useContext(PointCloudContext.PointCloudContext),{update2DViewRect:D}=usePointCloudViews.usePointCloudViews(),c=React__default.default.useRef(null),a=React.useRef(null),f=ahooks.useLatest(D),[O,R]=React.useState(!0),v=n=>{var o;const u=(o=f.current)==null?void 0:o.call(f,n);w(u)},m=()=>{var n;let o=[];p.forEach(u=>{const{rects:d=[],id:_,attribute:x,trackID:h}=u,P=d.find(y=>y.imageName===(t==null?void 0:t.path)),I=_+"_"+(t==null?void 0:t.path);P&&(o=[...o,__spreadProps(__spreadValues({},P),{boxID:_,id:I,attribute:x,order:h})])}),(n=a.current)==null||n.setResult(o)};return React.useEffect(()=>{if(c.current){const n=new lbAnnotation.PointCloud2DRectOperation({container:c.current,size:i,config:__spreadProps(__spreadValues({},g),{isShowOrder:!0,attributeConfigurable:!0}),checkMode:C});return a.current=n,a.current.init(),a.current.on("updateDragResult",v),()=>{var o,u;(o=a.current)==null||o.unbind("updateDragResult",v),(u=a.current)==null||u.destroy()}}},[]),React.useEffect(()=>{a.current&&l&&lbAnnotation.ImgUtils.load(l).then(n=>{a.current.setImgNode(n),b(n),R(!1)})},[l]),React.useEffect(()=>{var n;(n=a.current)==null||n.setSize(i)},[i]),React.useEffect(()=>{var n,o;if(m(),s){const u=(n=a.current)==null?void 0:n.rectList.find(d=>d.boxID===s);u&&((o=a.current)==null||o.setSelectedID(u.id))}},[p,s,l]),React__default.default.createElement(es.Spin,{spinning:O},React__default.default.createElement("div",{ref:c,style:__spreadValues({position:"relative"},i)}))};var PointCloud2DRectOperationView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DRectOperationView);module.exports=PointCloud2DRectOperationView$1;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),React=require("react"),index=require("../AnnotationView/index.js"),useSize=require("../../hooks/useSize.js"),useSingleBox=require("./hooks/useSingleBox.js"),useHighlight=require("./hooks/useHighlight.js"),index$1=require("./components/HighlightVisible/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__async=(e,u,i)=>new Promise((c,l)=>{var r=n=>{try{t(i.next(n))}catch(o){l(o)}},s=n=>{try{t(i.throw(n))}catch(o){l(o)}},t=n=>n.done?c(n.value):Promise.resolve(n.value).then(r,s);t((i=i.apply(e,u)).next())});const PointCloud2DSingleView=({view2dData:e,setSelectedID:u,currentData:i,showEnlarge:c})=>{var l;const r=React.useRef(null),s=React.useRef(),{selectedBox:t}=useSingleBox.useSingleBox(),n=useSize(r),{url:o,calib:p}=e,{toggle2dVisible:x,isHighlightVisible:b}=useHighlight.useHighlight({currentData:i}),[y,g]=React.useState(!1),S=!e,_=f=>{d()},d=React.useCallback(()=>{var f,h;const v=(f=s.current)==null?void 0:f.toolInstance;if(u(""),!t||!v)return;const a=e.annotations.find(k=>k.annotation.id===t.info.id);let m="";a&&((h=a==null?void 0:a.annotation.pointList)==null?void 0:h.length)>0&&(v.focusPositionByPointList(a==null?void 0:a.annotation.pointList),m=t.info.id,u(m))},[t,s.current,e.annotations]);React.useEffect(()=>{d()},[d]);const j=()=>__async(void 0,null,function*(){g(!0),yield x(o,p),g(!1)});return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image"),ref:r},React__default.default.createElement(index,{src:(l=e==null?void 0:e.url)!=null?l:"",annotations:e.annotations,size:n,ref:s,globalStyle:{display:S?"none":"block"},afterImgOnLoad:_,zoomInfo:{min:.01,max:1e3,ratio:.4}}),React__default.default.createElement(index$1,{visible:b(o),onClick:j,loading:y,style:{position:"absolute",right:16,top:16,zIndex:c?-1:101}}))};module.exports=PointCloud2DSingleView;
1
+ "use strict";var dom=require("../../utils/dom.js"),React=require("react"),index=require("../AnnotationView/index.js"),useSize=require("../../hooks/useSize.js"),useSingleBox=require("./hooks/useSingleBox.js"),useHighlight=require("./hooks/useHighlight.js"),index$2=require("./components/HighlightVisible/index.js"),PointCloudContext=require("./PointCloudContext.js"),index$1=require("../pointCloud2DRectOperationView/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__async=(e,s,o)=>new Promise((d,a)=>{var u=t=>{try{n(o.next(t))}catch(i){a(i)}},r=t=>{try{n(o.throw(t))}catch(i){a(i)}},n=t=>t.done?d(t.value):Promise.resolve(t.value).then(u,r);n((o=o.apply(e,s)).next())});const PointCloud2DSingleView=({view2dData:e,setSelectedID:s,currentData:o,showEnlarge:d,checkMode:a=!1})=>{var u;const r=React.useRef(null),n=React.useRef(),{selectedBox:t}=useSingleBox.useSingleBox(),i=useSize(r),{url:g,calib:C,path:b}=e,{toggle2dVisible:y,isHighlightVisible:j}=useHighlight.useHighlight({currentData:o}),[q,h]=React.useState(!1),{cuboidBoxIn2DView:S,cacheImageNodeSize:P}=React.useContext(PointCloudContext.PointCloudContext),_=!e,v=c=>{f(),P({path:b,imgNode:c})},f=React.useCallback(()=>{var c,m;const x=(c=n.current)==null?void 0:c.toolInstance;if(s(""),!t||!x)return;const l=e.annotations.find(B=>B.annotation.id===t.info.id);let p="";l&&((m=l==null?void 0:l.annotation.pointList)==null?void 0:m.length)>0&&(x.focusPositionByPointList(l==null?void 0:l.annotation.pointList),p=t.info.id,s(p))},[t,n.current,e.annotations]);React.useEffect(()=>{f()},[f]);const k=()=>__async(void 0,null,function*(){h(!0),yield y(g,C),h(!1)});return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-2d-image"),ref:r},S?React__default.default.createElement(index,{src:(u=e==null?void 0:e.url)!=null?u:"",annotations:e.annotations,size:i,ref:n,globalStyle:{display:_?"none":"block"},afterImgOnLoad:v,zoomInfo:{min:.01,max:1e3,ratio:.4}}):React__default.default.createElement(index$1,{mappingData:e,size:i,checkMode:a,afterImgOnLoad:v}),React__default.default.createElement(index$2,{visible:j(g),onClick:k,loading:q,style:{position:"absolute",right:16,top:16,zIndex:d?-1:101}}))};module.exports=PointCloud2DSingleView;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),reactRedux=require("react-redux"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),map=require("../../store/annotation/map.js"),lbUtils=require("@labelbee/lb-utils"),PointCloud2DSingleView=require("./PointCloud2DSingleView.js"),index=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons"),classNames=require("classnames"),icon_esc=require("../../assets/annotation/common/icon_esc.svg.js"),icon_left_squareOutlined=require("../../assets/annotation/common/icon_left_squareOutlined.svg.js"),icon_right_squareOutlined=require("../../assets/annotation/common/icon_right_squareOutlined.svg.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,n,t)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,__spreadValues=(e,n)=>{for(var t in n||(n={}))__hasOwnProp.call(n,t)&&__defNormalProp(e,t,n[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(n))__propIsEnum.call(n,t)&&__defNormalProp(e,t,n[t]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const EKeyCode=lbAnnotation.cKeyCode.default,ContainerTitle=({showEnlarge:e,isEnlargeTopView:n,data:t,setIsEnlarge:f,setCurIndex:u,curIndex:p=0,index:v,annotations2d:i})=>n?React__default.default.createElement(index,{title:t==null?void 0:t.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{f(!1),u(void 0)}}),React__default.default.createElement("span",null,t==null?void 0:t.calName),React__default.default.createElement("span",{style:{marginLeft:"8px"}},p+1,"/",i==null?void 0:i.length)):React__default.default.createElement(index,{title:t==null?void 0:t.calName,onClick:()=>{f(!0),u(v)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),PointCloud2DView=({currentData:e,config:n,thumbnailWidth:t,isEnlargeTopView:f,highlightAttribute:u,loadPCDFileLoading:p})=>{var v;const[i,q]=React.useState([]),{topViewInstance:O,displayPointCloudList:b}=React.useContext(PointCloudContext.PointCloudContext),[y,F]=React.useState(""),[m,E]=React.useState(!1),[a,g]=React.useState(void 0);React.useEffect(()=>{var l;if(!p&&O&&(e==null?void 0:e.mappingImgList)&&((l=e==null?void 0:e.mappingImgList)==null?void 0:l.length)>0){const o={fill:"transparent",color:"green"};let r=[];e==null||e.mappingImgList.forEach(s=>{var c;const S=b.reduce((N,d)=>{var C;const R=d.id===y||u===d.attribute,{transferViewData:V,viewRangePointList:_}=lbAnnotation.pointCloudLidar2image(d,s.calib,{createRange:R}),h=(C=lbUtils.toolStyleConverter.getColorFromConfig({attribute:d.attribute},__spreadProps(__spreadValues({},n),{attributeConfigurable:!0}),{}))==null?void 0:C.stroke,A=j({viewDataPointList:V,pointCloudBox:d,defaultViewStyle:o,stroke:h}),L=[...N,...A];return(_==null?void 0:_.length)>0&&L.push({type:"polygon",annotation:__spreadProps(__spreadValues({id:y,pointList:_},o),{stroke:h,fill:"rgba(255, 255, 255, 0.6)"})}),L},[]);r.push({annotations:S,url:s==null?void 0:s.url,calName:(c=s.calib)==null?void 0:c.calName,calib:s==null?void 0:s.calib})}),q(r)}},[b,e==null?void 0:e.mappingImgList,y,u,p]),React.useEffect(()=>(window.addEventListener("keydown",w),()=>{window.removeEventListener("keydown",w)}),[a]);const w=l=>{const{keyCode:o}=l;switch(o){case EKeyCode.Esc:m&&E(!1);break;case EKeyCode.Left:x();break;case EKeyCode.Right:P();break}},x=()=>{a===void 0||!m||Number(a)>0&&g(a-1)},P=()=>{a===void 0||!m||Number(a)<(i==null?void 0:i.length)-1&&g(a+1)},j=({viewDataPointList:l,pointCloudBox:o,defaultViewStyle:r,stroke:s})=>l.map(c=>({type:c.type,annotation:__spreadProps(__spreadValues({id:o.id,pointList:c.pointList},r),{stroke:s})})),k=!e||!(e==null?void 0:e.mappingImgList)||!(((v=e==null?void 0:e.mappingImgList)==null?void 0:v.length)>0),I=React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},React__default.default.createElement("img",{src:icon_left_squareOutlined,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>x()}),React__default.default.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("img",{src:icon_right_squareOutlined,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>P()}),React__default.default.createElement("img",{src:icon_esc,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{E(!1),g(void 0)}}),React__default.default.createElement("span",null,"\u952E\u9000\u51FA"));return(i==null?void 0:i.length)>0?React__default.default.createElement(React__default.default.Fragment,null,i.map((l,o)=>{const r=m&&o===a;return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-2d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:r}),title:React__default.default.createElement(ContainerTitle,{showEnlarge:r,isEnlargeTopView:f,data:l,setIsEnlarge:E,setCurIndex:g,curIndex:a,index:o,annotations2d:i}),titleOnSurface:!r,style:{display:k?"none":"flex",width:r?"100%":t},key:o,toolbar:I},(l==null?void 0:l.annotations)&&(l==null?void 0:l.url)&&React__default.default.createElement(PointCloud2DSingleView,{currentData:e,view2dData:l,setSelectedID:F,showEnlarge:r}))})):null};var PointCloud2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DView);module.exports=PointCloud2DView$1;
1
+ "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudContext=require("./PointCloudContext.js"),reactRedux=require("react-redux"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),map=require("../../store/annotation/map.js"),lbUtils=require("@labelbee/lb-utils"),PointCloud2DSingleView=require("./PointCloud2DSingleView.js"),index=require("./components/TitleButton/index.js"),icons=require("@ant-design/icons"),classNames=require("classnames"),icon_esc=require("../../assets/annotation/common/icon_esc.svg.js"),icon_left_squareOutlined=require("../../assets/annotation/common/icon_left_squareOutlined.svg.js"),icon_right_squareOutlined=require("../../assets/annotation/common/icon_right_squareOutlined.svg.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,n,t)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,__spreadValues=(e,n)=>{for(var t in n||(n={}))__hasOwnProp.call(n,t)&&__defNormalProp(e,t,n[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(n))__propIsEnum.call(n,t)&&__defNormalProp(e,t,n[t]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const EKeyCode=lbAnnotation.cKeyCode.default,ContainerTitle=({showEnlarge:e,isEnlargeTopView:n,data:t,setIsEnlarge:v,setCurIndex:u,curIndex:p=0,index:y,annotations2d:c})=>n?React__default.default.createElement(index,{title:t==null?void 0:t.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{v(!1),u(void 0)}}),React__default.default.createElement("span",null,t==null?void 0:t.calName),React__default.default.createElement("span",{style:{marginLeft:"8px"}},p+1,"/",c==null?void 0:c.length)):React__default.default.createElement(index,{title:t==null?void 0:t.calName,onClick:()=>{v(!0),u(y)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),PointCloud2DView=({currentData:e,config:n,thumbnailWidth:t,isEnlargeTopView:v,highlightAttribute:u,loadPCDFileLoading:p,checkMode:y})=>{var c;const[s,O]=React.useState([]),{topViewInstance:F,displayPointCloudList:w}=React.useContext(PointCloudContext.PointCloudContext),[E,j]=React.useState(""),[m,_]=React.useState(!1),[a,g]=React.useState(void 0);React.useEffect(()=>{var l;if(!p&&F&&(e==null?void 0:e.mappingImgList)&&((l=e==null?void 0:e.mappingImgList)==null?void 0:l.length)>0){const o={fill:"transparent",color:"green"};let r=[];e==null||e.mappingImgList.forEach(i=>{var d;const N=w.reduce((R,f)=>{var h;const V=f.id===E||u===f.attribute,{transferViewData:A,viewRangePointList:b}=lbAnnotation.pointCloudLidar2image(f,i.calib,{createRange:V}),L=(h=lbUtils.toolStyleConverter.getColorFromConfig({attribute:f.attribute},__spreadProps(__spreadValues({},n),{attributeConfigurable:!0}),{}))==null?void 0:h.stroke,T=k({viewDataPointList:A,pointCloudBox:f,defaultViewStyle:o,stroke:L}),q=[...R,...T];return(b==null?void 0:b.length)>0&&q.push({type:"polygon",annotation:__spreadProps(__spreadValues({id:E,pointList:b},o),{stroke:L,fill:"rgba(255, 255, 255, 0.6)"})}),q},[]);r.push({annotations:N,url:i==null?void 0:i.url,calName:(d=i.calib)==null?void 0:d.calName,calib:i==null?void 0:i.calib,path:i==null?void 0:i.path})}),O(r)}},[w,e==null?void 0:e.mappingImgList,E,u,p]),React.useEffect(()=>(window.addEventListener("keydown",x),()=>{window.removeEventListener("keydown",x)}),[a]);const x=l=>{const{keyCode:o}=l;switch(o){case EKeyCode.Esc:m&&_(!1);break;case EKeyCode.Left:P();break;case EKeyCode.Right:C();break}},P=()=>{a===void 0||!m||Number(a)>0&&g(a-1)},C=()=>{a===void 0||!m||Number(a)<(s==null?void 0:s.length)-1&&g(a+1)},k=({viewDataPointList:l,pointCloudBox:o,defaultViewStyle:r,stroke:i})=>l.map(d=>({type:d.type,annotation:__spreadProps(__spreadValues({id:o.id,pointList:d.pointList},r),{stroke:i})})),I=!e||!(e==null?void 0:e.mappingImgList)||!(((c=e==null?void 0:e.mappingImgList)==null?void 0:c.length)>0),S=React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},React__default.default.createElement("img",{src:icon_left_squareOutlined,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>P()}),React__default.default.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),React__default.default.createElement("img",{src:icon_right_squareOutlined,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>C()}),React__default.default.createElement("img",{src:icon_esc,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{_(!1),g(void 0)}}),React__default.default.createElement("span",null,"\u952E\u9000\u51FA"));return(s==null?void 0:s.length)>0?React__default.default.createElement(React__default.default.Fragment,null,s.map((l,o)=>{const r=m&&o===a;return React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:classNames__default.default({[dom.getClassName("point-cloud-2d-container")]:!0,[dom.getClassName("point-cloud-container","zoom")]:r}),title:React__default.default.createElement(ContainerTitle,{showEnlarge:r,isEnlargeTopView:v,data:l,setIsEnlarge:_,setCurIndex:g,curIndex:a,index:o,annotations2d:s}),titleOnSurface:!r,style:{display:I?"none":"flex",width:r?"100%":t},key:o,toolbar:S},(l==null?void 0:l.annotations)&&(l==null?void 0:l.url)&&React__default.default.createElement(PointCloud2DSingleView,{currentData:e,view2dData:l,setSelectedID:j,showEnlarge:r,checkMode:y}))})):null};var PointCloud2DView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloud2DView);module.exports=PointCloud2DView$1;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbUtils=require("@labelbee/lb-utils"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),actionCreators=require("../../store/annotation/actionCreators.js");function _interopDefaultLegacy(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var React__default=_interopDefaultLegacy(React),__async=(r,a,d)=>new Promise((S,b)=>{var h=u=>{try{c(d.next(u))}catch(i){b(i)}},m=u=>{try{c(d.throw(u))}catch(i){b(i)}},c=u=>u.done?S(u.value):Promise.resolve(u.value).then(h,m);c((d=d.apply(r,a)).next())});const PointCloudContext=React__default.default.createContext({pointCloudBoxList:[],pointCloudSphereList:[],displayPointCloudList:[],displaySphereList:[],displayLineList:[],polygonList:[],lineList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudSphereList:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],addPointCloudSphere:()=>[],setPolygonList:()=>{},setLineList:()=>{},zoom:1,setZoom:()=>{},history:new lbAnnotation.ActionsHistory,hideAttributes:[],setHideAttributes:()=>{},toggleAttributesVisible:()=>{},reRender:()=>{},setAttrPanelLayout:()=>{},attrPanelLayout:"",syncAllViewPointCloudColor:()=>Promise.resolve(),defaultAttribute:"",setDefaultAttribute:()=>{},pointCloudPattern:lbAnnotation.EToolName.Rect,setPointCloudPattern:()=>{},selectSpecAttr:()=>{},globalPattern:lbUtils.EPointCloudPattern.Detection,setGlobalPattern:()=>{},setPtSegmentInstance:()=>{},segmentation:[],setSegmentation:()=>{},clearAllDetectionInstance:()=>{},highlight2DDataList:[],setHighlight2DDataList:()=>{}}),PointCloudProvider=({children:r})=>{const[a,d]=React.useState([]),[S,b]=React.useState([]),[h,m]=React.useState([]),[c,u]=React.useState([]),[i,I]=React.useState([]),[R,K]=React.useState(!0),[H,Q]=React.useState(1),[o,_]=React.useState(),[E,M]=React.useState(),[j,q]=React.useState(),[n,G]=React.useState(),[T,W]=React.useState(""),[D,X]=React.useState(lbAnnotation.EToolName.Rect),Y=React.useRef(new lbAnnotation.ActionsHistory).current,[s,w]=React.useState([]),[F,$]=React.useState(""),[x,tt]=React.useState(lbUtils.EPointCloudPattern.Detection),[f,O]=React.useState(void 0),[V,et]=React.useState([]),[B,nt]=React.useState([]),ot=ctx.useDispatch(),k=React.useMemo(()=>i.length===1?i[0]:"",[i]),N=React.useMemo(()=>{const p=a.find(t=>t.id===k),C=t=>{const e=a.concat(t);return d(e),e},P=t=>{const e=S.concat(t);return b(e),e},v=t=>{K(t!==!1)},l=t=>{t===void 0&&I([]),typeof t=="string"&&I([t]),Array.isArray(t)&&I(Array.from(new Set(t)))},st=t=>{i.includes(t)?l(i.filter(e=>e!==t)):l([...i,t])},lt=()=>{if(D===lbAnnotation.EToolName.Rect){const t=a.map(e=>e.id);l(t),o==null||o.pointCloud2dOperation.setSelectedIDs(t)}},at=t=>{l(a.filter(e=>e.attribute===t).map(e=>e.id))},z=a.filter(t=>!s.includes(t.attribute)),Z=S.filter(t=>!s.includes(t.attribute)),U=c.filter(t=>t.attribute&&!s.includes(t.attribute)),rt=t=>{if(s.includes(t))w(s.filter(e=>e!==t));else{const e=s.concat(t);w(e)}},ut=(t=z,e=h,L=Z,A=U,y=V)=>{var g;n==null||n.clearAllBox(),n==null||n.clearAllSphere(),o==null||o.updatePolygonList(t,e),o==null||o.updatePointList(L),o==null||o.updateLineList(A),n==null||n.generateBoxes(t),n==null||n.generateSpheres(L),(g=f==null?void 0:f.store)==null||g.updateCurrentSegment(y),J(t)},dt=()=>{_(void 0),M(void 0),q(void 0),G(void 0)},J=(t,e)=>__async(void 0,null,function*(){var L;if(!n)return;const A=n.pointCloudObject;if(!!A)try{const y=yield n.getHighlightIndexByMappingImgList({mappingImgList:e!=null?e:B,points:A.geometry.attributes.position.array}),g=yield n==null?void 0:n.highlightOriginPointCloud(t,y);return g&&((L=o==null?void 0:o.pointCloudInstance)==null||L.updateColor(g)),g}catch(y){console.error(y)}});return{selectedID:k,pointCloudBoxList:a,pointCloudSphereList:S,displayPointCloudList:z,displaySphereList:Z,displayLineList:U,selectedIDs:i,setPointCloudResult:d,setSelectedIDs:l,addPointCloudBox:C,addPointCloudSphere:P,setPointCloudSphereList:b,valid:R,selectedPointCloudBox:p,setPointCloudValid:v,addSelectedID:st,selectedAllBoxes:lt,topViewInstance:o,setTopViewInstance:_,sideViewInstance:E,setSideViewInstance:M,backViewInstance:j,setBackViewInstance:q,mainViewInstance:n,setMainViewInstance:G,polygonList:h,setPolygonList:m,lineList:c,setLineList:u,zoom:H,setZoom:Q,history:Y,toggleAttributesVisible:rt,hideAttributes:s,setHideAttributes:w,reRender:ut,attrPanelLayout:F,setAttrPanelLayout:$,syncAllViewPointCloudColor:J,defaultAttribute:T,setDefaultAttribute:W,pointCloudPattern:D,setPointCloudPattern:X,selectSpecAttr:at,globalPattern:x,setGlobalPattern:t=>{x!==t&&(ot(actionCreators.ChangeSave),tt(t),t===lbUtils.EPointCloudPattern.Detection&&O(void 0))},ptSegmentInstance:f,setPtSegmentInstance:O,segmentation:V,setSegmentation:et,clearAllDetectionInstance:dt,highlight2DDataList:B,setHighlight2DDataList:nt}},[R,i,a,S,h,c,o,E,j,n,H,s,F,T,D,x,f,V,B]),it=()=>{const p=a.filter(l=>s.includes(l.attribute)),{setSelectedIDs:C,reRender:P}=N,v=p.map(l=>l.id);v.length>0&&C(i.filter(l=>!v.includes(l))),P()};return React.useEffect(()=>{var p,C,P,v;it(),(C=(p=o==null?void 0:o.toolInstance)==null?void 0:p.setHiddenAttributes)==null||C.call(p,s),(v=(P=f==null?void 0:f.store)==null?void 0:P.setHiddenAttributes)==null||v.call(P,s)},[s]),React__default.default.createElement(PointCloudContext.Provider,{value:N},r)};exports.PointCloudContext=PointCloudContext,exports.PointCloudProvider=PointCloudProvider;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbUtils=require("@labelbee/lb-utils"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),ctx=require("../../store/ctx.js"),actionCreators=require("../../store/annotation/actionCreators.js");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,e,i)=>e in n?__defProp(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i,__spreadValues=(n,e)=>{for(var i in e||(e={}))__hasOwnProp.call(e,i)&&__defNormalProp(n,i,e[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(e))__propIsEnum.call(e,i)&&__defNormalProp(n,i,e[i]);return n},__spreadProps=(n,e)=>__defProps(n,__getOwnPropDescs(e)),__async=(n,e,i)=>new Promise((S,b)=>{var C=p=>{try{f(i.next(p))}catch(r){b(r)}},L=p=>{try{f(i.throw(p))}catch(r){b(r)}},f=p=>p.done?S(p.value):Promise.resolve(p.value).then(C,L);f((i=i.apply(n,e)).next())});const PointCloudContext=React__default.default.createContext({pointCloudBoxList:[],pointCloudSphereList:[],displayPointCloudList:[],displaySphereList:[],displayLineList:[],polygonList:[],lineList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudSphereList:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],addPointCloudSphere:()=>[],setPolygonList:()=>{},setLineList:()=>{},zoom:1,setZoom:()=>{},history:new lbAnnotation.ActionsHistory,hideAttributes:[],setHideAttributes:()=>{},toggleAttributesVisible:()=>{},reRender:()=>{},setAttrPanelLayout:()=>{},attrPanelLayout:"",syncAllViewPointCloudColor:()=>Promise.resolve(),defaultAttribute:"",setDefaultAttribute:()=>{},pointCloudPattern:lbAnnotation.EToolName.Rect,setPointCloudPattern:()=>{},selectSpecAttr:()=>{},globalPattern:lbUtils.EPointCloudPattern.Detection,setGlobalPattern:()=>{},setPtSegmentInstance:()=>{},segmentation:[],setSegmentation:()=>{},clearAllDetectionInstance:()=>{},highlight2DDataList:[],setHighlight2DDataList:()=>{},cuboidBoxIn2DView:!0,setCuboidBoxIn2DView:n=>{},imageSizes:{},cacheImageNodeSize:()=>{}}),PointCloudProvider=({children:n})=>{const[e,i]=React.useState([]),[S,b]=React.useState([]),[C,L]=React.useState([]),[f,p]=React.useState([]),[r,w]=React.useState([]),[B,W]=React.useState(!0),[O,X]=React.useState(!0),[R,Y]=React.useState(1),[l,E]=React.useState(),[H,j]=React.useState(),[z,N]=React.useState(),[s,M]=React.useState(),[q,$]=React.useState(""),[A,tt]=React.useState(lbAnnotation.EToolName.Rect),et=React.useRef(new lbAnnotation.ActionsHistory).current,[a,D]=React.useState([]),[G,ot]=React.useState(""),[_,nt]=React.useState(lbUtils.EPointCloudPattern.Detection),[g,T]=React.useState(void 0),[x,it]=React.useState([]),[V,st]=React.useState([]),[F,lt]=React.useState({}),rt=ctx.useDispatch(),at=P=>{const{imgNode:c,path:d}=P;d&&c&&lt(v=>__spreadProps(__spreadValues({},v),{[d]:{width:c.width,height:c.height}}))},Z=React.useMemo(()=>r.length===1?r[0]:"",[r]),k=React.useMemo(()=>{const P=e.find(t=>t.id===Z),c=t=>{const o=e.concat(t);return i(o),o},d=t=>{const o=S.concat(t);return b(o),o},v=t=>{W(t!==!1)},u=t=>{t===void 0&&w([]),typeof t=="string"&&w([t]),Array.isArray(t)&&w(Array.from(new Set(t)))},ct=t=>{r.includes(t)?u(r.filter(o=>o!==t)):u([...r,t])},dt=()=>{if(A===lbAnnotation.EToolName.Rect){const t=e.map(o=>o.id);u(t),l==null||l.pointCloud2dOperation.setSelectedIDs(t)}},pt=t=>{u(e.filter(o=>o.attribute===t).map(o=>o.id))},U=e.filter(t=>!a.includes(t.attribute)),J=S.filter(t=>!a.includes(t.attribute)),K=f.filter(t=>t.attribute&&!a.includes(t.attribute)),Pt=t=>{if(a.includes(t))D(a.filter(o=>o!==t));else{const o=a.concat(t);D(o)}},vt=(t=U,o=C,m=J,I=K,y=x)=>{var h;s==null||s.clearAllBox(),s==null||s.clearAllSphere(),l==null||l.updatePolygonList(t,o),l==null||l.updatePointList(m),l==null||l.updateLineList(I),s==null||s.generateBoxes(t),s==null||s.generateSpheres(m),(h=g==null?void 0:g.store)==null||h.updateCurrentSegment(y),Q(t)},ft=()=>{E(void 0),j(void 0),N(void 0),M(void 0)},Q=(t,o)=>__async(void 0,null,function*(){var m;if(!s)return;const I=s.pointCloudObject;if(!!I)try{const y=yield s.getHighlightIndexByMappingImgList({mappingImgList:o!=null?o:V,points:I.geometry.attributes.position.array}),h=yield s==null?void 0:s.highlightOriginPointCloud(t,y);return h&&((m=l==null?void 0:l.pointCloudInstance)==null||m.updateColor(h)),h}catch(y){console.error(y)}});return{selectedID:Z,pointCloudBoxList:e,pointCloudSphereList:S,displayPointCloudList:U,displaySphereList:J,displayLineList:K,selectedIDs:r,setPointCloudResult:i,setSelectedIDs:u,addPointCloudBox:c,addPointCloudSphere:d,setPointCloudSphereList:b,valid:B,selectedPointCloudBox:P,setPointCloudValid:v,addSelectedID:ct,selectedAllBoxes:dt,topViewInstance:l,setTopViewInstance:E,sideViewInstance:H,setSideViewInstance:j,backViewInstance:z,setBackViewInstance:N,mainViewInstance:s,setMainViewInstance:M,polygonList:C,setPolygonList:L,lineList:f,setLineList:p,zoom:R,setZoom:Y,history:et,toggleAttributesVisible:Pt,hideAttributes:a,setHideAttributes:D,reRender:vt,attrPanelLayout:G,setAttrPanelLayout:ot,syncAllViewPointCloudColor:Q,defaultAttribute:q,setDefaultAttribute:$,pointCloudPattern:A,setPointCloudPattern:tt,selectSpecAttr:pt,globalPattern:_,setGlobalPattern:t=>{_!==t&&(rt(actionCreators.ChangeSave),nt(t),t===lbUtils.EPointCloudPattern.Detection&&T(void 0))},ptSegmentInstance:g,setPtSegmentInstance:T,segmentation:x,setSegmentation:it,clearAllDetectionInstance:ft,highlight2DDataList:V,setHighlight2DDataList:st,cuboidBoxIn2DView:O,setCuboidBoxIn2DView:X,imageSizes:F,cacheImageNodeSize:at}},[B,r,e,S,C,f,l,H,z,s,R,a,G,q,A,_,g,x,V,O,F]),ut=()=>{const P=e.filter(u=>a.includes(u.attribute)),{setSelectedIDs:c,reRender:d}=k,v=P.map(u=>u.id);v.length>0&&c(r.filter(u=>!v.includes(u))),d()};return React.useEffect(()=>{var P,c,d,v;ut(),(c=(P=l==null?void 0:l.toolInstance)==null?void 0:P.setHiddenAttributes)==null||c.call(P,a),(v=(d=g==null?void 0:g.store)==null?void 0:d.setHiddenAttributes)==null||v.call(d,a)},[a]),React__default.default.createElement(PointCloudContext.Provider,{value:k},n)};exports.PointCloudContext=PointCloudContext,exports.PointCloudProvider=PointCloudProvider;
@@ -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"),useSphere=require("./useSphere.js"),ctx=require("../../../store/ctx.js"),StepUtils=require("../../../utils/StepUtils.js"),index=require("../../../utils/index.js"),actionCreators=require("../../../store/annotation/actionCreators.js"),antd=require("antd"),reactI18next=require("react-i18next"),useHistory=require("./useHistory.js"),usePolygon=require("./usePolygon.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,i)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,__spreadValues=(e,t)=>{for(var i in t||(t={}))__hasOwnProp.call(t,i)&&__defNormalProp(e,i,t[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(t))__propIsEnum.call(t,i)&&__defNormalProp(e,i,t[i]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__async=(e,t,i)=>new Promise((a,o)=>{var d=u=>{try{c(i.next(u))}catch(h){o(h)}},P=u=>{try{c(i.throw(u))}catch(h){o(h)}},c=u=>u.done?a(u.value):Promise.resolve(u.value).then(d,P);c((i=i.apply(e,t)).next())});const DEFAULT_SCOPE=5,DEFAULT_RADIUS=90,INTELLIGENT_FIT_MARGIN=.01,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},topViewPoint2PointCloud=(e,t,i,a,o)=>{const{x:d,y:P}=lbUtils.PointCloudUtils.transferCanvas2World(e,t),{defaultZ:c}=lbUtils.DEFAULT_SPHERE_PARAMS,u={center:{x:d,y:P,z:c},id:e.id},h=a?__spreadValues(__spreadValues({},a),u):__spreadProps(__spreadValues({},u),{attribute:"",valid:!0});return o&&Object.assign(h,o),h},topViewPolygon2PointCloud=(e,t,i,a,o,d)=>{let P=e.pointList.map(y=>lbUtils.PointCloudUtils.transferCanvas2World(y,t)),c=0,u=1,h={};if(i){const y=i.getSensesPointZAxisInPolygon(P,void 0,d);d&&y.fittedCoordinates.length>0&&(P=y.fittedCoordinates),c=(y.maxZ+y.minZ)/2,u=y.maxZ-y.minZ,h={count:y.zCount}}const[f,B,T]=P,U=lbAnnotation.MathUtils.getLineCenterPoint([f,T]),D=lbAnnotation.MathUtils.getLineLength(f,B),V=lbAnnotation.MathUtils.getLineLength(B,T),O=lbAnnotation.MathUtils.getRadiusFromQuadrangle(e.pointList);a&&(c=a.center.z,u=a.depth);const _={center:{x:U.x,y:U.y,z:c},width:d?V+INTELLIGENT_FIT_MARGIN:V,height:d?D+INTELLIGENT_FIT_MARGIN:D,depth:u,rotation:O,id:e.id},k=__spreadValues(a?__spreadValues(__spreadValues({},a),_):__spreadProps(__spreadValues({},_),{attribute:"",valid:!0}),h);o&&Object.assign(k,o);const I=P.map(y=>lbUtils.PointCloudUtils.transferWorld2Canvas(y,t));return{boxParams:k,newPointList:I}},sideViewPoint2PointCloud=(e,t,i)=>{const a={x:e.x-t.x,y:e.y-t.y};return __spreadProps(__spreadValues({},i),{center:{x:i.center.x-a.x,y:i.center.y,z:i.center.z-a.y}})},sideViewPolygon2PointCloud=(e,t,i,a)=>{const[o,d,P]=e.pointList,[c,u,h]=t.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([o,P]),B=lbAnnotation.MathUtils.getLineCenterPoint([c,h]),U={x:{x:f.x-B.x,y:f.y-B.y}.x,y:0,z:f.y-B.y},D=lbAnnotation.MathUtils.getLineLength(o,d),V=lbAnnotation.MathUtils.getLineLength(c,u),O=D-V,_=lbAnnotation.MathUtils.getLineLength(d,P),k=lbAnnotation.MathUtils.getLineLength(u,h),I=_-k,{newBoxParams:y}=a.getNewBoxBySideUpdate(U,I,O,i);return y},backViewPoint2PointCloud=(e,t,i)=>{const a={x:e.x-t.x,y:e.y-t.y};return __spreadProps(__spreadValues({},i),{center:{x:i.center.x,y:i.center.y-a.x,z:i.center.z-a.y}})},backViewPolygon2PointCloud=(e,t,i,a)=>{const[o,d,P]=e.pointList,[c,u,h]=t.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([o,P]),B=lbAnnotation.MathUtils.getLineCenterPoint([c,h]),U={x:{x:f.x-B.x,y:f.y-B.y}.x,y:0,z:f.y-B.y},D=lbAnnotation.MathUtils.getLineLength(o,d),V=lbAnnotation.MathUtils.getLineLength(c,u),O=D-V,_=lbAnnotation.MathUtils.getLineLength(d,P),k=lbAnnotation.MathUtils.getLineLength(u,h),I=_-k;let{newBoxParams:y}=a.getNewBoxByBackUpdate(U,I,O,i);return y},syncSideViewByPoint=(e,t,i,a,o)=>{var d;if(!i)return;const{toolInstance:P,pointCloudInstance:c}=i;c.loadPCDFile(a,(d=o==null?void 0:o.radius)!=null?d:DEFAULT_RADIUS);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,lbUtils.EPerspectiveView.Left);c.setInitCameraPosition(u);const{point2d:h,zoom:f}=c.getSphereSidePoint2DCoordinate(e);c.camera.zoom=f,c.camera.updateProjectionMatrix(),c.render(),P.initPosition(),P.zoomChangeOnCenter(f),P.setResult([__spreadProps(__spreadValues(__spreadValues({},t),h),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),P.setSelectedID(t.id)},synchronizeSideView=(e,t,i,a)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:d}=i;d.loadPCDFileByBox(a,e,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:P}=d.updateOrthoCamera(e,lbUtils.EPerspectiveView.Left);d.setInitCameraPosition(P);const{polygon2d:c,zoom:u}=d.getBoxSidePolygon2DCoordinate(e);d.camera.zoom=u,d.camera.updateProjectionMatrix(),d.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},syncBackViewByPoint=(e,t,i,a,o)=>{var d;if(!i)return;const{toolInstance:P,pointCloudInstance:c}=i;c.loadPCDFile(a,(d=o==null?void 0:o.radius)!=null?d:DEFAULT_RADIUS);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,lbUtils.EPerspectiveView.Back);c.setInitCameraPosition(u);const{point2d:h,zoom:f}=c.getSphereBackPoint2DCoordinate(e);c.camera.zoom=f,c.camera.updateProjectionMatrix(),c.render(),P.initPosition(),P.zoomChangeOnCenter(f),P.setResult([__spreadProps(__spreadValues(__spreadValues({},t),h),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),P.setSelectedID(t.id)},synchronizeBackView=(e,t,i,a)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:d}=i;d.loadPCDFileByBox(a,e,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:P}=d.updateOrthoCamera(e,lbUtils.EPerspectiveView.Back);d.setInitCameraPosition(P);const{polygon2d:c,zoom:u}=d.getBoxBackPolygon2DCoordinate(e);d.camera.zoom=u,d.camera.updateProjectionMatrix(),d.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},syncTopViewByPoint=(e,t,i,a)=>{if(!i||!a)return;a.generateSphere(e),a.updateCameraBySphere(e,lbUtils.EPerspectiveView.Top),a.render();const{toolInstance:o,pointCloudInstance:d}=i,{point2d:P}=d.getSphereTopPoint2DCoordinate(e),c=[...o.pointList].map(u=>u.id===t.id?__spreadProps(__spreadValues(__spreadValues({},t),P),{valid:e.valid,textAttribute:"",attribute:e.attribute}):u);o.setResult(c),o.setSelectedID(t.id)},synchronizeTopView=(e,t,i,a)=>{var o,d;if(!i||!a)return;a.generateBox(e,t.id),a.render();const{pointCloud2dOperation:P,pointCloudInstance:c}=i,{polygon2d:u}=c.getBoxTopPolygon2DCoordinate(e),h=[...P.polygonList],f=h.find(B=>B.id===t.id);f?(f.pointList=u,f.valid=(o=e.valid)!=null?o:!0):h.push({id:t.id,pointList:u,textAttribute:"",isRect:!0,valid:(d=e.valid)!=null?d:!0}),P.setResultAndSelectedID(h,t.id)},usePointCloudViews=()=>{const e=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:t,sideViewInstance:i,backViewInstance:a,mainViewInstance:o,addPointCloudBox:d,addPointCloudSphere:P,setSelectedIDs:c,selectedIDs:u,pointCloudBoxList:h,pointCloudSphereList:f,hideAttributes:B,setHighlight2DDataList:T}=e,{addHistory:U,initHistory:D,pushHistoryUnderUpdatePolygon:V,pushHistoryUnderUpdateLine:O}=useHistory.useHistory(),{selectedPolygon:_}=usePolygon.usePolygon(),{updateSelectedBox:k,updateSelectedBoxes:I,getPointCloudByID:y}=useSingleBox.useSingleBox(),{getPointCloudSphereByID:$,updatePointCloudSphere:Z,selectedSphere:E}=useSphere.useSphere(),{currentData:j,config:m}=ctx.useSelector(n=>{const{stepList:s,step:p,imgList:l,imgIndex:r}=n.annotation;return{currentData:l[r],config:index.jsonParser(StepUtils.getCurrentStepInfo(p,s).config)}}),A=ctx.useDispatch(),{selectedBox:w}=useSingleBox.useSingleBox(),{t:tt}=reactI18next.useTranslation(),G=w==null?void 0:w.info;if(!t||!i||!a)return{topViewAddSphere:()=>{},topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:F}=t,ot=n=>{o==null||o.generateBox(n),o==null||o.controls.update(),o==null||o.render()},et=n=>{o==null||o.generateSphere(n),o==null||o.controls.update(),o==null||o.render()},it=({newPoint:n,size:s,zoom:p,trackConfigurable:l})=>{var r;const C={attribute:(r=t.toolInstance.defaultAttribute)!=null?r:""};l===!0&&Object.assign(C,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:[],extraSphereList:f})});const g=topViewPoint2PointCloud(n,s,F,void 0,C);c(n.id);const x=P(g);N(PointCloudView.Top,n,g,p,x,m),U({newSphereParams:g})},nt=({polygon:n,size:s,imgList:p,trackConfigurable:l,zoom:r,intelligentFit:C})=>{var g,x;const v={attribute:(g=t.toolInstance.defaultAttribute)!=null?g:""};l===!0&&Object.assign(v,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:h,extraSphereList:f})});const b=t==null?void 0:t.toolInstance,S=__spreadValues({},n);let{boxParams:L,newPointList:z}=topViewPolygon2PointCloud(S,s,F,void 0,v,C);if(L=A(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[L],stepConfig:m,action:"viewUpdateBox"}))[0],(m==null?void 0:m.lowerLimitPointsNumInBox)&&typeof L.count=="number"&&L.count<m.lowerLimitPointsNumInBox){antd.message.info(tt("LowerLimitPointsNumInBox",{num:m.lowerLimitPointsNumInBox})),b.deletePolygon(L.id);return}C&&(z==null?void 0:z.length)&&(S.pointList=z);const q=B.includes(S.attribute),R=d(L),W=(x=e==null?void 0:e.polygonList)!=null?x:[];t==null||t.updatePolygonList(R!=null?R:[],W),q?c([]):(c(L.id),b.selection.setSelectedIDs(S.id),M({omitView:PointCloudView.Top,polygon:S,boxParams:L,zoom:r,newPointCloudBoxList:R}),C&&synchronizeTopView(L,S,t,o)),U({newBoxParams:L})},st=({newSelectedBox:n,newPointCloudList:s,newSelectedSphere:p,newSphereList:l})=>{var r;const C=t==null?void 0:t.toolInstance;if(!(u.length===0||!C)){if(n||(w==null?void 0:w.info)){const g=n!=null?n:w==null?void 0:w.info;(r=C==null?void 0:C.selection)==null||r.setSelectedIDs(u[0]);const x=C.selectedPolygon;if(u.length===1&&g){M({omitView:PointCloudView.Top,polygon:x,boxParams:g,newPointCloudBoxList:s});return}}if((p||E)&&u.length===1){const g=p!=null?p:E;C.setSelectedID(u[0]);const x=C.selectedPoint;g&&N(PointCloudView.Top,x,g,void 0,l,m)}}},Q=(n,s,p)=>{if(G){let l,r;switch(p){case PointCloudView.Back:l=backViewPolygon2PointCloud;break;case PointCloudView.Side:l=sideViewPolygon2PointCloud;break;default:l=sideViewPolygon2PointCloud;break}r=l(n,s,G,i.pointCloudInstance);const g=A(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[r],stepConfig:m,action:"viewUpdateBox"}))[0],x=r.valid!==g.valid;if(r=g,o){const{count:b}=o.getSensesPointZAxisInPolygon(lbAnnotation.getCuboidFromPointCloudBox(r).polygonPointList,[r.center.z-r.depth/2,r.center.z+r.depth/2]);r=__spreadProps(__spreadValues({},r),{count:b})}const v=k(r);return r=v.find(b=>b.id===r.id),M({omitView:x?void 0:p,polygon:n,boxParams:r,newPointCloudBoxList:v}),v}},X=(n,s,p)=>{if(E){let l,r;switch(p){case PointCloudView.Back:l=backViewPoint2PointCloud;break;case PointCloudView.Side:l=sideViewPoint2PointCloud;break;default:l=sideViewPoint2PointCloud;break}r=l(n,s,E);const C=Z(r);return N(p,n,r,void 0,C,m),C}},rt=(n,s)=>{X(n,s,PointCloudView.Side)},lt=(n,s)=>{X(n,s,PointCloudView.Back)},at=(n,s)=>{Q(n,s,PointCloudView.Side)},dt=(n,s)=>{Q(n,s,PointCloudView.Back)},ct=(n,s)=>{O(n)},ut=(n,s)=>{const p=$(n.id),l=topViewPoint2PointCloud(n,s,F,p),r=Z(l);N(PointCloudView.Top,n,l,void 0,r,m)},pt=(n,s)=>{if(_){const l=n[0].newPolygon;l.pointList=l.pointList.map(r=>lbUtils.PointCloudUtils.transferCanvas2World(r,s)),V(n[0].newPolygon);return}let p=n.map(({newPolygon:l})=>{const r=y(l.id),{boxParams:C}=topViewPolygon2PointCloud(l,s,t.pointCloudInstance,r);return C});if(p=A(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:p,stepConfig:m,action:"viewUpdateBox"})),p.length===1){const{newPolygon:l}=n[0],r=I(p);M({polygon:l,boxParams:p[0],newPointCloudBoxList:r})}else{const l=I(p);l&&e.syncAllViewPointCloudColor(l)}},Pt=n=>{var s,p,l,r,C;if(w){const g=Number(n.widthDefault),x=Number(n.depthDefault),v=Number(n.heightDefault),b=w==null?void 0:w.info.trackID,L=((s=t==null?void 0:t.toolInstance)==null?void 0:s.polygonList).find(H=>(H==null?void 0:H.trackID)===b),z={width:(l=(p=t==null?void 0:t.toolInstance)==null?void 0:p.basicImgInfo)==null?void 0:l.width,height:(C=(r=t==null?void 0:t.toolInstance)==null?void 0:r.basicImgInfo)==null?void 0:C.height},Y=L.pointList.map(H=>lbUtils.PointCloudUtils.transferCanvas2World(H,z)),q=lbAnnotation.MathUtils.getModifiedRectangleCoordinates(Y,v,g),R=q[0],W=q[2],J=lbAnnotation.MathUtils.getLineCenterPoint([R,W]),Ct=w.info.center.z-w.info.depth/2,K=__spreadProps(__spreadValues({},w.info),{center:{x:J.x,y:J.y,z:Ct+x/2},width:g,height:v,depth:x,valid:!0}),gt=I([K]);M({omitView:PointCloudView["3D"],polygon:L,boxParams:K,newPointCloudBoxList:gt})}},N=(n,s,p,l,r,C)=>__async(void 0,null,function*(){const g=j==null?void 0:j.url,x={[PointCloudView.Side]:()=>{syncSideViewByPoint(p,s,i,g,C)},[PointCloudView.Back]:()=>{a&&syncBackViewByPoint(p,s,a,g,C)},[PointCloudView.Top]:()=>{syncTopViewByPoint(p,s,t,o)}};Object.keys(x).forEach(v=>{v!==n&&x[v]()}),l&&(o==null||o.updateCameraZoom(l)),et(p)}),M=n=>__async(void 0,null,function*(){const{omitView:s,polygon:p,boxParams:l,zoom:r,newPointCloudBoxList:C}=n,g=j==null?void 0:j.url;C&&(yield e.syncAllViewPointCloudColor(C));const x={[PointCloudView.Side]:()=>{synchronizeSideView(l,p,i,g)},[PointCloudView.Back]:()=>{a&&synchronizeBackView(l,p,a,g)},[PointCloudView.Top]:()=>{synchronizeTopView(l,p,t,o)}};Object.keys(x).forEach(v=>{v!==s&&x[v]()}),r&&(o==null||o.updateCameraZoom(r)),ot(l)});return{topViewAddSphere:it,topViewAddBox:nt,topViewSelectedChanged:st,topViewUpdatePoint:ut,sideViewUpdatePoint:rt,backViewUpdatePoint:lt,topViewUpdateBox:pt,topViewUpdateLine:ct,sideViewUpdateBox:at,backViewUpdateBox:dt,pointCloudBoxListUpdated:n=>{t.updatePolygonList(n),o==null||o.generateBoxes(n)},initPointCloud3d:n=>{if(!o)return;const s=lbUtils.PointCloudUtils.getDefaultOrthographicParams(n);o.initOrthographicCamera(s),o.initRenderer(),o.render()},updatePointCloudData:(...n)=>__async(void 0,[...n],function*(s=j){var p,l,r,C,g,x;if(!(s==null?void 0:s.url)||!o)return;T([]),actionCreators.SetPointCloudLoading(A,!0),actionCreators.SetLoadPCDFileLoading(A,!0),yield o.loadPCDFile(s.url,(p=m==null?void 0:m.radius)!=null?p:DEFAULT_RADIUS),o==null||o.clearAllBox(),o==null||o.clearAllSphere();let v=[],b=[],S=[],L=[];o.updateTopCamera();const z=(r=(l=index.jsonParser(s.result))==null?void 0:l.valid)!=null?r:!0;e.setPointCloudValid(z),(C=e.sideViewInstance)==null||C.clearAllData(),(g=e.backViewInstance)==null||g.clearAllData(),t.updateData(s.url,s.result,{radius:(x=m==null?void 0:m.radius)!=null?x:DEFAULT_RADIUS}),s.result&&(v=lbUtils.PointCloudUtils.getBoxParamsFromResultList(s.result),S=lbUtils.PointCloudUtils.getPolygonListFromResultList(s.result),b=lbUtils.PointCloudUtils.getLineListFromResultList(s.result),L=lbUtils.PointCloudUtils.getSphereParamsFromResultList(s.result),o==null||o.generateBoxes(v),o==null||o.generateSpheres(L),yield e.syncAllViewPointCloudColor(v,[])),D({pointCloudBoxList:v,polygonList:S,lineList:b,pointCloudSphereList:L}),actionCreators.SetPointCloudLoading(A,!1),actionCreators.SetLoadPCDFileLoading(A,!1)}),updateViewsByDefaultSize:Pt}};exports.syncBackViewByPoint=syncBackViewByPoint,exports.syncSideViewByPoint=syncSideViewByPoint,exports.syncTopViewByPoint=syncTopViewByPoint,exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,exports.topViewPoint2PointCloud=topViewPoint2PointCloud,exports.topViewPolygon2PointCloud=topViewPolygon2PointCloud,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"),useSphere=require("./useSphere.js"),ctx=require("../../../store/ctx.js"),StepUtils=require("../../../utils/StepUtils.js"),index=require("../../../utils/index.js"),actionCreators=require("../../../store/annotation/actionCreators.js"),antd=require("antd"),reactI18next=require("react-i18next"),useHistory=require("./useHistory.js"),usePolygon=require("./usePolygon.js"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,i)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,__spreadValues=(e,t)=>{for(var i in t||(t={}))__hasOwnProp.call(t,i)&&__defNormalProp(e,i,t[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(t))__propIsEnum.call(t,i)&&__defNormalProp(e,i,t[i]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__async=(e,t,i)=>new Promise((a,o)=>{var d=u=>{try{c(i.next(u))}catch(h){o(h)}},P=u=>{try{c(i.throw(u))}catch(h){o(h)}},c=u=>u.done?a(u.value):Promise.resolve(u.value).then(d,P);c((i=i.apply(e,t)).next())});const DEFAULT_SCOPE=5,DEFAULT_RADIUS=90,INTELLIGENT_FIT_MARGIN=.01,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},topViewPoint2PointCloud=(e,t,i,a,o)=>{const{x:d,y:P}=lbUtils.PointCloudUtils.transferCanvas2World(e,t),{defaultZ:c}=lbUtils.DEFAULT_SPHERE_PARAMS,u={center:{x:d,y:P,z:c},id:e.id},h=a?__spreadValues(__spreadValues({},a),u):__spreadProps(__spreadValues({},u),{attribute:"",valid:!0});return o&&Object.assign(h,o),h},topViewPolygon2PointCloud=(e,t,i,a,o,d)=>{let P=e.pointList.map(L=>lbUtils.PointCloudUtils.transferCanvas2World(L,t)),c=0,u=1,h={};if(i){const L=i.getSensesPointZAxisInPolygon(P,void 0,d);d&&L.fittedCoordinates.length>0&&(P=L.fittedCoordinates),c=(L.maxZ+L.minZ)/2,u=L.maxZ-L.minZ,h={count:L.zCount}}const[v,b,T]=P,V=lbAnnotation.MathUtils.getLineCenterPoint([v,T]),_=lbAnnotation.MathUtils.getLineLength(v,b),U=lbAnnotation.MathUtils.getLineLength(b,T),z=lbAnnotation.MathUtils.getRadiusFromQuadrangle(e.pointList);a&&(c=a.center.z,u=a.depth);const O={center:{x:V.x,y:V.y,z:c},width:d?U+INTELLIGENT_FIT_MARGIN:U,height:d?_+INTELLIGENT_FIT_MARGIN:_,depth:u,rotation:z,id:e.id},k=__spreadValues(a?__spreadValues(__spreadValues({},a),O):__spreadProps(__spreadValues({},O),{attribute:"",valid:!0}),h);o&&Object.assign(k,o);const A=P.map(L=>lbUtils.PointCloudUtils.transferWorld2Canvas(L,t));return{boxParams:k,newPointList:A}},sideViewPoint2PointCloud=(e,t,i)=>{const a={x:e.x-t.x,y:e.y-t.y};return __spreadProps(__spreadValues({},i),{center:{x:i.center.x-a.x,y:i.center.y,z:i.center.z-a.y}})},sideViewPolygon2PointCloud=(e,t,i,a)=>{const[o,d,P]=e.pointList,[c,u,h]=t.pointList,v=lbAnnotation.MathUtils.getLineCenterPoint([o,P]),b=lbAnnotation.MathUtils.getLineCenterPoint([c,h]),V={x:{x:v.x-b.x,y:v.y-b.y}.x,y:0,z:v.y-b.y},_=lbAnnotation.MathUtils.getLineLength(o,d),U=lbAnnotation.MathUtils.getLineLength(c,u),z=_-U,O=lbAnnotation.MathUtils.getLineLength(d,P),k=lbAnnotation.MathUtils.getLineLength(u,h),A=O-k,{newBoxParams:L}=a.getNewBoxBySideUpdate(V,A,z,i);return L},backViewPoint2PointCloud=(e,t,i)=>{const a={x:e.x-t.x,y:e.y-t.y};return __spreadProps(__spreadValues({},i),{center:{x:i.center.x,y:i.center.y-a.x,z:i.center.z-a.y}})},backViewPolygon2PointCloud=(e,t,i,a)=>{const[o,d,P]=e.pointList,[c,u,h]=t.pointList,v=lbAnnotation.MathUtils.getLineCenterPoint([o,P]),b=lbAnnotation.MathUtils.getLineCenterPoint([c,h]),V={x:{x:v.x-b.x,y:v.y-b.y}.x,y:0,z:v.y-b.y},_=lbAnnotation.MathUtils.getLineLength(o,d),U=lbAnnotation.MathUtils.getLineLength(c,u),z=_-U,O=lbAnnotation.MathUtils.getLineLength(d,P),k=lbAnnotation.MathUtils.getLineLength(u,h),A=O-k;let{newBoxParams:L}=a.getNewBoxByBackUpdate(V,A,z,i);return L},syncSideViewByPoint=(e,t,i,a,o)=>{var d;if(!i)return;const{toolInstance:P,pointCloudInstance:c}=i;c.loadPCDFile(a,(d=o==null?void 0:o.radius)!=null?d:DEFAULT_RADIUS);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,lbUtils.EPerspectiveView.Left);c.setInitCameraPosition(u);const{point2d:h,zoom:v}=c.getSphereSidePoint2DCoordinate(e);c.camera.zoom=v,c.camera.updateProjectionMatrix(),c.render(),P.initPosition(),P.zoomChangeOnCenter(v),P.setResult([__spreadProps(__spreadValues(__spreadValues({},t),h),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),P.setSelectedID(t.id)},synchronizeSideView=(e,t,i,a)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:d}=i;d.loadPCDFileByBox(a,e,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:P}=d.updateOrthoCamera(e,lbUtils.EPerspectiveView.Left);d.setInitCameraPosition(P);const{polygon2d:c,zoom:u}=d.getBoxSidePolygon2DCoordinate(e);d.camera.zoom=u,d.camera.updateProjectionMatrix(),d.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},syncBackViewByPoint=(e,t,i,a,o)=>{var d;if(!i)return;const{toolInstance:P,pointCloudInstance:c}=i;c.loadPCDFile(a,(d=o==null?void 0:o.radius)!=null?d:DEFAULT_RADIUS);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,lbUtils.EPerspectiveView.Back);c.setInitCameraPosition(u);const{point2d:h,zoom:v}=c.getSphereBackPoint2DCoordinate(e);c.camera.zoom=v,c.camera.updateProjectionMatrix(),c.render(),P.initPosition(),P.zoomChangeOnCenter(v),P.setResult([__spreadProps(__spreadValues(__spreadValues({},t),h),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),P.setSelectedID(t.id)},synchronizeBackView=(e,t,i,a)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:d}=i;d.loadPCDFileByBox(a,e,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:P}=d.updateOrthoCamera(e,lbUtils.EPerspectiveView.Back);d.setInitCameraPosition(P);const{polygon2d:c,zoom:u}=d.getBoxBackPolygon2DCoordinate(e);d.camera.zoom=u,d.camera.updateProjectionMatrix(),d.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},syncTopViewByPoint=(e,t,i,a)=>{if(!i||!a)return;a.generateSphere(e),a.updateCameraBySphere(e,lbUtils.EPerspectiveView.Top),a.render();const{toolInstance:o,pointCloudInstance:d}=i,{point2d:P}=d.getSphereTopPoint2DCoordinate(e),c=[...o.pointList].map(u=>u.id===t.id?__spreadProps(__spreadValues(__spreadValues({},t),P),{valid:e.valid,textAttribute:"",attribute:e.attribute}):u);o.setResult(c),o.setSelectedID(t.id)},synchronizeTopView=(e,t,i,a)=>{var o,d;if(!i||!a)return;a.generateBox(e,t.id),a.render();const{pointCloud2dOperation:P,pointCloudInstance:c}=i,{polygon2d:u}=c.getBoxTopPolygon2DCoordinate(e),h=[...P.polygonList],v=h.find(b=>b.id===t.id);v?(v.pointList=u,v.valid=(o=e.valid)!=null?o:!0):h.push({id:t.id,pointList:u,textAttribute:"",isRect:!0,valid:(d=e.valid)!=null?d:!0}),P.setResultAndSelectedID(h,t.id)},usePointCloudViews=()=>{const e=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:t,sideViewInstance:i,backViewInstance:a,mainViewInstance:o,addPointCloudBox:d,addPointCloudSphere:P,setSelectedIDs:c,selectedIDs:u,pointCloudBoxList:h,pointCloudSphereList:v,hideAttributes:b,setHighlight2DDataList:T,cuboidBoxIn2DView:V,imageSizes:_}=e,{addHistory:U,initHistory:z,pushHistoryUnderUpdatePolygon:O,pushHistoryUnderUpdateLine:k}=useHistory.useHistory(),{selectedPolygon:A}=usePolygon.usePolygon(),{getPointCloudSphereByID:L,updatePointCloudSphere:X,selectedSphere:q}=useSphere.useSphere(),{currentData:j,config:m}=ctx.useSelector(n=>{const{stepList:s,step:p,imgList:r,imgIndex:l}=n.annotation;return{currentData:r[l],config:index.jsonParser(StepUtils.getCurrentStepInfo(p,s).config)}}),R=ctx.useDispatch(),W=n=>{if(!V){const{mappingImgList:s=[]}=j,p=s.map(r=>index.getRectPointCloudBox({pointCloudBox:n,mappingData:r,imageSizes:_}));Object.assign(n,{rects:p.filter(r=>r!==void 0)})}},{selectedBox:S,updateSelectedBox:ot,updateSelectedBoxes:Z,getPointCloudByID:et}=useSingleBox.useSingleBox({generateRects:W}),{t:nt}=reactI18next.useTranslation(),Y=S==null?void 0:S.info;if(!t||!i||!a)return{topViewAddSphere:()=>{},topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:G}=t,it=n=>{o==null||o.generateBox(n),o==null||o.controls.update(),o==null||o.render()},st=n=>{o==null||o.generateSphere(n),o==null||o.controls.update(),o==null||o.render()},rt=({newPoint:n,size:s,zoom:p,trackConfigurable:r})=>{var l;const C={attribute:(l=t.toolInstance.defaultAttribute)!=null?l:""};r===!0&&Object.assign(C,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:[],extraSphereList:v})});const g=topViewPoint2PointCloud(n,s,G,void 0,C);c(n.id);const f=P(g);H(PointCloudView.Top,n,g,p,f,m),U({newSphereParams:g})},lt=({polygon:n,size:s,imgList:p,trackConfigurable:r,zoom:l,intelligentFit:C})=>{var g,f;const x={attribute:(g=t.toolInstance.defaultAttribute)!=null?g:""};r===!0&&Object.assign(x,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:h,extraSphereList:v})});const B=t==null?void 0:t.toolInstance,w=__spreadValues({},n);let{boxParams:y,newPointList:D}=topViewPolygon2PointCloud(w,s,G,void 0,x,C);if(y=R(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[y],stepConfig:m,action:"viewUpdateBox"}))[0],(m==null?void 0:m.lowerLimitPointsNumInBox)&&typeof y.count=="number"&&y.count<m.lowerLimitPointsNumInBox){antd.message.info(nt("LowerLimitPointsNumInBox",{num:m.lowerLimitPointsNumInBox})),B.deletePolygon(y.id);return}C&&(D==null?void 0:D.length)&&(w.pointList=D);const I=b.includes(w.attribute);W(y);const N=d(y),Q=(f=e==null?void 0:e.polygonList)!=null?f:[];t==null||t.updatePolygonList(N!=null?N:[],Q),I?c([]):(c(y.id),B.selection.setSelectedIDs(w.id),E({omitView:PointCloudView.Top,polygon:w,boxParams:y,zoom:l,newPointCloudBoxList:N}),C&&synchronizeTopView(y,w,t,o)),U({newBoxParams:y})},at=n=>{const{boxID:s,imageName:p,width:r,height:l,x:C,y:g}=n,f=h.find(x=>x.id===s);if(f==null?void 0:f.rects){const{rects:x=[]}=f,B=x.find(w=>w.imageName===p);if(B){let w=x;const y=__spreadProps(__spreadValues({},B),{width:r,height:l,x:C,y:g});w=x.map(I=>I===B?y:I);const D=__spreadProps(__spreadValues({},f),{rects:w}),M=h.map(I=>I===f?D:I);return t==null||t.updatePolygonList(M!=null?M:[]),M}}},dt=({newSelectedBox:n,newPointCloudList:s,newSelectedSphere:p,newSphereList:r})=>{var l;const C=t==null?void 0:t.toolInstance;if(!(u.length===0||!C)){if(n||(S==null?void 0:S.info)){const g=n!=null?n:S==null?void 0:S.info;(l=C==null?void 0:C.selection)==null||l.setSelectedIDs(u[0]);const f=C.selectedPolygon;if(u.length===1&&g){E({omitView:PointCloudView.Top,polygon:f,boxParams:g,newPointCloudBoxList:s});return}}if((p||q)&&u.length===1){const g=p!=null?p:q;C.setSelectedID(u[0]);const f=C.selectedPoint;g&&H(PointCloudView.Top,f,g,void 0,r,m)}}},J=(n,s,p)=>{if(Y){let r,l;switch(p){case PointCloudView.Back:r=backViewPolygon2PointCloud;break;case PointCloudView.Side:r=sideViewPolygon2PointCloud;break;default:r=sideViewPolygon2PointCloud;break}l=r(n,s,Y,i.pointCloudInstance);const g=R(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:[l],stepConfig:m,action:"viewUpdateBox"}))[0],f=l.valid!==g.valid;if(l=g,o){const{count:B}=o.getSensesPointZAxisInPolygon(lbAnnotation.getCuboidFromPointCloudBox(l).polygonPointList,[l.center.z-l.depth/2,l.center.z+l.depth/2]);l=__spreadProps(__spreadValues({},l),{count:B})}const x=ot(l);return l=x.find(B=>B.id===l.id),E({omitView:f?void 0:p,polygon:n,boxParams:l,newPointCloudBoxList:x}),x}},K=(n,s,p)=>{if(q){let r,l;switch(p){case PointCloudView.Back:r=backViewPoint2PointCloud;break;case PointCloudView.Side:r=sideViewPoint2PointCloud;break;default:r=sideViewPoint2PointCloud;break}l=r(n,s,q);const C=X(l);return H(p,n,l,void 0,C,m),C}},ct=(n,s)=>{K(n,s,PointCloudView.Side)},ut=(n,s)=>{K(n,s,PointCloudView.Back)},pt=(n,s)=>{J(n,s,PointCloudView.Side)},Pt=(n,s)=>{J(n,s,PointCloudView.Back)},Ct=(n,s)=>{k(n)},gt=(n,s)=>{const p=L(n.id),r=topViewPoint2PointCloud(n,s,G,p),l=X(r);H(PointCloudView.Top,n,r,void 0,l,m)},ht=(n,s)=>{if(A){const r=n[0].newPolygon;r.pointList=r.pointList.map(l=>lbUtils.PointCloudUtils.transferCanvas2World(l,s)),O(n[0].newPolygon);return}let p=n.map(({newPolygon:r})=>{const l=et(r.id),{boxParams:C}=topViewPolygon2PointCloud(r,s,t.pointCloudInstance,l);return C});if(p=R(actionCreators.PreDataProcess({tool:lbAnnotation.EPointCloudName.PointCloud,dataList:p,stepConfig:m,action:"viewUpdateBox"})),p.length===1){const{newPolygon:r}=n[0],l=Z(p);E({polygon:r,boxParams:p[0],newPointCloudBoxList:l})}else{const r=Z(p);r&&e.syncAllViewPointCloudColor(r)}},ft=n=>{var s,p,r,l,C;if(S){const g=Number(n.widthDefault),f=Number(n.depthDefault),x=Number(n.heightDefault),B=S==null?void 0:S.info.trackID,y=((s=t==null?void 0:t.toolInstance)==null?void 0:s.polygonList).find(F=>(F==null?void 0:F.trackID)===B),D={width:(r=(p=t==null?void 0:t.toolInstance)==null?void 0:p.basicImgInfo)==null?void 0:r.width,height:(C=(l=t==null?void 0:t.toolInstance)==null?void 0:l.basicImgInfo)==null?void 0:C.height},M=y.pointList.map(F=>lbUtils.PointCloudUtils.transferCanvas2World(F,D)),I=lbAnnotation.MathUtils.getModifiedRectangleCoordinates(M,x,g),N=I[0],Q=I[2],$=lbAnnotation.MathUtils.getLineCenterPoint([N,Q]),xt=S.info.center.z-S.info.depth/2,tt=__spreadProps(__spreadValues({},S.info),{center:{x:$.x,y:$.y,z:xt+f/2},width:g,height:x,depth:f,valid:!0}),vt=Z([tt]);E({omitView:PointCloudView["3D"],polygon:y,boxParams:tt,newPointCloudBoxList:vt})}},H=(n,s,p,r,l,C)=>__async(void 0,null,function*(){const g=j==null?void 0:j.url,f={[PointCloudView.Side]:()=>{syncSideViewByPoint(p,s,i,g,C)},[PointCloudView.Back]:()=>{a&&syncBackViewByPoint(p,s,a,g,C)},[PointCloudView.Top]:()=>{syncTopViewByPoint(p,s,t,o)}};Object.keys(f).forEach(x=>{x!==n&&f[x]()}),r&&(o==null||o.updateCameraZoom(r)),st(p)}),E=n=>__async(void 0,null,function*(){const{omitView:s,polygon:p,boxParams:r,zoom:l,newPointCloudBoxList:C}=n,g=j==null?void 0:j.url;C&&(yield e.syncAllViewPointCloudColor(C));const f={[PointCloudView.Side]:()=>{synchronizeSideView(r,p,i,g)},[PointCloudView.Back]:()=>{a&&synchronizeBackView(r,p,a,g)},[PointCloudView.Top]:()=>{synchronizeTopView(r,p,t,o)}};Object.keys(f).forEach(x=>{x!==s&&f[x]()}),l&&(o==null||o.updateCameraZoom(l)),it(r)});return{topViewAddSphere:rt,topViewAddBox:lt,topViewSelectedChanged:dt,topViewUpdatePoint:gt,sideViewUpdatePoint:ct,backViewUpdatePoint:ut,topViewUpdateBox:ht,topViewUpdateLine:Ct,sideViewUpdateBox:pt,backViewUpdateBox:Pt,pointCloudBoxListUpdated:n=>{t.updatePolygonList(n),o==null||o.generateBoxes(n)},initPointCloud3d:n=>{if(!o)return;const s=lbUtils.PointCloudUtils.getDefaultOrthographicParams(n);o.initOrthographicCamera(s),o.initRenderer(),o.render()},updatePointCloudData:(...n)=>__async(void 0,[...n],function*(s=j){var p,r,l,C,g,f;if(!(s==null?void 0:s.url)||!o)return;T([]),actionCreators.SetPointCloudLoading(R,!0),actionCreators.SetLoadPCDFileLoading(R,!0),yield o.loadPCDFile(s.url,(p=m==null?void 0:m.radius)!=null?p:DEFAULT_RADIUS),o==null||o.clearAllBox(),o==null||o.clearAllSphere();let x=[],B=[],w=[],y=[];o.updateTopCamera();const D=(l=(r=index.jsonParser(s.result))==null?void 0:r.valid)!=null?l:!0;e.setPointCloudValid(D),(C=e.sideViewInstance)==null||C.clearAllData(),(g=e.backViewInstance)==null||g.clearAllData(),t.updateData(s.url,s.result,{radius:(f=m==null?void 0:m.radius)!=null?f:DEFAULT_RADIUS}),s.result&&(x=lbUtils.PointCloudUtils.getBoxParamsFromResultList(s.result),w=lbUtils.PointCloudUtils.getPolygonListFromResultList(s.result),B=lbUtils.PointCloudUtils.getLineListFromResultList(s.result),y=lbUtils.PointCloudUtils.getSphereParamsFromResultList(s.result),o==null||o.generateBoxes(x),o==null||o.generateSpheres(y),yield e.syncAllViewPointCloudColor(x,[])),z({pointCloudBoxList:x,polygonList:w,lineList:B,pointCloudSphereList:y}),actionCreators.SetPointCloudLoading(R,!1),actionCreators.SetLoadPCDFileLoading(R,!1)}),updateViewsByDefaultSize:ft,generateRects:W,update2DViewRect:at}};exports.syncBackViewByPoint=syncBackViewByPoint,exports.syncSideViewByPoint=syncSideViewByPoint,exports.syncTopViewByPoint=syncTopViewByPoint,exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,exports.topViewPoint2PointCloud=topViewPoint2PointCloud,exports.topViewPolygon2PointCloud=topViewPolygon2PointCloud,exports.usePointCloudViews=usePointCloudViews;
@@ -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"),useHistory=require("./useHistory.js"),usePolygon=require("./usePolygon.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,l,n)=>l in e?__defProp(e,l,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[l]=n,__spreadValues=(e,l)=>{for(var n in l||(l={}))__hasOwnProp.call(l,n)&&__defNormalProp(e,n,l[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(l))__propIsEnum.call(l,n)&&__defNormalProp(e,n,l[n]);return e},__spreadProps=(e,l)=>__defProps(e,__getOwnPropDescs(l));const{ESortDirection}=lbAnnotation.cAnnotation,useSingleBox=()=>{const{pointCloudBoxList:e,setPointCloudResult:l,topViewInstance:n,backViewInstance:P,sideViewInstance:y,selectedIDs:c,selectedID:x,mainViewInstance:s,setSelectedIDs:I,syncAllViewPointCloudColor:C,polygonList:O,pointCloudPattern:v}=React.useContext(PointCloudContext.PointCloudContext),{selectedPolygon:a,updateSelectedPolygon:m,updatePolygonValidByID:h,deletePolygon:D}=usePolygon.usePolygon(),{pushHistoryWithList:g}=useHistory.useHistory(),d=React.useMemo(()=>{const o=e.findIndex(t=>t.id===x);if(o>-1)return{info:e[o],index:o}},[x,e]),B=React.useCallback(o=>{if(d==null?void 0:d.info){e.splice(d.index,1,___default.default.merge(d.info,o));const t=___default.default.cloneDeep(e);return l(t),g({pointCloudBoxList:t}),t}return e},[x,e]),V=React.useCallback((o,t)=>{const i=e.findIndex(r=>r.id===t);if(i>-1){e.splice(i,1,___default.default.merge(e[i],o));const r=___default.default.cloneDeep(e);return l(r),r}return e},[e]),f=React.useCallback(o=>{n==null||n.pointCloud2dOperation.setPolygonValidAndRender(o,!0),y==null||y.pointCloud2dOperation.setPolygonValidAndRender(o,!0),P==null||P.pointCloud2dOperation.setPolygonValidAndRender(o,!0)},[n,y,P]),L=React.useCallback(()=>{if(d==null?void 0:d.info){const{id:o,valid:t=!0}=d.info,i=B({valid:!t});C(i),f(o)}a&&(m(__spreadProps(__spreadValues({},a),{valid:!a.valid})),n==null||n.pointCloud2dOperation.setPolygonValidAndRender(a.id,!0))},[f,d,a]),S=React.useCallback(o=>{const t=e.find(i=>i.id===o);if(t){const{id:i,valid:r=!0}=t,u=V({valid:!r},i);return f(i),u}h(o)},[f,e,O]),b=React.useCallback((o=ESortDirection.ascend,t=!1)=>{if(!n||c.length>1)return;if(v!==lbAnnotation.EToolName.Rect&&v!==lbAnnotation.EToolName.Polygon){t&&document.dispatchEvent(new KeyboardEvent("keydown",{keyCode:9,shiftKey:o!==ESortDirection.ascend}));return}const{pointCloud2dOperation:i}=n,r=i.switchToNextPolygon(o);r&&I(r)},[n,v,n==null?void 0:n.toolInstance]),j=(o=!1)=>{b(ESortDirection.descend,o)},k=(o=!1)=>{b(ESortDirection.ascend,o)},w=o=>{const t=e.filter(i=>i.id!==o);l(t),s==null||s.removeObjectByName(o,"box"),s==null||s.render(),C(t)},A=()=>{d&&(w(d.info.id),n==null||n.pointCloud2dOperation.deletePolygon(d.info.id)),a&&(D(a.id),n==null||n.pointCloud2dOperation.deletePolygon(a.id))},E=React.useMemo(()=>e.filter(o=>c.includes(o.id)),[c,e]),N=React.useCallback(o=>{const t=___default.default.cloneDeep(e);let i=!1;if(o.forEach(r=>{const u=t.findIndex(p=>p.id===r.id);if(u>-1){const p=___default.default.merge(t[u],r);t.splice(u,1,p),s==null||s.generateBox(p),i=!0}}),i)return l(t),g({pointCloudBoxList:t}),s==null||s.render(),t},[c,e]),R=React.useCallback(o=>e.find(t=>t.id===o),[e]);return{selectedBox:d,updateSelectedBox:B,changeSelectedBoxValid:L,changeValidByID:S,selectNextBox:k,selectPrevBox:j,deletePointCloudBox:w,selectedBoxes:E,updateSelectedBoxes:N,getPointCloudByID:R,deleteSelectedPointCloudBoxAndPolygon:A}};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"),useHistory=require("./useHistory.js"),usePolygon=require("./usePolygon.js");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,e,i)=>e in n?__defProp(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i,__spreadValues=(n,e)=>{for(var i in e||(e={}))__hasOwnProp.call(e,i)&&__defNormalProp(n,i,e[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(e))__propIsEnum.call(e,i)&&__defNormalProp(n,i,e[i]);return n},__spreadProps=(n,e)=>__defProps(n,__getOwnPropDescs(e));const{ESortDirection}=lbAnnotation.cAnnotation,useSingleBox=n=>{const{pointCloudBoxList:e,setPointCloudResult:i,topViewInstance:d,backViewInstance:P,sideViewInstance:y,selectedIDs:f,selectedID:x,mainViewInstance:a,setSelectedIDs:m,syncAllViewPointCloudColor:B,polygonList:D,pointCloudPattern:C}=React.useContext(PointCloudContext.PointCloudContext),{selectedPolygon:u,updateSelectedPolygon:V,updatePolygonValidByID:h,deletePolygon:L}=usePolygon.usePolygon(),{pushHistoryWithList:b}=useHistory.useHistory(),r=React.useMemo(()=>{const o=e.findIndex(l=>l.id===x);if(o>-1)return{info:e[o],index:o}},[x,e]),w=React.useCallback(o=>{var l;if(r==null?void 0:r.info){(l=n==null?void 0:n.generateRects)==null||l.call(n,o),e.splice(r.index,1,___default.default.merge(r.info,o));const t=___default.default.cloneDeep(e);return i(t),b({pointCloudBoxList:t}),t}return e},[x,e]),S=React.useCallback((o,l)=>{const t=e.findIndex(s=>s.id===l);if(t>-1){e.splice(t,1,___default.default.merge(e[t],o));const s=___default.default.cloneDeep(e);return i(s),s}return e},[e]),p=React.useCallback(o=>{d==null||d.pointCloud2dOperation.setPolygonValidAndRender(o,!0),y==null||y.pointCloud2dOperation.setPolygonValidAndRender(o,!0),P==null||P.pointCloud2dOperation.setPolygonValidAndRender(o,!0)},[d,y,P]),j=React.useCallback(()=>{if(r==null?void 0:r.info){const{id:o,valid:l=!0}=r.info,t=w({valid:!l});B(t),p(o)}u&&(V(__spreadProps(__spreadValues({},u),{valid:!u.valid})),d==null||d.pointCloud2dOperation.setPolygonValidAndRender(u.id,!0))},[p,r,u]),k=React.useCallback(o=>{const l=e.find(t=>t.id===o);if(l){const{id:t,valid:s=!0}=l,v=S({valid:!s},t);return p(t),v}h(o)},[p,e,D]),I=React.useCallback((o=ESortDirection.ascend,l=!1)=>{if(!d||f.length>1)return;if(C!==lbAnnotation.EToolName.Rect&&C!==lbAnnotation.EToolName.Polygon){l&&document.dispatchEvent(new KeyboardEvent("keydown",{keyCode:9,shiftKey:o!==ESortDirection.ascend}));return}const{pointCloud2dOperation:t}=d,s=t.switchToNextPolygon(o);s&&m(s)},[d,C,d==null?void 0:d.toolInstance]),R=(o=!1)=>{I(ESortDirection.descend,o)},A=(o=!1)=>{I(ESortDirection.ascend,o)},O=o=>{const l=e.filter(t=>t.id!==o);i(l),a==null||a.removeObjectByName(o,"box"),a==null||a.render(),B(l)},E=()=>{r&&(O(r.info.id),d==null||d.pointCloud2dOperation.deletePolygon(r.info.id)),u&&(L(u.id),d==null||d.pointCloud2dOperation.deletePolygon(u.id))},N=React.useMemo(()=>e.filter(o=>f.includes(o.id)),[f,e]),q=React.useCallback(o=>{var l;const t=___default.default.cloneDeep(e);let s=!1;for(const v of o){const g=t.findIndex(c=>c.id===v.id);if(g>-1){const c=___default.default.merge(t[g],v);(l=n==null?void 0:n.generateRects)==null||l.call(n,c),t.splice(g,1,c),a==null||a.generateBox(c),s=!0}}if(s)return i(t),b({pointCloudBoxList:t}),a==null||a.render(),t},[f,e]),H=React.useCallback(o=>e.find(l=>l.id===o),[e]);return{selectedBox:r,updateSelectedBox:w,changeSelectedBoxValid:j,changeValidByID:k,selectNextBox:A,selectPrevBox:R,deletePointCloudBox:O,selectedBoxes:N,updateSelectedBoxes:q,getPointCloudByID:H,deleteSelectedPointCloudBoxAndPolygon:E}};exports.useSingleBox=useSingleBox;
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloud3DView=require("./PointCloud3DView.js"),PointCloudBackView=require("./PointCloudBackView.js"),PointCloudTopView=require("./PointCloudTopView.js"),PointCloudSideView=require("./PointCloudSideView.js"),PointCloud2DView=require("./PointCloud2DView.js"),PointCloudListener=require("./PointCloudListener.js"),PointCloudSegmentListener=require("./PointCloudSegmentListener.js"),PointCloudSegment=require("./PointCloudSegment.js"),PointCloudSegmentStatus=require("./PointCloudSegmentStatus.js"),PointCloudSegmentToolbar=require("./PointCloudSegmentToolbar.js"),reactRedux=require("react-redux"),ctx=require("../../store/ctx.js"),index$1=require("../../views/MainView/toolFooter/AnnotatedAttributes/index.js"),PointCloudContext=require("./PointCloudContext.js"),lbUtils=require("@labelbee/lb-utils"),annotation=require("../../hooks/annotation.js"),index=require("../../utils/index.js"),map=require("../../store/annotation/map.js"),classNames=require("classnames"),index$2=require("./components/sideAndBackOverView/index.js"),actionCreators=require("../../store/annotation/actionCreators.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames);const PointCloudView=({currentData:t,imgList:f,drawLayerSlot:u,checkMode:a,intelligentFit:P,imgIndex:g,loadPCDFileLoading:j})=>{const e=React.useContext(PointCloudContext.PointCloudContext),{globalPattern:d,setGlobalPattern:v,selectedIDs:c}=e,p=ctx.useDispatch(),[l,m]=React.useState(!1),E=(c==null?void 0:c.length)>0&&l,x=index.jsonParser(t.result),{toolInstanceRef:o,clearToolInstance:L}=annotation.useCustomToolInstance({basicInfo:x});if(React.useEffect(()=>{o.current.setPointCloudGlobalPattern=n=>{n!==d&&(v(n),e.clearAllDetectionInstance(),L())}},[d]),React.useEffect(()=>{var n;if(actionCreators.SetLoadPCDFileLoading(p,!0),t){const{boxParamsList:i,polygonList:r,lineList:s,sphereParamsList:q,segmentation:b}=lbUtils.PointCloudUtils.parsePointCloudCurrentResult((n=t==null?void 0:t.result)!=null?n:"");e.setPointCloudResult(i),e.setPolygonList(r),e.setLineList(s),e.setPointCloudSphereList(q),e.setSegmentation(b)}},[g]),React.useEffect(()=>{o.current.exportData=()=>[e.pointCloudBoxList,{valid:e.valid}],o.current.exportCustomData=()=>{var n,i,r,s;return{resultPolygon:(n=e.polygonList)!=null?n:[],resultLine:(i=e.lineList)!=null?i:[],resultPoint:(r=e.pointCloudSphereList)!=null?r:[],segmentation:(s=e.segmentation)!=null?s:[]}}},[e.pointCloudBoxList,e.valid,e.polygonList,e.lineList,e.pointCloudSphereList,e.ptSegmentInstance,e.segmentation]),f.length===0)return null;if(d===lbUtils.EPointCloudPattern.Segmentation)return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudSegmentListener,{checkMode:a,toolInstanceRef:o}),React__default.default.createElement(PointCloudSegmentToolbar,null),React__default.default.createElement(PointCloudSegment,{checkMode:a}),React__default.default.createElement(PointCloudSegmentStatus,null),u==null?void 0:u({direct:!0}));let C=React__default.default.createElement("div",{className:dom.getClassName("point-cloud-container","left-bottom")},React__default.default.createElement(PointCloudBackView,{checkMode:a}),React__default.default.createElement(PointCloudSideView,{checkMode:a}));return l&&(C=React__default.default.createElement(index$2,{selectAndEnlarge:E,checkMode:a})),React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudListener,{checkMode:a,toolInstanceRef:o}),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-layout"),onContextMenu:n=>n.preventDefault()},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-wrapper")},React__default.default.createElement(index$1.AnnotatedAttributesPanelFixedLeft,null),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-content")},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-container","left")},React__default.default.createElement(PointCloud3DView,null),C),React__default.default.createElement("div",{className:classNames__default.default({[dom.getClassName("point-cloud-container","right")]:!0,[dom.getClassName("point-cloud-container","rightZoom")]:l})},React__default.default.createElement(PointCloudTopView,{drawLayerSlot:u,checkMode:a,intelligentFit:P,setIsEnlargeTopView:m,onExitZoom:()=>{m(!1)},isEnlargeTopView:l}),React__default.default.createElement("div",{className:classNames__default.default({[dom.getClassName("point-cloud-container","right-bottom")]:!l,[dom.getClassName("point-cloud-container","right-bottom-floatLeft")]:l})},React__default.default.createElement(PointCloud2DView,{isEnlargeTopView:l,thumbnailWidth:l?300:455})))),React__default.default.createElement(index$1.AnnotatedAttributesPanelFixedRight,null))))};var PointCloudView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudView);module.exports=PointCloudView$1;
1
+ "use strict";var dom=require("../../utils/dom.js"),React=require("react"),PointCloud3DView=require("./PointCloud3DView.js"),PointCloudBackView=require("./PointCloudBackView.js"),PointCloudTopView=require("./PointCloudTopView.js"),PointCloudSideView=require("./PointCloudSideView.js"),PointCloud2DView=require("./PointCloud2DView.js"),PointCloudListener=require("./PointCloudListener.js"),PointCloudSegmentListener=require("./PointCloudSegmentListener.js"),PointCloudSegment=require("./PointCloudSegment.js"),PointCloudSegmentStatus=require("./PointCloudSegmentStatus.js"),PointCloudSegmentToolbar=require("./PointCloudSegmentToolbar.js"),reactRedux=require("react-redux"),ctx=require("../../store/ctx.js"),index$1=require("../../views/MainView/toolFooter/AnnotatedAttributes/index.js"),PointCloudContext=require("./PointCloudContext.js"),lbUtils=require("@labelbee/lb-utils"),annotation=require("../../hooks/annotation.js"),index=require("../../utils/index.js"),map=require("../../store/annotation/map.js"),classNames=require("classnames"),index$2=require("./components/sideAndBackOverView/index.js"),actionCreators=require("../../store/annotation/actionCreators.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames);const PointCloudView=({currentData:t,imgList:f,drawLayerSlot:u,checkMode:l,intelligentFit:P,imgIndex:g,loadPCDFileLoading:j})=>{const e=React.useContext(PointCloudContext.PointCloudContext),{globalPattern:d,setGlobalPattern:v,selectedIDs:c}=e,p=ctx.useDispatch(),[a,m]=React.useState(!1),E=(c==null?void 0:c.length)>0&&a,x=index.jsonParser(t.result),{toolInstanceRef:o,clearToolInstance:L}=annotation.useCustomToolInstance({basicInfo:x});if(React.useEffect(()=>{o.current.setPointCloudGlobalPattern=n=>{n!==d&&(v(n),e.clearAllDetectionInstance(),L())}},[d]),React.useEffect(()=>{var n;if(actionCreators.SetLoadPCDFileLoading(p,!0),t){const{boxParamsList:i,polygonList:r,lineList:s,sphereParamsList:q,segmentation:b}=lbUtils.PointCloudUtils.parsePointCloudCurrentResult((n=t==null?void 0:t.result)!=null?n:"");e.setPointCloudResult(i),e.setPolygonList(r),e.setLineList(s),e.setPointCloudSphereList(q),e.setSegmentation(b)}},[g]),React.useEffect(()=>{o.current.exportData=()=>[e.pointCloudBoxList,{valid:e.valid}],o.current.exportCustomData=()=>{var n,i,r,s;return{resultPolygon:(n=e.polygonList)!=null?n:[],resultLine:(i=e.lineList)!=null?i:[],resultPoint:(r=e.pointCloudSphereList)!=null?r:[],segmentation:(s=e.segmentation)!=null?s:[]}}},[e.pointCloudBoxList,e.valid,e.polygonList,e.lineList,e.pointCloudSphereList,e.ptSegmentInstance,e.segmentation]),f.length===0)return null;if(d===lbUtils.EPointCloudPattern.Segmentation)return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudSegmentListener,{checkMode:l,toolInstanceRef:o}),React__default.default.createElement(PointCloudSegmentToolbar,null),React__default.default.createElement(PointCloudSegment,{checkMode:l}),React__default.default.createElement(PointCloudSegmentStatus,null),u==null?void 0:u({direct:!0}));let C=React__default.default.createElement("div",{className:dom.getClassName("point-cloud-container","left-bottom")},React__default.default.createElement(PointCloudBackView,{checkMode:l}),React__default.default.createElement(PointCloudSideView,{checkMode:l}));return a&&(C=React__default.default.createElement(index$2,{selectAndEnlarge:E,checkMode:l})),React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(PointCloudListener,{checkMode:l,toolInstanceRef:o}),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-layout"),onContextMenu:n=>n.preventDefault()},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-wrapper")},React__default.default.createElement(index$1.AnnotatedAttributesPanelFixedLeft,null),React__default.default.createElement("div",{className:dom.getClassName("point-cloud-content")},React__default.default.createElement("div",{className:dom.getClassName("point-cloud-container","left")},React__default.default.createElement(PointCloud3DView,null),C),React__default.default.createElement("div",{className:classNames__default.default({[dom.getClassName("point-cloud-container","right")]:!0,[dom.getClassName("point-cloud-container","rightZoom")]:a})},React__default.default.createElement(PointCloudTopView,{drawLayerSlot:u,checkMode:l,intelligentFit:P,setIsEnlargeTopView:m,onExitZoom:()=>{m(!1)},isEnlargeTopView:a}),React__default.default.createElement("div",{className:classNames__default.default({[dom.getClassName("point-cloud-container","right-bottom")]:!a,[dom.getClassName("point-cloud-container","right-bottom-floatLeft")]:a})},React__default.default.createElement(PointCloud2DView,{isEnlargeTopView:a,thumbnailWidth:a?300:455,checkMode:l})))),React__default.default.createElement(index$1.AnnotatedAttributesPanelFixedRight,null))))};var PointCloudView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudView);module.exports=PointCloudView$1;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$1=require("./components/AnnotationView/index.js"),pointCloudAnnotationView=require("./components/AnnotationView/pointCloudAnnotationView.js"),index$2=require("./components/LLMToolView/questionView/index.js"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),reactI18next=require("react-i18next"),reactRedux=require("react-redux"),App=require("./App.js"),configureStore=require("./configureStore.js"),actionCreators=require("./store/annotation/actionCreators.js"),TagToolInstanceAdaptorI18nProvider=require("./components/videoPlayer/TagToolInstanceAdaptorI18nProvider.js"),PointCloudContext=require("./components/pointCloudView/PointCloudContext.js"),ctx=require("./store/ctx.js"),index$4=require("./components/predictTracking/predictTrackingIcon/index.js"),index$3=require("./components/LLMToolView/index.js"),index$5=require("./constant/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const store=configureStore(),OutputApp=(e,t)=>{const[r,a]=React.useState();return React.useImperativeHandle(t,()=>({toolInstance:r,annotationEngine:store.getState().annotation.annotationEngine,pageBackwardActions:()=>store.dispatch(actionCreators.PageBackward()),pageForwardActions:()=>store.dispatch(actionCreators.PageForward()),pageJump:o=>{const n=~~o-1;store.dispatch(actionCreators.PageJump(n))},hello:()=>alert("hello labelBee!!!")}),[r]),React__default.default.createElement(reactRedux.Provider,{store,context:ctx.LabelBeeContext},React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement(PointCloudContext.PointCloudProvider,null,React__default.default.createElement(App,__spreadProps(__spreadValues({},e),{setToolInstance:o=>{var n;a(o),(n=e.onLoad)==null||n.call(e,{toolInstance:o})}})))))};var index=React__default.default.forwardRef(OutputApp);exports.AnnotationView=index$1,exports.PointCloudAnnotationView=pointCloudAnnotationView,exports.QuestionView=index$2,Object.defineProperty(exports,"i18n",{enumerable:!0,get:function(){return lbUtils.i18n}}),exports.VideoTagTool=TagToolInstanceAdaptorI18nProvider.VideoTagTool,exports.PredictTracking=index$4,exports.LLMToolView=index$3,Object.defineProperty(exports,"EStepType",{enumerable:!0,get:function(){return index$5.EStepType}}),Object.defineProperty(exports,"ESubmitType",{enumerable:!0,get:function(){return index$5.ESubmitType}}),exports.componentCls=index$5.componentCls,exports.prefix=index$5.prefix,exports.default=index,exports.store=store;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$1=require("./components/AnnotationView/index.js"),pointCloudAnnotationView=require("./components/AnnotationView/pointCloudAnnotationView.js"),index$2=require("./components/LLMToolView/questionView/index.js"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),reactI18next=require("react-i18next"),reactRedux=require("react-redux"),App=require("./App.js"),configureStore=require("./configureStore.js"),actionCreators=require("./store/annotation/actionCreators.js"),TagToolInstanceAdaptorI18nProvider=require("./components/videoPlayer/TagToolInstanceAdaptorI18nProvider.js"),PointCloudContext=require("./components/pointCloudView/PointCloudContext.js"),ctx=require("./store/ctx.js"),index$4=require("./components/predictTracking/predictTrackingIcon/index.js"),index$3=require("./components/LLMToolView/index.js"),index$5=require("./views/MainView/toolFooter/SwitchCuboidBoxIn2DView/index.js"),index$6=require("./constant/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const store=configureStore(),OutputApp=(e,t)=>{const[r,i]=React.useState();return React.useImperativeHandle(t,()=>({toolInstance:r,annotationEngine:store.getState().annotation.annotationEngine,pageBackwardActions:()=>store.dispatch(actionCreators.PageBackward()),pageForwardActions:()=>store.dispatch(actionCreators.PageForward()),pageJump:o=>{const n=~~o-1;store.dispatch(actionCreators.PageJump(n))},hello:()=>alert("hello labelBee!!!")}),[r]),React__default.default.createElement(reactRedux.Provider,{store,context:ctx.LabelBeeContext},React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement(PointCloudContext.PointCloudProvider,null,React__default.default.createElement(App,__spreadProps(__spreadValues({},e),{setToolInstance:o=>{var n;i(o),(n=e.onLoad)==null||n.call(e,{toolInstance:o})}})))))};var index=React__default.default.forwardRef(OutputApp);exports.AnnotationView=index$1,exports.PointCloudAnnotationView=pointCloudAnnotationView,exports.QuestionView=index$2,Object.defineProperty(exports,"i18n",{enumerable:!0,get:function(){return lbUtils.i18n}}),exports.VideoTagTool=TagToolInstanceAdaptorI18nProvider.VideoTagTool,exports.PredictTracking=index$4,exports.LLMToolView=index$3,exports.SwitchCuboidBoxIn2DView=index$5,Object.defineProperty(exports,"EStepType",{enumerable:!0,get:function(){return index$6.EStepType}}),Object.defineProperty(exports,"ESubmitType",{enumerable:!0,get:function(){return index$6.ESubmitType}}),exports.componentCls=index$6.componentCls,exports.prefix=index$6.prefix,exports.default=index,exports.store=store;
@@ -3,7 +3,7 @@
3
3
  * @author laoluo
4
4
  */
5
5
  import React from 'react';
6
- type TAfterImgOnLoad = (img: HTMLImageElement) => void;
6
+ export type TAfterImgOnLoad = (img: HTMLImageElement) => void;
7
7
  interface IProps {
8
8
  src: string;
9
9
  size?: {
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { IMappingImg } from '@/types/data';
3
+ import { TAfterImgOnLoad } from '../AnnotationView';
4
+ interface IPointCloud2DRectOperationViewProps {
5
+ mappingData?: IMappingImg;
6
+ size: {
7
+ width: number;
8
+ height: number;
9
+ };
10
+ config: any;
11
+ checkMode?: boolean;
12
+ afterImgOnLoad: TAfterImgOnLoad;
13
+ }
14
+ declare const _default: import("react-redux").ConnectedComponent<(props: IPointCloud2DRectOperationViewProps) => React.JSX.Element, import("react-redux").Omit<IPointCloud2DRectOperationViewProps, "config">>;
15
+ export default _default;
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { IAnnotationData2dView } from './PointCloud2DView';
3
3
  import { IFileItem } from '@/types/data';
4
- declare const PointCloud2DSingleView: ({ view2dData, setSelectedID, currentData, showEnlarge, }: {
4
+ declare const PointCloud2DSingleView: ({ view2dData, setSelectedID, currentData, showEnlarge, checkMode, }: {
5
5
  view2dData: IAnnotationData2dView;
6
6
  setSelectedID: (value: string | number) => void;
7
7
  currentData: IFileItem;
8
8
  showEnlarge: boolean;
9
+ checkMode?: boolean | undefined;
9
10
  }) => React.JSX.Element;
10
11
  export default PointCloud2DSingleView;
@@ -16,10 +16,12 @@ export interface IAnnotationData2dView {
16
16
  url: string;
17
17
  calName?: string;
18
18
  calib: ICalib;
19
+ path: string;
19
20
  }
20
21
  interface IProps extends IA2MapStateProps {
21
22
  thumbnailWidth?: number;
22
23
  isEnlargeTopView?: boolean;
24
+ checkMode?: boolean;
23
25
  }
24
- declare const _default: import("react-redux").ConnectedComponent<({ currentData, config, thumbnailWidth, isEnlargeTopView, highlightAttribute, loadPCDFileLoading, }: IProps) => React.JSX.Element | null, import("react-redux").Omit<IProps, "imgIndex" | "imgList" | "config" | "highlightAttribute" | "loadPCDFileLoading" | "currentData" | "stepInfo" | "configString">>;
26
+ declare const _default: import("react-redux").ConnectedComponent<({ currentData, config, thumbnailWidth, isEnlargeTopView, highlightAttribute, loadPCDFileLoading, checkMode, }: IProps) => React.JSX.Element | null, import("react-redux").Omit<IProps, "imgIndex" | "imgList" | "config" | "highlightAttribute" | "loadPCDFileLoading" | "currentData" | "stepInfo" | "configString">>;
25
27
  export default _default;
@@ -1,4 +1,4 @@
1
- import { IPointCloudBox, IPointCloudBoxList, IPolygonData, IPointCloudSphereList, IPointCloudSphere, ILine, EPointCloudPattern, IPointCloudSegmentation, ICalib } from '@labelbee/lb-utils';
1
+ import { IPointCloudBox, IPointCloudBoxList, IPolygonData, IPointCloudSphereList, IPointCloudSphere, ILine, EPointCloudPattern, IPointCloudSegmentation, ICalib, ISize } from '@labelbee/lb-utils';
2
2
  import React from 'react';
3
3
  import { PointCloud, PointCloudAnnotation, ActionsHistory, EToolName } from '@labelbee/lb-annotation';
4
4
  interface IPointCloudContextInstances {
@@ -48,6 +48,8 @@ export interface IPointCloudContext extends IPointCloudContextInstances, IPointC
48
48
  setLineList: (lineList: ILine[]) => void;
49
49
  zoom: number;
50
50
  setZoom: (zoom: number) => void;
51
+ cuboidBoxIn2DView: boolean;
52
+ setCuboidBoxIn2DView: (bool: boolean) => void;
51
53
  history: ActionsHistory;
52
54
  hideAttributes: string[];
53
55
  setHideAttributes: (hideAttrs: string[]) => void;
@@ -66,6 +68,13 @@ export interface IPointCloudContext extends IPointCloudContextInstances, IPointC
66
68
  clearAllDetectionInstance: () => void;
67
69
  highlight2DDataList: IHighlight2DData[];
68
70
  setHighlight2DDataList: (urlList: IHighlight2DData[]) => void;
71
+ imageSizes: {
72
+ [key: string]: ISize;
73
+ };
74
+ cacheImageNodeSize: (params: {
75
+ imgNode: HTMLImageElement;
76
+ path: string;
77
+ }) => void;
69
78
  }
70
79
  export declare const PointCloudContext: React.Context<IPointCloudContext>;
71
80
  export declare const PointCloudProvider: React.FC<{}>;
@@ -4,7 +4,7 @@
4
4
  * @createdate 2022-08-17
5
5
  */
6
6
  import { PointCloudAnnotation, PointCloud } from '@labelbee/lb-annotation';
7
- import { IPointCloudBox, IPointCloudSphere, IPointUnit, UpdatePolygonByDragList, ILine, IDefaultSize } from '@labelbee/lb-utils';
7
+ import { IPointCloudBox, IPointCloudSphere, IPointUnit, UpdatePolygonByDragList, ILine, IDefaultSize, IBasicRect } from '@labelbee/lb-utils';
8
8
  import { ISize } from '@/types/main';
9
9
  import { IFileItem } from '@/types/data';
10
10
  export declare const topViewPoint2PointCloud: (newPoint: any, size: ISize, pointCloud: PointCloud, selectedPointCloudSphere?: IPointCloudSphere, defaultValue?: {
@@ -68,6 +68,8 @@ export declare const usePointCloudViews: () => {
68
68
  initPointCloud3d?: undefined;
69
69
  updatePointCloudData?: undefined;
70
70
  updateViewsByDefaultSize?: undefined;
71
+ generateRects?: undefined;
72
+ update2DViewRect?: undefined;
71
73
  } | {
72
74
  topViewAddSphere: ({ newPoint, size, zoom, trackConfigurable, }: {
73
75
  newPoint: IPointUnit;
@@ -100,4 +102,9 @@ export declare const usePointCloudViews: () => {
100
102
  initPointCloud3d: (size: ISize) => void;
101
103
  updatePointCloudData: (newData?: any) => Promise<void>;
102
104
  updateViewsByDefaultSize: (defaultSize: IDefaultSize) => void;
105
+ generateRects: (boxParams: IPointCloudBox) => void;
106
+ update2DViewRect: (params: IBasicRect & {
107
+ boxID: string;
108
+ imageName: string;
109
+ }) => IPointCloudBox[] | undefined;
103
110
  };
@@ -1,6 +1,9 @@
1
1
  import { IPointCloudBox, PartialIPointCloudBoxList } from '@labelbee/lb-utils';
2
+ interface IUseSingleBoxParams {
3
+ generateRects?: (box: IPointCloudBox) => void;
4
+ }
2
5
  /** Actions for single selected box */
3
- export declare const useSingleBox: () => {
6
+ export declare const useSingleBox: (props?: IUseSingleBoxParams) => {
4
7
  selectedBox: {
5
8
  info: IPointCloudBox;
6
9
  index: number;
@@ -16,3 +19,4 @@ export declare const useSingleBox: () => {
16
19
  getPointCloudByID: (id: string) => IPointCloudBox | undefined;
17
20
  deleteSelectedPointCloudBoxAndPolygon: () => void;
18
21
  };
22
+ export {};
@@ -8,11 +8,12 @@ import { VideoTagTool } from '@/components/videoPlayer/TagToolInstanceAdaptorI18
8
8
  import './index.scss';
9
9
  import PredictTracking from '@/components/predictTracking';
10
10
  import LLMToolView from '@/components/LLMToolView';
11
+ import SwitchCuboidBoxIn2DView from '@/views/MainView/toolFooter/SwitchCuboidBoxIn2DView';
11
12
  export declare const store: import("redux").Store<{}, import("redux").Action<any>> & {
12
13
  dispatch: unknown;
13
14
  };
14
15
  declare const _default: React.ForwardRefExoticComponent<AppProps & React.RefAttributes<unknown>>;
15
16
  export default _default;
16
- export { AnnotationView, PointCloudAnnotationView, QuestionView, LLMToolView, i18n, VideoTagTool, PredictTracking, };
17
+ export { AnnotationView, PointCloudAnnotationView, QuestionView, LLMToolView, i18n, VideoTagTool, PredictTracking, SwitchCuboidBoxIn2DView };
17
18
  export * from './constant';
18
19
  export * from './typeTem';
@@ -1,5 +1,28 @@
1
+ import { ICoordinate, IPointCloudBox, ISize } from '@labelbee/lb-utils';
2
+ import { IMappingImg } from '@/types/data';
1
3
  export declare const jsonParser: (content: any, defaultValue?: any) => any;
2
4
  export declare const getNewNode: <T>(newNode: T, oldNode: T) => T;
3
5
  export declare const classnames: (className: {
4
6
  [key: string]: boolean;
5
7
  } | (string | undefined)[]) => string;
8
+ export declare const getBoundingRect: (points: ICoordinate[]) => {
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ height: number;
13
+ };
14
+ interface IGetRectPointCloudBoxParams {
15
+ pointCloudBox: IPointCloudBox;
16
+ mappingData: IMappingImg;
17
+ imageSizes: {
18
+ [key: string]: ISize;
19
+ };
20
+ }
21
+ export declare const getRectPointCloudBox: (params: IGetRectPointCloudBoxParams) => {
22
+ imageName: string;
23
+ x: number;
24
+ y: number;
25
+ width: number;
26
+ height: number;
27
+ } | undefined;
28
+ export {};
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const SwitchCuboidBoxIn2DView: () => React.JSX.Element;
3
+ export default SwitchCuboidBoxIn2DView;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _=require("lodash");function _interopDefaultLegacy(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var ___default=_interopDefaultLegacy(_);const jsonParser=(r,e={})=>{try{return typeof r=="string"?JSON.parse(r):___default.default.isObject(r)?r:e}catch(t){return e}},classnames=r=>{if(Array.isArray(r))return r.filter(e=>e).join(" ");if(___default.default.isObject(r)){const e=[];return Object.keys(r).forEach(t=>{r[t]&&e.push(t)}),e.join(" ")}return""};exports.classnames=classnames,exports.jsonParser=jsonParser;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _=require("lodash"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,t,e)=>t in n?__defProp(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,__spreadValues=(n,t)=>{for(var e in t||(t={}))__hasOwnProp.call(t,e)&&__defNormalProp(n,e,t[e]);if(__getOwnPropSymbols)for(var e of __getOwnPropSymbols(t))__propIsEnum.call(t,e)&&__defNormalProp(n,e,t[e]);return n},__spreadProps=(n,t)=>__defProps(n,__getOwnPropDescs(t));const jsonParser=(n,t={})=>{try{return typeof n=="string"?JSON.parse(n):___default.default.isObject(n)?n:t}catch(e){return t}},classnames=n=>{if(Array.isArray(n))return n.filter(t=>t).join(" ");if(___default.default.isObject(n)){const t=[];return Object.keys(n).forEach(e=>{n[e]&&t.push(e)}),t.join(" ")}return""},getBoundingRect=n=>{let t=Infinity,e=Infinity,r=-Infinity,i=-Infinity;for(const o of n)t=Math.min(t,o.x),e=Math.min(e,o.y),r=Math.max(r,o.x),i=Math.max(i,o.y);return{x:t,y:e,width:r-t,height:i-e}},isBoundingRectInImage=(()=>{const n=(t,e)=>{const r=Math.max(t.x,e.x),i=Math.max(t.y,e.y),o=Math.min(t.x+t.width,e.x+e.width),s=Math.min(t.y+t.height,e.y+e.height),u=o-r,a=s-i;return u>=0&&a>=0?{x:r,y:i,width:u,height:a}:null};return(t,e,r)=>{if(r[e]){const i=r[e].width,o=r[e].height;return n(t,{x:0,y:0,width:i,height:o})!==null}return!1}})(),getRectPointCloudBox=n=>{const{pointCloudBox:t,mappingData:e,imageSizes:r}=n,{transferViewData:i}=lbAnnotation.pointCloudLidar2image(t,e.calib),o=i.reduce((a,c)=>c.type==="line"?[...a,...c.pointList]:a,[]),s=__spreadProps(__spreadValues({},getBoundingRect(o)),{imageName:e.path});if(isBoundingRectInImage(s,e.path,r))return s};exports.classnames=classnames,exports.getBoundingRect=getBoundingRect,exports.getRectPointCloudBox=getRectPointCloudBox,exports.jsonParser=jsonParser;
@@ -0,0 +1 @@
1
+ "use strict";var antd=require("antd"),React=require("react"),reactI18next=require("react-i18next"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const SwitchCuboidBoxIn2DView=()=>{const{cuboidBoxIn2DView:e,setCuboidBoxIn2DView:n}=React.useContext(PointCloudContext.PointCloudContext),{t}=reactI18next.useTranslation(),a=o=>{n(o)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("span",{style:{marginRight:10}},t("ImageLabels")),React__default.default.createElement(antd.Switch,{checkedChildren:t("3DRect"),unCheckedChildren:t("2DRect"),checked:e,onChange:a}))};module.exports=SwitchCuboidBoxIn2DView;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$6=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"),ctx=require("../../../store/ctx.js"),index=require("./FooterTips/index.js"),index$2=require("./HiddenTips/index.js"),index$3=require("./PageNumber/index.js"),index$4=require("./ZoomController/index.js"),Pagination=require("./Pagination.js"),index$1=require("./AnnotatedAttributes/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index$5=require("./FooterTips/ToolHotKey/index.js");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$6.prefix}-footer`,FooterDivider=()=>React__default.default.createElement(es.Divider,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),renderFooter=({footerTips:e,hiddenTips:a,pageNumber:i,pagination:l,zoomController:o,curItems:u,footerDivider:s,annotateAttrList:t})=>React__default.default.createElement(React__default.default.Fragment,null,e,t,React__default.default.createElement("div",{style:{flex:1}}),a,i,l,u,s,o),ToolFooter=e=>{var a;const{stepList:i,step:l,basicResultList:o,basicIndex:u,mode:s="light",footer:t=renderFooter,skipBeforePageTurning:n}=e,r=ctx.useDispatch(),{t:g}=reactI18next.useTranslation(),c=(a=i[l-1])!=null?a:{},m=!!c.dataSourceStep,x=()=>{if(n){n(()=>r(actionCreators.PageBackward()));return}r(actionCreators.PageBackward())},p=()=>{if(n){n(()=>r(actionCreators.PageForward()));return}r(actionCreators.PageForward())},v=P=>{const f=~~P-1;if(n){n(()=>r(actionCreators.PageJump(f)));return}r(actionCreators.PageJump(f))},d=React__default.default.createElement(Pagination.Pagination,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:v,pageBackward:x,pageForward:p,footerCls}),b=m&&o.length>0?React__default.default.createElement("span",null,g("curItems",{current:u+1,total:o.length})):null;return typeof t=="function"?t===renderFooter&&c.tool===EPointCloudName.PointCloud?React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},React__default.default.createElement(index,null),React__default.default.createElement(index$1.AnnotatedAttributesIcon,null),React__default.default.createElement("div",{style:{flex:1}}),d):React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},t({footerTips:React__default.default.createElement(index,null),hiddenTips:React__default.default.createElement(index$2,null),pageNumber:React__default.default.createElement(index$3,null),annotateAttrList:React__default.default.createElement(index$1.AnnotatedAttributesIcon,null),pagination:d,zoomController:React__default.default.createElement(index$4.default,{mode:s}),curItems:b,footerDivider:React__default.default.createElement(FooterDivider,null),shortCutTable:index$5.shortCutTable,ToolHotKeyCom:index$5.ToolHotKeyCom})):t},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,skipBeforePageTurning:e.annotation.skipBeforePageTurning});var ToolFooter$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(ToolFooter);exports.FooterDivider=FooterDivider,exports.default=ToolFooter$1,exports.footerCls=footerCls;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$7=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"),ctx=require("../../../store/ctx.js"),index=require("./FooterTips/index.js"),index$3=require("./HiddenTips/index.js"),index$4=require("./PageNumber/index.js"),index$5=require("./ZoomController/index.js"),index$2=require("./SwitchCuboidBoxIn2DView/index.js"),Pagination=require("./Pagination.js"),index$1=require("./AnnotatedAttributes/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index$6=require("./FooterTips/ToolHotKey/index.js");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$7.prefix}-footer`,FooterDivider=()=>React__default.default.createElement(es.Divider,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),renderFooter=({footerTips:e,hiddenTips:a,pageNumber:i,pagination:l,zoomController:o,curItems:u,footerDivider:s,annotateAttrList:t})=>React__default.default.createElement(React__default.default.Fragment,null,e,t,React__default.default.createElement("div",{style:{flex:1}}),a,i,l,u,s,o),ToolFooter=e=>{var a;const{stepList:i,step:l,basicResultList:o,basicIndex:u,mode:s="light",footer:t=renderFooter,skipBeforePageTurning:n}=e,r=ctx.useDispatch(),{t:x}=reactI18next.useTranslation(),d=(a=i[l-1])!=null?a:{},g=!!d.dataSourceStep,m=()=>{if(n){n(()=>r(actionCreators.PageBackward()));return}r(actionCreators.PageBackward())},p=()=>{if(n){n(()=>r(actionCreators.PageForward()));return}r(actionCreators.PageForward())},v=P=>{const f=~~P-1;if(n){n(()=>r(actionCreators.PageJump(f)));return}r(actionCreators.PageJump(f))},c=React__default.default.createElement(Pagination.Pagination,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:v,pageBackward:m,pageForward:p,footerCls}),b=g&&o.length>0?React__default.default.createElement("span",null,x("curItems",{current:u+1,total:o.length})):null;return typeof t=="function"?t===renderFooter&&d.tool===EPointCloudName.PointCloud?React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},React__default.default.createElement(index,null),React__default.default.createElement(index$1.AnnotatedAttributesIcon,null),React__default.default.createElement("div",{style:{flex:1}}),React__default.default.createElement(index$2,null),c):React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},t({footerTips:React__default.default.createElement(index,null),hiddenTips:React__default.default.createElement(index$3,null),pageNumber:React__default.default.createElement(index$4,null),annotateAttrList:React__default.default.createElement(index$1.AnnotatedAttributesIcon,null),pagination:c,zoomController:React__default.default.createElement(index$5.default,{mode:s}),curItems:b,footerDivider:React__default.default.createElement(FooterDivider,null),shortCutTable:index$6.shortCutTable,ToolHotKeyCom:index$6.ToolHotKeyCom})):t},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,skipBeforePageTurning:e.annotation.skipBeforePageTurning});var ToolFooter$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(ToolFooter);exports.FooterDivider=FooterDivider,exports.default=ToolFooter$1,exports.footerCls=footerCls;
package/es/App.js CHANGED
@@ -1 +1 @@
1
- import E from"./views/MainView/index.js";import{i18n as r}from"@labelbee/lb-utils";import I,{useState as F,useEffect as O}from"react";import{connect as N}from"react-redux";import{store as n}from"./index.js";import{LabelBeeContext as M}from"./store/ctx.js";import{ANNOTATION_ACTIONS as U}from"./store/Actions.js";import{InitTaskData as z,InitAnnotationState as R,UpdateInjectFunc as V,loadImgList as B}from"./store/annotation/actionCreators.js";import{LoadFileAndFileData as b}from"./store/annotation/reducer.js";import{ConfigProvider as k}from"antd/es";import G from"antd/es/locale/zh_CN";import $ from"antd/es/locale/en_US";var q=Object.defineProperty,H=Object.defineProperties,J=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertySymbols,K=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,C=(e,t,a)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,W=(e,t)=>{for(var a in t||(t={}))K.call(t,a)&&C(e,a,t[a]);if(j)for(var a of j(t))Q.call(t,a)&&C(e,a,t[a]);return e},X=(e,t)=>H(e,J(t));const Y=e=>{const[t,a]=F(0),{imgList:s,step:w=1,stepList:l,onSubmit:c,onSave:p,onPageChange:g,onStepChange:d,initialIndex:f=0,toolInstance:S,setToolInstance:L,getFileData:m,pageSize:u=10,loadFileList:o,defaultLang:h="cn",skipBeforePageTurning:A,beforeRotate:_,checkMode:y=!1,intelligentFit:T=!0,highlightAttribute:P="",preDataProcess:v}=e;O(()=>{n.dispatch(z({onSubmit:c,stepList:l,step:w,getFileData:m,pageSize:u,loadFileList:o,onSave:p,onPageChange:g,onStepChange:d,skipBeforePageTurning:A,beforeRotate:_,checkMode:y,highlightAttribute:P,preDataProcess:v})),x(),r.changeLanguage(h);const i=()=>{a(D=>D+1)};return r.on("languageChanged",i),()=>{r.off("languageChanged",i),R(n.dispatch)}},[]),O(()=>{n.dispatch(V({onSubmit:c,stepList:l,getFileData:m,pageSize:u,loadFileList:o,onSave:p,onPageChange:g,onStepChange:d,beforeRotate:_,highlightAttribute:P,preDataProcess:v})),r.changeLanguage(h)},[c,l,m,u,o,p,g,d,h,_,P,v]),O(()=>{L==null||L(S)},[S]);const x=()=>{o?B(n.dispatch,n.getState,f,!0).then(i=>{i&&n.dispatch(b(f))}):s&&s.length>0&&(n.dispatch({type:U.UPDATE_IMG_LIST,payload:{imgList:s}}),n.dispatch(b(f)))};return I.createElement("div",null,I.createElement(k,{locale:r.language==="en"?$:G},I.createElement(E,X(W({},e),{intelligentFit:T}))))},Z=e=>({toolInstance:e.annotation.toolInstance});var ee=N(Z,null,null,{context:M})(Y);export{ee as default};
1
+ import E from"./views/MainView/index.js";import{i18n as r}from"@labelbee/lb-utils";import I,{useState as F,useEffect as O}from"react";import{connect as N}from"react-redux";import{store as n}from"./index.js";import{LabelBeeContext as M}from"./store/ctx.js";import{ANNOTATION_ACTIONS as U}from"./store/Actions.js";import{InitTaskData as z,InitAnnotationState as R,UpdateInjectFunc as V,loadImgList as B}from"./store/annotation/actionCreators.js";import{LoadFileAndFileData as j}from"./store/annotation/reducer.js";import{ConfigProvider as k}from"antd/es";import G from"antd/es/locale/zh_CN";import $ from"antd/es/locale/en_US";var q=Object.defineProperty,H=Object.defineProperties,J=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,K=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,w=(e,t,a)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,W=(e,t)=>{for(var a in t||(t={}))K.call(t,a)&&w(e,a,t[a]);if(C)for(var a of C(t))Q.call(t,a)&&w(e,a,t[a]);return e},X=(e,t)=>H(e,J(t));const Y=e=>{const[t,a]=F(0),{imgList:s,step:A=1,stepList:l,onSubmit:c,onSave:p,onPageChange:g,onStepChange:d,initialIndex:f=0,toolInstance:S,setToolInstance:L,getFileData:m,pageSize:u=10,loadFileList:o,defaultLang:h="cn",skipBeforePageTurning:y,beforeRotate:_,checkMode:b=!1,intelligentFit:T=!0,highlightAttribute:P="",preDataProcess:v}=e;O(()=>{n.dispatch(z({onSubmit:c,stepList:l,step:A,getFileData:m,pageSize:u,loadFileList:o,onSave:p,onPageChange:g,onStepChange:d,skipBeforePageTurning:y,beforeRotate:_,checkMode:b,highlightAttribute:P,preDataProcess:v})),x(),r.changeLanguage(h);const i=()=>{a(D=>D+1)};return r.on("languageChanged",i),()=>{r.off("languageChanged",i),R(n.dispatch)}},[]),O(()=>{n.dispatch(V({onSubmit:c,stepList:l,getFileData:m,pageSize:u,loadFileList:o,onSave:p,onPageChange:g,onStepChange:d,beforeRotate:_,highlightAttribute:P,preDataProcess:v})),r.changeLanguage(h)},[c,l,m,u,o,p,g,d,h,_,P,v]),O(()=>{L==null||L(S)},[S]);const x=()=>{o?B(n.dispatch,n.getState,f,!0).then(i=>{i&&n.dispatch(j(f))}):s&&s.length>0&&(n.dispatch({type:U.UPDATE_IMG_LIST,payload:{imgList:s}}),n.dispatch(j(f)))};return I.createElement("div",null,I.createElement(k,{locale:r.language==="en"?$:G},I.createElement(E,X(W({},e),{intelligentFit:T,checkMode:b}))))},Z=e=>({toolInstance:e.annotation.toolInstance});var ee=N(Z,null,null,{context:M})(Y);export{ee as default};
@@ -0,0 +1 @@
1
+ import{useLatest as z}from"ahooks";import{Spin as B}from"antd/es";import f,{useContext as M,useRef as N,useState as U,useEffect as u}from"react";import{connect as F}from"react-redux";import{usePointCloudViews as T}from"../pointCloudView/hooks/usePointCloudViews.js";import{PointCloudContext as $}from"../pointCloudView/PointCloudContext.js";import{a2MapStateToProps as q}from"../../store/annotation/map.js";import{LabelBeeContext as A}from"../../store/ctx.js";import{PointCloud2DRectOperation as G,ImgUtils as H}from"@labelbee/lb-annotation";var J=Object.defineProperty,K=Object.defineProperties,Q=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,O=(n,e,t)=>e in n?J(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,m=(n,e)=>{for(var t in e||(e={}))W.call(e,t)&&O(n,t,e[t]);if(D)for(var t of D(e))X.call(e,t)&&O(n,t,e[t]);return n},b=(n,e)=>K(n,Q(e));const Y=n=>{var e;const{mappingData:t,size:s,config:C,checkMode:R,afterImgOnLoad:I}=n,l=(e=t==null?void 0:t.url)!=null?e:"",{pointCloudBoxList:v,setPointCloudResult:h,selectedID:c}=M($),{update2DViewRect:x}=T(),d=f.useRef(null),a=N(null),_=z(x),[y,V]=U(!0),P=r=>{var o;const i=(o=_.current)==null?void 0:o.call(_,r);h(i)},j=()=>{var r;let o=[];v.forEach(i=>{const{rects:p=[],id:g,attribute:S,trackID:E}=i,w=p.find(k=>k.imageName===(t==null?void 0:t.path)),L=g+"_"+(t==null?void 0:t.path);w&&(o=[...o,b(m({},w),{boxID:g,id:L,attribute:S,order:E})])}),(r=a.current)==null||r.setResult(o)};return u(()=>{if(d.current){const r=new G({container:d.current,size:s,config:b(m({},C),{isShowOrder:!0,attributeConfigurable:!0}),checkMode:R});return a.current=r,a.current.init(),a.current.on("updateDragResult",P),()=>{var o,i;(o=a.current)==null||o.unbind("updateDragResult",P),(i=a.current)==null||i.destroy()}}},[]),u(()=>{a.current&&l&&H.load(l).then(r=>{a.current.setImgNode(r),I(r),V(!1)})},[l]),u(()=>{var r;(r=a.current)==null||r.setSize(s)},[s]),u(()=>{var r,o;if(j(),c){const i=(r=a.current)==null?void 0:r.rectList.find(p=>p.boxID===c);i&&((o=a.current)==null||o.setSelectedID(i.id))}},[v,c,l]),f.createElement(B,{spinning:y},f.createElement("div",{ref:d,style:m({position:"relative"},s)}))};var Z=F(q,null,null,{context:A})(Y);export{Z as default};
@@ -1 +1 @@
1
- import{getClassName as C}from"../../utils/dom.js";import m,{useRef as v,useState as H,useCallback as L,useEffect as P}from"react";import _ from"../AnnotationView/index.js";import E from"../../hooks/useSize.js";import{useSingleBox as I}from"./hooks/useSingleBox.js";import{useHighlight as N}from"./hooks/useHighlight.js";import R from"./components/HighlightVisible/index.js";var A=(o,r,i)=>new Promise((u,s)=>{var c=n=>{try{t(i.next(n))}catch(e){s(e)}},l=n=>{try{t(i.throw(n))}catch(e){s(e)}},t=n=>n.done?u(n.value):Promise.resolve(n.value).then(c,l);t((i=i.apply(o,r)).next())});const O=({view2dData:o,setSelectedID:r,currentData:i,showEnlarge:u})=>{var s;const c=v(null),l=v(),{selectedBox:t}=I(),n=E(c),{url:e,calib:x}=o,{toggle2dVisible:y,isHighlightVisible:k}=N({currentData:i}),[S,g]=H(!1),V=!o,j=f=>{d()},d=L(()=>{var f,h;const p=(f=l.current)==null?void 0:f.toolInstance;if(r(""),!t||!p)return;const a=o.annotations.find(B=>B.annotation.id===t.info.id);let b="";a&&((h=a==null?void 0:a.annotation.pointList)==null?void 0:h.length)>0&&(p.focusPositionByPointList(a==null?void 0:a.annotation.pointList),b=t.info.id,r(b))},[t,l.current,o.annotations]);P(()=>{d()},[d]);const z=()=>A(void 0,null,function*(){g(!0),yield y(e,x),g(!1)});return m.createElement("div",{className:C("point-cloud-2d-image"),ref:c},m.createElement(_,{src:(s=o==null?void 0:o.url)!=null?s:"",annotations:o.annotations,size:n,ref:l,globalStyle:{display:V?"none":"block"},afterImgOnLoad:j,zoomInfo:{min:.01,max:1e3,ratio:.4}}),m.createElement(R,{visible:k(e),onClick:z,loading:S,style:{position:"absolute",right:16,top:16,zIndex:u?-1:101}}))};export{O as default};
1
+ import{getClassName as H}from"../../utils/dom.js";import m,{useRef as v,useState as L,useContext as R,useCallback as _,useEffect as O}from"react";import N from"../AnnotationView/index.js";import w from"../../hooks/useSize.js";import{useSingleBox as A}from"./hooks/useSingleBox.js";import{useHighlight as q}from"./hooks/useHighlight.js";import F from"./components/HighlightVisible/index.js";import{PointCloudContext as G}from"./PointCloudContext.js";import J from"../pointCloud2DRectOperationView/index.js";var K=(t,l,e)=>new Promise((d,a)=>{var r=o=>{try{n(e.next(o))}catch(i){a(i)}},c=o=>{try{n(e.throw(o))}catch(i){a(i)}},n=o=>o.done?d(o.value):Promise.resolve(o.value).then(r,c);n((e=e.apply(t,l)).next())});const M=({view2dData:t,setSelectedID:l,currentData:e,showEnlarge:d,checkMode:a=!1})=>{var r;const c=v(null),n=v(),{selectedBox:o}=A(),i=w(c),{url:p,calib:V,path:y}=t,{toggle2dVisible:j,isHighlightVisible:P}=q({currentData:e}),[S,h]=L(!1),{cuboidBoxIn2DView:k,cacheImageNodeSize:z}=R(G),B=!t,g=u=>{f(),z({path:y,imgNode:u})},f=_(()=>{var u,x;const b=(u=n.current)==null?void 0:u.toolInstance;if(l(""),!o||!b)return;const s=t.annotations.find(E=>E.annotation.id===o.info.id);let C="";s&&((x=s==null?void 0:s.annotation.pointList)==null?void 0:x.length)>0&&(b.focusPositionByPointList(s==null?void 0:s.annotation.pointList),C=o.info.id,l(C))},[o,n.current,t.annotations]);O(()=>{f()},[f]);const I=()=>K(void 0,null,function*(){h(!0),yield j(p,V),h(!1)});return m.createElement("div",{className:H("point-cloud-2d-image"),ref:c},k?m.createElement(N,{src:(r=t==null?void 0:t.url)!=null?r:"",annotations:t.annotations,size:i,ref:n,globalStyle:{display:B?"none":"block"},afterImgOnLoad:g,zoomInfo:{min:.01,max:1e3,ratio:.4}}):m.createElement(J,{mappingData:t,size:i,checkMode:a,afterImgOnLoad:g}),m.createElement(F,{visible:P(p),onClick:I,loading:S,style:{position:"absolute",right:16,top:16,zIndex:d?-1:101}}))};export{M as default};
@@ -1 +1 @@
1
- import{getClassName as N}from"../../utils/dom.js";import n,{useState as E,useContext as U,useEffect as S}from"react";import{PointCloudContainer as W}from"./PointCloudLayout.js";import{PointCloudContext as X}from"./PointCloudContext.js";import{connect as Y}from"react-redux";import{cKeyCode as Z,pointCloudLidar2image as B}from"@labelbee/lb-annotation";import{LabelBeeContext as ee}from"../../store/ctx.js";import{a2MapStateToProps as te}from"../../store/annotation/map.js";import{toolStyleConverter as ne}from"@labelbee/lb-utils";import oe from"./PointCloud2DSingleView.js";import V from"./components/TitleButton/index.js";import{LeftOutlined as ie}from"@ant-design/icons";import re from"classnames";import le from"../../assets/annotation/common/icon_esc.svg.js";import se from"../../assets/annotation/common/icon_left_squareOutlined.svg.js";import ae from"../../assets/annotation/common/icon_right_squareOutlined.svg.js";var ce=Object.defineProperty,me=Object.defineProperties,ue=Object.getOwnPropertyDescriptors,R=Object.getOwnPropertySymbols,pe=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable,A=(e,o,t)=>o in e?ce(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,_=(e,o)=>{for(var t in o||(o={}))pe.call(o,t)&&A(e,t,o[t]);if(R)for(var t of R(o))de.call(o,t)&&A(e,t,o[t]);return e},x=(e,o)=>me(e,ue(o));const C=Z.default,ge=({showEnlarge:e,isEnlargeTopView:o,data:t,setIsEnlarge:d,setCurIndex:m,curIndex:g=0,index:f,annotations2d:s})=>o?n.createElement(V,{title:t==null?void 0:t.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?n.createElement("div",{style:{display:"flex",alignItems:"center"}},n.createElement(ie,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{d(!1),m(void 0)}}),n.createElement("span",null,t==null?void 0:t.calName),n.createElement("span",{style:{marginLeft:"8px"}},g+1,"/",s==null?void 0:s.length)):n.createElement(V,{title:t==null?void 0:t.calName,onClick:()=>{d(!0),m(f)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),fe=({currentData:e,config:o,thumbnailWidth:t,isEnlargeTopView:d,highlightAttribute:m,loadPCDFileLoading:g})=>{var f;const[s,T]=E([]),{topViewInstance:K,displayPointCloudList:h}=U(X),[w,$]=E(""),[v,b]=E(!1),[a,y]=E(void 0);S(()=>{var i;if(!g&&K&&(e==null?void 0:e.mappingImgList)&&((i=e==null?void 0:e.mappingImgList)==null?void 0:i.length)>0){const r={fill:"transparent",color:"green"};let l=[];e==null||e.mappingImgList.forEach(c=>{var u;const D=h.reduce((G,p)=>{var j;const H=p.id===w||m===p.attribute,{transferViewData:J,viewRangePointList:P}=B(p,c.calib,{createRange:H}),k=(j=ne.getColorFromConfig({attribute:p.attribute},x(_({},o),{attributeConfigurable:!0}),{}))==null?void 0:j.stroke,Q=q({viewDataPointList:J,pointCloudBox:p,defaultViewStyle:r,stroke:k}),I=[...G,...Q];return(P==null?void 0:P.length)>0&&I.push({type:"polygon",annotation:x(_({id:w,pointList:P},r),{stroke:k,fill:"rgba(255, 255, 255, 0.6)"})}),I},[]);l.push({annotations:D,url:c==null?void 0:c.url,calName:(u=c.calib)==null?void 0:u.calName,calib:c==null?void 0:c.calib})}),T(l)}},[h,e==null?void 0:e.mappingImgList,w,m,g]),S(()=>(window.addEventListener("keydown",L),()=>{window.removeEventListener("keydown",L)}),[a]);const L=i=>{const{keyCode:r}=i;switch(r){case C.Esc:v&&b(!1);break;case C.Left:F();break;case C.Right:O();break}},F=()=>{a===void 0||!v||Number(a)>0&&y(a-1)},O=()=>{a===void 0||!v||Number(a)<(s==null?void 0:s.length)-1&&y(a+1)},q=({viewDataPointList:i,pointCloudBox:r,defaultViewStyle:l,stroke:c})=>i.map(u=>({type:u.type,annotation:x(_({id:r.id,pointList:u.pointList},l),{stroke:c})})),z=!e||!(e==null?void 0:e.mappingImgList)||!(((f=e==null?void 0:e.mappingImgList)==null?void 0:f.length)>0),M=n.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},n.createElement("img",{src:se,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>F()}),n.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),n.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),n.createElement("img",{src:ae,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>O()}),n.createElement("img",{src:le,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{b(!1),y(void 0)}}),n.createElement("span",null,"\u952E\u9000\u51FA"));return(s==null?void 0:s.length)>0?n.createElement(n.Fragment,null,s.map((i,r)=>{const l=v&&r===a;return n.createElement(W,{className:re({[N("point-cloud-2d-container")]:!0,[N("point-cloud-container","zoom")]:l}),title:n.createElement(ge,{showEnlarge:l,isEnlargeTopView:d,data:i,setIsEnlarge:b,setCurIndex:y,curIndex:a,index:r,annotations2d:s}),titleOnSurface:!l,style:{display:z?"none":"flex",width:l?"100%":t},key:r,toolbar:M},(i==null?void 0:i.annotations)&&(i==null?void 0:i.url)&&n.createElement(oe,{currentData:e,view2dData:i,setSelectedID:$,showEnlarge:l}))})):null};var ve=Y(te,null,null,{context:ee})(fe);export{ve as default};
1
+ import{getClassName as S}from"../../utils/dom.js";import n,{useState as E,useContext as X,useEffect as V}from"react";import{PointCloudContainer as Y}from"./PointCloudLayout.js";import{PointCloudContext as Z}from"./PointCloudContext.js";import{connect as B}from"react-redux";import{cKeyCode as D,pointCloudLidar2image as ee}from"@labelbee/lb-annotation";import{LabelBeeContext as te}from"../../store/ctx.js";import{a2MapStateToProps as ne}from"../../store/annotation/map.js";import{toolStyleConverter as oe}from"@labelbee/lb-utils";import ie from"./PointCloud2DSingleView.js";import R from"./components/TitleButton/index.js";import{LeftOutlined as le}from"@ant-design/icons";import re from"classnames";import se from"../../assets/annotation/common/icon_esc.svg.js";import ae from"../../assets/annotation/common/icon_left_squareOutlined.svg.js";import ce from"../../assets/annotation/common/icon_right_squareOutlined.svg.js";var ue=Object.defineProperty,me=Object.defineProperties,pe=Object.getOwnPropertyDescriptors,A=Object.getOwnPropertySymbols,de=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable,T=(e,o,t)=>o in e?ue(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,h=(e,o)=>{for(var t in o||(o={}))de.call(o,t)&&T(e,t,o[t]);if(A)for(var t of A(o))fe.call(o,t)&&T(e,t,o[t]);return e},x=(e,o)=>me(e,pe(o));const C=D.default,ge=({showEnlarge:e,isEnlargeTopView:o,data:t,setIsEnlarge:f,setCurIndex:u,curIndex:g=0,index:w,annotations2d:m})=>o?n.createElement(R,{title:t==null?void 0:t.calName,style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}):e?n.createElement("div",{style:{display:"flex",alignItems:"center"}},n.createElement(le,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{f(!1),u(void 0)}}),n.createElement("span",null,t==null?void 0:t.calName),n.createElement("span",{style:{marginLeft:"8px"}},g+1,"/",m==null?void 0:m.length)):n.createElement(R,{title:t==null?void 0:t.calName,onClick:()=>{f(!0),u(w)},style:{background:"rgba(0, 0, 0, 0.74)",color:"#FFFFFF"}}),ve=({currentData:e,config:o,thumbnailWidth:t,isEnlargeTopView:f,highlightAttribute:u,loadPCDFileLoading:g,checkMode:w})=>{var m;const[c,K]=E([]),{topViewInstance:$,displayPointCloudList:L}=X(Z),[b,q]=E(""),[v,P]=E(!1),[a,y]=E(void 0);V(()=>{var i;if(!g&&$&&(e==null?void 0:e.mappingImgList)&&((i=e==null?void 0:e.mappingImgList)==null?void 0:i.length)>0){const l={fill:"transparent",color:"green"};let r=[];e==null||e.mappingImgList.forEach(s=>{var p;const H=L.reduce((J,d)=>{var k;const Q=d.id===b||u===d.attribute,{transferViewData:U,viewRangePointList:_}=ee(d,s.calib,{createRange:Q}),I=(k=oe.getColorFromConfig({attribute:d.attribute},x(h({},o),{attributeConfigurable:!0}),{}))==null?void 0:k.stroke,W=z({viewDataPointList:U,pointCloudBox:d,defaultViewStyle:l,stroke:I}),N=[...J,...W];return(_==null?void 0:_.length)>0&&N.push({type:"polygon",annotation:x(h({id:b,pointList:_},l),{stroke:I,fill:"rgba(255, 255, 255, 0.6)"})}),N},[]);r.push({annotations:H,url:s==null?void 0:s.url,calName:(p=s.calib)==null?void 0:p.calName,calib:s==null?void 0:s.calib,path:s==null?void 0:s.path})}),K(r)}},[L,e==null?void 0:e.mappingImgList,b,u,g]),V(()=>(window.addEventListener("keydown",F),()=>{window.removeEventListener("keydown",F)}),[a]);const F=i=>{const{keyCode:l}=i;switch(l){case C.Esc:v&&P(!1);break;case C.Left:O();break;case C.Right:j();break}},O=()=>{a===void 0||!v||Number(a)>0&&y(a-1)},j=()=>{a===void 0||!v||Number(a)<(c==null?void 0:c.length)-1&&y(a+1)},z=({viewDataPointList:i,pointCloudBox:l,defaultViewStyle:r,stroke:s})=>i.map(p=>({type:p.type,annotation:x(h({id:l.id,pointList:p.pointList},r),{stroke:s})})),M=!e||!(e==null?void 0:e.mappingImgList)||!(((m=e==null?void 0:e.mappingImgList)==null?void 0:m.length)>0),G=n.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:"14px"}},n.createElement("img",{src:ae,style:{height:"24px",marginRight:"8px",cursor:"pointer"},onClick:()=>O()}),n.createElement("span",{style:{marginRight:"12px"}},"\u952E\u76D8\u5DE6\u952E\u4E0A\u4E00\u5F20"),n.createElement("span",{style:{margin:"0px 8px 0px 12px"}},"\u952E\u76D8\u53F3\u952E\u4E0A\u4E00\u5F20"),n.createElement("img",{src:ce,style:{height:"24px",marginRight:"12px",cursor:"pointer"},onClick:()=>j()}),n.createElement("img",{src:se,style:{height:"24px",margin:"0px 8px 0px 12px",cursor:"pointer"},onClick:()=>{P(!1),y(void 0)}}),n.createElement("span",null,"\u952E\u9000\u51FA"));return(c==null?void 0:c.length)>0?n.createElement(n.Fragment,null,c.map((i,l)=>{const r=v&&l===a;return n.createElement(Y,{className:re({[S("point-cloud-2d-container")]:!0,[S("point-cloud-container","zoom")]:r}),title:n.createElement(ge,{showEnlarge:r,isEnlargeTopView:f,data:i,setIsEnlarge:P,setCurIndex:y,curIndex:a,index:l,annotations2d:c}),titleOnSurface:!r,style:{display:M?"none":"flex",width:r?"100%":t},key:l,toolbar:G},(i==null?void 0:i.annotations)&&(i==null?void 0:i.url)&&n.createElement(ie,{currentData:e,view2dData:i,setSelectedID:q,showEnlarge:r,checkMode:w}))})):null};var ye=B(ne,null,null,{context:te})(ve);export{ye as default};
@@ -1 +1 @@
1
- import{EPointCloudPattern as H}from"@labelbee/lb-utils";import X,{useState as n,useRef as Ct,useMemo as Y,useEffect as mt}from"react";import{ActionsHistory as $,EToolName as G}from"@labelbee/lb-annotation";import{useDispatch as Lt}from"../../store/ctx.js";import{ChangeSave as bt}from"../../store/annotation/actionCreators.js";var St=(I,a,c)=>new Promise((f,m)=>{var L=d=>{try{u(c.next(d))}catch(s){m(s)}},A=d=>{try{u(c.throw(d))}catch(s){m(s)}},u=d=>d.done?f(d.value):Promise.resolve(d.value).then(L,A);u((c=c.apply(I,a)).next())});const tt=X.createContext({pointCloudBoxList:[],pointCloudSphereList:[],displayPointCloudList:[],displaySphereList:[],displayLineList:[],polygonList:[],lineList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudSphereList:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],addPointCloudSphere:()=>[],setPolygonList:()=>{},setLineList:()=>{},zoom:1,setZoom:()=>{},history:new $,hideAttributes:[],setHideAttributes:()=>{},toggleAttributesVisible:()=>{},reRender:()=>{},setAttrPanelLayout:()=>{},attrPanelLayout:"",syncAllViewPointCloudColor:()=>Promise.resolve(),defaultAttribute:"",setDefaultAttribute:()=>{},pointCloudPattern:G.Rect,setPointCloudPattern:()=>{},selectSpecAttr:()=>{},globalPattern:H.Detection,setGlobalPattern:()=>{},setPtSegmentInstance:()=>{},segmentation:[],setSegmentation:()=>{},clearAllDetectionInstance:()=>{},highlight2DDataList:[],setHighlight2DDataList:()=>{}}),yt=({children:I})=>{const[a,c]=n([]),[f,m]=n([]),[L,A]=n([]),[u,d]=n([]),[s,D]=n([]),[_,et]=n(!0),[E,nt]=n(1),[i,F]=n(),[M,j]=n(),[k,O]=n(),[o,T]=n(),[z,ot]=n(""),[w,it]=n(G.Rect),st=Ct(new $).current,[l,V]=n([]),[Z,lt]=n(""),[x,rt]=n(H.Detection),[g,N]=n(void 0),[B,at]=n([]),[R,dt]=n([]),ct=Lt(),q=Y(()=>s.length===1?s[0]:"",[s]),J=Y(()=>{const p=a.find(t=>t.id===q),h=t=>{const e=a.concat(t);return c(e),e},P=t=>{const e=f.concat(t);return m(e),e},v=t=>{et(t!==!1)},r=t=>{t===void 0&&D([]),typeof t=="string"&&D([t]),Array.isArray(t)&&D(Array.from(new Set(t)))},pt=t=>{s.includes(t)?r(s.filter(e=>e!==t)):r([...s,t])},Pt=()=>{if(w===G.Rect){const t=a.map(e=>e.id);r(t),i==null||i.pointCloud2dOperation.setSelectedIDs(t)}},vt=t=>{r(a.filter(e=>e.attribute===t).map(e=>e.id))},K=a.filter(t=>!l.includes(t.attribute)),Q=f.filter(t=>!l.includes(t.attribute)),U=u.filter(t=>t.attribute&&!l.includes(t.attribute)),ft=t=>{if(l.includes(t))V(l.filter(e=>e!==t));else{const e=l.concat(t);V(e)}},gt=(t=K,e=L,b=Q,y=U,S=B)=>{var C;o==null||o.clearAllBox(),o==null||o.clearAllSphere(),i==null||i.updatePolygonList(t,e),i==null||i.updatePointList(b),i==null||i.updateLineList(y),o==null||o.generateBoxes(t),o==null||o.generateSpheres(b),(C=g==null?void 0:g.store)==null||C.updateCurrentSegment(S),W(t)},ht=()=>{F(void 0),j(void 0),O(void 0),T(void 0)},W=(t,e)=>St(void 0,null,function*(){var b;if(!o)return;const y=o.pointCloudObject;if(!!y)try{const S=yield o.getHighlightIndexByMappingImgList({mappingImgList:e!=null?e:R,points:y.geometry.attributes.position.array}),C=yield o==null?void 0:o.highlightOriginPointCloud(t,S);return C&&((b=i==null?void 0:i.pointCloudInstance)==null||b.updateColor(C)),C}catch(S){console.error(S)}});return{selectedID:q,pointCloudBoxList:a,pointCloudSphereList:f,displayPointCloudList:K,displaySphereList:Q,displayLineList:U,selectedIDs:s,setPointCloudResult:c,setSelectedIDs:r,addPointCloudBox:h,addPointCloudSphere:P,setPointCloudSphereList:m,valid:_,selectedPointCloudBox:p,setPointCloudValid:v,addSelectedID:pt,selectedAllBoxes:Pt,topViewInstance:i,setTopViewInstance:F,sideViewInstance:M,setSideViewInstance:j,backViewInstance:k,setBackViewInstance:O,mainViewInstance:o,setMainViewInstance:T,polygonList:L,setPolygonList:A,lineList:u,setLineList:d,zoom:E,setZoom:nt,history:st,toggleAttributesVisible:ft,hideAttributes:l,setHideAttributes:V,reRender:gt,attrPanelLayout:Z,setAttrPanelLayout:lt,syncAllViewPointCloudColor:W,defaultAttribute:z,setDefaultAttribute:ot,pointCloudPattern:w,setPointCloudPattern:it,selectSpecAttr:vt,globalPattern:x,setGlobalPattern:t=>{x!==t&&(ct(bt),rt(t),t===H.Detection&&N(void 0))},ptSegmentInstance:g,setPtSegmentInstance:N,segmentation:B,setSegmentation:at,clearAllDetectionInstance:ht,highlight2DDataList:R,setHighlight2DDataList:dt}},[_,s,a,f,L,u,i,M,k,o,E,l,Z,z,w,x,g,B,R]),ut=()=>{const p=a.filter(r=>l.includes(r.attribute)),{setSelectedIDs:h,reRender:P}=J,v=p.map(r=>r.id);v.length>0&&h(s.filter(r=>!v.includes(r))),P()};return mt(()=>{var p,h,P,v;ut(),(h=(p=i==null?void 0:i.toolInstance)==null?void 0:p.setHiddenAttributes)==null||h.call(p,l),(v=(P=g==null?void 0:g.store)==null?void 0:P.setHiddenAttributes)==null||v.call(P,l)},[l]),X.createElement(tt.Provider,{value:J},I)};export{tt as PointCloudContext,yt as PointCloudProvider};
1
+ import{EPointCloudPattern as O}from"@labelbee/lb-utils";import $,{useState as n,useRef as wt,useMemo as tt,useEffect as At}from"react";import{ActionsHistory as et,EToolName as R}from"@labelbee/lb-annotation";import{useDispatch as Dt}from"../../store/ctx.js";import{ChangeSave as Vt}from"../../store/annotation/actionCreators.js";var _t=Object.defineProperty,xt=Object.defineProperties,Bt=Object.getOwnPropertyDescriptors,ot=Object.getOwnPropertySymbols,Ot=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,nt=(l,e,i)=>e in l?_t(l,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):l[e]=i,Ht=(l,e)=>{for(var i in e||(e={}))Ot.call(e,i)&&nt(l,i,e[i]);if(ot)for(var i of ot(e))Rt.call(e,i)&&nt(l,i,e[i]);return l},jt=(l,e)=>xt(l,Bt(e)),zt=(l,e,i)=>new Promise((h,C)=>{var I=P=>{try{v(i.next(P))}catch(a){C(a)}},w=P=>{try{v(i.throw(P))}catch(a){C(a)}},v=P=>P.done?h(P.value):Promise.resolve(P.value).then(I,w);v((i=i.apply(l,e)).next())});const it=$.createContext({pointCloudBoxList:[],pointCloudSphereList:[],displayPointCloudList:[],displaySphereList:[],displayLineList:[],polygonList:[],lineList:[],selectedID:"",selectedIDs:[],valid:!0,setSelectedIDs:()=>{},setPointCloudResult:()=>{},setPointCloudSphereList:()=>{},setPointCloudValid:()=>{},setTopViewInstance:()=>{},setSideViewInstance:()=>{},setBackViewInstance:()=>{},setMainViewInstance:()=>{},addSelectedID:()=>{},selectedAllBoxes:()=>{},addPointCloudBox:()=>[],addPointCloudSphere:()=>[],setPolygonList:()=>{},setLineList:()=>{},zoom:1,setZoom:()=>{},history:new et,hideAttributes:[],setHideAttributes:()=>{},toggleAttributesVisible:()=>{},reRender:()=>{},setAttrPanelLayout:()=>{},attrPanelLayout:"",syncAllViewPointCloudColor:()=>Promise.resolve(),defaultAttribute:"",setDefaultAttribute:()=>{},pointCloudPattern:R.Rect,setPointCloudPattern:()=>{},selectSpecAttr:()=>{},globalPattern:O.Detection,setGlobalPattern:()=>{},setPtSegmentInstance:()=>{},segmentation:[],setSegmentation:()=>{},clearAllDetectionInstance:()=>{},highlight2DDataList:[],setHighlight2DDataList:()=>{},cuboidBoxIn2DView:!0,setCuboidBoxIn2DView:l=>{},imageSizes:{},cacheImageNodeSize:()=>{}}),Et=({children:l})=>{const[e,i]=n([]),[h,C]=n([]),[I,w]=n([]),[v,P]=n([]),[a,A]=n([]),[H,st]=n(!0),[j,lt]=n(!0),[z,rt]=n(1),[r,E]=n(),[G,N]=n(),[F,M]=n(),[s,T]=n(),[Z,at]=n(""),[D,ct]=n(R.Rect),dt=wt(new et).current,[c,V]=n([]),[k,ut]=n(""),[_,pt]=n(O.Detection),[m,q]=n(void 0),[x,Pt]=n([]),[B,ft]=n([]),[J,gt]=n({}),vt=Dt(),ht=f=>{const{imgNode:u,path:p}=f;p&&u&&gt(g=>jt(Ht({},g),{[p]:{width:u.width,height:u.height}}))},K=tt(()=>a.length===1?a[0]:"",[a]),Q=tt(()=>{const f=e.find(t=>t.id===K),u=t=>{const o=e.concat(t);return i(o),o},p=t=>{const o=h.concat(t);return C(o),o},g=t=>{st(t!==!1)},d=t=>{t===void 0&&A([]),typeof t=="string"&&A([t]),Array.isArray(t)&&A(Array.from(new Set(t)))},bt=t=>{a.includes(t)?d(a.filter(o=>o!==t)):d([...a,t])},Ct=()=>{if(D===R.Rect){const t=e.map(o=>o.id);d(t),r==null||r.pointCloud2dOperation.setSelectedIDs(t)}},It=t=>{d(e.filter(o=>o.attribute===t).map(o=>o.id))},U=e.filter(t=>!c.includes(t.attribute)),W=h.filter(t=>!c.includes(t.attribute)),X=v.filter(t=>t.attribute&&!c.includes(t.attribute)),St=t=>{if(c.includes(t))V(c.filter(o=>o!==t));else{const o=c.concat(t);V(o)}},yt=(t=U,o=I,S=W,L=X,y=x)=>{var b;s==null||s.clearAllBox(),s==null||s.clearAllSphere(),r==null||r.updatePolygonList(t,o),r==null||r.updatePointList(S),r==null||r.updateLineList(L),s==null||s.generateBoxes(t),s==null||s.generateSpheres(S),(b=m==null?void 0:m.store)==null||b.updateCurrentSegment(y),Y(t)},Lt=()=>{E(void 0),N(void 0),M(void 0),T(void 0)},Y=(t,o)=>zt(void 0,null,function*(){var S;if(!s)return;const L=s.pointCloudObject;if(!!L)try{const y=yield s.getHighlightIndexByMappingImgList({mappingImgList:o!=null?o:B,points:L.geometry.attributes.position.array}),b=yield s==null?void 0:s.highlightOriginPointCloud(t,y);return b&&((S=r==null?void 0:r.pointCloudInstance)==null||S.updateColor(b)),b}catch(y){console.error(y)}});return{selectedID:K,pointCloudBoxList:e,pointCloudSphereList:h,displayPointCloudList:U,displaySphereList:W,displayLineList:X,selectedIDs:a,setPointCloudResult:i,setSelectedIDs:d,addPointCloudBox:u,addPointCloudSphere:p,setPointCloudSphereList:C,valid:H,selectedPointCloudBox:f,setPointCloudValid:g,addSelectedID:bt,selectedAllBoxes:Ct,topViewInstance:r,setTopViewInstance:E,sideViewInstance:G,setSideViewInstance:N,backViewInstance:F,setBackViewInstance:M,mainViewInstance:s,setMainViewInstance:T,polygonList:I,setPolygonList:w,lineList:v,setLineList:P,zoom:z,setZoom:rt,history:dt,toggleAttributesVisible:St,hideAttributes:c,setHideAttributes:V,reRender:yt,attrPanelLayout:k,setAttrPanelLayout:ut,syncAllViewPointCloudColor:Y,defaultAttribute:Z,setDefaultAttribute:at,pointCloudPattern:D,setPointCloudPattern:ct,selectSpecAttr:It,globalPattern:_,setGlobalPattern:t=>{_!==t&&(vt(Vt),pt(t),t===O.Detection&&q(void 0))},ptSegmentInstance:m,setPtSegmentInstance:q,segmentation:x,setSegmentation:Pt,clearAllDetectionInstance:Lt,highlight2DDataList:B,setHighlight2DDataList:ft,cuboidBoxIn2DView:j,setCuboidBoxIn2DView:lt,imageSizes:J,cacheImageNodeSize:ht}},[H,a,e,h,I,v,r,G,F,s,z,c,k,Z,D,_,m,x,B,j,J]),mt=()=>{const f=e.filter(d=>c.includes(d.attribute)),{setSelectedIDs:u,reRender:p}=Q,g=f.map(d=>d.id);g.length>0&&u(a.filter(d=>!g.includes(d))),p()};return At(()=>{var f,u,p,g;mt(),(u=(f=r==null?void 0:r.toolInstance)==null?void 0:f.setHiddenAttributes)==null||u.call(f,c),(g=(p=m==null?void 0:m.store)==null?void 0:p.setHiddenAttributes)==null||g.call(p,c)},[c]),$.createElement(it.Provider,{value:Q},l)};export{it as PointCloudContext,Et as PointCloudProvider};
@@ -1 +1 @@
1
- import{EPointCloudName as tt,MathUtils as v,getCuboidFromPointCloudBox as Zt}from"@labelbee/lb-annotation";import{EPerspectiveView as M,PointCloudUtils as D,DEFAULT_SPHERE_PARAMS as Mt}from"@labelbee/lb-utils";import{useContext as Gt}from"react";import{PointCloudContext as Qt}from"../PointCloudContext.js";import{useSingleBox as ft}from"./useSingleBox.js";import{useSphere as Xt}from"./useSphere.js";import{useSelector as Yt,useDispatch as qt}from"../../../store/ctx.js";import Jt from"../../../utils/StepUtils.js";import{jsonParser as gt}from"../../../utils/index.js";import{PreDataProcess as ot,SetPointCloudLoading as Pt,SetLoadPCDFileLoading as Ct}from"../../../store/annotation/actionCreators.js";import{message as Kt}from"antd";import{useTranslation as $t}from"react-i18next";import{useHistory as to}from"./useHistory.js";import{usePolygon as oo}from"./usePolygon.js";var eo=Object.defineProperty,no=Object.defineProperties,io=Object.getOwnPropertyDescriptors,ht=Object.getOwnPropertySymbols,so=Object.prototype.hasOwnProperty,ro=Object.prototype.propertyIsEnumerable,mt=(e,t,n)=>t in e?eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t)=>{for(var n in t||(t={}))so.call(t,n)&&mt(e,n,t[n]);if(ht)for(var n of ht(t))ro.call(t,n)&&mt(e,n,t[n]);return e},k=(e,t)=>no(e,io(t)),et=(e,t,n)=>new Promise((d,o)=>{var a=u=>{try{c(n.next(u))}catch(C){o(C)}},f=u=>{try{c(n.throw(u))}catch(C){o(C)}},c=u=>u.done?d(u.value):Promise.resolve(u.value).then(a,f);c((n=n.apply(e,t)).next())});const q=5,J=90,xt=.01,y={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},nt=(e,t,n,d,o)=>{const{x:a,y:f}=D.transferCanvas2World(e,t),{defaultZ:c}=Mt,u={center:{x:a,y:f,z:c},id:e.id},C=d?L(L({},d),u):k(L({},u),{attribute:"",valid:!0});return o&&Object.assign(C,o),C},it=(e,t,n,d,o,a)=>{let f=e.pointList.map(B=>D.transferCanvas2World(B,t)),c=0,u=1,C={};if(n){const B=n.getSensesPointZAxisInPolygon(f,void 0,a);a&&B.fittedCoordinates.length>0&&(f=B.fittedCoordinates),c=(B.maxZ+B.minZ)/2,u=B.maxZ-B.minZ,C={count:B.zCount}}const[h,I,H]=f,O=v.getLineCenterPoint([h,H]),A=v.getLineLength(h,I),z=v.getLineLength(I,H),R=v.getRadiusFromQuadrangle(e.pointList);d&&(c=d.center.z,u=d.depth);const T={center:{x:O.x,y:O.y,z:c},width:a?z+xt:z,height:a?A+xt:A,depth:u,rotation:R,id:e.id},j=L(d?L(L({},d),T):k(L({},T),{attribute:"",valid:!0}),C);o&&Object.assign(j,o);const U=f.map(B=>D.transferWorld2Canvas(B,t));return{boxParams:j,newPointList:U}},yt=(e,t,n)=>{const d={x:e.x-t.x,y:e.y-t.y};return k(L({},n),{center:{x:n.center.x-d.x,y:n.center.y,z:n.center.z-d.y}})},Lt=(e,t,n,d)=>{const[o,a,f]=e.pointList,[c,u,C]=t.pointList,h=v.getLineCenterPoint([o,f]),I=v.getLineCenterPoint([c,C]),O={x:{x:h.x-I.x,y:h.y-I.y}.x,y:0,z:h.y-I.y},A=v.getLineLength(o,a),z=v.getLineLength(c,u),R=A-z,T=v.getLineLength(a,f),j=v.getLineLength(u,C),U=T-j,{newBoxParams:B}=d.getNewBoxBySideUpdate(O,U,R,n);return B},lo=(e,t,n)=>{const d={x:e.x-t.x,y:e.y-t.y};return k(L({},n),{center:{x:n.center.x,y:n.center.y-d.x,z:n.center.z-d.y}})},ao=(e,t,n,d)=>{const[o,a,f]=e.pointList,[c,u,C]=t.pointList,h=v.getLineCenterPoint([o,f]),I=v.getLineCenterPoint([c,C]),O={x:{x:h.x-I.x,y:h.y-I.y}.x,y:0,z:h.y-I.y},A=v.getLineLength(o,a),z=v.getLineLength(c,u),R=A-z,T=v.getLineLength(a,f),j=v.getLineLength(u,C),U=T-j;let{newBoxParams:B}=d.getNewBoxByBackUpdate(O,U,R,n);return B},vt=(e,t,n,d,o)=>{var a;if(!n)return;const{toolInstance:f,pointCloudInstance:c}=n;c.loadPCDFile(d,(a=o==null?void 0:o.radius)!=null?a:J);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,M.Left);c.setInitCameraPosition(u);const{point2d:C,zoom:h}=c.getSphereSidePoint2DCoordinate(e);c.camera.zoom=h,c.camera.updateProjectionMatrix(),c.render(),f.initPosition(),f.zoomChangeOnCenter(h),f.setResult([k(L(L({},t),C),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),f.setSelectedID(t.id)},Bt=(e,t,n,d)=>{if(!n)return;const{pointCloud2dOperation:o,pointCloudInstance:a}=n;a.loadPCDFileByBox(d,e,{width:q,depth:q});const{cameraPositionVector:f}=a.updateOrthoCamera(e,M.Left);a.setInitCameraPosition(f);const{polygon2d:c,zoom:u}=a.getBoxSidePolygon2DCoordinate(e);a.camera.zoom=u,a.camera.updateProjectionMatrix(),a.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},bt=(e,t,n,d,o)=>{var a;if(!n)return;const{toolInstance:f,pointCloudInstance:c}=n;c.loadPCDFile(d,(a=o==null?void 0:o.radius)!=null?a:J);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,M.Back);c.setInitCameraPosition(u);const{point2d:C,zoom:h}=c.getSphereBackPoint2DCoordinate(e);c.camera.zoom=h,c.camera.updateProjectionMatrix(),c.render(),f.initPosition(),f.zoomChangeOnCenter(h),f.setResult([k(L(L({},t),C),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),f.setSelectedID(t.id)},wt=(e,t,n,d)=>{if(!n)return;const{pointCloud2dOperation:o,pointCloudInstance:a}=n;a.loadPCDFileByBox(d,e,{height:q,depth:q});const{cameraPositionVector:f}=a.updateOrthoCamera(e,M.Back);a.setInitCameraPosition(f);const{polygon2d:c,zoom:u}=a.getBoxBackPolygon2DCoordinate(e);a.camera.zoom=u,a.camera.updateProjectionMatrix(),a.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},It=(e,t,n,d)=>{if(!n||!d)return;d.generateSphere(e),d.updateCameraBySphere(e,M.Top),d.render();const{toolInstance:o,pointCloudInstance:a}=n,{point2d:f}=a.getSphereTopPoint2DCoordinate(e),c=[...o.pointList].map(u=>u.id===t.id?k(L(L({},t),f),{valid:e.valid,textAttribute:"",attribute:e.attribute}):u);o.setResult(c),o.setSelectedID(t.id)},st=(e,t,n,d)=>{var o,a;if(!n||!d)return;d.generateBox(e,t.id),d.render();const{pointCloud2dOperation:f,pointCloudInstance:c}=n,{polygon2d:u}=c.getBoxTopPolygon2DCoordinate(e),C=[...f.polygonList],h=C.find(I=>I.id===t.id);h?(h.pointList=u,h.valid=(o=e.valid)!=null?o:!0):C.push({id:t.id,pointList:u,textAttribute:"",isRect:!0,valid:(a=e.valid)!=null?a:!0}),f.setResultAndSelectedID(C,t.id)},co=()=>{const e=Gt(Qt),{topViewInstance:t,sideViewInstance:n,backViewInstance:d,mainViewInstance:o,addPointCloudBox:a,addPointCloudSphere:f,setSelectedIDs:c,selectedIDs:u,pointCloudBoxList:C,pointCloudSphereList:h,hideAttributes:I,setHighlight2DDataList:H}=e,{addHistory:O,initHistory:A,pushHistoryUnderUpdatePolygon:z,pushHistoryUnderUpdateLine:R}=to(),{selectedPolygon:T}=oo(),{updateSelectedBox:j,updateSelectedBoxes:U,getPointCloudByID:B}=ft(),{getPointCloudSphereByID:St,updatePointCloudSphere:rt,selectedSphere:G}=Xt(),{currentData:F,config:w}=Yt(i=>{const{stepList:s,step:p,imgList:l,imgIndex:r}=i.annotation;return{currentData:l[r],config:gt(Jt.getCurrentStepInfo(p,s).config)}}),N=qt(),{selectedBox:S}=ft(),{t:Dt}=$t(),lt=S==null?void 0:S.info;if(!t||!n||!d)return{topViewAddSphere:()=>{},topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:K}=t,_t=i=>{o==null||o.generateBox(i),o==null||o.controls.update(),o==null||o.render()},Vt=i=>{o==null||o.generateSphere(i),o==null||o.controls.update(),o==null||o.render()},Ot=({newPoint:i,size:s,zoom:p,trackConfigurable:l})=>{var r;const g={attribute:(r=t.toolInstance.defaultAttribute)!=null?r:""};l===!0&&Object.assign(g,{trackID:D.getNextTrackID({imgList:[],extraBoxList:[],extraSphereList:h})});const P=nt(i,s,K,void 0,g);c(i.id);const m=f(P);Q(y.Top,i,P,p,m,w),O({newSphereParams:P})},Ut=({polygon:i,size:s,imgList:p,trackConfigurable:l,zoom:r,intelligentFit:g})=>{var P,m;const x={attribute:(P=t.toolInstance.defaultAttribute)!=null?P:""};l===!0&&Object.assign(x,{trackID:D.getNextTrackID({imgList:[],extraBoxList:C,extraSphereList:h})});const _=t==null?void 0:t.toolInstance,V=L({},i);let{boxParams:b,newPointList:E}=it(V,s,K,void 0,x,g);if(b=N(ot({tool:tt.PointCloud,dataList:[b],stepConfig:w,action:"viewUpdateBox"}))[0],(w==null?void 0:w.lowerLimitPointsNumInBox)&&typeof b.count=="number"&&b.count<w.lowerLimitPointsNumInBox){Kt.info(Dt("LowerLimitPointsNumInBox",{num:w.lowerLimitPointsNumInBox})),_.deletePolygon(b.id);return}g&&(E==null?void 0:E.length)&&(V.pointList=E);const X=I.includes(V.attribute),Z=a(b),$=(m=e==null?void 0:e.polygonList)!=null?m:[];t==null||t.updatePolygonList(Z!=null?Z:[],$),X?c([]):(c(b.id),_.selection.setSelectedIDs(V.id),W({omitView:y.Top,polygon:V,boxParams:b,zoom:r,newPointCloudBoxList:Z}),g&&st(b,V,t,o)),O({newBoxParams:b})},kt=({newSelectedBox:i,newPointCloudList:s,newSelectedSphere:p,newSphereList:l})=>{var r;const g=t==null?void 0:t.toolInstance;if(!(u.length===0||!g)){if(i||(S==null?void 0:S.info)){const P=i!=null?i:S==null?void 0:S.info;(r=g==null?void 0:g.selection)==null||r.setSelectedIDs(u[0]);const m=g.selectedPolygon;if(u.length===1&&P){W({omitView:y.Top,polygon:m,boxParams:P,newPointCloudBoxList:s});return}}if((p||G)&&u.length===1){const P=p!=null?p:G;g.setSelectedID(u[0]);const m=g.selectedPoint;P&&Q(y.Top,m,P,void 0,l,w)}}},dt=(i,s,p)=>{if(lt){let l,r;switch(p){case y.Back:l=ao;break;case y.Side:l=Lt;break;default:l=Lt;break}r=l(i,s,lt,n.pointCloudInstance);const P=N(ot({tool:tt.PointCloud,dataList:[r],stepConfig:w,action:"viewUpdateBox"}))[0],m=r.valid!==P.valid;if(r=P,o){const{count:_}=o.getSensesPointZAxisInPolygon(Zt(r).polygonPointList,[r.center.z-r.depth/2,r.center.z+r.depth/2]);r=k(L({},r),{count:_})}const x=j(r);return r=x.find(_=>_.id===r.id),W({omitView:m?void 0:p,polygon:i,boxParams:r,newPointCloudBoxList:x}),x}},at=(i,s,p)=>{if(G){let l,r;switch(p){case y.Back:l=lo;break;case y.Side:l=yt;break;default:l=yt;break}r=l(i,s,G);const g=rt(r);return Q(p,i,r,void 0,g,w),g}},At=(i,s)=>{at(i,s,y.Side)},zt=(i,s)=>{at(i,s,y.Back)},Tt=(i,s)=>{dt(i,s,y.Side)},jt=(i,s)=>{dt(i,s,y.Back)},Rt=(i,s)=>{R(i)},Nt=(i,s)=>{const p=St(i.id),l=nt(i,s,K,p),r=rt(l);Q(y.Top,i,l,void 0,r,w)},Et=(i,s)=>{if(T){const l=i[0].newPolygon;l.pointList=l.pointList.map(r=>D.transferCanvas2World(r,s)),z(i[0].newPolygon);return}let p=i.map(({newPolygon:l})=>{const r=B(l.id),{boxParams:g}=it(l,s,t.pointCloudInstance,r);return g});if(p=N(ot({tool:tt.PointCloud,dataList:p,stepConfig:w,action:"viewUpdateBox"})),p.length===1){const{newPolygon:l}=i[0],r=U(p);W({polygon:l,boxParams:p[0],newPointCloudBoxList:r})}else{const l=U(p);l&&e.syncAllViewPointCloudColor(l)}},Ht=i=>{var s,p,l,r,g;if(S){const P=Number(i.widthDefault),m=Number(i.depthDefault),x=Number(i.heightDefault),_=S==null?void 0:S.info.trackID,b=((s=t==null?void 0:t.toolInstance)==null?void 0:s.polygonList).find(Y=>(Y==null?void 0:Y.trackID)===_),E={width:(l=(p=t==null?void 0:t.toolInstance)==null?void 0:p.basicImgInfo)==null?void 0:l.width,height:(g=(r=t==null?void 0:t.toolInstance)==null?void 0:r.basicImgInfo)==null?void 0:g.height},ct=b.pointList.map(Y=>D.transferCanvas2World(Y,E)),X=v.getModifiedRectangleCoordinates(ct,x,P),Z=X[0],$=X[2],ut=v.getLineCenterPoint([Z,$]),Ft=S.info.center.z-S.info.depth/2,pt=k(L({},S.info),{center:{x:ut.x,y:ut.y,z:Ft+m/2},width:P,height:x,depth:m,valid:!0}),Wt=U([pt]);W({omitView:y["3D"],polygon:b,boxParams:pt,newPointCloudBoxList:Wt})}},Q=(i,s,p,l,r,g)=>et(void 0,null,function*(){const P=F==null?void 0:F.url,m={[y.Side]:()=>{vt(p,s,n,P,g)},[y.Back]:()=>{d&&bt(p,s,d,P,g)},[y.Top]:()=>{It(p,s,t,o)}};Object.keys(m).forEach(x=>{x!==i&&m[x]()}),l&&(o==null||o.updateCameraZoom(l)),Vt(p)}),W=i=>et(void 0,null,function*(){const{omitView:s,polygon:p,boxParams:l,zoom:r,newPointCloudBoxList:g}=i,P=F==null?void 0:F.url;g&&(yield e.syncAllViewPointCloudColor(g));const m={[y.Side]:()=>{Bt(l,p,n,P)},[y.Back]:()=>{d&&wt(l,p,d,P)},[y.Top]:()=>{st(l,p,t,o)}};Object.keys(m).forEach(x=>{x!==s&&m[x]()}),r&&(o==null||o.updateCameraZoom(r)),_t(l)});return{topViewAddSphere:Ot,topViewAddBox:Ut,topViewSelectedChanged:kt,topViewUpdatePoint:Nt,sideViewUpdatePoint:At,backViewUpdatePoint:zt,topViewUpdateBox:Et,topViewUpdateLine:Rt,sideViewUpdateBox:Tt,backViewUpdateBox:jt,pointCloudBoxListUpdated:i=>{t.updatePolygonList(i),o==null||o.generateBoxes(i)},initPointCloud3d:i=>{if(!o)return;const s=D.getDefaultOrthographicParams(i);o.initOrthographicCamera(s),o.initRenderer(),o.render()},updatePointCloudData:(...i)=>et(void 0,[...i],function*(s=F){var p,l,r,g,P,m;if(!(s==null?void 0:s.url)||!o)return;H([]),Pt(N,!0),Ct(N,!0),yield o.loadPCDFile(s.url,(p=w==null?void 0:w.radius)!=null?p:J),o==null||o.clearAllBox(),o==null||o.clearAllSphere();let x=[],_=[],V=[],b=[];o.updateTopCamera();const E=(r=(l=gt(s.result))==null?void 0:l.valid)!=null?r:!0;e.setPointCloudValid(E),(g=e.sideViewInstance)==null||g.clearAllData(),(P=e.backViewInstance)==null||P.clearAllData(),t.updateData(s.url,s.result,{radius:(m=w==null?void 0:w.radius)!=null?m:J}),s.result&&(x=D.getBoxParamsFromResultList(s.result),V=D.getPolygonListFromResultList(s.result),_=D.getLineListFromResultList(s.result),b=D.getSphereParamsFromResultList(s.result),o==null||o.generateBoxes(x),o==null||o.generateSpheres(b),yield e.syncAllViewPointCloudColor(x,[])),A({pointCloudBoxList:x,polygonList:V,lineList:_,pointCloudSphereList:b}),Pt(N,!1),Ct(N,!1)}),updateViewsByDefaultSize:Ht}};export{bt as syncBackViewByPoint,vt as syncSideViewByPoint,It as syncTopViewByPoint,wt as synchronizeBackView,Bt as synchronizeSideView,st as synchronizeTopView,nt as topViewPoint2PointCloud,it as topViewPolygon2PointCloud,co as usePointCloudViews};
1
+ import{EPointCloudName as nt,MathUtils as B,getCuboidFromPointCloudBox as Qt}from"@labelbee/lb-annotation";import{EPerspectiveView as Q,PointCloudUtils as V,DEFAULT_SPHERE_PARAMS as Xt}from"@labelbee/lb-utils";import{useContext as Yt}from"react";import{PointCloudContext as qt}from"../PointCloudContext.js";import{useSingleBox as Jt}from"./useSingleBox.js";import{useSphere as Kt}from"./useSphere.js";import{useSelector as $t,useDispatch as to}from"../../../store/ctx.js";import oo from"../../../utils/StepUtils.js";import{jsonParser as Ct,getRectPointCloudBox as eo}from"../../../utils/index.js";import{PreDataProcess as it,SetPointCloudLoading as Pt,SetLoadPCDFileLoading as mt}from"../../../store/annotation/actionCreators.js";import{message as no}from"antd";import{useTranslation as io}from"react-i18next";import{useHistory as so}from"./useHistory.js";import{usePolygon as ro}from"./usePolygon.js";var lo=Object.defineProperty,ao=Object.defineProperties,co=Object.getOwnPropertyDescriptors,xt=Object.getOwnPropertySymbols,uo=Object.prototype.hasOwnProperty,po=Object.prototype.propertyIsEnumerable,ht=(e,t,i)=>t in e?lo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,L=(e,t)=>{for(var i in t||(t={}))uo.call(t,i)&&ht(e,i,t[i]);if(xt)for(var i of xt(t))po.call(t,i)&&ht(e,i,t[i]);return e},O=(e,t)=>ao(e,co(t)),st=(e,t,i)=>new Promise((d,o)=>{var a=u=>{try{c(i.next(u))}catch(P){o(P)}},g=u=>{try{c(i.throw(u))}catch(P){o(P)}},c=u=>u.done?d(u.value):Promise.resolve(u.value).then(a,g);c((i=i.apply(e,t)).next())});const J=5,K=90,Lt=.01,v={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},rt=(e,t,i,d,o)=>{const{x:a,y:g}=V.transferCanvas2World(e,t),{defaultZ:c}=Xt,u={center:{x:a,y:g,z:c},id:e.id},P=d?L(L({},d),u):O(L({},u),{attribute:"",valid:!0});return o&&Object.assign(P,o),P},lt=(e,t,i,d,o,a)=>{let g=e.pointList.map(w=>V.transferCanvas2World(w,t)),c=0,u=1,P={};if(i){const w=i.getSensesPointZAxisInPolygon(g,void 0,a);a&&w.fittedCoordinates.length>0&&(g=w.fittedCoordinates),c=(w.maxZ+w.minZ)/2,u=w.maxZ-w.minZ,P={count:w.zCount}}const[h,D,F]=g,z=B.getLineCenterPoint([h,F]),R=B.getLineLength(h,D),k=B.getLineLength(D,F),N=B.getRadiusFromQuadrangle(e.pointList);d&&(c=d.center.z,u=d.depth);const T={center:{x:z.x,y:z.y,z:c},width:a?k+Lt:k,height:a?R+Lt:R,depth:u,rotation:N,id:e.id},j=L(d?L(L({},d),T):O(L({},T),{attribute:"",valid:!0}),P);o&&Object.assign(j,o);const E=g.map(w=>V.transferWorld2Canvas(w,t));return{boxParams:j,newPointList:E}},yt=(e,t,i)=>{const d={x:e.x-t.x,y:e.y-t.y};return O(L({},i),{center:{x:i.center.x-d.x,y:i.center.y,z:i.center.z-d.y}})},vt=(e,t,i,d)=>{const[o,a,g]=e.pointList,[c,u,P]=t.pointList,h=B.getLineCenterPoint([o,g]),D=B.getLineCenterPoint([c,P]),z={x:{x:h.x-D.x,y:h.y-D.y}.x,y:0,z:h.y-D.y},R=B.getLineLength(o,a),k=B.getLineLength(c,u),N=R-k,T=B.getLineLength(a,g),j=B.getLineLength(u,P),E=T-j,{newBoxParams:w}=d.getNewBoxBySideUpdate(z,E,N,i);return w},go=(e,t,i)=>{const d={x:e.x-t.x,y:e.y-t.y};return O(L({},i),{center:{x:i.center.x,y:i.center.y-d.x,z:i.center.z-d.y}})},fo=(e,t,i,d)=>{const[o,a,g]=e.pointList,[c,u,P]=t.pointList,h=B.getLineCenterPoint([o,g]),D=B.getLineCenterPoint([c,P]),z={x:{x:h.x-D.x,y:h.y-D.y}.x,y:0,z:h.y-D.y},R=B.getLineLength(o,a),k=B.getLineLength(c,u),N=R-k,T=B.getLineLength(a,g),j=B.getLineLength(u,P),E=T-j;let{newBoxParams:w}=d.getNewBoxByBackUpdate(z,E,N,i);return w},Bt=(e,t,i,d,o)=>{var a;if(!i)return;const{toolInstance:g,pointCloudInstance:c}=i;c.loadPCDFile(d,(a=o==null?void 0:o.radius)!=null?a:K);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,Q.Left);c.setInitCameraPosition(u);const{point2d:P,zoom:h}=c.getSphereSidePoint2DCoordinate(e);c.camera.zoom=h,c.camera.updateProjectionMatrix(),c.render(),g.initPosition(),g.zoomChangeOnCenter(h),g.setResult([O(L(L({},t),P),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),g.setSelectedID(t.id)},wt=(e,t,i,d)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:a}=i;a.loadPCDFileByBox(d,e,{width:J,depth:J});const{cameraPositionVector:g}=a.updateOrthoCamera(e,Q.Left);a.setInitCameraPosition(g);const{polygon2d:c,zoom:u}=a.getBoxSidePolygon2DCoordinate(e);a.camera.zoom=u,a.camera.updateProjectionMatrix(),a.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},bt=(e,t,i,d,o)=>{var a;if(!i)return;const{toolInstance:g,pointCloudInstance:c}=i;c.loadPCDFile(d,(a=o==null?void 0:o.radius)!=null?a:K);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,Q.Back);c.setInitCameraPosition(u);const{point2d:P,zoom:h}=c.getSphereBackPoint2DCoordinate(e);c.camera.zoom=h,c.camera.updateProjectionMatrix(),c.render(),g.initPosition(),g.zoomChangeOnCenter(h),g.setResult([O(L(L({},t),P),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),g.setSelectedID(t.id)},It=(e,t,i,d)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:a}=i;a.loadPCDFileByBox(d,e,{height:J,depth:J});const{cameraPositionVector:g}=a.updateOrthoCamera(e,Q.Back);a.setInitCameraPosition(g);const{polygon2d:c,zoom:u}=a.getBoxBackPolygon2DCoordinate(e);a.camera.zoom=u,a.camera.updateProjectionMatrix(),a.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},St=(e,t,i,d)=>{if(!i||!d)return;d.generateSphere(e),d.updateCameraBySphere(e,Q.Top),d.render();const{toolInstance:o,pointCloudInstance:a}=i,{point2d:g}=a.getSphereTopPoint2DCoordinate(e),c=[...o.pointList].map(u=>u.id===t.id?O(L(L({},t),g),{valid:e.valid,textAttribute:"",attribute:e.attribute}):u);o.setResult(c),o.setSelectedID(t.id)},dt=(e,t,i,d)=>{var o,a;if(!i||!d)return;d.generateBox(e,t.id),d.render();const{pointCloud2dOperation:g,pointCloudInstance:c}=i,{polygon2d:u}=c.getBoxTopPolygon2DCoordinate(e),P=[...g.polygonList],h=P.find(D=>D.id===t.id);h?(h.pointList=u,h.valid=(o=e.valid)!=null?o:!0):P.push({id:t.id,pointList:u,textAttribute:"",isRect:!0,valid:(a=e.valid)!=null?a:!0}),g.setResultAndSelectedID(P,t.id)},Co=()=>{const e=Yt(qt),{topViewInstance:t,sideViewInstance:i,backViewInstance:d,mainViewInstance:o,addPointCloudBox:a,addPointCloudSphere:g,setSelectedIDs:c,selectedIDs:u,pointCloudBoxList:P,pointCloudSphereList:h,hideAttributes:D,setHighlight2DDataList:F,cuboidBoxIn2DView:z,imageSizes:R}=e,{addHistory:k,initHistory:N,pushHistoryUnderUpdatePolygon:T,pushHistoryUnderUpdateLine:j}=so(),{selectedPolygon:E}=ro(),{getPointCloudSphereByID:w,updatePointCloudSphere:at,selectedSphere:X}=Kt(),{currentData:W,config:b}=$t(n=>{const{stepList:s,step:p,imgList:r,imgIndex:l}=n.annotation;return{currentData:r[l],config:Ct(oo.getCurrentStepInfo(p,s).config)}}),H=to(),$=n=>{if(!z){const{mappingImgList:s=[]}=W,p=s.map(r=>eo({pointCloudBox:n,mappingData:r,imageSizes:R}));Object.assign(n,{rects:p.filter(r=>r!==void 0)})}},{selectedBox:_,updateSelectedBox:Dt,updateSelectedBoxes:tt,getPointCloudByID:_t}=Jt({generateRects:$}),{t:Vt}=io(),ct=_==null?void 0:_.info;if(!t||!i||!d)return{topViewAddSphere:()=>{},topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:ot}=t,Ot=n=>{o==null||o.generateBox(n),o==null||o.controls.update(),o==null||o.render()},Ut=n=>{o==null||o.generateSphere(n),o==null||o.controls.update(),o==null||o.render()},kt=({newPoint:n,size:s,zoom:p,trackConfigurable:r})=>{var l;const f={attribute:(l=t.toolInstance.defaultAttribute)!=null?l:""};r===!0&&Object.assign(f,{trackID:V.getNextTrackID({imgList:[],extraBoxList:[],extraSphereList:h})});const C=rt(n,s,ot,void 0,f);c(n.id);const m=g(C);Y(v.Top,n,C,p,m,b),k({newSphereParams:C})},At=({polygon:n,size:s,imgList:p,trackConfigurable:r,zoom:l,intelligentFit:f})=>{var C,m;const x={attribute:(C=t.toolInstance.defaultAttribute)!=null?C:""};r===!0&&Object.assign(x,{trackID:V.getNextTrackID({imgList:[],extraBoxList:P,extraSphereList:h})});const I=t==null?void 0:t.toolInstance,S=L({},n);let{boxParams:y,newPointList:A}=lt(S,s,ot,void 0,x,f);if(y=H(it({tool:nt.PointCloud,dataList:[y],stepConfig:b,action:"viewUpdateBox"}))[0],(b==null?void 0:b.lowerLimitPointsNumInBox)&&typeof y.count=="number"&&y.count<b.lowerLimitPointsNumInBox){no.info(Vt("LowerLimitPointsNumInBox",{num:b.lowerLimitPointsNumInBox})),I.deletePolygon(y.id);return}f&&(A==null?void 0:A.length)&&(S.pointList=A);const U=D.includes(S.attribute);$(y);const G=a(y),et=(m=e==null?void 0:e.polygonList)!=null?m:[];t==null||t.updatePolygonList(G!=null?G:[],et),U?c([]):(c(y.id),I.selection.setSelectedIDs(S.id),M({omitView:v.Top,polygon:S,boxParams:y,zoom:l,newPointCloudBoxList:G}),f&&dt(y,S,t,o)),k({newBoxParams:y})},zt=n=>{const{boxID:s,imageName:p,width:r,height:l,x:f,y:C}=n,m=P.find(x=>x.id===s);if(m==null?void 0:m.rects){const{rects:x=[]}=m,I=x.find(S=>S.imageName===p);if(I){let S=x;const y=O(L({},I),{width:r,height:l,x:f,y:C});S=x.map(U=>U===I?y:U);const A=O(L({},m),{rects:S}),Z=P.map(U=>U===m?A:U);return t==null||t.updatePolygonList(Z!=null?Z:[]),Z}}},Rt=({newSelectedBox:n,newPointCloudList:s,newSelectedSphere:p,newSphereList:r})=>{var l;const f=t==null?void 0:t.toolInstance;if(!(u.length===0||!f)){if(n||(_==null?void 0:_.info)){const C=n!=null?n:_==null?void 0:_.info;(l=f==null?void 0:f.selection)==null||l.setSelectedIDs(u[0]);const m=f.selectedPolygon;if(u.length===1&&C){M({omitView:v.Top,polygon:m,boxParams:C,newPointCloudBoxList:s});return}}if((p||X)&&u.length===1){const C=p!=null?p:X;f.setSelectedID(u[0]);const m=f.selectedPoint;C&&Y(v.Top,m,C,void 0,r,b)}}},ut=(n,s,p)=>{if(ct){let r,l;switch(p){case v.Back:r=fo;break;case v.Side:r=vt;break;default:r=vt;break}l=r(n,s,ct,i.pointCloudInstance);const C=H(it({tool:nt.PointCloud,dataList:[l],stepConfig:b,action:"viewUpdateBox"}))[0],m=l.valid!==C.valid;if(l=C,o){const{count:I}=o.getSensesPointZAxisInPolygon(Qt(l).polygonPointList,[l.center.z-l.depth/2,l.center.z+l.depth/2]);l=O(L({},l),{count:I})}const x=Dt(l);return l=x.find(I=>I.id===l.id),M({omitView:m?void 0:p,polygon:n,boxParams:l,newPointCloudBoxList:x}),x}},pt=(n,s,p)=>{if(X){let r,l;switch(p){case v.Back:r=go;break;case v.Side:r=yt;break;default:r=yt;break}l=r(n,s,X);const f=at(l);return Y(p,n,l,void 0,f,b),f}},Tt=(n,s)=>{pt(n,s,v.Side)},jt=(n,s)=>{pt(n,s,v.Back)},Nt=(n,s)=>{ut(n,s,v.Side)},Et=(n,s)=>{ut(n,s,v.Back)},Ht=(n,s)=>{j(n)},Ft=(n,s)=>{const p=w(n.id),r=rt(n,s,ot,p),l=at(r);Y(v.Top,n,r,void 0,l,b)},Wt=(n,s)=>{if(E){const r=n[0].newPolygon;r.pointList=r.pointList.map(l=>V.transferCanvas2World(l,s)),T(n[0].newPolygon);return}let p=n.map(({newPolygon:r})=>{const l=_t(r.id),{boxParams:f}=lt(r,s,t.pointCloudInstance,l);return f});if(p=H(it({tool:nt.PointCloud,dataList:p,stepConfig:b,action:"viewUpdateBox"})),p.length===1){const{newPolygon:r}=n[0],l=tt(p);M({polygon:r,boxParams:p[0],newPointCloudBoxList:l})}else{const r=tt(p);r&&e.syncAllViewPointCloudColor(r)}},Zt=n=>{var s,p,r,l,f;if(_){const C=Number(n.widthDefault),m=Number(n.depthDefault),x=Number(n.heightDefault),I=_==null?void 0:_.info.trackID,y=((s=t==null?void 0:t.toolInstance)==null?void 0:s.polygonList).find(q=>(q==null?void 0:q.trackID)===I),A={width:(r=(p=t==null?void 0:t.toolInstance)==null?void 0:p.basicImgInfo)==null?void 0:r.width,height:(f=(l=t==null?void 0:t.toolInstance)==null?void 0:l.basicImgInfo)==null?void 0:f.height},Z=y.pointList.map(q=>V.transferCanvas2World(q,A)),U=B.getModifiedRectangleCoordinates(Z,x,C),G=U[0],et=U[2],gt=B.getLineCenterPoint([G,et]),Mt=_.info.center.z-_.info.depth/2,ft=O(L({},_.info),{center:{x:gt.x,y:gt.y,z:Mt+m/2},width:C,height:x,depth:m,valid:!0}),Gt=tt([ft]);M({omitView:v["3D"],polygon:y,boxParams:ft,newPointCloudBoxList:Gt})}},Y=(n,s,p,r,l,f)=>st(void 0,null,function*(){const C=W==null?void 0:W.url,m={[v.Side]:()=>{Bt(p,s,i,C,f)},[v.Back]:()=>{d&&bt(p,s,d,C,f)},[v.Top]:()=>{St(p,s,t,o)}};Object.keys(m).forEach(x=>{x!==n&&m[x]()}),r&&(o==null||o.updateCameraZoom(r)),Ut(p)}),M=n=>st(void 0,null,function*(){const{omitView:s,polygon:p,boxParams:r,zoom:l,newPointCloudBoxList:f}=n,C=W==null?void 0:W.url;f&&(yield e.syncAllViewPointCloudColor(f));const m={[v.Side]:()=>{wt(r,p,i,C)},[v.Back]:()=>{d&&It(r,p,d,C)},[v.Top]:()=>{dt(r,p,t,o)}};Object.keys(m).forEach(x=>{x!==s&&m[x]()}),l&&(o==null||o.updateCameraZoom(l)),Ot(r)});return{topViewAddSphere:kt,topViewAddBox:At,topViewSelectedChanged:Rt,topViewUpdatePoint:Ft,sideViewUpdatePoint:Tt,backViewUpdatePoint:jt,topViewUpdateBox:Wt,topViewUpdateLine:Ht,sideViewUpdateBox:Nt,backViewUpdateBox:Et,pointCloudBoxListUpdated:n=>{t.updatePolygonList(n),o==null||o.generateBoxes(n)},initPointCloud3d:n=>{if(!o)return;const s=V.getDefaultOrthographicParams(n);o.initOrthographicCamera(s),o.initRenderer(),o.render()},updatePointCloudData:(...n)=>st(void 0,[...n],function*(s=W){var p,r,l,f,C,m;if(!(s==null?void 0:s.url)||!o)return;F([]),Pt(H,!0),mt(H,!0),yield o.loadPCDFile(s.url,(p=b==null?void 0:b.radius)!=null?p:K),o==null||o.clearAllBox(),o==null||o.clearAllSphere();let x=[],I=[],S=[],y=[];o.updateTopCamera();const A=(l=(r=Ct(s.result))==null?void 0:r.valid)!=null?l:!0;e.setPointCloudValid(A),(f=e.sideViewInstance)==null||f.clearAllData(),(C=e.backViewInstance)==null||C.clearAllData(),t.updateData(s.url,s.result,{radius:(m=b==null?void 0:b.radius)!=null?m:K}),s.result&&(x=V.getBoxParamsFromResultList(s.result),S=V.getPolygonListFromResultList(s.result),I=V.getLineListFromResultList(s.result),y=V.getSphereParamsFromResultList(s.result),o==null||o.generateBoxes(x),o==null||o.generateSpheres(y),yield e.syncAllViewPointCloudColor(x,[])),N({pointCloudBoxList:x,polygonList:S,lineList:I,pointCloudSphereList:y}),Pt(H,!1),mt(H,!1)}),updateViewsByDefaultSize:Zt,generateRects:$,update2DViewRect:zt}};export{bt as syncBackViewByPoint,Bt as syncSideViewByPoint,St as syncTopViewByPoint,It as synchronizeBackView,wt as synchronizeSideView,dt as synchronizeTopView,rt as topViewPoint2PointCloud,lt as topViewPolygon2PointCloud,Co as usePointCloudViews};
@@ -1 +1 @@
1
- import{useContext as z,useMemo as b,useCallback as a}from"react";import u from"lodash";import{PointCloudContext as F}from"../PointCloudContext.js";import{EToolName as h,cAnnotation as G}from"@labelbee/lb-annotation";import{useHistory as J}from"./useHistory.js";import{usePolygon as Q}from"./usePolygon.js";var U=Object.defineProperty,X=Object.defineProperties,Y=Object.getOwnPropertyDescriptors,V=Object.getOwnPropertySymbols,Z=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,D=(e,i,t)=>i in e?U(e,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[i]=t,ee=(e,i)=>{for(var t in i||(i={}))Z.call(i,t)&&D(e,t,i[t]);if(V)for(var t of V(i))$.call(i,t)&&D(e,t,i[t]);return e},oe=(e,i)=>X(e,Y(i));const{ESortDirection:y}=G,ne=()=>{const{pointCloudBoxList:e,setPointCloudResult:i,topViewInstance:t,backViewInstance:v,sideViewInstance:g,selectedIDs:f,selectedID:C,mainViewInstance:s,setSelectedIDs:L,syncAllViewPointCloudColor:B,polygonList:S,pointCloudPattern:m}=z(F),{selectedPolygon:c,updateSelectedPolygon:j,updatePolygonValidByID:A,deletePolygon:E}=Q(),{pushHistoryWithList:w}=J(),l=b(()=>{const o=e.findIndex(n=>n.id===C);if(o>-1)return{info:e[o],index:o}},[C,e]),I=a(o=>{if(l==null?void 0:l.info){e.splice(l.index,1,u.merge(l.info,o));const n=u.cloneDeep(e);return i(n),w({pointCloudBoxList:n}),n}return e},[C,e]),N=a((o,n)=>{const d=e.findIndex(r=>r.id===n);if(d>-1){e.splice(d,1,u.merge(e[d],o));const r=u.cloneDeep(e);return i(r),r}return e},[e]),P=a(o=>{t==null||t.pointCloud2dOperation.setPolygonValidAndRender(o,!0),g==null||g.pointCloud2dOperation.setPolygonValidAndRender(o,!0),v==null||v.pointCloud2dOperation.setPolygonValidAndRender(o,!0)},[t,g,v]),R=a(()=>{if(l==null?void 0:l.info){const{id:o,valid:n=!0}=l.info,d=I({valid:!n});B(d),P(o)}c&&(j(oe(ee({},c),{valid:!c.valid})),t==null||t.pointCloud2dOperation.setPolygonValidAndRender(c.id,!0))},[P,l,c]),H=a(o=>{const n=e.find(d=>d.id===o);if(n){const{id:d,valid:r=!0}=n,p=N({valid:!r},d);return P(d),p}A(o)},[P,e,S]),O=a((o=y.ascend,n=!1)=>{if(!t||f.length>1)return;if(m!==h.Rect&&m!==h.Polygon){n&&document.dispatchEvent(new KeyboardEvent("keydown",{keyCode:9,shiftKey:o!==y.ascend}));return}const{pointCloud2dOperation:d}=t,r=d.switchToNextPolygon(o);r&&L(r)},[t,m,t==null?void 0:t.toolInstance]),T=(o=!1)=>{O(y.descend,o)},k=(o=!1)=>{O(y.ascend,o)},_=o=>{const n=e.filter(d=>d.id!==o);i(n),s==null||s.removeObjectByName(o,"box"),s==null||s.render(),B(n)},K=()=>{l&&(_(l.info.id),t==null||t.pointCloud2dOperation.deletePolygon(l.info.id)),c&&(E(c.id),t==null||t.pointCloud2dOperation.deletePolygon(c.id))},M=b(()=>e.filter(o=>f.includes(o.id)),[f,e]),W=a(o=>{const n=u.cloneDeep(e);let d=!1;if(o.forEach(r=>{const p=n.findIndex(x=>x.id===r.id);if(p>-1){const x=u.merge(n[p],r);n.splice(p,1,x),s==null||s.generateBox(x),d=!0}}),d)return i(n),w({pointCloudBoxList:n}),s==null||s.render(),n},[f,e]),q=a(o=>e.find(n=>n.id===o),[e]);return{selectedBox:l,updateSelectedBox:I,changeSelectedBoxValid:R,changeValidByID:H,selectNextBox:k,selectPrevBox:T,deletePointCloudBox:_,selectedBoxes:M,updateSelectedBoxes:W,getPointCloudByID:q,deleteSelectedPointCloudBoxAndPolygon:K}};export{ne as useSingleBox};
1
+ import{useContext as G,useMemo as h,useCallback as u}from"react";import f from"lodash";import{PointCloudContext as J}from"../PointCloudContext.js";import{EToolName as D,cAnnotation as Q}from"@labelbee/lb-annotation";import{useHistory as U}from"./useHistory.js";import{usePolygon as X}from"./usePolygon.js";var Y=Object.defineProperty,Z=Object.defineProperties,$=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,ee=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable,S=(i,e,l)=>e in i?Y(i,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):i[e]=l,ne=(i,e)=>{for(var l in e||(e={}))ee.call(e,l)&&S(i,l,e[l]);if(L)for(var l of L(e))oe.call(e,l)&&S(i,l,e[l]);return i},te=(i,e)=>Z(i,$(e));const{ESortDirection:y}=Q,ie=i=>{const{pointCloudBoxList:e,setPointCloudResult:l,topViewInstance:d,backViewInstance:g,sideViewInstance:C,selectedIDs:P,selectedID:m,mainViewInstance:c,setSelectedIDs:j,syncAllViewPointCloudColor:I,polygonList:R,pointCloudPattern:B}=G(J),{selectedPolygon:a,updateSelectedPolygon:A,updatePolygonValidByID:E,deletePolygon:N}=X(),{pushHistoryWithList:_}=U(),r=h(()=>{const o=e.findIndex(t=>t.id===m);if(o>-1)return{info:e[o],index:o}},[m,e]),O=u(o=>{var t;if(r==null?void 0:r.info){(t=i==null?void 0:i.generateRects)==null||t.call(i,o),e.splice(r.index,1,f.merge(r.info,o));const n=f.cloneDeep(e);return l(n),_({pointCloudBoxList:n}),n}return e},[m,e]),H=u((o,t)=>{const n=e.findIndex(s=>s.id===t);if(n>-1){e.splice(n,1,f.merge(e[n],o));const s=f.cloneDeep(e);return l(s),s}return e},[e]),v=u(o=>{d==null||d.pointCloud2dOperation.setPolygonValidAndRender(o,!0),C==null||C.pointCloud2dOperation.setPolygonValidAndRender(o,!0),g==null||g.pointCloud2dOperation.setPolygonValidAndRender(o,!0)},[d,C,g]),T=u(()=>{if(r==null?void 0:r.info){const{id:o,valid:t=!0}=r.info,n=O({valid:!t});I(n),v(o)}a&&(A(te(ne({},a),{valid:!a.valid})),d==null||d.pointCloud2dOperation.setPolygonValidAndRender(a.id,!0))},[v,r,a]),k=u(o=>{const t=e.find(n=>n.id===o);if(t){const{id:n,valid:s=!0}=t,x=H({valid:!s},n);return v(n),x}E(o)},[v,e,R]),b=u((o=y.ascend,t=!1)=>{if(!d||P.length>1)return;if(B!==D.Rect&&B!==D.Polygon){t&&document.dispatchEvent(new KeyboardEvent("keydown",{keyCode:9,shiftKey:o!==y.ascend}));return}const{pointCloud2dOperation:n}=d,s=n.switchToNextPolygon(o);s&&j(s)},[d,B,d==null?void 0:d.toolInstance]),K=(o=!1)=>{b(y.descend,o)},M=(o=!1)=>{b(y.ascend,o)},V=o=>{const t=e.filter(n=>n.id!==o);l(t),c==null||c.removeObjectByName(o,"box"),c==null||c.render(),I(t)},W=()=>{r&&(V(r.info.id),d==null||d.pointCloud2dOperation.deletePolygon(r.info.id)),a&&(N(a.id),d==null||d.pointCloud2dOperation.deletePolygon(a.id))},q=h(()=>e.filter(o=>P.includes(o.id)),[P,e]),z=u(o=>{var t;const n=f.cloneDeep(e);let s=!1;for(const x of o){const w=n.findIndex(p=>p.id===x.id);if(w>-1){const p=f.merge(n[w],x);(t=i==null?void 0:i.generateRects)==null||t.call(i,p),n.splice(w,1,p),c==null||c.generateBox(p),s=!0}}if(s)return l(n),_({pointCloudBoxList:n}),c==null||c.render(),n},[P,e]),F=u(o=>e.find(t=>t.id===o),[e]);return{selectedBox:r,updateSelectedBox:O,changeSelectedBoxValid:T,changeValidByID:k,selectNextBox:M,selectPrevBox:K,deletePointCloudBox:V,selectedBoxes:q,updateSelectedBoxes:z,getPointCloudByID:F,deleteSelectedPointCloudBoxAndPolygon:W}};export{ie as useSingleBox};
@@ -1 +1 @@
1
- import{getClassName as n}from"../../utils/dom.js";import t,{useContext as h,useState as D,useEffect as p}from"react";import N from"./PointCloud3DView.js";import T from"./PointCloudBackView.js";import I from"./PointCloudTopView.js";import B from"./PointCloudSideView.js";import F from"./PointCloud2DView.js";import R from"./PointCloudListener.js";import _ from"./PointCloudSegmentListener.js";import y from"./PointCloudSegment.js";import G from"./PointCloudSegmentStatus.js";import O from"./PointCloudSegmentToolbar.js";import{connect as Z}from"react-redux";import{LabelBeeContext as U,useDispatch as W}from"../../store/ctx.js";import{AnnotatedAttributesPanelFixedLeft as $,AnnotatedAttributesPanelFixedRight as k}from"../../views/MainView/toolFooter/AnnotatedAttributes/index.js";import{PointCloudContext as q}from"./PointCloudContext.js";import{PointCloudUtils as z,EPointCloudPattern as H}from"@labelbee/lb-utils";import{useCustomToolInstance as J}from"../../hooks/annotation.js";import{jsonParser as K}from"../../utils/index.js";import{a2MapStateToProps as Q}from"../../store/annotation/map.js";import g from"classnames";import X from"./components/sideAndBackOverView/index.js";import{SetLoadPCDFileLoading as Y}from"../../store/annotation/actionCreators.js";const M=({currentData:s,imgList:E,drawLayerSlot:d,checkMode:l,intelligentFit:L,imgIndex:x,loadPCDFileLoading:et})=>{const e=h(q),{globalPattern:c,setGlobalPattern:S,selectedIDs:C}=e,b=W(),[i,P]=D(!1),j=(C==null?void 0:C.length)>0&&i,v=K(s.result),{toolInstanceRef:r,clearToolInstance:w}=J({basicInfo:v});if(p(()=>{r.current.setPointCloudGlobalPattern=o=>{o!==c&&(S(o),e.clearAllDetectionInstance(),w())}},[c]),p(()=>{var o;if(Y(b,!0),s){const{boxParamsList:a,polygonList:m,lineList:u,sphereParamsList:V,segmentation:A}=z.parsePointCloudCurrentResult((o=s==null?void 0:s.result)!=null?o:"");e.setPointCloudResult(a),e.setPolygonList(m),e.setLineList(u),e.setPointCloudSphereList(V),e.setSegmentation(A)}},[x]),p(()=>{r.current.exportData=()=>[e.pointCloudBoxList,{valid:e.valid}],r.current.exportCustomData=()=>{var o,a,m,u;return{resultPolygon:(o=e.polygonList)!=null?o:[],resultLine:(a=e.lineList)!=null?a:[],resultPoint:(m=e.pointCloudSphereList)!=null?m:[],segmentation:(u=e.segmentation)!=null?u:[]}}},[e.pointCloudBoxList,e.valid,e.polygonList,e.lineList,e.pointCloudSphereList,e.ptSegmentInstance,e.segmentation]),E.length===0)return null;if(c===H.Segmentation)return t.createElement(t.Fragment,null,t.createElement(_,{checkMode:l,toolInstanceRef:r}),t.createElement(O,null),t.createElement(y,{checkMode:l}),t.createElement(G,null),d==null?void 0:d({direct:!0}));let f=t.createElement("div",{className:n("point-cloud-container","left-bottom")},t.createElement(T,{checkMode:l}),t.createElement(B,{checkMode:l}));return i&&(f=t.createElement(X,{selectAndEnlarge:j,checkMode:l})),t.createElement(t.Fragment,null,t.createElement(R,{checkMode:l,toolInstanceRef:r}),t.createElement("div",{className:n("point-cloud-layout"),onContextMenu:o=>o.preventDefault()},t.createElement("div",{className:n("point-cloud-wrapper")},t.createElement($,null),t.createElement("div",{className:n("point-cloud-content")},t.createElement("div",{className:n("point-cloud-container","left")},t.createElement(N,null),f),t.createElement("div",{className:g({[n("point-cloud-container","right")]:!0,[n("point-cloud-container","rightZoom")]:i})},t.createElement(I,{drawLayerSlot:d,checkMode:l,intelligentFit:L,setIsEnlargeTopView:P,onExitZoom:()=>{P(!1)},isEnlargeTopView:i}),t.createElement("div",{className:g({[n("point-cloud-container","right-bottom")]:!i,[n("point-cloud-container","right-bottom-floatLeft")]:i})},t.createElement(F,{isEnlargeTopView:i,thumbnailWidth:i?300:455})))),t.createElement(k,null))))};var tt=Z(Q,null,null,{context:U})(M);export{tt as default};
1
+ import{getClassName as n}from"../../utils/dom.js";import t,{useContext as h,useState as D,useEffect as p}from"react";import N from"./PointCloud3DView.js";import T from"./PointCloudBackView.js";import I from"./PointCloudTopView.js";import B from"./PointCloudSideView.js";import F from"./PointCloud2DView.js";import R from"./PointCloudListener.js";import _ from"./PointCloudSegmentListener.js";import y from"./PointCloudSegment.js";import G from"./PointCloudSegmentStatus.js";import O from"./PointCloudSegmentToolbar.js";import{connect as Z}from"react-redux";import{LabelBeeContext as U,useDispatch as W}from"../../store/ctx.js";import{AnnotatedAttributesPanelFixedLeft as $,AnnotatedAttributesPanelFixedRight as q}from"../../views/MainView/toolFooter/AnnotatedAttributes/index.js";import{PointCloudContext as z}from"./PointCloudContext.js";import{PointCloudUtils as H,EPointCloudPattern as J}from"@labelbee/lb-utils";import{useCustomToolInstance as K}from"../../hooks/annotation.js";import{jsonParser as Q}from"../../utils/index.js";import{a2MapStateToProps as X}from"../../store/annotation/map.js";import g from"classnames";import Y from"./components/sideAndBackOverView/index.js";import{SetLoadPCDFileLoading as k}from"../../store/annotation/actionCreators.js";const M=({currentData:s,imgList:E,drawLayerSlot:d,checkMode:i,intelligentFit:L,imgIndex:x,loadPCDFileLoading:et})=>{const e=h(z),{globalPattern:c,setGlobalPattern:S,selectedIDs:C}=e,b=W(),[l,P]=D(!1),j=(C==null?void 0:C.length)>0&&l,v=Q(s.result),{toolInstanceRef:r,clearToolInstance:w}=K({basicInfo:v});if(p(()=>{r.current.setPointCloudGlobalPattern=o=>{o!==c&&(S(o),e.clearAllDetectionInstance(),w())}},[c]),p(()=>{var o;if(k(b,!0),s){const{boxParamsList:a,polygonList:m,lineList:u,sphereParamsList:V,segmentation:A}=H.parsePointCloudCurrentResult((o=s==null?void 0:s.result)!=null?o:"");e.setPointCloudResult(a),e.setPolygonList(m),e.setLineList(u),e.setPointCloudSphereList(V),e.setSegmentation(A)}},[x]),p(()=>{r.current.exportData=()=>[e.pointCloudBoxList,{valid:e.valid}],r.current.exportCustomData=()=>{var o,a,m,u;return{resultPolygon:(o=e.polygonList)!=null?o:[],resultLine:(a=e.lineList)!=null?a:[],resultPoint:(m=e.pointCloudSphereList)!=null?m:[],segmentation:(u=e.segmentation)!=null?u:[]}}},[e.pointCloudBoxList,e.valid,e.polygonList,e.lineList,e.pointCloudSphereList,e.ptSegmentInstance,e.segmentation]),E.length===0)return null;if(c===J.Segmentation)return t.createElement(t.Fragment,null,t.createElement(_,{checkMode:i,toolInstanceRef:r}),t.createElement(O,null),t.createElement(y,{checkMode:i}),t.createElement(G,null),d==null?void 0:d({direct:!0}));let f=t.createElement("div",{className:n("point-cloud-container","left-bottom")},t.createElement(T,{checkMode:i}),t.createElement(B,{checkMode:i}));return l&&(f=t.createElement(Y,{selectAndEnlarge:j,checkMode:i})),t.createElement(t.Fragment,null,t.createElement(R,{checkMode:i,toolInstanceRef:r}),t.createElement("div",{className:n("point-cloud-layout"),onContextMenu:o=>o.preventDefault()},t.createElement("div",{className:n("point-cloud-wrapper")},t.createElement($,null),t.createElement("div",{className:n("point-cloud-content")},t.createElement("div",{className:n("point-cloud-container","left")},t.createElement(N,null),f),t.createElement("div",{className:g({[n("point-cloud-container","right")]:!0,[n("point-cloud-container","rightZoom")]:l})},t.createElement(I,{drawLayerSlot:d,checkMode:i,intelligentFit:L,setIsEnlargeTopView:P,onExitZoom:()=>{P(!1)},isEnlargeTopView:l}),t.createElement("div",{className:g({[n("point-cloud-container","right-bottom")]:!l,[n("point-cloud-container","right-bottom-floatLeft")]:l})},t.createElement(F,{isEnlargeTopView:l,thumbnailWidth:l?300:455,checkMode:i})))),t.createElement(q,null))))};var tt=Z(X,null,null,{context:U})(M);export{tt as default};
package/es/index.js CHANGED
@@ -1 +1 @@
1
- export{default as AnnotationView}from"./components/AnnotationView/index.js";export{default as PointCloudAnnotationView}from"./components/AnnotationView/pointCloudAnnotationView.js";export{default as QuestionView}from"./components/LLMToolView/questionView/index.js";import{i18n as c}from"@labelbee/lb-utils";export{i18n}from"@labelbee/lb-utils";import n,{useState as m,useImperativeHandle as d}from"react";import{I18nextProvider as f}from"react-i18next";import{Provider as u}from"react-redux";import x from"./App.js";import P from"./configureStore.js";import{PageBackward as w,PageForward as g,PageJump as v}from"./store/annotation/actionCreators.js";export{VideoTagTool}from"./components/videoPlayer/TagToolInstanceAdaptorI18nProvider.js";import{PointCloudProvider as _}from"./components/pointCloudView/PointCloudContext.js";import{LabelBeeContext as j}from"./store/ctx.js";export{default as PredictTracking}from"./components/predictTracking/predictTrackingIcon/index.js";export{default as LLMToolView}from"./components/LLMToolView/index.js";export{EStepType,ESubmitType,componentCls,prefix}from"./constant/index.js";var T=Object.defineProperty,b=Object.defineProperties,O=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,s=(o,e,t)=>e in o?T(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,I=(o,e)=>{for(var t in e||(e={}))V.call(e,t)&&s(o,t,e[t]);if(p)for(var t of p(e))A.call(e,t)&&s(o,t,e[t]);return o},y=(o,e)=>b(o,O(e));const r=P(),E=(o,e)=>{const[t,l]=m();return d(e,()=>({toolInstance:t,annotationEngine:r.getState().annotation.annotationEngine,pageBackwardActions:()=>r.dispatch(w()),pageForwardActions:()=>r.dispatch(g()),pageJump:a=>{const i=~~a-1;r.dispatch(v(i))},hello:()=>alert("hello labelBee!!!")}),[t]),n.createElement(u,{store:r,context:j},n.createElement(f,{i18n:c},n.createElement(_,null,n.createElement(x,y(I({},o),{setToolInstance:a=>{var i;l(a),(i=o.onLoad)==null||i.call(o,{toolInstance:a})}})))))};var C=n.forwardRef(E);export{C as default,r as store};
1
+ export{default as AnnotationView}from"./components/AnnotationView/index.js";export{default as PointCloudAnnotationView}from"./components/AnnotationView/pointCloudAnnotationView.js";export{default as QuestionView}from"./components/LLMToolView/questionView/index.js";import{i18n as c}from"@labelbee/lb-utils";export{i18n}from"@labelbee/lb-utils";import n,{useState as d,useImperativeHandle as m}from"react";import{I18nextProvider as f}from"react-i18next";import{Provider as u}from"react-redux";import w from"./App.js";import x from"./configureStore.js";import{PageBackward as P,PageForward as g,PageJump as v}from"./store/annotation/actionCreators.js";export{VideoTagTool}from"./components/videoPlayer/TagToolInstanceAdaptorI18nProvider.js";import{PointCloudProvider as _}from"./components/pointCloudView/PointCloudContext.js";import{LabelBeeContext as j}from"./store/ctx.js";export{default as PredictTracking}from"./components/predictTracking/predictTrackingIcon/index.js";export{default as LLMToolView}from"./components/LLMToolView/index.js";export{default as SwitchCuboidBoxIn2DView}from"./views/MainView/toolFooter/SwitchCuboidBoxIn2DView/index.js";export{EStepType,ESubmitType,componentCls,prefix}from"./constant/index.js";var V=Object.defineProperty,b=Object.defineProperties,T=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,I=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,s=(o,e,t)=>e in o?V(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,A=(o,e)=>{for(var t in e||(e={}))I.call(e,t)&&s(o,t,e[t]);if(p)for(var t of p(e))O.call(e,t)&&s(o,t,e[t]);return o},C=(o,e)=>b(o,T(e));const r=x(),y=(o,e)=>{const[t,l]=d();return m(e,()=>({toolInstance:t,annotationEngine:r.getState().annotation.annotationEngine,pageBackwardActions:()=>r.dispatch(P()),pageForwardActions:()=>r.dispatch(g()),pageJump:a=>{const i=~~a-1;r.dispatch(v(i))},hello:()=>alert("hello labelBee!!!")}),[t]),n.createElement(u,{store:r,context:j},n.createElement(f,{i18n:c},n.createElement(_,null,n.createElement(w,C(A({},o),{setToolInstance:a=>{var i;l(a),(i=o.onLoad)==null||i.call(o,{toolInstance:a})}})))))};var E=n.forwardRef(y);export{E as default,r as store};
package/es/utils/index.js CHANGED
@@ -1 +1 @@
1
- import s from"lodash";const o=(r,i={})=>{try{return typeof r=="string"?JSON.parse(r):s.isObject(r)?r:i}catch(t){return i}},n=r=>{if(Array.isArray(r))return r.filter(i=>i).join(" ");if(s.isObject(r)){const i=[];return Object.keys(r).forEach(t=>{r[t]&&i.push(t)}),i.join(" ")}return""};export{n as classnames,o as jsonParser};
1
+ import h from"lodash";import{pointCloudLidar2image as g}from"@labelbee/lb-annotation";var l=Object.defineProperty,y=Object.defineProperties,d=Object.getOwnPropertyDescriptors,f=Object.getOwnPropertySymbols,_=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable,m=(r,t,n)=>t in r?l(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,O=(r,t)=>{for(var n in t||(t={}))_.call(t,n)&&m(r,n,t[n]);if(f)for(var n of f(t))x.call(t,n)&&m(r,n,t[n]);return r},P=(r,t)=>y(r,d(t));const w=(r,t={})=>{try{return typeof r=="string"?JSON.parse(r):h.isObject(r)?r:t}catch(n){return t}},b=r=>{if(Array.isArray(r))return r.filter(t=>t).join(" ");if(h.isObject(r)){const t=[];return Object.keys(r).forEach(n=>{r[n]&&t.push(n)}),t.join(" ")}return""},u=r=>{let t=Infinity,n=Infinity,e=-Infinity,i=-Infinity;for(const o of r)t=Math.min(t,o.x),n=Math.min(n,o.y),e=Math.max(e,o.x),i=Math.max(i,o.y);return{x:t,y:n,width:e-t,height:i-n}},I=(()=>{const r=(t,n)=>{const e=Math.max(t.x,n.x),i=Math.max(t.y,n.y),o=Math.min(t.x+t.width,n.x+n.width),s=Math.min(t.y+t.height,n.y+n.height),c=o-e,a=s-i;return c>=0&&a>=0?{x:e,y:i,width:c,height:a}:null};return(t,n,e)=>{if(e[n]){const i=e[n].width,o=e[n].height;return r(t,{x:0,y:0,width:i,height:o})!==null}return!1}})(),j=r=>{const{pointCloudBox:t,mappingData:n,imageSizes:e}=r,{transferViewData:i}=g(t,n.calib),o=i.reduce((a,p)=>p.type==="line"?[...a,...p.pointList]:a,[]),s=P(O({},u(o)),{imageName:n.path});if(I(s,n.path,e))return s};export{b as classnames,u as getBoundingRect,j as getRectPointCloudBox,w as jsonParser};
@@ -0,0 +1 @@
1
+ import{Switch as r}from"antd";import e,{useContext as a}from"react";import{useTranslation as m}from"react-i18next";import{PointCloudContext as l}from"../../../../components/pointCloudView/PointCloudContext.js";const s=()=>{const{cuboidBoxIn2DView:n,setCuboidBoxIn2DView:o}=a(l),{t}=m(),i=c=>{o(c)};return e.createElement(e.Fragment,null,e.createElement("span",{style:{marginRight:10}},t("ImageLabels")),e.createElement(r,{checkedChildren:t("3DRect"),unCheckedChildren:t("2DRect"),checked:n,onChange:i}))};export{s as default};
@@ -1 +1 @@
1
- import{prefix as N}from"../../../constant/index.js";import{PageBackward as g,PageForward as x,PageJump as b}from"../../../store/annotation/actionCreators.js";import{getTotalPage as k}from"../../../store/annotation/reducer.js";import{Divider as B}from"antd/es";import e from"react";import{useTranslation as A}from"react-i18next";import{connect as S}from"react-redux";import{LabelBeeContext as w,useDispatch as D}from"../../../store/ctx.js";import T from"./FooterTips/index.js";import H from"./HiddenTips/index.js";import R from"./PageNumber/index.js";import $ from"./ZoomController/index.js";import{Pagination as J}from"./Pagination.js";import{AnnotatedAttributesIcon as P}from"./AnnotatedAttributes/index.js";import{cTool as K}from"@labelbee/lb-annotation";import{shortCutTable as Z,ToolHotKeyCom as z}from"./FooterTips/ToolHotKey/index.js";const{EPointCloudName:_}=K,l=`${N}-footer`,E=()=>e.createElement(B,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),I=({footerTips:t,hiddenTips:a,pageNumber:s,pagination:m,zoomController:i,curItems:c,footerDivider:u,annotateAttrList:o})=>e.createElement(e.Fragment,null,t,o,e.createElement("div",{style:{flex:1}}),a,s,m,c,u,i),q=t=>{var a;const{stepList:s,step:m,basicResultList:i,basicIndex:c,mode:u="light",footer:o=I,skipBeforePageTurning:n}=t,r=D(),{t:j}=A(),d=(a=s[m-1])!=null?a:{},y=!!d.dataSourceStep,h=()=>{if(n){n(()=>r(g()));return}r(g())},v=()=>{if(n){n(()=>r(x()));return}r(x())},C=L=>{const f=~~L-1;if(n){n(()=>r(b(f)));return}r(b(f))},p=e.createElement(J,{imgIndex:t.imgIndex,totalPage:t.totalPage,pageJump:C,pageBackward:h,pageForward:v,footerCls:l}),F=y&&i.length>0?e.createElement("span",null,j("curItems",{current:c+1,total:i.length})):null;return typeof o=="function"?o===I&&d.tool===_.PointCloud?e.createElement("div",{className:`${l}`,style:t.style},e.createElement(T,null),e.createElement(P,null),e.createElement("div",{style:{flex:1}}),p):e.createElement("div",{className:`${l}`,style:t.style},o({footerTips:e.createElement(T,null),hiddenTips:e.createElement(H,null),pageNumber:e.createElement(R,null),annotateAttrList:e.createElement(P,null),pagination:p,zoomController:e.createElement($,{mode:u}),curItems:F,footerDivider:e.createElement(E,null),shortCutTable:Z,ToolHotKeyCom:z})):o},G=t=>({totalPage:k(t.annotation),imgIndex:t.annotation.imgIndex,stepList:t.annotation.stepList,step:t.annotation.step,basicIndex:t.annotation.basicIndex,basicResultList:t.annotation.basicResultList,skipBeforePageTurning:t.annotation.skipBeforePageTurning});var M=S(G,null,null,{context:w})(q);export{E as FooterDivider,M as default,l as footerCls};
1
+ import{prefix as B}from"../../../constant/index.js";import{PageBackward as g,PageForward as x,PageJump as b}from"../../../store/annotation/actionCreators.js";import{getTotalPage as L}from"../../../store/annotation/reducer.js";import{Divider as N}from"antd/es";import e from"react";import{useTranslation as S}from"react-i18next";import{connect as k}from"react-redux";import{LabelBeeContext as D,useDispatch as A}from"../../../store/ctx.js";import T from"./FooterTips/index.js";import H from"./HiddenTips/index.js";import R from"./PageNumber/index.js";import $ from"./ZoomController/index.js";import J from"./SwitchCuboidBoxIn2DView/index.js";import{Pagination as K}from"./Pagination.js";import{AnnotatedAttributesIcon as E}from"./AnnotatedAttributes/index.js";import{cTool as V}from"@labelbee/lb-annotation";import{shortCutTable as Z,ToolHotKeyCom as z}from"./FooterTips/ToolHotKey/index.js";const{EPointCloudName:_}=V,l=`${B}-footer`,P=()=>e.createElement(N,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),I=({footerTips:t,hiddenTips:a,pageNumber:s,pagination:m,zoomController:i,curItems:c,footerDivider:u,annotateAttrList:o})=>e.createElement(e.Fragment,null,t,o,e.createElement("div",{style:{flex:1}}),a,s,m,c,u,i),q=t=>{var a;const{stepList:s,step:m,basicResultList:i,basicIndex:c,mode:u="light",footer:o=I,skipBeforePageTurning:n}=t,r=A(),{t:h}=S(),d=(a=s[m-1])!=null?a:{},j=!!d.dataSourceStep,C=()=>{if(n){n(()=>r(g()));return}r(g())},y=()=>{if(n){n(()=>r(x()));return}r(x())},v=w=>{const f=~~w-1;if(n){n(()=>r(b(f)));return}r(b(f))},p=e.createElement(K,{imgIndex:t.imgIndex,totalPage:t.totalPage,pageJump:v,pageBackward:C,pageForward:y,footerCls:l}),F=j&&i.length>0?e.createElement("span",null,h("curItems",{current:c+1,total:i.length})):null;return typeof o=="function"?o===I&&d.tool===_.PointCloud?e.createElement("div",{className:`${l}`,style:t.style},e.createElement(T,null),e.createElement(E,null),e.createElement("div",{style:{flex:1}}),e.createElement(J,null),p):e.createElement("div",{className:`${l}`,style:t.style},o({footerTips:e.createElement(T,null),hiddenTips:e.createElement(H,null),pageNumber:e.createElement(R,null),annotateAttrList:e.createElement(E,null),pagination:p,zoomController:e.createElement($,{mode:u}),curItems:F,footerDivider:e.createElement(P,null),shortCutTable:Z,ToolHotKeyCom:z})):o},G=t=>({totalPage:L(t.annotation),imgIndex:t.annotation.imgIndex,stepList:t.annotation.stepList,step:t.annotation.step,basicIndex:t.annotation.basicIndex,basicResultList:t.annotation.basicResultList,skipBeforePageTurning:t.annotation.skipBeforePageTurning});var M=k(G,null,null,{context:D})(q);export{P as FooterDivider,M as default,l as footerCls};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.15.1-alpha.2",
3
+ "version": "1.16.0-alpha.1",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",
@@ -43,8 +43,8 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@ant-design/icons": "^4.6.2",
46
- "@labelbee/lb-annotation": "1.18.2-alpha.2",
47
- "@labelbee/lb-utils": "1.11.1-alpha.1",
46
+ "@labelbee/lb-annotation": "1.19.0-alpha.1",
47
+ "@labelbee/lb-utils": "1.12.0-alpha.1",
48
48
  "ahooks": "^3.4.0",
49
49
  "classnames": "^2.3.0",
50
50
  "lodash": "^4.17.21",