@labelbee/lb-components 1.24.0-alpha.29 → 1.24.0-alpha.30

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.
@@ -1 +1 @@
1
- "use strict";var dom=require("../../utils/dom.js"),index$3=require("../../views/MainView/toolFooter/index.js"),index$4=require("../../views/MainView/toolFooter/ZoomController/index.js"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),ToolPointCloudBoxRenderHelper=require("../../utils/ToolPointCloudBoxRenderHelper.js"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useRotateEdge=require("./hooks/useRotateEdge.js"),useSingleBox=require("./hooks/useSingleBox.js"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudInfos=require("./PointCloudInfos.js"),usePolygon=require("./hooks/usePolygon.js"),useSphere=require("./hooks/useSphere.js"),useZoom=require("./hooks/useZoom.js"),antd=require("antd"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),useSize=require("../../hooks/useSize.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),ToolUtils=require("../../utils/ToolUtils.js"),_=require("lodash"),index$2=require("./components/PointCloudSizeSlider/index.js"),useHistory=require("./hooks/useHistory.js"),index$1=require("./components/TitleButton/index.js");function _interopDefaultLegacy(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(o,s,l)=>s in o?__defProp(o,s,{enumerable:!0,configurable:!0,writable:!0,value:l}):o[s]=l,__spreadValues=(o,s)=>{for(var l in s||(s={}))__hasOwnProp.call(s,l)&&__defNormalProp(o,l,s[l]);if(__getOwnPropSymbols)for(var l of __getOwnPropSymbols(s))__propIsEnum.call(s,l)&&__defNormalProp(o,l,s[l]);return o},__spreadProps=(o,s)=>__defProps(o,__getOwnPropDescs(s));const{EPolygonPattern,EToolName}=lbAnnotation.cTool,{ESortDirection}=lbAnnotation.cAnnotation,EKeyCode=lbAnnotation.cKeyCode.default,TransferCanvas2WorldOffset=(o,s,l=1)=>{const{width:C,height:p}=s,w={x:o.x+C*l/2,y:o.y+p*l/2},x={x:s.width/2,y:s.height/2};return{offsetX:(x.x-w.x)/l,offsetY:-(x.y-w.y)/l}},TopViewToolbar=({currentData:o})=>{var s,l;const{zoom:C,zoomIn:p,zoomOut:w,initialPosition:x}=useZoom.useZoom(),{selectNextBox:L,selectPrevBox:b}=useSingleBox.useSingleBox(),{switchToNextSphere:S}=useSphere.useSphere(),{updateRotate:V}=useRotate.useRotate({currentData:o}),{updateRotateEdge:O}=useRotateEdge.useRotateEdge({currentData:o}),g=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:I}=g,f=(l=(s=g==null?void 0:g.topViewInstance)==null?void 0:s.toolScheduler)==null?void 0:l.getCurrentToolName(),e=()=>{V(-Number(g.rectRotateSensitivity))},u=()=>{V(g.rectRotateSensitivity)},v=()=>{O(-90)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$2,{onChange:T=>{var y;(y=I==null?void 0:I.pointCloudInstance)==null||y.updatePointSize({customSize:T})}}),React__default.default.createElement("span",{onClick:u,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:e,className:dom.getClassName("point-cloud","rotate")}),React__default.default.createElement("span",{onClick:v,className:dom.getClassName("point-cloud","rotate-90")}),React__default.default.createElement(index$3.FooterDivider,null),React__default.default.createElement(icons.UpSquareOutlined,{onClick:()=>{if(f===EToolName.Point){S(ESortDirection.descend);return}b(!0)},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{if(f===EToolName.Point){S(ESortDirection.ascend);return}L(!0)},className:dom.getClassName("point-cloud","next")}),React__default.default.createElement(index$3.FooterDivider,null),React__default.default.createElement(index$4.ZoomController,{initialPosition:x,zoomIn:p,zoomOut:w,zoom:C}))},ZAxisSlider=({setZAxisLimit:o,zAxisLimit:s,checkMode:l})=>l?null:React__default.default.createElement("div",{style:{position:"absolute",top:128,right:8,height:"50%",zIndex:20}},React__default.default.createElement(antd.Slider,{vertical:!0,step:.5,max:10,min:.5,defaultValue:s,onAfterChange:C=>{o(C)}})),PointCloudTopView=({currentData:o,imgList:s,stepInfo:l,drawLayerSlot:C,checkMode:p,intelligentFit:w,setIsEnlargeTopView:x,isEnlargeTopView:L,onExitZoom:b,highlightAttribute:S})=>{var V,O;const[g,I]=React.useState({zoom:1,currentPos:{x:0,y:0}}),f=React.useRef(null),e=React.useContext(PointCloudContext.PointCloudContext),u=useSize(f),v=index.jsonParser(l.config),{setZoom:T,syncTopviewToolZoom:y}=useZoom.useZoom(),{hideAttributes:U,setIsLargeStatus:Z,selectedID:z,pointCloudBoxList:H}=e,{addPolygon:F,deletePolygon:W}=usePolygon.usePolygon(),{deletePointCloudSphere:$}=useSphere.useSphere(),{deletePointCloudBox:M,changeValidByID:K}=useSingleBox.useSingleBox(),[B,X]=React.useState(10),{t:D}=reactI18next.useTranslation(),m=usePointCloudViews.usePointCloudViews(),{pushHistoryWithList:Y}=useHistory.useHistory(),[G,q]=React.useState(!0),[N,k]=React.useState(!1);React.useLayoutEffect(()=>{if(!e.topViewInstance&&f.current&&(o==null?void 0:o.url)&&(o==null?void 0:o.result)){const n={width:f.current.clientWidth,height:f.current.clientHeight},r=new lbAnnotation.PointCloudAnnotation({container:f.current,size:n,pcdPath:o.url,config:__spreadProps(__spreadValues({},v),{pointCloudPattern:e.pointCloudPattern}),checkMode:p,toolName:ToolUtils.getPointCloudToolList(),proxyMode:p,view:"topView"});e.setTopViewInstance(r)}},[o]),React.useEffect(()=>{N&&z&&(e.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Single,H),k(!1))},[N]),React.useEffect(()=>{if(!u||!e.topViewInstance||!e.sideViewInstance)return;const{toolInstance:n}=e.topViewInstance;n.singleOn("dataUpdated",(t,i)=>{const d=___default.default.cloneDeep(t).map(a=>__spreadProps(__spreadValues({},a),{pointList:lbUtils.PointCloudUtils.pointListTransferCanvas2World(a.pointList,u)}));e.setSelectedIDs(i),e.setLineList(d),Y({lineList:d})}),n.singleOn("pointCreated",(t,i)=>{m.topViewAddSphere({newPoint:t,size:u,trackConfigurable:v.trackConfigurable,zoom:i})}),n.singleOn("pointDeleted",t=>{$(t)}),n.singleOn("pointSelected",t=>{e.setSelectedIDs([t])}),n.singleOn("updatePointByDrag",(t,i)=>{var d;(d=m.topViewUpdatePoint)==null||d.call(m,t,u)}),n.singleOn("polygonCreated",(t,i)=>{if(n.pattern===EPolygonPattern.Normal||!(o==null?void 0:o.url)){const d=__spreadProps(__spreadValues({},t),{pointList:t.pointList.map(a=>lbUtils.PointCloudUtils.transferCanvas2World(a,u))});F(d),e.setSelectedIDs(U.includes(t.attribute)?"":t.id);return}q(!1),m.topViewAddBox({polygon:t,size:u,imgList:s,trackConfigurable:v.trackConfigurable,zoom:i,intelligentFit:w}),k(!0)}),n.singleOn("deletedObject",({id:t})=>{M(t),W(t)}),n.singleOn("deleteSelectedIDs",()=>{e.setSelectedIDs([])}),n.singleOn("addSelectedIDs",t=>{e.addSelectedID(t)}),n.singleOn("setSelectedIDs",t=>{q(!1),e.setSelectedIDs(t)}),n.singleOn("updatePolygonByDrag",t=>{var i;(i=m.topViewUpdateBox)==null||i.call(m,t,u)});const r=t=>{var i;const d=K(t);d&&e.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Default,d),e.polygonList.find(a=>a.id===t)&&((i=e.topViewInstance)==null||i.toolInstance.setPolygonValidAndRender(t,!0))};return n.on("validUpdate",r),()=>{n.unbind("validUpdate",r)}},[e,u,o,m,e.polygonList,e.lineList,(V=e.topViewInstance)==null?void 0:V.toolInstance]),React.useEffect(()=>{var n,r;if(!(u==null?void 0:u.width)||!e.topViewInstance)return;const t=(r=(n=v==null?void 0:v.attributeList)==null?void 0:n[0])==null?void 0:r.value;t&&e.topViewInstance.toolInstance.setDefaultAttribute(t),e.topViewInstance.initSize(u),e.topViewInstance.updatePolygonList(e.displayPointCloudList,e.polygonList),e.topViewInstance.updatePointList(e.displaySphereList),e.topViewInstance.updateLineList(e.displayLineList);const{topViewInstance:{pointCloudInstance:i,toolInstance:d}}=e;d.singleOn("renderZoom",(a,c)=>{const{offsetX:h,offsetY:E}=TransferCanvas2WorldOffset(c,u,a);if(i.camera.zoom=a,c){const{x:P,y:j,z:R}=i.initCameraPosition;i.camera.position.set(P+E,j-h,R)}i.camera.updateProjectionMatrix(),i.render(),T(a),y(c,a,u),I({zoom:a,currentPos:c})}),d.singleOn("dragMove",({currentPos:a,zoom:c})=>{const{offsetX:h,offsetY:E}=TransferCanvas2WorldOffset(a,u,c);i.camera.zoom=c;const{x:P,y:j,z:R}=i.initCameraPosition;i.camera.position.set(P+E,j-h,R),i.render(),y(a,c,u),I({zoom:c,currentPos:a})})},[u,e.topViewInstance,(O=e.topViewInstance)==null?void 0:O.toolInstance]),React.useEffect(()=>{var n,r;(r=(n=e.topViewInstance)==null?void 0:n.pointCloudInstance)==null||r.applyZAxisPoints(B)},[B]),React.useEffect(()=>{var n,r,t,i;m.topViewSelectedChanged({}),(i=(t=(r=(n=e.topViewInstance)==null?void 0:n.toolInstance)==null?void 0:r.selection)==null?void 0:t.hardSetSelectedIDs)==null||i.call(t,e.selectedIDs)},[e.selectedIDs]),React.useEffect(()=>{const{topViewInstance:n,selectedID:r,selectedPointCloudBox:t,zoom:i}=e;if(!n||!r||!t||!G){q(!0);return}const{center:d}=t,{pointCloudInstance:a,toolInstance:c}=n,h=c.polygonList.find(Q=>Q.id===e.selectedID);if(!h){q(!0);return}const E=lbAnnotation.MathUtils.getRectCenterPoint(h.pointList),P=lbAnnotation.MathUtils.getCurrentPosFromRectCenter(c.size,E,i);c.setCurrentPos(P),c.render();const{x:j,y:R,z:J}=a.initCameraPosition;a.camera.position.set(d.x,d.y,J),a.render(),y(P,i,u),I({zoom:i,currentPos:P})},[e.selectedID]),React.useEffect(()=>(window.addEventListener("keydown",A),()=>{window.removeEventListener("keydown",A)}),[]);const A=n=>{const{keyCode:r}=n;r===EKeyCode.Esc&&b()};return React.useEffect(()=>{var n,r,t;(t=(r=(n=e.topViewInstance)==null?void 0:n.pointCloud2dOperation)==null?void 0:r.setHighlightAttribute)==null||t.call(r,S)},[e.topViewInstance,S]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:L?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",position:"relative"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{b()}}),React__default.default.createElement("span",null,D("TopView")),React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:p,config:v,style:{display:"flex",position:"initial",margin:"0px 20px"}})):React__default.default.createElement(index$1,{title:D("TopView"),onClick:()=>{Z(!0),x(!0)}}),toolbar:React__default.default.createElement(TopViewToolbar,{currentData:o})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:f},C==null?void 0:C(g)),!L&&React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:p,config:v}),React__default.default.createElement(ZAxisSlider,{checkMode:p,zAxisLimit:B,setZAxisLimit:X}),React__default.default.createElement(PointCloudInfos.PointCloudValidity,null)))};var PointCloudTopView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudTopView);module.exports=PointCloudTopView$1;
1
+ "use strict";var dom=require("../../utils/dom.js"),index$3=require("../../views/MainView/toolFooter/index.js"),index$4=require("../../views/MainView/toolFooter/ZoomController/index.js"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),ToolPointCloudBoxRenderHelper=require("../../utils/ToolPointCloudBoxRenderHelper.js"),React=require("react"),PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useRotateEdge=require("./hooks/useRotateEdge.js"),useSingleBox=require("./hooks/useSingleBox.js"),PointCloudLayout=require("./PointCloudLayout.js"),PointCloudInfos=require("./PointCloudInfos.js"),usePolygon=require("./hooks/usePolygon.js"),useSphere=require("./hooks/useSphere.js"),useZoom=require("./hooks/useZoom.js"),antd=require("antd"),map=require("../../store/annotation/map.js"),reactRedux=require("react-redux"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),useSize=require("../../hooks/useSize.js"),reactI18next=require("react-i18next"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),ToolUtils=require("../../utils/ToolUtils.js"),_=require("lodash"),index$2=require("./components/PointCloudSizeSlider/index.js"),useHistory=require("./hooks/useHistory.js"),index$1=require("./components/TitleButton/index.js");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(n,s,r)=>s in n?__defProp(n,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[s]=r,__spreadValues=(n,s)=>{for(var r in s||(s={}))__hasOwnProp.call(s,r)&&__defNormalProp(n,r,s[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(s))__propIsEnum.call(s,r)&&__defNormalProp(n,r,s[r]);return n},__spreadProps=(n,s)=>__defProps(n,__getOwnPropDescs(s));const{EPolygonPattern,EToolName}=lbAnnotation.cTool,{ESortDirection}=lbAnnotation.cAnnotation,EKeyCode=lbAnnotation.cKeyCode.default,TransferCanvas2WorldOffset=(n,s,r=1)=>{const{width:v,height:c}=s,w={x:n.x+v*r/2,y:n.y+c*r/2},P={x:s.width/2,y:s.height/2};return{offsetX:(P.x-w.x)/r,offsetY:-(P.y-w.y)/r}},TopViewToolbar=({currentData:n})=>{var s,r;const{zoom:v,zoomIn:c,zoomOut:w,initialPosition:P}=useZoom.useZoom(),{selectNextBox:E,selectPrevBox:L}=useSingleBox.useSingleBox(),{switchToNextSphere:V}=useSphere.useSphere(),{updateRotate:h}=useRotate.useRotate({currentData:n}),{updateRotateEdge:b}=useRotateEdge.useRotateEdge({currentData:n}),g=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:x}=g,p=(r=(s=g==null?void 0:g.topViewInstance)==null?void 0:s.toolScheduler)==null?void 0:r.getCurrentToolName(),t=()=>{h(-Number(g.rectRotateSensitivity))},a=()=>{h(g.rectRotateSensitivity)},f=()=>{b(-90)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$2,{onChange:q=>{var I;(I=x==null?void 0:x.pointCloudInstance)==null||I.updatePointSize({customSize:q})}}),React__default.default.createElement("span",{onClick:a,className:dom.getClassName("point-cloud","rotate-reserve")}),React__default.default.createElement("span",{onClick:t,className:dom.getClassName("point-cloud","rotate")}),React__default.default.createElement("span",{onClick:f,className:dom.getClassName("point-cloud","rotate-90")}),React__default.default.createElement(index$3.FooterDivider,null),React__default.default.createElement(icons.UpSquareOutlined,{onClick:()=>{if(p===EToolName.Point){V(ESortDirection.descend);return}L(!0)},className:dom.getClassName("point-cloud","prev")}),React__default.default.createElement(icons.DownSquareOutlined,{onClick:()=>{if(p===EToolName.Point){V(ESortDirection.ascend);return}E(!0)},className:dom.getClassName("point-cloud","next")}),React__default.default.createElement(index$3.FooterDivider,null),React__default.default.createElement(index$4.ZoomController,{initialPosition:P,zoomIn:c,zoomOut:w,zoom:v}))},ZAxisSlider=({setZAxisLimit:n,zAxisLimit:s,checkMode:r})=>r?null:React__default.default.createElement("div",{style:{position:"absolute",top:128,right:8,height:"50%",zIndex:20}},React__default.default.createElement(antd.Slider,{vertical:!0,step:.5,max:10,min:.5,defaultValue:s,onAfterChange:v=>{n(v)}})),PointCloudTopView=({currentData:n,imgList:s,stepInfo:r,drawLayerSlot:v,checkMode:c,intelligentFit:w,setIsEnlargeTopView:P,isEnlargeTopView:E,onExitZoom:L,highlightAttribute:V})=>{var h,b;const[g,x]=React.useState({zoom:1,currentPos:{x:0,y:0}}),p=React.useRef(null),t=React.useContext(PointCloudContext.PointCloudContext),a=useSize(p),f=index.jsonParser(r.config),{setZoom:q,syncTopviewToolZoom:I}=useZoom.useZoom(),{hideAttributes:k,setIsLargeStatus:A,selectedID:U,pointCloudBoxList:Z}=t,{addPolygon:z,deletePolygon:H}=usePolygon.usePolygon(),{deletePointCloudSphere:F}=useSphere.useSphere(),{deletePointCloudBox:W,changeValidByID:$}=useSingleBox.useSingleBox(),[j,M]=React.useState(10),{t:T}=reactI18next.useTranslation(),C=usePointCloudViews.usePointCloudViews(),{pushHistoryWithList:K}=useHistory.useHistory(),[X,O]=React.useState(!0),[B,D]=React.useState(!1);React.useLayoutEffect(()=>{if(!t.topViewInstance&&p.current&&(n==null?void 0:n.url)&&(n==null?void 0:n.result)){const o={width:p.current.clientWidth,height:p.current.clientHeight},l=new lbAnnotation.PointCloudAnnotation({container:p.current,size:o,pcdPath:n.url,config:__spreadProps(__spreadValues({},f),{pointCloudPattern:t.pointCloudPattern}),checkMode:c,toolName:ToolUtils.getPointCloudToolList(),proxyMode:c,view:"topView"});t.setTopViewInstance(l)}},[n]),React.useEffect(()=>{B&&U&&(t.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Single,Z),D(!1))},[B]),React.useEffect(()=>{if(!a||!t.topViewInstance||!t.sideViewInstance)return;const{toolInstance:o}=t.topViewInstance;o.singleOn("dataUpdated",(e,i)=>{const u=___default.default.cloneDeep(e).map(d=>__spreadProps(__spreadValues({},d),{pointList:lbUtils.PointCloudUtils.pointListTransferCanvas2World(d.pointList,a)}));t.setSelectedIDs(i),t.setLineList(u),K({lineList:u})}),o.singleOn("pointCreated",(e,i)=>{C.topViewAddSphere({newPoint:e,size:a,trackConfigurable:f.trackConfigurable,zoom:i})}),o.singleOn("pointDeleted",e=>{F(e)}),o.singleOn("pointSelected",e=>{t.setSelectedIDs([e])}),o.singleOn("updatePointByDrag",(e,i)=>{var u;(u=C.topViewUpdatePoint)==null||u.call(C,e,a)}),o.singleOn("polygonCreated",(e,i)=>{if(o.pattern===EPolygonPattern.Normal||!(n==null?void 0:n.url)){const u=__spreadProps(__spreadValues({},e),{pointList:e.pointList.map(d=>lbUtils.PointCloudUtils.transferCanvas2World(d,a))});z(u),t.setSelectedIDs(k.includes(e.attribute)?"":e.id);return}O(!1),C.topViewAddBox({polygon:e,size:a,imgList:s,trackConfigurable:f.trackConfigurable,zoom:i,intelligentFit:w}),D(!0)}),o.singleOn("deletedObject",({id:e})=>{W(e),H(e)}),o.singleOn("deleteSelectedIDs",()=>{t.setSelectedIDs([])}),o.singleOn("addSelectedIDs",e=>{t.addSelectedID(e)}),o.singleOn("setSelectedIDs",e=>{O(!1),t.setSelectedIDs(e)}),o.singleOn("updatePolygonByDrag",e=>{var i;(i=C.topViewUpdateBox)==null||i.call(C,e,a)});const l=e=>{var i;const u=$(e);u&&t.syncAllViewPointCloudColor(ToolPointCloudBoxRenderHelper.EPointCloudBoxRenderTrigger.Default,u),t.polygonList.find(d=>d.id===e)&&((i=t.topViewInstance)==null||i.toolInstance.setPolygonValidAndRender(e,!0))};return o.on("validUpdate",l),()=>{o.unbind("validUpdate",l)}},[t,a,n,C,t.polygonList,t.lineList,(h=t.topViewInstance)==null?void 0:h.toolInstance]),React.useEffect(()=>{var o,l;if(!t.topViewInstance)return;const e=(l=(o=f==null?void 0:f.attributeList)==null?void 0:o[0])==null?void 0:l.value;e&&t.topViewInstance.toolInstance.setDefaultAttribute(e)},[t.topViewInstance]),React.useEffect(()=>{if(!(a==null?void 0:a.width)||!t.topViewInstance)return;t.topViewInstance.initSize(a),t.topViewInstance.updatePolygonList(t.displayPointCloudList,t.polygonList),t.topViewInstance.updatePointList(t.displaySphereList),t.topViewInstance.updateLineList(t.displayLineList);const{topViewInstance:{pointCloudInstance:o,toolInstance:l}}=t;l.singleOn("renderZoom",(e,i)=>{const{offsetX:u,offsetY:d}=TransferCanvas2WorldOffset(i,a,e);if(o.camera.zoom=e,i){const{x:m,y,z:S}=o.initCameraPosition;o.camera.position.set(m+d,y-u,S)}o.camera.updateProjectionMatrix(),o.render(),q(e),I(i,e,a),x({zoom:e,currentPos:i})}),l.singleOn("dragMove",({currentPos:e,zoom:i})=>{const{offsetX:u,offsetY:d}=TransferCanvas2WorldOffset(e,a,i);o.camera.zoom=i;const{x:m,y,z:S}=o.initCameraPosition;o.camera.position.set(m+d,y-u,S),o.render(),I(e,i,a),x({zoom:i,currentPos:e})})},[a,t.topViewInstance,(b=t.topViewInstance)==null?void 0:b.toolInstance]),React.useEffect(()=>{var o,l;(l=(o=t.topViewInstance)==null?void 0:o.pointCloudInstance)==null||l.applyZAxisPoints(j)},[j]),React.useEffect(()=>{var o,l,e,i;C.topViewSelectedChanged({}),(i=(e=(l=(o=t.topViewInstance)==null?void 0:o.toolInstance)==null?void 0:l.selection)==null?void 0:e.hardSetSelectedIDs)==null||i.call(e,t.selectedIDs)},[t.selectedIDs]),React.useEffect(()=>{const{topViewInstance:o,selectedID:l,selectedPointCloudBox:e,zoom:i}=t;if(!o||!l||!e||!X){O(!0);return}const{center:u}=e,{pointCloudInstance:d,toolInstance:m}=o,y=m.polygonList.find(G=>G.id===t.selectedID);if(!y){O(!0);return}const S=lbAnnotation.MathUtils.getRectCenterPoint(y.pointList),R=lbAnnotation.MathUtils.getCurrentPosFromRectCenter(m.size,S,i);m.setCurrentPos(R),m.render();const{x:J,y:Q,z:Y}=d.initCameraPosition;d.camera.position.set(u.x,u.y,Y),d.render(),I(R,i,a),x({zoom:i,currentPos:R})},[t.selectedID]),React.useEffect(()=>(window.addEventListener("keydown",N),()=>{window.removeEventListener("keydown",N)}),[]);const N=o=>{const{keyCode:l}=o;l===EKeyCode.Esc&&L()};return React.useEffect(()=>{var o,l,e;(e=(l=(o=t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null?void 0:l.setHighlightAttribute)==null||e.call(l,V)},[t.topViewInstance,V]),React__default.default.createElement(PointCloudLayout.PointCloudContainer,{className:dom.getClassName("point-cloud-container","top-view"),title:E?React__default.default.createElement("div",{style:{display:"flex",alignItems:"center",position:"relative"}},React__default.default.createElement(icons.LeftOutlined,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{L()}}),React__default.default.createElement("span",null,T("TopView")),React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:c,config:f,style:{display:"flex",position:"initial",margin:"0px 20px"}})):React__default.default.createElement(index$1,{title:T("TopView"),onClick:()=>{A(!0),P(!0)}}),toolbar:React__default.default.createElement(TopViewToolbar,{currentData:n})},React__default.default.createElement("div",{style:{position:"relative",flex:1}},React__default.default.createElement("div",{style:{width:"100%",height:"100%"},ref:p},v==null?void 0:v(g)),!E&&React__default.default.createElement(PointCloudInfos.BoxInfos,{checkMode:c,config:f}),React__default.default.createElement(ZAxisSlider,{checkMode:c,zAxisLimit:j,setZAxisLimit:M}),React__default.default.createElement(PointCloudInfos.PointCloudValidity,null)))};var PointCloudTopView$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudTopView);module.exports=PointCloudTopView$1;
package/dist/index.css CHANGED
@@ -2716,7 +2716,7 @@
2716
2716
  display: none;
2717
2717
  }
2718
2718
  .bee-point-cloud-wrapper .bee-point-cloud-container__left-large {
2719
- width: 455px;
2719
+ width: 100%;
2720
2720
  }
2721
2721
  .bee-point-cloud-wrapper .bee-point-cloud-container__left-noLarge {
2722
2722
  width: 100%;
@@ -1 +1 @@
1
- import{getClassName as _}from"../../utils/dom.js";import{FooterDivider as K}from"../../views/MainView/toolFooter/index.js";import{ZoomController as Ie}from"../../views/MainView/toolFooter/ZoomController/index.js";import{LeftOutlined as ye,UpSquareOutlined as xe,DownSquareOutlined as Ve}from"@ant-design/icons";import{cKeyCode as he,PointCloudAnnotation as Se,MathUtils as M,cTool as _e,cAnnotation as Ee}from"@labelbee/lb-annotation";import{PointCloudUtils as X}from"@labelbee/lb-utils";import{EPointCloudBoxRenderTrigger as Y}from"../../utils/ToolPointCloudBoxRenderHelper.js";import s,{useState as B,useRef as Le,useContext as q,useLayoutEffect as be,useEffect as P}from"react";import{PointCloudContext as $}from"./PointCloudContext.js";import{useRotate as Oe}from"./hooks/useRotate.js";import{useRotateEdge as je}from"./hooks/useRotateEdge.js";import{useSingleBox as G}from"./hooks/useSingleBox.js";import{PointCloudContainer as Te}from"./PointCloudLayout.js";import{BoxInfos as J,PointCloudValidity as De}from"./PointCloudInfos.js";import{usePolygon as Re}from"./hooks/usePolygon.js";import{useSphere as Q}from"./hooks/useSphere.js";import{useZoom as ee}from"./hooks/useZoom.js";import{Slider as ke}from"antd";import{a2MapStateToProps as Be}from"../../store/annotation/map.js";import{connect as Ae}from"react-redux";import{usePointCloudViews as Ne}from"./hooks/usePointCloudViews.js";import Ue from"../../hooks/useSize.js";import{useTranslation as ze}from"react-i18next";import{LabelBeeContext as Ze}from"../../store/ctx.js";import{jsonParser as He}from"../../utils/index.js";import Fe from"../../utils/ToolUtils.js";import We from"lodash";import Ke from"./components/PointCloudSizeSlider/index.js";import{useHistory as Me}from"./hooks/useHistory.js";import Xe from"./components/TitleButton/index.js";var Ye=Object.defineProperty,qe=Object.defineProperties,$e=Object.getOwnPropertyDescriptors,te=Object.getOwnPropertySymbols,Ge=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable,oe=(i,l,r)=>l in i?Ye(i,l,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[l]=r,U=(i,l)=>{for(var r in l||(l={}))Ge.call(l,r)&&oe(i,r,l[r]);if(te)for(var r of te(l))Je.call(l,r)&&oe(i,r,l[r]);return i},z=(i,l)=>qe(i,$e(l));const{EPolygonPattern:Qe,EToolName:ne}=_e,{ESortDirection:ie}=Ee,et=he.default,se=(i,l,r=1)=>{const{width:v,height:m}=l,y={x:i.x+v*r/2,y:i.y+m*r/2},x={x:l.width/2,y:l.height/2};return{offsetX:(x.x-y.x)/r,offsetY:-(x.y-y.y)/r}},tt=({currentData:i})=>{var l,r;const{zoom:v,zoomIn:m,zoomOut:y,initialPosition:x}=ee(),{selectNextBox:O,selectPrevBox:j}=G(),{switchToNextSphere:E}=Q(),{updateRotate:L}=Oe({currentData:i}),{updateRotateEdge:T}=je({currentData:i}),g=q($),{topViewInstance:V}=g,f=(r=(l=g==null?void 0:g.topViewInstance)==null?void 0:l.toolScheduler)==null?void 0:r.getCurrentToolName(),e=()=>{L(-Number(g.rectRotateSensitivity))},d=()=>{L(g.rectRotateSensitivity)},C=()=>{T(-90)};return s.createElement(s.Fragment,null,s.createElement(Ke,{onChange:A=>{var h;(h=V==null?void 0:V.pointCloudInstance)==null||h.updatePointSize({customSize:A})}}),s.createElement("span",{onClick:d,className:_("point-cloud","rotate-reserve")}),s.createElement("span",{onClick:e,className:_("point-cloud","rotate")}),s.createElement("span",{onClick:C,className:_("point-cloud","rotate-90")}),s.createElement(K,null),s.createElement(xe,{onClick:()=>{if(f===ne.Point){E(ie.descend);return}j(!0)},className:_("point-cloud","prev")}),s.createElement(Ve,{onClick:()=>{if(f===ne.Point){E(ie.ascend);return}O(!0)},className:_("point-cloud","next")}),s.createElement(K,null),s.createElement(Ie,{initialPosition:x,zoomIn:m,zoomOut:y,zoom:v}))},ot=({setZAxisLimit:i,zAxisLimit:l,checkMode:r})=>r?null:s.createElement("div",{style:{position:"absolute",top:128,right:8,height:"50%",zIndex:20}},s.createElement(ke,{vertical:!0,step:.5,max:10,min:.5,defaultValue:l,onAfterChange:v=>{i(v)}})),nt=({currentData:i,imgList:l,stepInfo:r,drawLayerSlot:v,checkMode:m,intelligentFit:y,setIsEnlargeTopView:x,isEnlargeTopView:O,onExitZoom:j,highlightAttribute:E})=>{var L,T;const[g,V]=B({zoom:1,currentPos:{x:0,y:0}}),f=Le(null),e=q($),d=Ue(f),C=He(r.config),{setZoom:A,syncTopviewToolZoom:h}=ee(),{hideAttributes:le,setIsLargeStatus:re,selectedID:ae,pointCloudBoxList:ce}=e,{addPolygon:de,deletePolygon:ue}=Re(),{deletePointCloudSphere:pe}=Q(),{deletePointCloudBox:me,changeValidByID:fe}=G(),[N,Ce]=B(10),{t:Z}=ze(),w=Ne(),{pushHistoryWithList:ve}=Me(),[we,D]=B(!0),[H,F]=B(!1);be(()=>{if(!e.topViewInstance&&f.current&&(i==null?void 0:i.url)&&(i==null?void 0:i.result)){const o={width:f.current.clientWidth,height:f.current.clientHeight},a=new Se({container:f.current,size:o,pcdPath:i.url,config:z(U({},C),{pointCloudPattern:e.pointCloudPattern}),checkMode:m,toolName:Fe.getPointCloudToolList(),proxyMode:m,view:"topView"});e.setTopViewInstance(a)}},[i]),P(()=>{H&&ae&&(e.syncAllViewPointCloudColor(Y.Single,ce),F(!1))},[H]),P(()=>{if(!d||!e.topViewInstance||!e.sideViewInstance)return;const{toolInstance:o}=e.topViewInstance;o.singleOn("dataUpdated",(t,n)=>{const u=We.cloneDeep(t).map(c=>z(U({},c),{pointList:X.pointListTransferCanvas2World(c.pointList,d)}));e.setSelectedIDs(n),e.setLineList(u),ve({lineList:u})}),o.singleOn("pointCreated",(t,n)=>{w.topViewAddSphere({newPoint:t,size:d,trackConfigurable:C.trackConfigurable,zoom:n})}),o.singleOn("pointDeleted",t=>{pe(t)}),o.singleOn("pointSelected",t=>{e.setSelectedIDs([t])}),o.singleOn("updatePointByDrag",(t,n)=>{var u;(u=w.topViewUpdatePoint)==null||u.call(w,t,d)}),o.singleOn("polygonCreated",(t,n)=>{if(o.pattern===Qe.Normal||!(i==null?void 0:i.url)){const u=z(U({},t),{pointList:t.pointList.map(c=>X.transferCanvas2World(c,d))});de(u),e.setSelectedIDs(le.includes(t.attribute)?"":t.id);return}D(!1),w.topViewAddBox({polygon:t,size:d,imgList:l,trackConfigurable:C.trackConfigurable,zoom:n,intelligentFit:y}),F(!0)}),o.singleOn("deletedObject",({id:t})=>{me(t),ue(t)}),o.singleOn("deleteSelectedIDs",()=>{e.setSelectedIDs([])}),o.singleOn("addSelectedIDs",t=>{e.addSelectedID(t)}),o.singleOn("setSelectedIDs",t=>{D(!1),e.setSelectedIDs(t)}),o.singleOn("updatePolygonByDrag",t=>{var n;(n=w.topViewUpdateBox)==null||n.call(w,t,d)});const a=t=>{var n;const u=fe(t);u&&e.syncAllViewPointCloudColor(Y.Default,u),e.polygonList.find(c=>c.id===t)&&((n=e.topViewInstance)==null||n.toolInstance.setPolygonValidAndRender(t,!0))};return o.on("validUpdate",a),()=>{o.unbind("validUpdate",a)}},[e,d,i,w,e.polygonList,e.lineList,(L=e.topViewInstance)==null?void 0:L.toolInstance]),P(()=>{var o,a;if(!(d==null?void 0:d.width)||!e.topViewInstance)return;const t=(a=(o=C==null?void 0:C.attributeList)==null?void 0:o[0])==null?void 0:a.value;t&&e.topViewInstance.toolInstance.setDefaultAttribute(t),e.topViewInstance.initSize(d),e.topViewInstance.updatePolygonList(e.displayPointCloudList,e.polygonList),e.topViewInstance.updatePointList(e.displaySphereList),e.topViewInstance.updateLineList(e.displayLineList);const{topViewInstance:{pointCloudInstance:n,toolInstance:u}}=e;u.singleOn("renderZoom",(c,p)=>{const{offsetX:S,offsetY:b}=se(p,d,c);if(n.camera.zoom=c,p){const{x:I,y:R,z:k}=n.initCameraPosition;n.camera.position.set(I+b,R-S,k)}n.camera.updateProjectionMatrix(),n.render(),A(c),h(p,c,d),V({zoom:c,currentPos:p})}),u.singleOn("dragMove",({currentPos:c,zoom:p})=>{const{offsetX:S,offsetY:b}=se(c,d,p);n.camera.zoom=p;const{x:I,y:R,z:k}=n.initCameraPosition;n.camera.position.set(I+b,R-S,k),n.render(),h(c,p,d),V({zoom:p,currentPos:c})})},[d,e.topViewInstance,(T=e.topViewInstance)==null?void 0:T.toolInstance]),P(()=>{var o,a;(a=(o=e.topViewInstance)==null?void 0:o.pointCloudInstance)==null||a.applyZAxisPoints(N)},[N]),P(()=>{var o,a,t,n;w.topViewSelectedChanged({}),(n=(t=(a=(o=e.topViewInstance)==null?void 0:o.toolInstance)==null?void 0:a.selection)==null?void 0:t.hardSetSelectedIDs)==null||n.call(t,e.selectedIDs)},[e.selectedIDs]),P(()=>{const{topViewInstance:o,selectedID:a,selectedPointCloudBox:t,zoom:n}=e;if(!o||!a||!t||!we){D(!0);return}const{center:u}=t,{pointCloudInstance:c,toolInstance:p}=o,S=p.polygonList.find(ge=>ge.id===e.selectedID);if(!S){D(!0);return}const b=M.getRectCenterPoint(S.pointList),I=M.getCurrentPosFromRectCenter(p.size,b,n);p.setCurrentPos(I),p.render();const{x:R,y:k,z:Pe}=c.initCameraPosition;c.camera.position.set(u.x,u.y,Pe),c.render(),h(I,n,d),V({zoom:n,currentPos:I})},[e.selectedID]),P(()=>(window.addEventListener("keydown",W),()=>{window.removeEventListener("keydown",W)}),[]);const W=o=>{const{keyCode:a}=o;a===et.Esc&&j()};return P(()=>{var o,a,t;(t=(a=(o=e.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null?void 0:a.setHighlightAttribute)==null||t.call(a,E)},[e.topViewInstance,E]),s.createElement(Te,{className:_("point-cloud-container","top-view"),title:O?s.createElement("div",{style:{display:"flex",alignItems:"center",position:"relative"}},s.createElement(ye,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{j()}}),s.createElement("span",null,Z("TopView")),s.createElement(J,{checkMode:m,config:C,style:{display:"flex",position:"initial",margin:"0px 20px"}})):s.createElement(Xe,{title:Z("TopView"),onClick:()=>{re(!0),x(!0)}}),toolbar:s.createElement(tt,{currentData:i})},s.createElement("div",{style:{position:"relative",flex:1}},s.createElement("div",{style:{width:"100%",height:"100%"},ref:f},v==null?void 0:v(g)),!O&&s.createElement(J,{checkMode:m,config:C}),s.createElement(ot,{checkMode:m,zAxisLimit:N,setZAxisLimit:Ce}),s.createElement(De,null)))};var it=Ae(Be,null,null,{context:Ze})(nt);export{it as default};
1
+ import{getClassName as S}from"../../utils/dom.js";import{FooterDivider as F}from"../../views/MainView/toolFooter/index.js";import{ZoomController as Pe}from"../../views/MainView/toolFooter/ZoomController/index.js";import{LeftOutlined as ge,UpSquareOutlined as Ie,DownSquareOutlined as ye}from"@ant-design/icons";import{cKeyCode as xe,PointCloudAnnotation as Ve,MathUtils as W,cTool as he,cAnnotation as Se}from"@labelbee/lb-annotation";import{PointCloudUtils as K}from"@labelbee/lb-utils";import{EPointCloudBoxRenderTrigger as M}from"../../utils/ToolPointCloudBoxRenderHelper.js";import s,{useState as D,useRef as _e,useContext as X,useLayoutEffect as Ee,useEffect as C}from"react";import{PointCloudContext as Y}from"./PointCloudContext.js";import{useRotate as Le}from"./hooks/useRotate.js";import{useRotateEdge as be}from"./hooks/useRotateEdge.js";import{useSingleBox as q}from"./hooks/useSingleBox.js";import{PointCloudContainer as Oe}from"./PointCloudLayout.js";import{BoxInfos as $,PointCloudValidity as je}from"./PointCloudInfos.js";import{usePolygon as Te}from"./hooks/usePolygon.js";import{useSphere as G}from"./hooks/useSphere.js";import{useZoom as J}from"./hooks/useZoom.js";import{Slider as De}from"antd";import{a2MapStateToProps as Re}from"../../store/annotation/map.js";import{connect as ke}from"react-redux";import{usePointCloudViews as Be}from"./hooks/usePointCloudViews.js";import Ae from"../../hooks/useSize.js";import{useTranslation as Ne}from"react-i18next";import{LabelBeeContext as Ue}from"../../store/ctx.js";import{jsonParser as ze}from"../../utils/index.js";import Ze from"../../utils/ToolUtils.js";import He from"lodash";import Fe from"./components/PointCloudSizeSlider/index.js";import{useHistory as We}from"./hooks/useHistory.js";import Ke from"./components/TitleButton/index.js";var Me=Object.defineProperty,Xe=Object.defineProperties,Ye=Object.getOwnPropertyDescriptors,Q=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,ee=(i,l,a)=>l in i?Me(i,l,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[l]=a,A=(i,l)=>{for(var a in l||(l={}))qe.call(l,a)&&ee(i,a,l[a]);if(Q)for(var a of Q(l))$e.call(l,a)&&ee(i,a,l[a]);return i},N=(i,l)=>Xe(i,Ye(l));const{EPolygonPattern:Ge,EToolName:te}=he,{ESortDirection:oe}=Se,Je=xe.default,ne=(i,l,a=1)=>{const{width:v,height:p}=l,I={x:i.x+v*a/2,y:i.y+p*a/2},y={x:l.width/2,y:l.height/2};return{offsetX:(y.x-I.x)/a,offsetY:-(y.y-I.y)/a}},Qe=({currentData:i})=>{var l,a;const{zoom:v,zoomIn:p,zoomOut:I,initialPosition:y}=J(),{selectNextBox:b,selectPrevBox:O}=q(),{switchToNextSphere:_}=G(),{updateRotate:E}=Le({currentData:i}),{updateRotateEdge:j}=be({currentData:i}),g=X(Y),{topViewInstance:x}=g,m=(a=(l=g==null?void 0:g.topViewInstance)==null?void 0:l.toolScheduler)==null?void 0:a.getCurrentToolName(),t=()=>{E(-Number(g.rectRotateSensitivity))},c=()=>{E(g.rectRotateSensitivity)},f=()=>{j(-90)};return s.createElement(s.Fragment,null,s.createElement(Fe,{onChange:R=>{var V;(V=x==null?void 0:x.pointCloudInstance)==null||V.updatePointSize({customSize:R})}}),s.createElement("span",{onClick:c,className:S("point-cloud","rotate-reserve")}),s.createElement("span",{onClick:t,className:S("point-cloud","rotate")}),s.createElement("span",{onClick:f,className:S("point-cloud","rotate-90")}),s.createElement(F,null),s.createElement(Ie,{onClick:()=>{if(m===te.Point){_(oe.descend);return}O(!0)},className:S("point-cloud","prev")}),s.createElement(ye,{onClick:()=>{if(m===te.Point){_(oe.ascend);return}b(!0)},className:S("point-cloud","next")}),s.createElement(F,null),s.createElement(Pe,{initialPosition:y,zoomIn:p,zoomOut:I,zoom:v}))},et=({setZAxisLimit:i,zAxisLimit:l,checkMode:a})=>a?null:s.createElement("div",{style:{position:"absolute",top:128,right:8,height:"50%",zIndex:20}},s.createElement(De,{vertical:!0,step:.5,max:10,min:.5,defaultValue:l,onAfterChange:v=>{i(v)}})),tt=({currentData:i,imgList:l,stepInfo:a,drawLayerSlot:v,checkMode:p,intelligentFit:I,setIsEnlargeTopView:y,isEnlargeTopView:b,onExitZoom:O,highlightAttribute:_})=>{var E,j;const[g,x]=D({zoom:1,currentPos:{x:0,y:0}}),m=_e(null),t=X(Y),c=Ae(m),f=ze(a.config),{setZoom:R,syncTopviewToolZoom:V}=J(),{hideAttributes:ie,setIsLargeStatus:se,selectedID:le,pointCloudBoxList:re}=t,{addPolygon:ae,deletePolygon:ce}=Te(),{deletePointCloudSphere:de}=G(),{deletePointCloudBox:ue,changeValidByID:pe}=q(),[k,me]=D(10),{t:U}=Ne(),w=Be(),{pushHistoryWithList:fe}=We(),[Ce,T]=D(!0),[z,Z]=D(!1);Ee(()=>{if(!t.topViewInstance&&m.current&&(i==null?void 0:i.url)&&(i==null?void 0:i.result)){const o={width:m.current.clientWidth,height:m.current.clientHeight},r=new Ve({container:m.current,size:o,pcdPath:i.url,config:N(A({},f),{pointCloudPattern:t.pointCloudPattern}),checkMode:p,toolName:Ze.getPointCloudToolList(),proxyMode:p,view:"topView"});t.setTopViewInstance(r)}},[i]),C(()=>{z&&le&&(t.syncAllViewPointCloudColor(M.Single,re),Z(!1))},[z]),C(()=>{if(!c||!t.topViewInstance||!t.sideViewInstance)return;const{toolInstance:o}=t.topViewInstance;o.singleOn("dataUpdated",(e,n)=>{const d=He.cloneDeep(e).map(u=>N(A({},u),{pointList:K.pointListTransferCanvas2World(u.pointList,c)}));t.setSelectedIDs(n),t.setLineList(d),fe({lineList:d})}),o.singleOn("pointCreated",(e,n)=>{w.topViewAddSphere({newPoint:e,size:c,trackConfigurable:f.trackConfigurable,zoom:n})}),o.singleOn("pointDeleted",e=>{de(e)}),o.singleOn("pointSelected",e=>{t.setSelectedIDs([e])}),o.singleOn("updatePointByDrag",(e,n)=>{var d;(d=w.topViewUpdatePoint)==null||d.call(w,e,c)}),o.singleOn("polygonCreated",(e,n)=>{if(o.pattern===Ge.Normal||!(i==null?void 0:i.url)){const d=N(A({},e),{pointList:e.pointList.map(u=>K.transferCanvas2World(u,c))});ae(d),t.setSelectedIDs(ie.includes(e.attribute)?"":e.id);return}T(!1),w.topViewAddBox({polygon:e,size:c,imgList:l,trackConfigurable:f.trackConfigurable,zoom:n,intelligentFit:I}),Z(!0)}),o.singleOn("deletedObject",({id:e})=>{ue(e),ce(e)}),o.singleOn("deleteSelectedIDs",()=>{t.setSelectedIDs([])}),o.singleOn("addSelectedIDs",e=>{t.addSelectedID(e)}),o.singleOn("setSelectedIDs",e=>{T(!1),t.setSelectedIDs(e)}),o.singleOn("updatePolygonByDrag",e=>{var n;(n=w.topViewUpdateBox)==null||n.call(w,e,c)});const r=e=>{var n;const d=pe(e);d&&t.syncAllViewPointCloudColor(M.Default,d),t.polygonList.find(u=>u.id===e)&&((n=t.topViewInstance)==null||n.toolInstance.setPolygonValidAndRender(e,!0))};return o.on("validUpdate",r),()=>{o.unbind("validUpdate",r)}},[t,c,i,w,t.polygonList,t.lineList,(E=t.topViewInstance)==null?void 0:E.toolInstance]),C(()=>{var o,r;if(!t.topViewInstance)return;const e=(r=(o=f==null?void 0:f.attributeList)==null?void 0:o[0])==null?void 0:r.value;e&&t.topViewInstance.toolInstance.setDefaultAttribute(e)},[t.topViewInstance]),C(()=>{if(!(c==null?void 0:c.width)||!t.topViewInstance)return;t.topViewInstance.initSize(c),t.topViewInstance.updatePolygonList(t.displayPointCloudList,t.polygonList),t.topViewInstance.updatePointList(t.displaySphereList),t.topViewInstance.updateLineList(t.displayLineList);const{topViewInstance:{pointCloudInstance:o,toolInstance:r}}=t;r.singleOn("renderZoom",(e,n)=>{const{offsetX:d,offsetY:u}=ne(n,c,e);if(o.camera.zoom=e,n){const{x:P,y:h,z:L}=o.initCameraPosition;o.camera.position.set(P+u,h-d,L)}o.camera.updateProjectionMatrix(),o.render(),R(e),V(n,e,c),x({zoom:e,currentPos:n})}),r.singleOn("dragMove",({currentPos:e,zoom:n})=>{const{offsetX:d,offsetY:u}=ne(e,c,n);o.camera.zoom=n;const{x:P,y:h,z:L}=o.initCameraPosition;o.camera.position.set(P+u,h-d,L),o.render(),V(e,n,c),x({zoom:n,currentPos:e})})},[c,t.topViewInstance,(j=t.topViewInstance)==null?void 0:j.toolInstance]),C(()=>{var o,r;(r=(o=t.topViewInstance)==null?void 0:o.pointCloudInstance)==null||r.applyZAxisPoints(k)},[k]),C(()=>{var o,r,e,n;w.topViewSelectedChanged({}),(n=(e=(r=(o=t.topViewInstance)==null?void 0:o.toolInstance)==null?void 0:r.selection)==null?void 0:e.hardSetSelectedIDs)==null||n.call(e,t.selectedIDs)},[t.selectedIDs]),C(()=>{const{topViewInstance:o,selectedID:r,selectedPointCloudBox:e,zoom:n}=t;if(!o||!r||!e||!Ce){T(!0);return}const{center:d}=e,{pointCloudInstance:u,toolInstance:P}=o,h=P.polygonList.find(we=>we.id===t.selectedID);if(!h){T(!0);return}const L=W.getRectCenterPoint(h.pointList),B=W.getCurrentPosFromRectCenter(P.size,L,n);P.setCurrentPos(B),P.render();const{x:nt,y:it,z:ve}=u.initCameraPosition;u.camera.position.set(d.x,d.y,ve),u.render(),V(B,n,c),x({zoom:n,currentPos:B})},[t.selectedID]),C(()=>(window.addEventListener("keydown",H),()=>{window.removeEventListener("keydown",H)}),[]);const H=o=>{const{keyCode:r}=o;r===Je.Esc&&O()};return C(()=>{var o,r,e;(e=(r=(o=t.topViewInstance)==null?void 0:o.pointCloud2dOperation)==null?void 0:r.setHighlightAttribute)==null||e.call(r,_)},[t.topViewInstance,_]),s.createElement(Oe,{className:S("point-cloud-container","top-view"),title:b?s.createElement("div",{style:{display:"flex",alignItems:"center",position:"relative"}},s.createElement(ge,{style:{cursor:"pointer",marginRight:"12px"},onClick:()=>{O()}}),s.createElement("span",null,U("TopView")),s.createElement($,{checkMode:p,config:f,style:{display:"flex",position:"initial",margin:"0px 20px"}})):s.createElement(Ke,{title:U("TopView"),onClick:()=>{se(!0),y(!0)}}),toolbar:s.createElement(Qe,{currentData:i})},s.createElement("div",{style:{position:"relative",flex:1}},s.createElement("div",{style:{width:"100%",height:"100%"},ref:m},v==null?void 0:v(g)),!b&&s.createElement($,{checkMode:p,config:f}),s.createElement(et,{checkMode:p,zAxisLimit:k,setZAxisLimit:me}),s.createElement(je,null)))};var ot=ke(Re,null,null,{context:Ue})(tt);export{ot as default};
package/es/index.css CHANGED
@@ -2716,7 +2716,7 @@
2716
2716
  display: none;
2717
2717
  }
2718
2718
  .bee-point-cloud-wrapper .bee-point-cloud-container__left-large {
2719
- width: 455px;
2719
+ width: 100%;
2720
2720
  }
2721
2721
  .bee-point-cloud-wrapper .bee-point-cloud-container__left-noLarge {
2722
2722
  width: 100%;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.24.0-alpha.29",
3
+ "version": "1.24.0-alpha.30",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",