@labelbee/lb-components 1.9.0-alpha.4 → 1.9.0-alpha.5

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 PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),annotation=require("../../hooks/annotation.js"),useStatus=require("./hooks/useStatus.js"),index=require("../../utils/index.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),ctx=require("../../store/ctx.js"),useHistory=require("./hooks/useHistory.js"),useAttribute=require("./hooks/useAttribute.js"),useConfig=require("./hooks/useConfig.js"),usePolygon=require("./hooks/usePolygon.js"),reactI18next=require("react-i18next"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,r,n)=>r in u?__defProp(u,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):u[r]=n,__spreadValues=(u,r)=>{for(var n in r||(r={}))__hasOwnProp.call(r,n)&&__defNormalProp(u,n,r[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(r))__propIsEnum.call(r,n)&&__defNormalProp(u,n,r[n]);return u},__spreadProps=(u,r)=>__defProps(u,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:u,config:r,checkMode:n,configString:h,imgIndex:P})=>{const o=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:_,selectNextBox:B,selectPrevBox:S,updateSelectedBox:y,deleteSelectedPointCloudBoxAndPolygon:E}=useSingleBox.useSingleBox(),{clearAllResult:v,updatePointCloudPattern:V}=useStatus.useStatus(),A=index.jsonParser(u.result),{copySelectedBoxes:I,pasteSelectedBoxes:O,copiedBoxes:q}=useBoxes.useBoxes({config:r}),{toolInstanceRef:a}=annotation.useCustomToolInstance({basicInfo:A}),{updateRotate:b}=useRotate.useRotate({currentData:u}),{updatePointCloudData:C,topViewSelectedChanged:j}=usePointCloudViews.usePointCloudViews(),{redo:w,undo:x,pushHistoryWithList:L,pushHistoryUnderUpdatePolygon:R}=useHistory.useHistory(),{syncThreeViewsAttribute:g}=useAttribute.useAttribute(),{syncAllViewsConfig:T,reRenderTopViewRange:D}=useConfig.useConfig(),{selectedPolygon:k}=usePolygon.usePolygon(),{t:f}=reactI18next.useTranslation(),p=e=>{var t;const{topViewInstance:s}=o;!s||(t=s.pointCloud2dOperation)==null||t.updateSelectedPolygonsPoints(e)},N=(e,t)=>{var s;const{topViewInstance:i,mainViewInstance:l}=o;if(!i)return;const{pointCloud2dOperation:c}=i;switch(e){case"q":{b(2);break}case"e":b(-2);break;case"g":b(180);break;case"u":{const d=c.pattern===EPolygonPattern.Normal?lbAnnotation.EToolName.Rect:lbAnnotation.EToolName.Polygon;V(d);const K={[lbAnnotation.EToolName.Polygon]:f("PolygonPattern"),[lbAnnotation.EToolName.Rect]:f("RectPattern")};antd.message.success(f("ChangePatternMsg",{pattern:K[d]})),c.clearActiveStatus(),c.clearDrawingStatus()}break;case"+":l==null||l.updatePointSize(!0);break;case"-":l==null||l.updatePointSize(!1);break;case"v":o.setPointCloudValid(!o.valid);break;case"tab":if(t.shiftKey){S();break}B(),t.preventDefault();break;case"f":_();break;case"arrowup":p({y:-1});break;case"arrowdown":p({y:1});break;case"arrowleft":p({x:-1});break;case"arrowright":p({x:1});break;case"delete":E();break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const d=lbAnnotation.AttributeUtils.getAttributeByKeycode(t.keyCode,r.attributeList);d!==void 0&&a.current.setDefaultAttribute(d)}return}}},H=(e,t)=>{switch(e){case"c":I();break;case"v":O();break;case"a":t.preventDefault(),o.selectedAllBoxes();break;case"z":{t.shiftKey?w():x();break}}},m=e=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(e)||n===!0)return;const t=e.key.toLocaleLowerCase();if(e.ctrlKey){H(t,e);return}N(t,e)};return React.useEffect(()=>{const{topViewInstance:e}=o;if(!!e)return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m)}},[o,q,r,o.pointCloudBoxList,o.polygonList]),React.useEffect(()=>{T(r)},[h]),React.useEffect(()=>{(r==null?void 0:r.radius)&&D(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),React.useEffect(()=>{C==null||C()},[P,o.mainViewInstance]),React.useEffect(()=>{o.setHideAttributes([])},[P]),React.useEffect(()=>{a.current.exportData=()=>[o.pointCloudBoxList,{valid:o.valid}],a.current.exportCustomData=()=>{var e;return{resultPolygon:(e=o.polygonList)!=null?e:[]}},a.current.setDefaultAttribute=e=>{g(e);const t=o.selectedPointCloudBox;if(t){t.attribute=e;const s=y(t);o.mainViewInstance&&j(t,s)}k&&R(__spreadProps(__spreadValues({},k),{attribute:e}))},a.current.setSubAttribute=(e,t)=>{var s;const i=o.selectedPointCloudBox;if(i){const l=(s=i==null?void 0:i.subAttribute)!=null?s:{};i.subAttribute=__spreadProps(__spreadValues({},l),{[e]:t}),y(i)}},a.current.clearResult=()=>{v==null||v()},a.current.redo=()=>{w()},a.current.undo=()=>{x()},a.current.setValid=e=>{a.current.valid=e,setTimeout(()=>{o.setPointCloudValid(e),e===!1&&v()})},a.current.setForbidOperation=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setForbidOperation(e),e===!0&&o.setSelectedIDs(void 0)},a.current.setShowDefaultCursor=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setShowDefaultCursor(e)}},[o.pointCloudBoxList,o.selectedID,o.valid,o.polygonList,o.mainViewInstance]),React.useEffect(()=>{a.current.history={pushHistory:e=>{L({pointCloudBoxList:e})},initRecord:()=>{}}},[]),React.useEffect(()=>{var e;const t=(e=o.topViewInstance)==null?void 0:e.pointCloud2dOperation;if(!t||n)return;const s=c=>{g(c)},i=c=>{antd.message.error(c)},l=c=>{antd.message.info(c)};return t.on("syncAttribute",s),t.on("messageError",i),t.on("messageInfo",l),()=>{t.unbind("syncAttribute",s),t.unbind("messageError",i),t.unbind("messageInfo",l)}},[o.topViewInstance]),null};var PointCloudListener$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudListener);module.exports=PointCloudListener$1;
1
+ "use strict";var PointCloudContext=require("./PointCloudContext.js"),useRotate=require("./hooks/useRotate.js"),useBoxes=require("./hooks/useBoxes.js"),useSingleBox=require("./hooks/useSingleBox.js"),React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),annotation=require("../../hooks/annotation.js"),useStatus=require("./hooks/useStatus.js"),index=require("../../utils/index.js"),usePointCloudViews=require("./hooks/usePointCloudViews.js"),ctx=require("../../store/ctx.js"),useHistory=require("./hooks/useHistory.js"),useAttribute=require("./hooks/useAttribute.js"),useConfig=require("./hooks/useConfig.js"),usePolygon=require("./hooks/usePolygon.js"),reactI18next=require("react-i18next"),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,r,a)=>r in u?__defProp(u,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):u[r]=a,__spreadValues=(u,r)=>{for(var a in r||(r={}))__hasOwnProp.call(r,a)&&__defNormalProp(u,a,r[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(r))__propIsEnum.call(r,a)&&__defNormalProp(u,a,r[a]);return u},__spreadProps=(u,r)=>__defProps(u,__getOwnPropDescs(r));const{EPolygonPattern}=lbAnnotation.cTool,PointCloudListener=({currentData:u,config:r,checkMode:a,configString:h,imgIndex:y})=>{const o=React.useContext(PointCloudContext.PointCloudContext),{changeSelectedBoxValid:_,selectNextBox:B,selectPrevBox:S,updateSelectedBox:C,deleteSelectedPointCloudBoxAndPolygon:E}=useSingleBox.useSingleBox(),{clearAllResult:b,updatePointCloudPattern:V}=useStatus.useStatus(),A=index.jsonParser(u.result),{copySelectedBoxes:I,pasteSelectedBoxes:O,copiedBoxes:q}=useBoxes.useBoxes({config:r}),{toolInstanceRef:n}=annotation.useCustomToolInstance({basicInfo:A}),{updateRotate:f}=useRotate.useRotate({currentData:u}),{updatePointCloudData:p,topViewSelectedChanged:j}=usePointCloudViews.usePointCloudViews(),{redo:w,undo:x,pushHistoryWithList:L,pushHistoryUnderUpdatePolygon:T}=useHistory.useHistory(),{syncThreeViewsAttribute:g}=useAttribute.useAttribute(),{syncAllViewsConfig:R,reRenderTopViewRange:D}=useConfig.useConfig(),{selectedPolygon:m}=usePolygon.usePolygon(),{t:P}=reactI18next.useTranslation(),v=e=>{var t;const{topViewInstance:s}=o;!s||(t=s.pointCloud2dOperation)==null||t.updateSelectedPolygonsPoints(e)},N=(e,t)=>{var s;const{topViewInstance:i,mainViewInstance:l}=o;if(!i)return;const{pointCloud2dOperation:c}=i;switch(e){case"q":{f(2);break}case"e":f(-2);break;case"g":f(180);break;case"u":{const d=c.pattern===EPolygonPattern.Normal?lbAnnotation.EToolName.Rect:lbAnnotation.EToolName.Polygon;V(d);const K={[lbAnnotation.EToolName.Polygon]:P("PolygonPattern"),[lbAnnotation.EToolName.Rect]:P("RectPattern")};antd.message.success(P("ChangePatternMsg",{pattern:K[d]})),c.clearActiveStatus(),c.clearDrawingStatus()}break;case"+":l==null||l.updatePointSize(!0);break;case"-":l==null||l.updatePointSize(!1);break;case"v":o.setPointCloudValid(!o.valid);break;case"tab":if(t.shiftKey){S();break}B(),t.preventDefault();break;case"f":_();break;case"arrowup":v({y:-1});break;case"arrowdown":v({y:1});break;case"arrowleft":v({x:-1});break;case"arrowright":v({x:1});break;case"delete":E();break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const d=lbAnnotation.AttributeUtils.getAttributeByKeycode(t.keyCode,r.attributeList);d!==void 0&&n.current.setDefaultAttribute(d)}return}}},H=(e,t)=>{switch(e){case"c":I();break;case"v":O();break;case"a":t.preventDefault(),o.selectedAllBoxes();break;case"z":{t.shiftKey?w():x();break}}},k=e=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(e)||a===!0)return;const t=e.key.toLocaleLowerCase();if(e.ctrlKey){H(t,e);return}N(t,e)};return React.useEffect(()=>{const{topViewInstance:e}=o;if(!!e)return window.addEventListener("keydown",k),()=>{window.removeEventListener("keydown",k)}},[o,q,r,o.pointCloudBoxList,o.polygonList]),React.useEffect(()=>{R(r)},[h]),React.useEffect(()=>{(r==null?void 0:r.radius)&&D(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),React.useEffect(()=>{p==null||p()},[y,o.mainViewInstance]),React.useEffect(()=>{o.setHideAttributes([])},[y]),React.useEffect(()=>{n.current.exportData=()=>[o.pointCloudBoxList,{valid:o.valid}],n.current.exportCustomData=()=>{var e;return{resultPolygon:(e=o.polygonList)!=null?e:[]}},n.current.setDefaultAttribute=e=>{g(e);const t=o.selectedPointCloudBox;if(t){t.attribute=e;const s=C(t);o.mainViewInstance&&j(t,s)}m&&T(__spreadProps(__spreadValues({},m),{attribute:e}))},n.current.setSubAttribute=(e,t)=>{var s;const i=o.selectedPointCloudBox;if(i){const l=(s=i==null?void 0:i.subAttribute)!=null?s:{};i.subAttribute=__spreadProps(__spreadValues({},l),{[e]:t}),C(i)}},n.current.clearResult=()=>{b==null||b()},n.current.redo=()=>{w()},n.current.undo=()=>{x()},n.current.setValid=e=>{n.current.valid=e,setTimeout(()=>{o.setPointCloudValid(e),e===!1&&b()})},n.current.setForbidOperation=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setForbidOperation(e),e===!0&&o.setSelectedIDs(void 0)},n.current.setShowDefaultCursor=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setShowDefaultCursor(e)},n.current.asyncData=e=>{setTimeout(()=>{p==null||p(e)})}},[o.pointCloudBoxList,o.selectedID,o.valid,o.polygonList,o.mainViewInstance]),React.useEffect(()=>{n.current.history={pushHistory:e=>{L({pointCloudBoxList:e})},initRecord:()=>{}}},[]),React.useEffect(()=>{var e;const t=(e=o.topViewInstance)==null?void 0:e.pointCloud2dOperation;if(!t||a)return;const s=c=>{g(c)},i=c=>{antd.message.error(c)},l=c=>{antd.message.info(c)};return t.on("syncAttribute",s),t.on("messageError",i),t.on("messageInfo",l),()=>{t.unbind("syncAttribute",s),t.unbind("messageError",i),t.unbind("messageInfo",l)}},[o.topViewInstance]),null};var PointCloudListener$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudListener);module.exports=PointCloudListener$1;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("../PointCloudContext.js"),useSingleBox=require("./useSingleBox.js"),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=(t,o,i)=>o in t?__defProp(t,o,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[o]=i,__spreadValues=(t,o)=>{for(var i in o||(o={}))__hasOwnProp.call(o,i)&&__defNormalProp(t,i,o[i]);if(__getOwnPropSymbols)for(var i of __getOwnPropSymbols(o))__propIsEnum.call(o,i)&&__defNormalProp(t,i,o[i]);return t},__spreadProps=(t,o)=>__defProps(t,__getOwnPropDescs(o)),__async=(t,o,i)=>new Promise((d,e)=>{var s=l=>{try{c(i.next(l))}catch(h){e(h)}},g=l=>{try{c(i.throw(l))}catch(h){e(h)}},c=l=>l.done?d(l.value):Promise.resolve(l.value).then(s,g);c((i=i.apply(t,o)).next())});const DEFAULT_SCOPE=5,DEFAULT_RADIUS=90,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},topViewPolygon2PointCloud=(t,o,i,d,e)=>{const[s,g,c,l]=t.pointList.map(P=>lbUtils.PointCloudUtils.transferCanvas2World(P,o)),h=lbAnnotation.MathUtils.getLineCenterPoint([s,c]),f=lbAnnotation.MathUtils.getLineLength(s,g),v=lbAnnotation.MathUtils.getLineLength(g,c),V=lbAnnotation.MathUtils.getRadiusFromQuadrangle(t.pointList);let w=0,m=1,B={};if(i){const P=i.getSensesPointZAxisInPolygon([s,g,c,l]);w=(P.maxZ+P.minZ)/2,m=P.maxZ-P.minZ,B={count:P.zCount}}d&&(w=d.center.z,m=d.depth);const U={center:{x:h.x,y:h.y,z:w},width:v,height:f,depth:m,rotation:V,id:t.id},C=__spreadValues(d?__spreadValues(__spreadValues({},d),U):__spreadProps(__spreadValues({},U),{attribute:"",valid:!0}),B);return e&&Object.assign(C,e),C},sideViewPolygon2PointCloud=(t,o,i,d)=>{const[e,s,g]=t.pointList,[c,l,h]=o.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([e,g]),v=lbAnnotation.MathUtils.getLineCenterPoint([c,h]),w={x:{x:f.x-v.x,y:f.y-v.y}.x,y:0,z:f.y-v.y},m=lbAnnotation.MathUtils.getLineLength(e,s),B=lbAnnotation.MathUtils.getLineLength(c,l),U=m-B,C=lbAnnotation.MathUtils.getLineLength(s,g),P=lbAnnotation.MathUtils.getLineLength(l,h),D=C-P,{newBoxParams:b}=d.getNewBoxBySideUpdate(w,D,U,i);return b},backViewPolygon2PointCloud=(t,o,i,d)=>{const[e,s,g]=t.pointList,[c,l,h]=o.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([e,g]),v=lbAnnotation.MathUtils.getLineCenterPoint([c,h]),w={x:{x:f.x-v.x,y:f.y-v.y}.x,y:0,z:f.y-v.y},m=lbAnnotation.MathUtils.getLineLength(e,s),B=lbAnnotation.MathUtils.getLineLength(c,l),U=m-B,C=lbAnnotation.MathUtils.getLineLength(s,g),P=lbAnnotation.MathUtils.getLineLength(l,h),D=C-P;let{newBoxParams:b}=d.getNewBoxByBackUpdate(w,D,U,i);return b},synchronizeSideView=(t,o,i,d)=>{if(!i)return;const{pointCloud2dOperation:e,pointCloudInstance:s}=i;s.loadPCDFileByBox(d,t,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:g}=s.updateOrthoCamera(t,lbUtils.EPerspectiveView.Left);s.setInitCameraPosition(g);const{polygon2d:c,zoom:l}=s.getBoxSidePolygon2DCoordinate(t);s.camera.zoom=l,s.camera.updateProjectionMatrix(),s.render(),e.initPosition(),e.zoomChangeOnCenter(l),e.setResultAndSelectedID([{id:o.id,valid:t.valid,pointList:c,textAttribute:"",isRect:!0,attribute:t.attribute}],o.id)},synchronizeBackView=(t,o,i,d)=>{if(!i)return;const{pointCloud2dOperation:e,pointCloudInstance:s}=i;s.loadPCDFileByBox(d,t,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:g}=s.updateOrthoCamera(t,lbUtils.EPerspectiveView.Back);s.setInitCameraPosition(g);const{polygon2d:c,zoom:l}=s.getBoxBackPolygon2DCoordinate(t);s.camera.zoom=l,s.camera.updateProjectionMatrix(),s.render(),e.initPosition(),e.zoomChangeOnCenter(l),e.setResultAndSelectedID([{id:o.id,valid:t.valid,pointList:c,textAttribute:"",isRect:!0,attribute:t.attribute}],o.id)},synchronizeTopView=(t,o,i,d)=>{var e;if(!i||!d)return;d.generateBox(t,o.id),d.updateCameraByBox(t,lbUtils.EPerspectiveView.Top),d.render();const{pointCloud2dOperation:s,pointCloudInstance:g}=i,{polygon2d:c}=g.getBoxTopPolygon2DCoordinate(t),l=[...s.polygonList],h=l.find(f=>f.id===o.id);h?h.pointList=c:l.push({id:o.id,pointList:c,textAttribute:"",isRect:!0,valid:(e=t.valid)!=null?e:!0}),s.setResultAndSelectedID(l,o.id)},usePointCloudViews=()=>{const t=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:o,sideViewInstance:i,backViewInstance:d,mainViewInstance:e,addPointCloudBox:s,setSelectedIDs:g,selectedIDs:c,pointCloudBoxList:l,hideAttributes:h}=t,{addHistory:f,initHistory:v,pushHistoryUnderUpdatePolygon:V}=useHistory.useHistory(),{selectedPolygon:w}=usePolygon.usePolygon(),{updateSelectedBox:m,updateSelectedBoxes:B,getPointCloudByID:U}=useSingleBox.useSingleBox(),{currentData:C,config:P}=ctx.useSelector(n=>{const{stepList:u,step:p,imgList:r,imgIndex:a}=n.annotation;return{currentData:r[a],config:index.jsonParser(StepUtils.getCurrentStepInfo(p,u).config)}}),D=ctx.useDispatch(),{selectedBox:b}=useSingleBox.useSingleBox(),{t:A}=reactI18next.useTranslation(),I=b==null?void 0:b.info;if(!o||!i||!d)return{topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:k}=o,M=n=>{e==null||e.generateBox(n),e==null||e.controls.update(),e==null||e.render()},T=({newPolygon:n,size:u,imgList:p,trackConfigurable:r,zoom:a})=>{var y;const x={attribute:(y=o.pointCloud2dOperation.defaultAttribute)!=null?y:""};r===!0&&Object.assign(x,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:l})});const L=topViewPolygon2PointCloud(n,u,k,void 0,x),_=o==null?void 0:o.pointCloud2dOperation,S=L;if((P==null?void 0:P.lowerLimitPointsNumInBox)&&typeof L.count=="number"&&L.count<P.lowerLimitPointsNumInBox){antd.message.info(A("LowerLimitPointsNumInBox",{num:P.lowerLimitPointsNumInBox})),_.deletePolygon(L.id);return}const H=h.includes(n.attribute),F=s(S);H?g([]):(g(S.id),_.setSelectedIDs([n.id]),O(PointCloudView.Top,n,S,a,F)),f({newBoxParams:S})},z=(n,u)=>{const p=n!=null?n:b==null?void 0:b.info,r=o==null?void 0:o.pointCloud2dOperation;if(r.setSelectedIDs(c),c.length===0||!r)return;const a=r.selectedPolygon;if(c.length===1&&p){O(PointCloudView.Top,a,p,void 0,u);return}},j=(n,u,p)=>{if(I){let r,a;switch(p){case PointCloudView.Back:r=backViewPolygon2PointCloud;break;case PointCloudView.Side:r=sideViewPolygon2PointCloud;break;default:r=sideViewPolygon2PointCloud;break}if(a=r(n,u,I,i.pointCloudInstance),e){const{count:x}=e.getSensesPointZAxisInPolygon(lbAnnotation.getCuboidFromPointCloudBox(a).polygonPointList,[a.center.z-a.depth/2,a.center.z+a.depth/2]);a=__spreadProps(__spreadValues({},a),{count:x})}const y=m(a);return O(p,n,a,void 0,y),y}},R=(n,u)=>{j(n,u,PointCloudView.Side)},q=(n,u)=>{j(n,u,PointCloudView.Back)},E=(n,u)=>{if(w){const r=n[0].newPolygon;r.pointList=r.pointList.map(a=>lbUtils.PointCloudUtils.transferCanvas2World(a,u)),V(n[0].newPolygon);return}const p=n.map(({newPolygon:r})=>{const a=U(r.id);return topViewPolygon2PointCloud(r,u,o.pointCloudInstance,a)});if(p.length===1){const{newPolygon:r}=n[0],a=B(p);O(PointCloudView.Top,r,p[0],void 0,a)}else{const r=B(p);r&&t.syncAllViewPointCloudColor(r)}},O=(n,u,p,r,a)=>__async(void 0,null,function*(){const y=C==null?void 0:C.url;a&&(yield t.syncAllViewPointCloudColor(a));const x={[PointCloudView.Side]:()=>{synchronizeSideView(p,u,i,y)},[PointCloudView.Back]:()=>{d&&synchronizeBackView(p,u,d,y)},[PointCloudView.Top]:()=>{synchronizeTopView(p,u,o,e)}};Object.keys(x).forEach(L=>{L!==n&&x[L]()}),r&&(e==null||e.updateCameraZoom(r)),M(p)});return{topViewAddBox:T,topViewSelectedChanged:z,topViewUpdateBox:E,sideViewUpdateBox:R,backViewUpdateBox:q,pointCloudBoxListUpdated:n=>{o.updatePolygonList(n),e==null||e.generateBoxes(n)},initPointCloud3d:n=>{if(!e)return;const u={left:-n.width/2,right:n.width/2,top:n.height/2,bottom:-n.height/2,near:100,far:-100};e.initOrthographicCamera(u),e.initRenderer(),e.render()},updatePointCloudData:()=>__async(void 0,null,function*(){var n,u,p,r,a,y;if(!(C==null?void 0:C.url)||!e)return;actionCreators.SetPointCloudLoading(D,!0),yield e.loadPCDFile(C.url,(n=P==null?void 0:P.radius)!=null?n:DEFAULT_RADIUS),l.forEach(S=>{e==null||e.removeObjectByName(S.id)});let x=[],L=[];C.result?(x=lbUtils.PointCloudUtils.getBoxParamsFromResultList(C.result),L=lbUtils.PointCloudUtils.getPolygonListFromResultList(C.result),x.forEach(S=>{e==null||e.generateBox(S)}),t.syncAllViewPointCloudColor(x),t.setPointCloudResult(x),t.setPolygonList(L)):(t.setPointCloudResult([]),t.setPolygonList([])),v({pointCloudBoxList:x,polygonList:L}),e.updateTopCamera();const _=(p=(u=index.jsonParser(C.result))==null?void 0:u.valid)!=null?p:!0;t.setPointCloudValid(_),(r=t.sideViewInstance)==null||r.clearAllData(),(a=t.backViewInstance)==null||a.clearAllData(),o.updateData(C.url,C.result,{radius:(y=P==null?void 0:P.radius)!=null?y:DEFAULT_RADIUS}),actionCreators.SetPointCloudLoading(D,!1)})}};exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,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"),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=(t,o,n)=>o in t?__defProp(t,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[o]=n,__spreadValues=(t,o)=>{for(var n in o||(o={}))__hasOwnProp.call(o,n)&&__defNormalProp(t,n,o[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(o))__propIsEnum.call(o,n)&&__defNormalProp(t,n,o[n]);return t},__spreadProps=(t,o)=>__defProps(t,__getOwnPropDescs(o)),__async=(t,o,n)=>new Promise((c,e)=>{var s=d=>{try{u(n.next(d))}catch(C){e(C)}},g=d=>{try{u(n.throw(d))}catch(C){e(C)}},u=d=>d.done?c(d.value):Promise.resolve(d.value).then(s,g);u((n=n.apply(t,o)).next())});const DEFAULT_SCOPE=5,DEFAULT_RADIUS=90,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},topViewPolygon2PointCloud=(t,o,n,c,e)=>{const[s,g,u,d]=t.pointList.map(P=>lbUtils.PointCloudUtils.transferCanvas2World(P,o)),C=lbAnnotation.MathUtils.getLineCenterPoint([s,u]),h=lbAnnotation.MathUtils.getLineLength(s,g),x=lbAnnotation.MathUtils.getLineLength(g,u),_=lbAnnotation.MathUtils.getRadiusFromQuadrangle(t.pointList);let m=0,w=1,y={};if(n){const P=n.getSensesPointZAxisInPolygon([s,g,u,d]);m=(P.maxZ+P.minZ)/2,w=P.maxZ-P.minZ,y={count:P.zCount}}c&&(m=c.center.z,w=c.depth);const U={center:{x:C.x,y:C.y,z:m},width:x,height:h,depth:w,rotation:_,id:t.id},v=__spreadValues(c?__spreadValues(__spreadValues({},c),U):__spreadProps(__spreadValues({},U),{attribute:"",valid:!0}),y);return e&&Object.assign(v,e),v},sideViewPolygon2PointCloud=(t,o,n,c)=>{const[e,s,g]=t.pointList,[u,d,C]=o.pointList,h=lbAnnotation.MathUtils.getLineCenterPoint([e,g]),x=lbAnnotation.MathUtils.getLineCenterPoint([u,C]),m={x:{x:h.x-x.x,y:h.y-x.y}.x,y:0,z:h.y-x.y},w=lbAnnotation.MathUtils.getLineLength(e,s),y=lbAnnotation.MathUtils.getLineLength(u,d),U=w-y,v=lbAnnotation.MathUtils.getLineLength(s,g),P=lbAnnotation.MathUtils.getLineLength(d,C),O=v-P,{newBoxParams:b}=c.getNewBoxBySideUpdate(m,O,U,n);return b},backViewPolygon2PointCloud=(t,o,n,c)=>{const[e,s,g]=t.pointList,[u,d,C]=o.pointList,h=lbAnnotation.MathUtils.getLineCenterPoint([e,g]),x=lbAnnotation.MathUtils.getLineCenterPoint([u,C]),m={x:{x:h.x-x.x,y:h.y-x.y}.x,y:0,z:h.y-x.y},w=lbAnnotation.MathUtils.getLineLength(e,s),y=lbAnnotation.MathUtils.getLineLength(u,d),U=w-y,v=lbAnnotation.MathUtils.getLineLength(s,g),P=lbAnnotation.MathUtils.getLineLength(d,C),O=v-P;let{newBoxParams:b}=c.getNewBoxByBackUpdate(m,O,U,n);return b},synchronizeSideView=(t,o,n,c)=>{if(!n)return;const{pointCloud2dOperation:e,pointCloudInstance:s}=n;s.loadPCDFileByBox(c,t,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:g}=s.updateOrthoCamera(t,lbUtils.EPerspectiveView.Left);s.setInitCameraPosition(g);const{polygon2d:u,zoom:d}=s.getBoxSidePolygon2DCoordinate(t);s.camera.zoom=d,s.camera.updateProjectionMatrix(),s.render(),e.initPosition(),e.zoomChangeOnCenter(d),e.setResultAndSelectedID([{id:o.id,valid:t.valid,pointList:u,textAttribute:"",isRect:!0,attribute:t.attribute}],o.id)},synchronizeBackView=(t,o,n,c)=>{if(!n)return;const{pointCloud2dOperation:e,pointCloudInstance:s}=n;s.loadPCDFileByBox(c,t,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:g}=s.updateOrthoCamera(t,lbUtils.EPerspectiveView.Back);s.setInitCameraPosition(g);const{polygon2d:u,zoom:d}=s.getBoxBackPolygon2DCoordinate(t);s.camera.zoom=d,s.camera.updateProjectionMatrix(),s.render(),e.initPosition(),e.zoomChangeOnCenter(d),e.setResultAndSelectedID([{id:o.id,valid:t.valid,pointList:u,textAttribute:"",isRect:!0,attribute:t.attribute}],o.id)},synchronizeTopView=(t,o,n,c)=>{var e;if(!n||!c)return;c.generateBox(t,o.id),c.updateCameraByBox(t,lbUtils.EPerspectiveView.Top),c.render();const{pointCloud2dOperation:s,pointCloudInstance:g}=n,{polygon2d:u}=g.getBoxTopPolygon2DCoordinate(t),d=[...s.polygonList],C=d.find(h=>h.id===o.id);C?C.pointList=u:d.push({id:o.id,pointList:u,textAttribute:"",isRect:!0,valid:(e=t.valid)!=null?e:!0}),s.setResultAndSelectedID(d,o.id)},usePointCloudViews=()=>{const t=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:o,sideViewInstance:n,backViewInstance:c,mainViewInstance:e,addPointCloudBox:s,setSelectedIDs:g,selectedIDs:u,pointCloudBoxList:d,hideAttributes:C}=t,{addHistory:h,initHistory:x,pushHistoryUnderUpdatePolygon:_}=useHistory.useHistory(),{selectedPolygon:m}=usePolygon.usePolygon(),{updateSelectedBox:w,updateSelectedBoxes:y,getPointCloudByID:U}=useSingleBox.useSingleBox(),{currentData:v,config:P}=ctx.useSelector(i=>{const{stepList:r,step:p,imgList:l,imgIndex:a}=i.annotation;return{currentData:l[a],config:index.jsonParser(StepUtils.getCurrentStepInfo(p,r).config)}}),O=ctx.useDispatch(),{selectedBox:b}=useSingleBox.useSingleBox(),{t:M}=reactI18next.useTranslation(),A=b==null?void 0:b.info;if(!o||!n||!c)return{topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:T}=o,z=i=>{e==null||e.generateBox(i),e==null||e.controls.update(),e==null||e.render()},R=({newPolygon:i,size:r,imgList:p,trackConfigurable:l,zoom:a})=>{var f;const L={attribute:(f=o.pointCloud2dOperation.defaultAttribute)!=null?f:""};l===!0&&Object.assign(L,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:d})});const B=topViewPolygon2PointCloud(i,r,T,void 0,L),S=o==null?void 0:o.pointCloud2dOperation,V=B;if((P==null?void 0:P.lowerLimitPointsNumInBox)&&typeof B.count=="number"&&B.count<P.lowerLimitPointsNumInBox){antd.message.info(M("LowerLimitPointsNumInBox",{num:P.lowerLimitPointsNumInBox})),S.deletePolygon(B.id);return}const j=C.includes(i.attribute),I=s(V);j?g([]):(g(V.id),S.setSelectedIDs([i.id]),D(PointCloudView.Top,i,V,a,I)),h({newBoxParams:V})},q=(i,r)=>{const p=i!=null?i:b==null?void 0:b.info,l=o==null?void 0:o.pointCloud2dOperation;if(l.setSelectedIDs(u),u.length===0||!l)return;const a=l.selectedPolygon;if(u.length===1&&p){D(PointCloudView.Top,a,p,void 0,r);return}},k=(i,r,p)=>{if(A){let l,a;switch(p){case PointCloudView.Back:l=backViewPolygon2PointCloud;break;case PointCloudView.Side:l=sideViewPolygon2PointCloud;break;default:l=sideViewPolygon2PointCloud;break}if(a=l(i,r,A,n.pointCloudInstance),e){const{count:L}=e.getSensesPointZAxisInPolygon(lbAnnotation.getCuboidFromPointCloudBox(a).polygonPointList,[a.center.z-a.depth/2,a.center.z+a.depth/2]);a=__spreadProps(__spreadValues({},a),{count:L})}const f=w(a);return D(p,i,a,void 0,f),f}},E=(i,r)=>{k(i,r,PointCloudView.Side)},H=(i,r)=>{k(i,r,PointCloudView.Back)},F=(i,r)=>{if(m){const l=i[0].newPolygon;l.pointList=l.pointList.map(a=>lbUtils.PointCloudUtils.transferCanvas2World(a,r)),_(i[0].newPolygon);return}const p=i.map(({newPolygon:l})=>{const a=U(l.id);return topViewPolygon2PointCloud(l,r,o.pointCloudInstance,a)});if(p.length===1){const{newPolygon:l}=i[0],a=y(p);D(PointCloudView.Top,l,p[0],void 0,a)}else{const l=y(p);l&&t.syncAllViewPointCloudColor(l)}},D=(i,r,p,l,a)=>__async(void 0,null,function*(){const f=v==null?void 0:v.url;a&&(yield t.syncAllViewPointCloudColor(a));const L={[PointCloudView.Side]:()=>{synchronizeSideView(p,r,n,f)},[PointCloudView.Back]:()=>{c&&synchronizeBackView(p,r,c,f)},[PointCloudView.Top]:()=>{synchronizeTopView(p,r,o,e)}};Object.keys(L).forEach(B=>{B!==i&&L[B]()}),l&&(e==null||e.updateCameraZoom(l)),z(p)});return{topViewAddBox:R,topViewSelectedChanged:q,topViewUpdateBox:F,sideViewUpdateBox:E,backViewUpdateBox:H,pointCloudBoxListUpdated:i=>{o.updatePolygonList(i),e==null||e.generateBoxes(i)},initPointCloud3d:i=>{if(!e)return;const r={left:-i.width/2,right:i.width/2,top:i.height/2,bottom:-i.height/2,near:100,far:-100};e.initOrthographicCamera(r),e.initRenderer(),e.render()},updatePointCloudData:(...i)=>__async(void 0,[...i],function*(r=v){var p,l,a,f,L,B;if(!(r==null?void 0:r.url)||!e)return;actionCreators.SetPointCloudLoading(O,!0),yield e.loadPCDFile(r.url,(p=P==null?void 0:P.radius)!=null?p:DEFAULT_RADIUS),d.forEach(I=>{e==null||e.removeObjectByName(I.id)});let S=[],V=[];r.result?(S=lbUtils.PointCloudUtils.getBoxParamsFromResultList(r.result),V=lbUtils.PointCloudUtils.getPolygonListFromResultList(r.result),S.forEach(I=>{e==null||e.generateBox(I)}),t.syncAllViewPointCloudColor(S),t.setPointCloudResult(S),t.setPolygonList(V)):(t.setPointCloudResult([]),t.setPolygonList([])),x({pointCloudBoxList:S,polygonList:V}),e.updateTopCamera();const j=(a=(l=index.jsonParser(r.result))==null?void 0:l.valid)!=null?a:!0;t.setPointCloudValid(j),(f=t.sideViewInstance)==null||f.clearAllData(),(L=t.backViewInstance)==null||L.clearAllData(),o.updateData(r.url,r.result,{radius:(B=P==null?void 0:P.radius)!=null?B:DEFAULT_RADIUS}),actionCreators.SetPointCloudLoading(O,!1)})}};exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,exports.topViewPolygon2PointCloud=topViewPolygon2PointCloud,exports.usePointCloudViews=usePointCloudViews;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$2=require("../../components/customResizeHook/index.js"),index=require("../../constant/index.js"),styleString=require("../../constant/styleString.js"),Actions=require("../Actions.js"),index$1=require("../../utils/index.js"),AnnotationDataUtils=require("../../utils/AnnotationDataUtils.js"),ConfigUtils=require("../../utils/ConfigUtils.js"),data=require("../../utils/data.js"),StepUtils=require("../../utils/StepUtils.js"),ToolUtils=require("../../utils/ToolUtils.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),antd=require("antd"),es=require("antd/es"),_=require("lodash"),actionCreators=require("./actionCreators.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,s)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,__spreadValues=(e,t)=>{for(var s in t||(t={}))__hasOwnProp.call(t,s)&&__defNormalProp(e,s,t[s]);if(__getOwnPropSymbols)for(var s of __getOwnPropSymbols(t))__propIsEnum.call(t,s)&&__defNormalProp(e,s,t[s]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__async=(e,t,s)=>new Promise((I,u)=>{var A=T=>{try{O(s.next(T))}catch(C){u(C)}},p=T=>{try{O(s.throw(T))}catch(C){u(C)}},O=T=>T.done?I(T.value):Promise.resolve(T.value).then(A,p);O((s=s.apply(e,t)).next())});const getStepConfig=(e,t)=>e.find(s=>s.step===t),initialState={annotationEngine:null,toolInstance:null,imgList:[],config:"{}",imgIndex:-1,basicIndex:0,imgPageSize:1,step:1,stepList:[],imgNode:new Image,basicResultList:[],resultList:[],stepProgress:0,loading:!1,triggerEventAfterIndexChanged:!1,pointCloudLoading:!1,checkMode:!1},getTotalPage=e=>{const{imgList:t,imgPageSize:s}=e;return Math.ceil(t.length/s)},calcStepProgress=(e,t)=>e.reduce((s,I)=>{if(I){const u=I.result;if(index$1.jsonParser(u)[`step_${t}`])return s+1}return s},0)/e.length,updateToolInstance=(e,t)=>{const{step:s,stepList:I}=e,u=StepUtils.getCurrentStepInfo(s,I),A=ConfigUtils.ConfigUtils.jsonParser(u.config);if(ToolUtils.isVideoTool(u==null?void 0:u.tool)||ToolUtils.isPointCloudTool(u==null?void 0:u.tool))return;const p=document.getElementById("toolContainer");if(!p)throw"Not exist dom named id-toolContainer";const O=index$2.getFormatSize({width:window.innerWidth,height:window.innerHeight}),T=new lbAnnotation.AnnotationEngine({container:p,toolName:u.tool,size:O,imgNode:t,config:A,style:JSON.parse(styleString)});return{toolInstance:T==null?void 0:T.toolInstance,annotationEngine:T}},LoadFileAndFileData=(e,t)=>(s,I)=>__async(void 0,null,function*(){const{stepList:u,step:A}=I().annotation,p=StepUtils.currentToolIsVideo(A,u),O=StepUtils.currentToolIsPointCloud(A,u);if(actionCreators.SetAnnotationLoading(s,!0),yield s(TryGetFileDataByAPI(e)),p||O){s(AfterVideoLoaded(e));return}s(AfterImageLoaded(e,t))}),TryGetFileDataByAPI=e=>(t,s)=>__async(void 0,null,function*(){const{getFileData:I,imgList:u}=s().annotation;if(I){const A=yield I(u[e],e);t({type:Actions.ANNOTATION_ACTIONS.SET_FILE_DATA,payload:{fileData:A,index:e}})}}),AfterVideoLoaded=e=>t=>{actionCreators.SetAnnotationLoading(t,!1),t({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{nextIndex:e}})},AfterImageLoaded=(e,t)=>(s,I)=>{var u;const{toolInstance:A,imgList:p}=I().annotation,O=(u=p==null?void 0:p[e])==null?void 0:u.url;lbAnnotation.ImgUtils.load(O).then(T=>{actionCreators.SetAnnotationLoading(s,!1),s({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{imgNode:T,nextIndex:e,nextBasicIndex:t}})}).catch(()=>{actionCreators.SetAnnotationLoading(s,!1),A==null||A.setErrorImg(),s({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{nextIndex:e,nextBasicIndex:t}})})},composeResultByToolInstance=({toolInstance:e,imgList:t,imgIndex:s,stepList:I,step:u=1})=>{var A,p,O,T;const C=((A=t[s])==null?void 0:A.result)||"",[b,h,U]=(p=e==null?void 0:e.exportData())!=null?p:[],x=(T=(O=e==null?void 0:e.exportCustomData)==null?void 0:O.call(e))!=null?T:{},B=data.composeResultWithBasicImgInfo(C,h),w=data.composeResult(B,{step:u,stepList:I},{rect:b},x);return t.map((P,F)=>F===s?__spreadValues(__spreadProps(__spreadValues({},P),{result:w}),U):__spreadValues({},P))},annotationReducer=(e=__spreadValues({},initialState),t)=>{var s,I,u,A,p,O,T,C,b,h,U,x,B,w,P,F,q,G,V,M,k,H;switch(t.type){case Actions.ANNOTATION_ACTIONS.INIT_ALL_STATE:return __spreadValues(__spreadValues({},e),initialState);case Actions.ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE:return __spreadProps(__spreadValues({},e),{toolInstance:t.payload.toolInstance});case Actions.ANNOTATION_ACTIONS.UPDATE_IMG_LIST:return __spreadProps(__spreadValues({},e),{imgList:t.payload.imgList});case Actions.ANNOTATION_ACTIONS.CALC_STEP_PROGRESS:{const{imgList:n,step:o}=e,i=calcStepProgress(n,o);return __spreadProps(__spreadValues({},e),{stepProgress:i})}case Actions.ANNOTATION_ACTIONS.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:o,step:i,stepList:l,toolInstance:a,onSubmit:r,resultList:N}=e;if(!a||!n[o])return e;const c=((s=n[o])==null?void 0:s.result)||"",[,d,g]=(I=a==null?void 0:a.exportData())!=null?I:[],f=(A=(u=a==null?void 0:a.exportCustomData)==null?void 0:u.call(a))!=null?A:{},v=data.composeResultWithBasicImgInfo(c,d),E=data.composeResult(v,{step:i,stepList:l},{rect:N},f),S=e.imgList.map((L,m)=>{if(m===o){const R=AnnotationDataUtils.dataCorrection(E,c,i,l);return __spreadValues(__spreadProps(__spreadValues({},L),{result:R}),g)}return L});if(((p=t.payload)==null?void 0:p.submitType)===index.ESubmitType.SyncImgList)return __spreadProps(__spreadValues({},e),{imgList:S});r&&r([S[o]],(O=t.payload)==null?void 0:O.submitType,o,S);const D=calcStepProgress(S,i);return __spreadProps(__spreadValues({},e),{stepProgress:D,imgList:S})}case Actions.ANNOTATION_ACTIONS.SAVE_RESULT:{const{imgList:n,imgIndex:o,onSave:i}=e;return i==null||i(n[o],o,n),__spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.SUBMIT_RESULT:{const{imgList:n,basicIndex:o,resultList:i,toolInstance:l,basicResultList:a}=e;if(!l)return e;const[r]=(T=l==null?void 0:l.exportData())!=null?T:[];let N=r;if((a==null?void 0:a.length)>0){const c=(C=a[o])==null?void 0:C.id,d=r.map(g=>__spreadProps(__spreadValues({},g),{sourceID:c}));N=___default.default.cloneDeep(i).filter(g=>g.sourceID!==c),N.push(...d)}return __spreadProps(__spreadValues({},e),{resultList:N,imgList:n})}case Actions.ANNOTATION_ACTIONS.SET_BASIC_INDEX:{const{toolInstance:n,step:o,imgList:i,imgIndex:l,stepList:a,annotationEngine:r,resultList:N,basicResultList:c}=e;if(!n||!r)return e;const d=t.payload.basicIndex,g=(b=c[d])==null?void 0:b.id,f=index$1.jsonParser((h=i[l])==null?void 0:h.result),v=(N||[]).filter(R=>R.sourceID===g),E=getStepConfig(a,o),{dataSourceStep:S,tool:D}=E,L=getStepConfig(a,S);let m=[];return S&&D&&(m=(U=f[`step_${S}`])==null?void 0:U.result,(m==null?void 0:m.length)>0?(r==null||r.setBasicInfo(L.tool,m[d]),r==null||r.launchOperation()):(r==null||r.setBasicInfo(L.tool),r==null||r.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),n==null||n.setResult(v),n==null||n.history.initRecord(v,!0),__spreadProps(__spreadValues({},e),{basicIndex:d})}case Actions.ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED:{const{triggerEventAfterIndexChanged:n}=t.payload;return __spreadProps(__spreadValues({},e),{triggerEventAfterIndexChanged:!!n})}case Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA:{const{imgList:n,step:o,toolInstance:i,annotationEngine:l,stepList:a}=e;if(!i)return __spreadProps(__spreadValues({},e),{imgIndex:t.payload.nextIndex});const r=StepUtils.getCurrentStepInfo(o,a),{nextIndex:N,imgNode:c,nextBasicIndex:d,imgError:g}=t.payload,f=d!=null?d:0,v=index$1.jsonParser((x=n[N])==null?void 0:x.result),E=v[`step_${r.step}`],S=!E,D={rotate:(B=v.rotate)!=null?B:0,valid:(w=v.valid)!=null?w:!0};c&&g!==!0?l==null||l.setImgNode(c,D):i==null||i.setValid(D.valid);const L=getStepConfig(a,r.step),{dataSourceStep:m,tool:R}=L,z=getStepConfig(a,m),K=m&&R,y=(F=(P=v[`step_${m}`])==null?void 0:P.result)!=null?F:[],j=AnnotationDataUtils.getInitialResultList(E==null?void 0:E.result,i,L,y,S);if(l==null||l.launchOperation(),K&&((y==null?void 0:y.length)>0?l==null||l.setBasicInfo(z.tool,y[f]):(l==null||l.setBasicInfo(z.tool),l==null||l.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),r.tool!=="check"){const $=(G=(q=y[f])==null?void 0:q.id)!=null?G:"",W=K?j.filter(X=>lbAnnotation.CommonToolUtils.isSameSourceID(X.sourceID,$)):j;i==null||i.history.initRecord(j,!0),i==null||i.setResult(W)}return __spreadProps(__spreadValues({},e),{imgIndex:N,basicIndex:f,basicResultList:y,resultList:j})}case Actions.ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG:return __spreadProps(__spreadValues({},e),{config:(V=t.payload.config)!=null?V:"{}"});case Actions.ANNOTATION_ACTIONS.SET_TASK_STEP_LIST:{const{stepList:n}=t.payload;return __spreadProps(__spreadValues({},e),{stepList:n})}case Actions.ANNOTATION_ACTIONS.SET_TASK_CONFIG:{const{stepList:n,step:o}=t.payload;return __spreadProps(__spreadValues({},e),{stepList:n,step:o})}case Actions.ANNOTATION_ACTIONS.INIT_TOOL:{const{imgNode:n}=e,o=updateToolInstance(e,n);if(o){const{toolInstance:i,annotationEngine:l}=o;return __spreadProps(__spreadValues({},e),{toolInstance:i,annotationEngine:l})}return __spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.SET_TOOL:{const n=(M=t.payload)==null?void 0:M.instance;return n?__spreadProps(__spreadValues({},e),{toolInstance:n}):__spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT:return __spreadProps(__spreadValues({},e),{onSubmit:t.payload.onSubmit});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_SAVE:return __spreadProps(__spreadValues({},e),{onSave:t.payload.onSave});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE:return __spreadProps(__spreadValues({},e),{onPageChange:t.payload.onPageChange});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE:return __spreadProps(__spreadValues({},e),{onStepChange:t.payload.onStepChange});case Actions.ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA:return __spreadProps(__spreadValues({},e),{getFileData:t.payload.getFileData});case Actions.ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE:return __spreadProps(__spreadValues({},e),{pageSize:t.payload.pageSize});case Actions.ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST:return __spreadProps(__spreadValues({},e),{loadFileList:t.payload.loadFileList});case Actions.ANNOTATION_ACTIONS.UPDATE_BEFORE_ROTATE:return __spreadProps(__spreadValues({},e),{beforeRotate:t.payload.beforeRotate});case Actions.ANNOTATION_ACTIONS.SKIP_BEFORE_PAGE_TURNING:return __spreadProps(__spreadValues({},e),{skipBeforePageTurning:t.payload.skipBeforePageTurning});case Actions.ANNOTATION_ACTIONS.SET_FILE_DATA:{const{fileData:n,index:o}=t.payload,{imgList:i}=e,l=[...i];return l[o]=__spreadValues(__spreadValues({},l[o]),n),__spreadProps(__spreadValues({},e),{imgList:l})}case Actions.ANNOTATION_ACTIONS.UPDATE_ROTATE:{const{toolInstance:n,beforeRotate:o}=e;return o&&o()===!1||n==null||n.updateRotate(),e}case Actions.ANNOTATION_ACTIONS.UPDATE_ANNOTATION_VALID:{const{toolInstance:n}=e,o=(k=n==null?void 0:n.valid)!=null?k:!0;return antd.Modal.destroyAll(),antd.Modal.confirm({content:lbUtils.i18n.t(o?"updateValidFromValidToInValid":"updateValidFromInValidToValid"),onOk:()=>{n==null||n.setValid(!o)},okText:lbUtils.i18n.t("Confirm"),cancelText:lbUtils.i18n.t("Cancel")}),e}case Actions.ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:o,imgList:i,step:l}=e;if(!n)return e;if(o===0||o>=i.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),e;const a=i[o-1].result;if(!a)return e;const r=AnnotationDataUtils.copyResultChange(a,l,(H=i[o].result)!=null?H:"");i[o]=__spreadProps(__spreadValues({},i[o]),{result:r});const c=index$1.jsonParser(r)[`step_${l}`],d=(c==null?void 0:c.result)||[];return n==null||n.setResult(d),n==null||n.history.pushHistory(d),__spreadProps(__spreadValues({},e),{imgList:[...i]})}case Actions.ANNOTATION_ACTIONS.SET_STEP:{const{stepList:n,annotationEngine:o}=e,{toStep:i}=t.payload;if(!o)return e;const l=getStepConfig(n,i);return o==null||o.setToolName(l.tool,l.config),__spreadProps(__spreadValues({},e),{step:i,toolInstance:o==null?void 0:o.toolInstance})}case Actions.ANNOTATION_ACTIONS.SET_LOADING:{const{loading:n}=t.payload;return __spreadProps(__spreadValues({},e),{loading:!!n})}case Actions.ANNOTATION_ACTIONS.SET_POINT_CLOUD_LOADING:{const{pointCloudLoading:n}=t.payload;return __spreadProps(__spreadValues({},e),{pointCloudLoading:!!n})}case Actions.ANNOTATION_ACTIONS.SET_CHECK_MODE:{const{checkMode:n}=t.payload;return __spreadProps(__spreadValues({},e),{checkMode:!!n})}case Actions.ANNOTATION_ACTIONS.BATCH_UPDATE_TRACK_ID:{const{id:n,newID:o,rangeIndex:i,imgList:l}=t.payload,{imgIndex:a,onSubmit:r}=e,N=[],c=l.map((d,g)=>{if(lbAnnotation.MathUtils.isInRange(g,i)){const f=__spreadProps(__spreadValues({},d),{result:lbUtils.PointCloudUtils.batchUpdateTrackID({id:n,newID:o,result:d.result})});return N.push({imgIndex:g,newInfo:f}),f}return d});return r&&r([c[a]],index.ESubmitType.BatchUpdateTrackID,a,c,{updateImgList:N}),__spreadProps(__spreadValues({},e),{imgList:c})}case Actions.ANNOTATION_ACTIONS.BATCH_UPDATE_RESULT_BY_TRACK_ID:{const{id:n,newData:o,rangeIndex:i}=t.payload,{imgList:l,imgIndex:a,onSubmit:r}=e,N=[],c=l.map((d,g)=>{if(lbAnnotation.MathUtils.isInRange(g,i)){const f=__spreadProps(__spreadValues({},d),{result:lbUtils.PointCloudUtils.batchUpdateResultByTrackID({id:n,newData:o,result:d.result})});return N.push({imgIndex:g,newInfo:f}),f}return d});return r&&r([c[a]],index.ESubmitType.BatchUpdateTrackID,a,c,{updateImgList:N}),__spreadProps(__spreadValues({},e),{imgList:c})}default:return e}};exports.LoadFileAndFileData=LoadFileAndFileData,exports.annotationReducer=annotationReducer,exports.composeResultByToolInstance=composeResultByToolInstance,exports.getStepConfig=getStepConfig,exports.getTotalPage=getTotalPage;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$2=require("../../components/customResizeHook/index.js"),index=require("../../constant/index.js"),styleString=require("../../constant/styleString.js"),Actions=require("../Actions.js"),index$1=require("../../utils/index.js"),AnnotationDataUtils=require("../../utils/AnnotationDataUtils.js"),ConfigUtils=require("../../utils/ConfigUtils.js"),data=require("../../utils/data.js"),StepUtils=require("../../utils/StepUtils.js"),ToolUtils=require("../../utils/ToolUtils.js"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),antd=require("antd"),es=require("antd/es"),_=require("lodash"),actionCreators=require("./actionCreators.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,s)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,__spreadValues=(e,t)=>{for(var s in t||(t={}))__hasOwnProp.call(t,s)&&__defNormalProp(e,s,t[s]);if(__getOwnPropSymbols)for(var s of __getOwnPropSymbols(t))__propIsEnum.call(t,s)&&__defNormalProp(e,s,t[s]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__async=(e,t,s)=>new Promise((I,u)=>{var A=T=>{try{O(s.next(T))}catch(C){u(C)}},p=T=>{try{O(s.throw(T))}catch(C){u(C)}},O=T=>T.done?I(T.value):Promise.resolve(T.value).then(A,p);O((s=s.apply(e,t)).next())});const getStepConfig=(e,t)=>e.find(s=>s.step===t),initialState={annotationEngine:null,toolInstance:null,imgList:[],config:"{}",imgIndex:-1,basicIndex:0,imgPageSize:1,step:1,stepList:[],imgNode:new Image,basicResultList:[],resultList:[],stepProgress:0,loading:!1,triggerEventAfterIndexChanged:!1,pointCloudLoading:!1,checkMode:!1},getTotalPage=e=>{const{imgList:t,imgPageSize:s}=e;return Math.ceil(t.length/s)},calcStepProgress=(e,t)=>e.reduce((s,I)=>{if(I){const u=I.result;if(index$1.jsonParser(u)[`step_${t}`])return s+1}return s},0)/e.length,updateToolInstance=(e,t)=>{const{step:s,stepList:I}=e,u=StepUtils.getCurrentStepInfo(s,I),A=ConfigUtils.ConfigUtils.jsonParser(u.config);if(ToolUtils.isVideoTool(u==null?void 0:u.tool)||ToolUtils.isPointCloudTool(u==null?void 0:u.tool))return;const p=document.getElementById("toolContainer");if(!p)throw"Not exist dom named id-toolContainer";const O=index$2.getFormatSize({width:window.innerWidth,height:window.innerHeight}),T=new lbAnnotation.AnnotationEngine({container:p,toolName:u.tool,size:O,imgNode:t,config:A,style:JSON.parse(styleString)});return{toolInstance:T==null?void 0:T.toolInstance,annotationEngine:T}},LoadFileAndFileData=(e,t)=>(s,I)=>__async(void 0,null,function*(){const{stepList:u,step:A}=I().annotation,p=StepUtils.currentToolIsVideo(A,u),O=StepUtils.currentToolIsPointCloud(A,u);if(actionCreators.SetAnnotationLoading(s,!0),yield s(TryGetFileDataByAPI(e)),p||O){s(AfterVideoLoaded(e));return}s(AfterImageLoaded(e,t))}),TryGetFileDataByAPI=e=>(t,s)=>__async(void 0,null,function*(){const{getFileData:I,imgList:u}=s().annotation;if(I){const A=yield I(u[e],e);t({type:Actions.ANNOTATION_ACTIONS.SET_FILE_DATA,payload:{fileData:A,index:e}})}}),AfterVideoLoaded=e=>t=>{actionCreators.SetAnnotationLoading(t,!1),t({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{nextIndex:e}})},AfterImageLoaded=(e,t)=>(s,I)=>{var u;const{toolInstance:A,imgList:p}=I().annotation,O=(u=p==null?void 0:p[e])==null?void 0:u.url;lbAnnotation.ImgUtils.load(O).then(T=>{actionCreators.SetAnnotationLoading(s,!1),s({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{imgNode:T,nextIndex:e,nextBasicIndex:t}})}).catch(()=>{actionCreators.SetAnnotationLoading(s,!1),A==null||A.setErrorImg(),s({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{nextIndex:e,nextBasicIndex:t}})})},composeResultByToolInstance=({toolInstance:e,imgList:t,imgIndex:s,stepList:I,step:u=1})=>{var A,p,O,T;const C=((A=t[s])==null?void 0:A.result)||"",[b,h,U]=(p=e==null?void 0:e.exportData())!=null?p:[],x=(T=(O=e==null?void 0:e.exportCustomData)==null?void 0:O.call(e))!=null?T:{},B=data.composeResultWithBasicImgInfo(C,h),w=data.composeResult(B,{step:u,stepList:I},{rect:b},x);return t.map((P,F)=>F===s?__spreadValues(__spreadProps(__spreadValues({},P),{result:w}),U):__spreadValues({},P))},annotationReducer=(e=__spreadValues({},initialState),t)=>{var s,I,u,A,p,O,T,C,b,h,U,x,B,w,P,F,q,G,V,M,k,H;switch(t.type){case Actions.ANNOTATION_ACTIONS.INIT_ALL_STATE:return __spreadValues(__spreadValues({},e),initialState);case Actions.ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE:return __spreadProps(__spreadValues({},e),{toolInstance:t.payload.toolInstance});case Actions.ANNOTATION_ACTIONS.UPDATE_IMG_LIST:return __spreadProps(__spreadValues({},e),{imgList:t.payload.imgList});case Actions.ANNOTATION_ACTIONS.CALC_STEP_PROGRESS:{const{imgList:n,step:o}=e,i=calcStepProgress(n,o);return __spreadProps(__spreadValues({},e),{stepProgress:i})}case Actions.ANNOTATION_ACTIONS.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:o,step:i,stepList:l,toolInstance:a,onSubmit:r,resultList:N}=e;if(!a||!n[o])return e;const c=((s=n[o])==null?void 0:s.result)||"",[,d,g]=(I=a==null?void 0:a.exportData())!=null?I:[],f=(A=(u=a==null?void 0:a.exportCustomData)==null?void 0:u.call(a))!=null?A:{},v=data.composeResultWithBasicImgInfo(c,d),E=data.composeResult(v,{step:i,stepList:l},{rect:N},f),S=e.imgList.map((L,m)=>{if(m===o){const R=AnnotationDataUtils.dataCorrection(E,c,i,l);return __spreadValues(__spreadProps(__spreadValues({},L),{result:R}),g)}return L});if(((p=t.payload)==null?void 0:p.submitType)===index.ESubmitType.SyncImgList)return __spreadProps(__spreadValues({},e),{imgList:S});r&&r([S[o]],(O=t.payload)==null?void 0:O.submitType,o,S);const D=calcStepProgress(S,i);return __spreadProps(__spreadValues({},e),{stepProgress:D,imgList:S})}case Actions.ANNOTATION_ACTIONS.SAVE_RESULT:{const{imgList:n,imgIndex:o,onSave:i}=e;return i==null||i(n[o],o,n),__spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.SUBMIT_RESULT:{const{imgList:n,basicIndex:o,resultList:i,toolInstance:l,basicResultList:a}=e;if(!l)return e;const[r]=(T=l==null?void 0:l.exportData())!=null?T:[];let N=r;if((a==null?void 0:a.length)>0){const c=(C=a[o])==null?void 0:C.id,d=r.map(g=>__spreadProps(__spreadValues({},g),{sourceID:c}));N=___default.default.cloneDeep(i).filter(g=>g.sourceID!==c),N.push(...d)}return __spreadProps(__spreadValues({},e),{resultList:N,imgList:n})}case Actions.ANNOTATION_ACTIONS.SET_BASIC_INDEX:{const{toolInstance:n,step:o,imgList:i,imgIndex:l,stepList:a,annotationEngine:r,resultList:N,basicResultList:c}=e;if(!n||!r)return e;const d=t.payload.basicIndex,g=(b=c[d])==null?void 0:b.id,f=index$1.jsonParser((h=i[l])==null?void 0:h.result),v=(N||[]).filter(R=>R.sourceID===g),E=getStepConfig(a,o),{dataSourceStep:S,tool:D}=E,L=getStepConfig(a,S);let m=[];return S&&D&&(m=(U=f[`step_${S}`])==null?void 0:U.result,(m==null?void 0:m.length)>0?(r==null||r.setBasicInfo(L.tool,m[d]),r==null||r.launchOperation()):(r==null||r.setBasicInfo(L.tool),r==null||r.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),n==null||n.setResult(v),n==null||n.history.initRecord(v,!0),__spreadProps(__spreadValues({},e),{basicIndex:d})}case Actions.ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED:{const{triggerEventAfterIndexChanged:n}=t.payload;return __spreadProps(__spreadValues({},e),{triggerEventAfterIndexChanged:!!n})}case Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA:{const{imgList:n,step:o,toolInstance:i,annotationEngine:l,stepList:a}=e;if(!i)return __spreadProps(__spreadValues({},e),{imgIndex:t.payload.nextIndex});const r=StepUtils.getCurrentStepInfo(o,a),{nextIndex:N,imgNode:c,nextBasicIndex:d,imgError:g}=t.payload,f=d!=null?d:0,v=index$1.jsonParser((x=n[N])==null?void 0:x.result),E=v[`step_${r.step}`],S=!E,D={rotate:(B=v.rotate)!=null?B:0,valid:(w=v.valid)!=null?w:!0};c&&g!==!0?l==null||l.setImgNode(c,D):i==null||i.setValid(D.valid);const L=getStepConfig(a,r.step),{dataSourceStep:m,tool:R}=L,z=getStepConfig(a,m),K=m&&R,y=(F=(P=v[`step_${m}`])==null?void 0:P.result)!=null?F:[],j=AnnotationDataUtils.getInitialResultList(E==null?void 0:E.result,i,L,y,S);if(l==null||l.launchOperation(),K&&((y==null?void 0:y.length)>0?l==null||l.setBasicInfo(z.tool,y[f]):(l==null||l.setBasicInfo(z.tool),l==null||l.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),r.tool!=="check"){const $=(G=(q=y[f])==null?void 0:q.id)!=null?G:"",W=K?j.filter(X=>lbAnnotation.CommonToolUtils.isSameSourceID(X.sourceID,$)):j;i==null||i.history.initRecord(j,!0),i==null||i.setResult(W)}return __spreadProps(__spreadValues({},e),{imgIndex:N,basicIndex:f,basicResultList:y,resultList:j})}case Actions.ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG:return __spreadProps(__spreadValues({},e),{config:(V=t.payload.config)!=null?V:"{}"});case Actions.ANNOTATION_ACTIONS.SET_TASK_STEP_LIST:{const{stepList:n}=t.payload;return __spreadProps(__spreadValues({},e),{stepList:n})}case Actions.ANNOTATION_ACTIONS.SET_TASK_CONFIG:{const{stepList:n,step:o}=t.payload;return __spreadProps(__spreadValues({},e),{stepList:n,step:o})}case Actions.ANNOTATION_ACTIONS.INIT_TOOL:{const{imgNode:n}=e,o=updateToolInstance(e,n);if(o){const{toolInstance:i,annotationEngine:l}=o;return __spreadProps(__spreadValues({},e),{toolInstance:i,annotationEngine:l})}return __spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.SET_TOOL:{const n=(M=t.payload)==null?void 0:M.instance;return n?__spreadProps(__spreadValues({},e),{toolInstance:n}):__spreadValues({},e)}case Actions.ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT:return __spreadProps(__spreadValues({},e),{onSubmit:t.payload.onSubmit});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_SAVE:return __spreadProps(__spreadValues({},e),{onSave:t.payload.onSave});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE:return __spreadProps(__spreadValues({},e),{onPageChange:t.payload.onPageChange});case Actions.ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE:return __spreadProps(__spreadValues({},e),{onStepChange:t.payload.onStepChange});case Actions.ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA:return __spreadProps(__spreadValues({},e),{getFileData:t.payload.getFileData});case Actions.ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE:return __spreadProps(__spreadValues({},e),{pageSize:t.payload.pageSize});case Actions.ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST:return __spreadProps(__spreadValues({},e),{loadFileList:t.payload.loadFileList});case Actions.ANNOTATION_ACTIONS.UPDATE_BEFORE_ROTATE:return __spreadProps(__spreadValues({},e),{beforeRotate:t.payload.beforeRotate});case Actions.ANNOTATION_ACTIONS.SKIP_BEFORE_PAGE_TURNING:return __spreadProps(__spreadValues({},e),{skipBeforePageTurning:t.payload.skipBeforePageTurning});case Actions.ANNOTATION_ACTIONS.SET_FILE_DATA:{const{fileData:n,index:o}=t.payload,{imgList:i}=e,l=[...i];return l[o]=__spreadValues(__spreadValues({},l[o]),n),__spreadProps(__spreadValues({},e),{imgList:l})}case Actions.ANNOTATION_ACTIONS.UPDATE_ROTATE:{const{toolInstance:n,beforeRotate:o}=e;return o&&o()===!1||n==null||n.updateRotate(),e}case Actions.ANNOTATION_ACTIONS.UPDATE_ANNOTATION_VALID:{const{toolInstance:n}=e,o=(k=n==null?void 0:n.valid)!=null?k:!0;return antd.Modal.destroyAll(),antd.Modal.confirm({content:lbUtils.i18n.t(o?"updateValidFromValidToInValid":"updateValidFromInValidToValid"),onOk:()=>{n==null||n.setValid(!o)},okText:lbUtils.i18n.t("Confirm"),cancelText:lbUtils.i18n.t("Cancel")}),e}case Actions.ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:o,imgList:i,step:l}=e;if(!n)return e;if(o===0||o>=i.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),e;const a=i[o-1].result;if(!a)return e;const r=AnnotationDataUtils.copyResultChange(a,l,(H=i[o].result)!=null?H:"");i[o]=__spreadProps(__spreadValues({},i[o]),{result:r});const c=index$1.jsonParser(r)[`step_${l}`],d=(c==null?void 0:c.result)||[];return n==null||n.setResult(d),n==null||n.history.pushHistory(d),n==null||n.asyncData(i[o]),__spreadProps(__spreadValues({},e),{imgList:[...i]})}case Actions.ANNOTATION_ACTIONS.SET_STEP:{const{stepList:n,annotationEngine:o}=e,{toStep:i}=t.payload;if(!o)return e;const l=getStepConfig(n,i);return o==null||o.setToolName(l.tool,l.config),__spreadProps(__spreadValues({},e),{step:i,toolInstance:o==null?void 0:o.toolInstance})}case Actions.ANNOTATION_ACTIONS.SET_LOADING:{const{loading:n}=t.payload;return __spreadProps(__spreadValues({},e),{loading:!!n})}case Actions.ANNOTATION_ACTIONS.SET_POINT_CLOUD_LOADING:{const{pointCloudLoading:n}=t.payload;return __spreadProps(__spreadValues({},e),{pointCloudLoading:!!n})}case Actions.ANNOTATION_ACTIONS.SET_CHECK_MODE:{const{checkMode:n}=t.payload;return __spreadProps(__spreadValues({},e),{checkMode:!!n})}case Actions.ANNOTATION_ACTIONS.BATCH_UPDATE_TRACK_ID:{const{id:n,newID:o,rangeIndex:i,imgList:l}=t.payload,{imgIndex:a,onSubmit:r}=e,N=[],c=l.map((d,g)=>{if(lbAnnotation.MathUtils.isInRange(g,i)){const f=__spreadProps(__spreadValues({},d),{result:lbUtils.PointCloudUtils.batchUpdateTrackID({id:n,newID:o,result:d.result})});return N.push({imgIndex:g,newInfo:f}),f}return d});return r&&r([c[a]],index.ESubmitType.BatchUpdateTrackID,a,c,{updateImgList:N}),__spreadProps(__spreadValues({},e),{imgList:c})}case Actions.ANNOTATION_ACTIONS.BATCH_UPDATE_RESULT_BY_TRACK_ID:{const{id:n,newData:o,rangeIndex:i}=t.payload,{imgList:l,imgIndex:a,onSubmit:r}=e,N=[],c=l.map((d,g)=>{if(lbAnnotation.MathUtils.isInRange(g,i)){const f=__spreadProps(__spreadValues({},d),{result:lbUtils.PointCloudUtils.batchUpdateResultByTrackID({id:n,newData:o,result:d.result})});return N.push({imgIndex:g,newInfo:f}),f}return d});return r&&r([c[a]],index.ESubmitType.BatchUpdateTrackID,a,c,{updateImgList:N}),__spreadProps(__spreadValues({},e),{imgList:c})}default:return e}};exports.LoadFileAndFileData=LoadFileAndFileData,exports.annotationReducer=annotationReducer,exports.composeResultByToolInstance=composeResultByToolInstance,exports.getStepConfig=getStepConfig,exports.getTotalPage=getTotalPage;
@@ -51,5 +51,5 @@ export declare const usePointCloudViews: () => {
51
51
  backViewUpdateBox: (newPolygon: any, originPolygon: any) => void;
52
52
  pointCloudBoxListUpdated: (newBoxes: IPointCloudBox[]) => void;
53
53
  initPointCloud3d: (size: ISize) => void;
54
- updatePointCloudData: () => Promise<void>;
54
+ updatePointCloudData: (newData?: any) => Promise<void>;
55
55
  };
@@ -1 +1 @@
1
- import{PointCloudContext as $}from"./PointCloudContext.js";import{useRotate as J}from"./hooks/useRotate.js";import{useBoxes as Q}from"./hooks/useBoxes.js";import{useSingleBox as X}from"./hooks/useSingleBox.js";import{useContext as Z,useEffect as d}from"react";import{CommonToolUtils as ee,AttributeUtils as te,EToolName as m,cTool as oe}from"@labelbee/lb-annotation";import{message as v}from"antd";import{connect as re}from"react-redux";import{a2MapStateToProps as se}from"../../store/annotation/map.js";import{useCustomToolInstance as ne}from"../../hooks/annotation.js";import{useStatus as ae}from"./hooks/useStatus.js";import{jsonParser as ie}from"../../utils/index.js";import{usePointCloudViews as ue}from"./hooks/usePointCloudViews.js";import{LabelBeeContext as le}from"../../store/ctx.js";import{useHistory as ce}from"./hooks/useHistory.js";import{useAttribute as de}from"./hooks/useAttribute.js";import{useConfig as pe}from"./hooks/useConfig.js";import{usePolygon as fe}from"./hooks/usePolygon.js";import{useTranslation as me}from"react-i18next";var be=Object.defineProperty,Pe=Object.defineProperties,ye=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,O=(i,r,n)=>r in i?be(i,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[r]=n,V=(i,r)=>{for(var n in r||(r={}))ve.call(r,n)&&O(i,n,r[n]);if(S)for(var n of S(r))we.call(r,n)&&O(i,n,r[n]);return i},I=(i,r)=>Pe(i,ye(r));const{EPolygonPattern:Ce}=oe,xe=({currentData:i,config:r,checkMode:n,configString:A,imgIndex:w})=>{const o=Z($),{changeSelectedBoxValid:j,selectNextBox:L,selectPrevBox:D,updateSelectedBox:C,deleteSelectedPointCloudBoxAndPolygon:E}=X(),{clearAllResult:b,updatePointCloudPattern:R}=ae(),T=ie(i.result),{copySelectedBoxes:K,pasteSelectedBoxes:N,copiedBoxes:H}=Q({config:r}),{toolInstanceRef:a}=ne({basicInfo:T}),{updateRotate:P}=J({currentData:i}),{updatePointCloudData:x,topViewSelectedChanged:U}=ue(),{redo:g,undo:k,pushHistoryWithList:z,pushHistoryUnderUpdatePolygon:F}=ce(),{syncThreeViewsAttribute:h}=de(),{syncAllViewsConfig:q,reRenderTopViewRange:G}=pe(),{selectedPolygon:_}=fe(),{t:y}=me(),f=e=>{var t;const{topViewInstance:s}=o;!s||(t=s.pointCloud2dOperation)==null||t.updateSelectedPolygonsPoints(e)},M=(e,t)=>{var s;const{topViewInstance:u,mainViewInstance:l}=o;if(!u)return;const{pointCloud2dOperation:c}=u;switch(e){case"q":{P(2);break}case"e":P(-2);break;case"g":P(180);break;case"u":{const p=c.pattern===Ce.Normal?m.Rect:m.Polygon;R(p);const Y={[m.Polygon]:y("PolygonPattern"),[m.Rect]:y("RectPattern")};v.success(y("ChangePatternMsg",{pattern:Y[p]})),c.clearActiveStatus(),c.clearDrawingStatus()}break;case"+":l==null||l.updatePointSize(!0);break;case"-":l==null||l.updatePointSize(!1);break;case"v":o.setPointCloudValid(!o.valid);break;case"tab":if(t.shiftKey){D();break}L(),t.preventDefault();break;case"f":j();break;case"arrowup":f({y:-1});break;case"arrowdown":f({y:1});break;case"arrowleft":f({x:-1});break;case"arrowright":f({x:1});break;case"delete":E();break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const p=te.getAttributeByKeycode(t.keyCode,r.attributeList);p!==void 0&&a.current.setDefaultAttribute(p)}return}}},W=(e,t)=>{switch(e){case"c":K();break;case"v":N();break;case"a":t.preventDefault(),o.selectedAllBoxes();break;case"z":{t.shiftKey?g():k();break}}},B=e=>{if(!ee.hotkeyFilter(e)||n===!0)return;const t=e.key.toLocaleLowerCase();if(e.ctrlKey){W(t,e);return}M(t,e)};return d(()=>{const{topViewInstance:e}=o;if(!!e)return window.addEventListener("keydown",B),()=>{window.removeEventListener("keydown",B)}},[o,H,r,o.pointCloudBoxList,o.polygonList]),d(()=>{q(r)},[A]),d(()=>{(r==null?void 0:r.radius)&&G(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),d(()=>{x==null||x()},[w,o.mainViewInstance]),d(()=>{o.setHideAttributes([])},[w]),d(()=>{a.current.exportData=()=>[o.pointCloudBoxList,{valid:o.valid}],a.current.exportCustomData=()=>{var e;return{resultPolygon:(e=o.polygonList)!=null?e:[]}},a.current.setDefaultAttribute=e=>{h(e);const t=o.selectedPointCloudBox;if(t){t.attribute=e;const s=C(t);o.mainViewInstance&&U(t,s)}_&&F(I(V({},_),{attribute:e}))},a.current.setSubAttribute=(e,t)=>{var s;const u=o.selectedPointCloudBox;if(u){const l=(s=u==null?void 0:u.subAttribute)!=null?s:{};u.subAttribute=I(V({},l),{[e]:t}),C(u)}},a.current.clearResult=()=>{b==null||b()},a.current.redo=()=>{g()},a.current.undo=()=>{k()},a.current.setValid=e=>{a.current.valid=e,setTimeout(()=>{o.setPointCloudValid(e),e===!1&&b()})},a.current.setForbidOperation=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setForbidOperation(e),e===!0&&o.setSelectedIDs(void 0)},a.current.setShowDefaultCursor=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setShowDefaultCursor(e)}},[o.pointCloudBoxList,o.selectedID,o.valid,o.polygonList,o.mainViewInstance]),d(()=>{a.current.history={pushHistory:e=>{z({pointCloudBoxList:e})},initRecord:()=>{}}},[]),d(()=>{var e;const t=(e=o.topViewInstance)==null?void 0:e.pointCloud2dOperation;if(!t||n)return;const s=c=>{h(c)},u=c=>{v.error(c)},l=c=>{v.info(c)};return t.on("syncAttribute",s),t.on("messageError",u),t.on("messageInfo",l),()=>{t.unbind("syncAttribute",s),t.unbind("messageError",u),t.unbind("messageInfo",l)}},[o.topViewInstance]),null};var ge=re(se,null,null,{context:le})(xe);export{ge as default};
1
+ import{PointCloudContext as $}from"./PointCloudContext.js";import{useRotate as J}from"./hooks/useRotate.js";import{useBoxes as Q}from"./hooks/useBoxes.js";import{useSingleBox as X}from"./hooks/useSingleBox.js";import{useContext as Z,useEffect as d}from"react";import{CommonToolUtils as ee,AttributeUtils as te,EToolName as b,cTool as oe}from"@labelbee/lb-annotation";import{message as w}from"antd";import{connect as re}from"react-redux";import{a2MapStateToProps as se}from"../../store/annotation/map.js";import{useCustomToolInstance as ne}from"../../hooks/annotation.js";import{useStatus as ae}from"./hooks/useStatus.js";import{jsonParser as ie}from"../../utils/index.js";import{usePointCloudViews as ue}from"./hooks/usePointCloudViews.js";import{LabelBeeContext as le}from"../../store/ctx.js";import{useHistory as ce}from"./hooks/useHistory.js";import{useAttribute as de}from"./hooks/useAttribute.js";import{useConfig as pe}from"./hooks/useConfig.js";import{usePolygon as me}from"./hooks/usePolygon.js";import{useTranslation as fe}from"react-i18next";var be=Object.defineProperty,ye=Object.defineProperties,Pe=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,O=(i,r,a)=>r in i?be(i,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[r]=a,V=(i,r)=>{for(var a in r||(r={}))ve.call(r,a)&&O(i,a,r[a]);if(S)for(var a of S(r))we.call(r,a)&&O(i,a,r[a]);return i},I=(i,r)=>ye(i,Pe(r));const{EPolygonPattern:Ce}=oe,xe=({currentData:i,config:r,checkMode:a,configString:A,imgIndex:C})=>{const o=Z($),{changeSelectedBoxValid:j,selectNextBox:L,selectPrevBox:D,updateSelectedBox:x,deleteSelectedPointCloudBoxAndPolygon:T}=X(),{clearAllResult:y,updatePointCloudPattern:E}=ae(),R=ie(i.result),{copySelectedBoxes:K,pasteSelectedBoxes:N,copiedBoxes:H}=Q({config:r}),{toolInstanceRef:n}=ne({basicInfo:R}),{updateRotate:P}=J({currentData:i}),{updatePointCloudData:m,topViewSelectedChanged:U}=ue(),{redo:g,undo:k,pushHistoryWithList:z,pushHistoryUnderUpdatePolygon:F}=ce(),{syncThreeViewsAttribute:h}=de(),{syncAllViewsConfig:q,reRenderTopViewRange:G}=pe(),{selectedPolygon:_}=me(),{t:v}=fe(),f=e=>{var t;const{topViewInstance:s}=o;!s||(t=s.pointCloud2dOperation)==null||t.updateSelectedPolygonsPoints(e)},M=(e,t)=>{var s;const{topViewInstance:u,mainViewInstance:l}=o;if(!u)return;const{pointCloud2dOperation:c}=u;switch(e){case"q":{P(2);break}case"e":P(-2);break;case"g":P(180);break;case"u":{const p=c.pattern===Ce.Normal?b.Rect:b.Polygon;E(p);const Y={[b.Polygon]:v("PolygonPattern"),[b.Rect]:v("RectPattern")};w.success(v("ChangePatternMsg",{pattern:Y[p]})),c.clearActiveStatus(),c.clearDrawingStatus()}break;case"+":l==null||l.updatePointSize(!0);break;case"-":l==null||l.updatePointSize(!1);break;case"v":o.setPointCloudValid(!o.valid);break;case"tab":if(t.shiftKey){D();break}L(),t.preventDefault();break;case"f":j();break;case"arrowup":f({y:-1});break;case"arrowdown":f({y:1});break;case"arrowleft":f({x:-1});break;case"arrowright":f({x:1});break;case"delete":T();break;default:{if(((s=r.attributeList)==null?void 0:s.length)>0){const p=te.getAttributeByKeycode(t.keyCode,r.attributeList);p!==void 0&&n.current.setDefaultAttribute(p)}return}}},W=(e,t)=>{switch(e){case"c":K();break;case"v":N();break;case"a":t.preventDefault(),o.selectedAllBoxes();break;case"z":{t.shiftKey?g():k();break}}},B=e=>{if(!ee.hotkeyFilter(e)||a===!0)return;const t=e.key.toLocaleLowerCase();if(e.ctrlKey){W(t,e);return}M(t,e)};return d(()=>{const{topViewInstance:e}=o;if(!!e)return window.addEventListener("keydown",B),()=>{window.removeEventListener("keydown",B)}},[o,H,r,o.pointCloudBoxList,o.polygonList]),d(()=>{q(r)},[A]),d(()=>{(r==null?void 0:r.radius)&&G(r==null?void 0:r.radius)},[r==null?void 0:r.radius]),d(()=>{m==null||m()},[C,o.mainViewInstance]),d(()=>{o.setHideAttributes([])},[C]),d(()=>{n.current.exportData=()=>[o.pointCloudBoxList,{valid:o.valid}],n.current.exportCustomData=()=>{var e;return{resultPolygon:(e=o.polygonList)!=null?e:[]}},n.current.setDefaultAttribute=e=>{h(e);const t=o.selectedPointCloudBox;if(t){t.attribute=e;const s=x(t);o.mainViewInstance&&U(t,s)}_&&F(I(V({},_),{attribute:e}))},n.current.setSubAttribute=(e,t)=>{var s;const u=o.selectedPointCloudBox;if(u){const l=(s=u==null?void 0:u.subAttribute)!=null?s:{};u.subAttribute=I(V({},l),{[e]:t}),x(u)}},n.current.clearResult=()=>{y==null||y()},n.current.redo=()=>{g()},n.current.undo=()=>{k()},n.current.setValid=e=>{n.current.valid=e,setTimeout(()=>{o.setPointCloudValid(e),e===!1&&y()})},n.current.setForbidOperation=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setForbidOperation(e),e===!0&&o.setSelectedIDs(void 0)},n.current.setShowDefaultCursor=e=>{var t,s;(s=(t=o.topViewInstance)==null?void 0:t.pointCloud2dOperation)==null||s.setShowDefaultCursor(e)},n.current.asyncData=e=>{setTimeout(()=>{m==null||m(e)})}},[o.pointCloudBoxList,o.selectedID,o.valid,o.polygonList,o.mainViewInstance]),d(()=>{n.current.history={pushHistory:e=>{z({pointCloudBoxList:e})},initRecord:()=>{}}},[]),d(()=>{var e;const t=(e=o.topViewInstance)==null?void 0:e.pointCloud2dOperation;if(!t||a)return;const s=c=>{h(c)},u=c=>{w.error(c)},l=c=>{w.info(c)};return t.on("syncAttribute",s),t.on("messageError",u),t.on("messageInfo",l),()=>{t.unbind("syncAttribute",s),t.unbind("messageError",u),t.unbind("messageInfo",l)}},[o.topViewInstance]),null};var ge=re(se,null,null,{context:le})(xe);export{ge as default};
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloudListener.js","sources":["../../../src/components/pointCloudView/PointCloudListener.tsx"],"sourcesContent":["import { PointCloudContext } from './PointCloudContext';\nimport { useRotate } from './hooks/useRotate';\nimport { useBoxes } from './hooks/useBoxes';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport React, { useContext, useEffect } from 'react';\nimport { cTool, AttributeUtils, CommonToolUtils, EToolName } from '@labelbee/lb-annotation';\nimport { message } from 'antd';\nimport { connect } from 'react-redux';\nimport { a2MapStateToProps, IA2MapStateProps } from '@/store/annotation/map';\nimport { useCustomToolInstance } from '@/hooks/annotation';\nimport { useStatus } from './hooks/useStatus';\nimport { jsonParser } from '@/utils';\nimport { usePointCloudViews } from './hooks/usePointCloudViews';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { useHistory } from './hooks/useHistory';\nimport { useAttribute } from './hooks/useAttribute';\nimport { ICoordinate } from '@labelbee/lb-utils/dist/types/types/common';\nimport { useConfig } from './hooks/useConfig';\nimport { usePolygon } from './hooks/usePolygon';\nimport { useTranslation } from 'react-i18next';\n\nconst { EPolygonPattern } = cTool;\n\ninterface IProps extends IA2MapStateProps {\n checkMode?: boolean;\n}\n\nconst PointCloudListener: React.FC<IProps> = ({\n currentData,\n config,\n checkMode,\n configString,\n imgIndex,\n}) => {\n const ptCtx = useContext(PointCloudContext);\n const {\n changeSelectedBoxValid,\n selectNextBox,\n selectPrevBox,\n updateSelectedBox,\n deleteSelectedPointCloudBoxAndPolygon,\n } = useSingleBox();\n const { clearAllResult, updatePointCloudPattern } = useStatus();\n const basicInfo = jsonParser(currentData.result);\n const { copySelectedBoxes, pasteSelectedBoxes, copiedBoxes } = useBoxes({ config });\n const { toolInstanceRef } = useCustomToolInstance({ basicInfo });\n const { updateRotate } = useRotate({ currentData });\n const { updatePointCloudData, topViewSelectedChanged } = usePointCloudViews();\n const { redo, undo, pushHistoryWithList, pushHistoryUnderUpdatePolygon } = useHistory();\n const { syncThreeViewsAttribute } = useAttribute();\n const { syncAllViewsConfig, reRenderTopViewRange } = useConfig();\n const { selectedPolygon } = usePolygon();\n const { t } = useTranslation();\n\n const updatePolygonOffset = (offset: Partial<ICoordinate>) => {\n const { topViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n topViewInstance.pointCloud2dOperation?.updateSelectedPolygonsPoints(offset);\n };\n\n const keydownEvents = (lowerCaseKey: string, e: KeyboardEvent) => {\n const { topViewInstance, mainViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n\n const { pointCloud2dOperation: TopPointCloudPolygonOperation } = topViewInstance;\n\n switch (lowerCaseKey) {\n case 'q': {\n // Q - anticlockwise\n updateRotate(2);\n break;\n }\n\n case 'e':\n // E - closewise\n updateRotate(-2);\n\n break;\n\n case 'g':\n // G , overturn 180\n updateRotate(180);\n\n break;\n\n case 'u':\n {\n // U , change TopOpereation Pattern\n const newToolName =\n TopPointCloudPolygonOperation.pattern === EPolygonPattern.Normal\n ? EToolName.Rect\n : EToolName.Polygon;\n updatePointCloudPattern(newToolName);\n\n // Tips\n const POLYGON_PATTERN = {\n [EToolName.Polygon]: t('PolygonPattern'),\n [EToolName.Rect]: t('RectPattern'),\n };\n message.success(t('ChangePatternMsg', { pattern: POLYGON_PATTERN[newToolName] }));\n\n // Clear Status\n TopPointCloudPolygonOperation.clearActiveStatus();\n TopPointCloudPolygonOperation.clearDrawingStatus();\n }\n\n break;\n\n // +: Increase points size\n case '+':\n mainViewInstance?.updatePointSize(true);\n break;\n\n // -: Reduce points size\n case '-':\n mainViewInstance?.updatePointSize(false);\n break;\n\n case 'v':\n ptCtx.setPointCloudValid(!ptCtx.valid);\n break;\n\n case 'tab':\n if (e.shiftKey) {\n selectPrevBox();\n break;\n }\n selectNextBox();\n e.preventDefault();\n break;\n\n case 'f':\n changeSelectedBoxValid();\n break;\n\n case 'arrowup':\n updatePolygonOffset({ y: -1 });\n break;\n\n case 'arrowdown':\n updatePolygonOffset({ y: 1 });\n break;\n\n case 'arrowleft':\n updatePolygonOffset({ x: -1 });\n break;\n\n case 'arrowright':\n updatePolygonOffset({ x: 1 });\n break;\n\n case 'delete':\n deleteSelectedPointCloudBoxAndPolygon();\n break;\n\n default: {\n if (config.attributeList?.length > 0) {\n const keyCode2Attribute = AttributeUtils.getAttributeByKeycode(\n e.keyCode,\n config.attributeList,\n );\n\n if (keyCode2Attribute !== undefined) {\n toolInstanceRef.current.setDefaultAttribute(keyCode2Attribute);\n }\n }\n return;\n }\n }\n };\n\n const ctrlKeydownEvents = (lowerCaseKey: string, e: KeyboardEvent) => {\n switch (lowerCaseKey) {\n case 'c':\n copySelectedBoxes();\n break;\n case 'v':\n pasteSelectedBoxes();\n break;\n case 'a':\n e.preventDefault();\n ptCtx.selectedAllBoxes();\n break;\n case 'z': {\n if (e.shiftKey) {\n redo();\n } else {\n undo();\n }\n break;\n }\n\n default:\n break;\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (!CommonToolUtils.hotkeyFilter(e) || checkMode === true) {\n return;\n }\n\n const lowerCaseKey = e.key.toLocaleLowerCase();\n\n if (e.ctrlKey) {\n ctrlKeydownEvents(lowerCaseKey, e);\n return;\n }\n\n keydownEvents(lowerCaseKey, e);\n };\n\n useEffect(() => {\n const { topViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n\n window.addEventListener('keydown', onKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [ptCtx, copiedBoxes, config, ptCtx.pointCloudBoxList, ptCtx.polygonList]);\n\n useEffect(() => {\n syncAllViewsConfig(config);\n }, [configString]);\n\n useEffect(() => {\n if (config?.radius) {\n reRenderTopViewRange(config?.radius);\n }\n }, [config?.radius]);\n\n // Page switch data initialization\n useEffect(() => {\n updatePointCloudData?.();\n }, [imgIndex, ptCtx.mainViewInstance]);\n\n useEffect(() => {\n ptCtx.setHideAttributes([]);\n }, [imgIndex]);\n\n // Update the listener of toolInstance.\n useEffect(() => {\n toolInstanceRef.current.exportData = () => {\n return [ptCtx.pointCloudBoxList, { valid: ptCtx.valid }];\n };\n\n toolInstanceRef.current.exportCustomData = () => {\n return {\n resultPolygon: ptCtx.polygonList ?? [],\n };\n };\n\n toolInstanceRef.current.setDefaultAttribute = (newAttribute: string) => {\n syncThreeViewsAttribute(newAttribute);\n const selectBox = ptCtx.selectedPointCloudBox;\n if (selectBox) {\n selectBox.attribute = newAttribute;\n\n const newPointCloudList = updateSelectedBox(selectBox);\n\n if (ptCtx.mainViewInstance) {\n // TODO: Poor performance.\n topViewSelectedChanged(selectBox, newPointCloudList);\n }\n }\n if (selectedPolygon) {\n pushHistoryUnderUpdatePolygon({ ...selectedPolygon, attribute: newAttribute });\n }\n };\n\n toolInstanceRef.current.setSubAttribute = (key: string, value: string) => {\n const selectBox = ptCtx.selectedPointCloudBox;\n if (selectBox) {\n const originSubAttribute = selectBox?.subAttribute ?? {};\n\n selectBox.subAttribute = {\n ...originSubAttribute,\n [key]: value,\n };\n\n updateSelectedBox(selectBox);\n }\n };\n toolInstanceRef.current.clearResult = () => {\n clearAllResult?.();\n };\n\n toolInstanceRef.current.redo = () => {\n redo();\n };\n\n toolInstanceRef.current.undo = () => {\n undo();\n };\n\n toolInstanceRef.current.setValid = (valid: boolean) => {\n toolInstanceRef.current.valid = valid;\n\n // Avoid triggering SetState operations in the reducer phase\n setTimeout(() => {\n ptCtx.setPointCloudValid(valid);\n\n if (valid === false) {\n clearAllResult();\n }\n });\n };\n\n /**\n * TopView forbid all operations.\n * @param forbidOperation\n */\n toolInstanceRef.current.setForbidOperation = (forbidOperation: boolean) => {\n ptCtx.topViewInstance?.pointCloud2dOperation?.setForbidOperation(forbidOperation);\n if (forbidOperation === true) {\n // Clear Selected Status.\n ptCtx.setSelectedIDs(undefined);\n }\n };\n\n toolInstanceRef.current.setShowDefaultCursor = (showDefaultCursor: boolean) => {\n ptCtx.topViewInstance?.pointCloud2dOperation?.setShowDefaultCursor(showDefaultCursor);\n };\n }, [\n ptCtx.pointCloudBoxList,\n ptCtx.selectedID,\n ptCtx.valid,\n ptCtx.polygonList,\n ptCtx.mainViewInstance,\n ]);\n\n useEffect(() => {\n toolInstanceRef.current.history = {\n // Origin Result\n pushHistory: (result: any[]) => {\n // Rewrite\n // TODO, The polygon is out of range.\n pushHistoryWithList({ pointCloudBoxList: result });\n },\n initRecord: () => {},\n };\n }, []);\n\n useEffect(() => {\n const toolInstance = ptCtx.topViewInstance?.pointCloud2dOperation;\n\n if (!toolInstance || checkMode) {\n return;\n }\n // TopViewOperation Emitter\n const syncAttribute = (newAttribute: string) => {\n syncThreeViewsAttribute(newAttribute);\n };\n\n const messageError = (error: string) => {\n message.error(error);\n };\n const messageInfo = (info: string) => {\n message.info(info);\n };\n\n toolInstance.on('syncAttribute', syncAttribute);\n toolInstance.on('messageError', messageError);\n toolInstance.on('messageInfo', messageInfo);\n\n return () => {\n toolInstance.unbind('syncAttribute', syncAttribute);\n toolInstance.unbind('messageError', messageError);\n toolInstance.unbind('messageInfo', messageInfo);\n };\n }, [ptCtx.topViewInstance]);\n\n return null;\n};\n\nexport default connect(a2MapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloudListener,\n);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PointCloudListener.js","sources":["../../../src/components/pointCloudView/PointCloudListener.tsx"],"sourcesContent":["import { PointCloudContext } from './PointCloudContext';\nimport { useRotate } from './hooks/useRotate';\nimport { useBoxes } from './hooks/useBoxes';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport React, { useContext, useEffect } from 'react';\nimport { cTool, AttributeUtils, CommonToolUtils, EToolName } from '@labelbee/lb-annotation';\nimport { message } from 'antd';\nimport { connect } from 'react-redux';\nimport { a2MapStateToProps, IA2MapStateProps } from '@/store/annotation/map';\nimport { useCustomToolInstance } from '@/hooks/annotation';\nimport { useStatus } from './hooks/useStatus';\nimport { jsonParser } from '@/utils';\nimport { usePointCloudViews } from './hooks/usePointCloudViews';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { useHistory } from './hooks/useHistory';\nimport { useAttribute } from './hooks/useAttribute';\nimport { ICoordinate } from '@labelbee/lb-utils/dist/types/types/common';\nimport { useConfig } from './hooks/useConfig';\nimport { usePolygon } from './hooks/usePolygon';\nimport { useTranslation } from 'react-i18next';\nimport { IFileItem } from '@/types/data';\n\nconst { EPolygonPattern } = cTool;\n\ninterface IProps extends IA2MapStateProps {\n checkMode?: boolean;\n}\n\nconst PointCloudListener: React.FC<IProps> = ({\n currentData,\n config,\n checkMode,\n configString,\n imgIndex,\n}) => {\n const ptCtx = useContext(PointCloudContext);\n const {\n changeSelectedBoxValid,\n selectNextBox,\n selectPrevBox,\n updateSelectedBox,\n deleteSelectedPointCloudBoxAndPolygon,\n } = useSingleBox();\n const { clearAllResult, updatePointCloudPattern } = useStatus();\n const basicInfo = jsonParser(currentData.result);\n const { copySelectedBoxes, pasteSelectedBoxes, copiedBoxes } = useBoxes({ config });\n const { toolInstanceRef } = useCustomToolInstance({ basicInfo });\n const { updateRotate } = useRotate({ currentData });\n const { updatePointCloudData, topViewSelectedChanged } = usePointCloudViews();\n const { redo, undo, pushHistoryWithList, pushHistoryUnderUpdatePolygon } = useHistory();\n const { syncThreeViewsAttribute } = useAttribute();\n const { syncAllViewsConfig, reRenderTopViewRange } = useConfig();\n const { selectedPolygon } = usePolygon();\n const { t } = useTranslation();\n\n const updatePolygonOffset = (offset: Partial<ICoordinate>) => {\n const { topViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n topViewInstance.pointCloud2dOperation?.updateSelectedPolygonsPoints(offset);\n };\n\n const keydownEvents = (lowerCaseKey: string, e: KeyboardEvent) => {\n const { topViewInstance, mainViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n\n const { pointCloud2dOperation: TopPointCloudPolygonOperation } = topViewInstance;\n\n switch (lowerCaseKey) {\n case 'q': {\n // Q - anticlockwise\n updateRotate(2);\n break;\n }\n\n case 'e':\n // E - closewise\n updateRotate(-2);\n\n break;\n\n case 'g':\n // G , overturn 180\n updateRotate(180);\n\n break;\n\n case 'u':\n {\n // U , change TopOpereation Pattern\n const newToolName =\n TopPointCloudPolygonOperation.pattern === EPolygonPattern.Normal\n ? EToolName.Rect\n : EToolName.Polygon;\n updatePointCloudPattern(newToolName);\n\n // Tips\n const POLYGON_PATTERN = {\n [EToolName.Polygon]: t('PolygonPattern'),\n [EToolName.Rect]: t('RectPattern'),\n };\n message.success(t('ChangePatternMsg', { pattern: POLYGON_PATTERN[newToolName] }));\n\n // Clear Status\n TopPointCloudPolygonOperation.clearActiveStatus();\n TopPointCloudPolygonOperation.clearDrawingStatus();\n }\n\n break;\n\n // +: Increase points size\n case '+':\n mainViewInstance?.updatePointSize(true);\n break;\n\n // -: Reduce points size\n case '-':\n mainViewInstance?.updatePointSize(false);\n break;\n\n case 'v':\n ptCtx.setPointCloudValid(!ptCtx.valid);\n break;\n\n case 'tab':\n if (e.shiftKey) {\n selectPrevBox();\n break;\n }\n selectNextBox();\n e.preventDefault();\n break;\n\n case 'f':\n changeSelectedBoxValid();\n break;\n\n case 'arrowup':\n updatePolygonOffset({ y: -1 });\n break;\n\n case 'arrowdown':\n updatePolygonOffset({ y: 1 });\n break;\n\n case 'arrowleft':\n updatePolygonOffset({ x: -1 });\n break;\n\n case 'arrowright':\n updatePolygonOffset({ x: 1 });\n break;\n\n case 'delete':\n deleteSelectedPointCloudBoxAndPolygon();\n break;\n\n default: {\n if (config.attributeList?.length > 0) {\n const keyCode2Attribute = AttributeUtils.getAttributeByKeycode(\n e.keyCode,\n config.attributeList,\n );\n\n if (keyCode2Attribute !== undefined) {\n toolInstanceRef.current.setDefaultAttribute(keyCode2Attribute);\n }\n }\n return;\n }\n }\n };\n\n const ctrlKeydownEvents = (lowerCaseKey: string, e: KeyboardEvent) => {\n switch (lowerCaseKey) {\n case 'c':\n copySelectedBoxes();\n break;\n case 'v':\n pasteSelectedBoxes();\n break;\n case 'a':\n e.preventDefault();\n ptCtx.selectedAllBoxes();\n break;\n case 'z': {\n if (e.shiftKey) {\n redo();\n } else {\n undo();\n }\n break;\n }\n\n default:\n break;\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (!CommonToolUtils.hotkeyFilter(e) || checkMode === true) {\n return;\n }\n\n const lowerCaseKey = e.key.toLocaleLowerCase();\n\n if (e.ctrlKey) {\n ctrlKeydownEvents(lowerCaseKey, e);\n return;\n }\n\n keydownEvents(lowerCaseKey, e);\n };\n\n useEffect(() => {\n const { topViewInstance } = ptCtx;\n if (!topViewInstance) {\n return;\n }\n\n window.addEventListener('keydown', onKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [ptCtx, copiedBoxes, config, ptCtx.pointCloudBoxList, ptCtx.polygonList]);\n\n useEffect(() => {\n syncAllViewsConfig(config);\n }, [configString]);\n\n useEffect(() => {\n if (config?.radius) {\n reRenderTopViewRange(config?.radius);\n }\n }, [config?.radius]);\n\n // Page switch data initialization\n useEffect(() => {\n updatePointCloudData?.();\n }, [imgIndex, ptCtx.mainViewInstance]);\n\n useEffect(() => {\n ptCtx.setHideAttributes([]);\n }, [imgIndex]);\n\n // Update the listener of toolInstance.\n useEffect(() => {\n toolInstanceRef.current.exportData = () => {\n return [ptCtx.pointCloudBoxList, { valid: ptCtx.valid }];\n };\n\n toolInstanceRef.current.exportCustomData = () => {\n return {\n resultPolygon: ptCtx.polygonList ?? [],\n };\n };\n\n toolInstanceRef.current.setDefaultAttribute = (newAttribute: string) => {\n syncThreeViewsAttribute(newAttribute);\n const selectBox = ptCtx.selectedPointCloudBox;\n if (selectBox) {\n selectBox.attribute = newAttribute;\n\n const newPointCloudList = updateSelectedBox(selectBox);\n\n if (ptCtx.mainViewInstance) {\n // TODO: Poor performance.\n topViewSelectedChanged(selectBox, newPointCloudList);\n }\n }\n if (selectedPolygon) {\n pushHistoryUnderUpdatePolygon({ ...selectedPolygon, attribute: newAttribute });\n }\n };\n\n toolInstanceRef.current.setSubAttribute = (key: string, value: string) => {\n const selectBox = ptCtx.selectedPointCloudBox;\n if (selectBox) {\n const originSubAttribute = selectBox?.subAttribute ?? {};\n\n selectBox.subAttribute = {\n ...originSubAttribute,\n [key]: value,\n };\n\n updateSelectedBox(selectBox);\n }\n };\n toolInstanceRef.current.clearResult = () => {\n clearAllResult?.();\n };\n\n toolInstanceRef.current.redo = () => {\n redo();\n };\n\n toolInstanceRef.current.undo = () => {\n undo();\n };\n\n toolInstanceRef.current.setValid = (valid: boolean) => {\n toolInstanceRef.current.valid = valid;\n\n // Avoid triggering SetState operations in the reducer phase\n setTimeout(() => {\n ptCtx.setPointCloudValid(valid);\n\n if (valid === false) {\n clearAllResult();\n }\n });\n };\n\n /**\n * TopView forbid all operations.\n * @param forbidOperation\n */\n toolInstanceRef.current.setForbidOperation = (forbidOperation: boolean) => {\n ptCtx.topViewInstance?.pointCloud2dOperation?.setForbidOperation(forbidOperation);\n if (forbidOperation === true) {\n // Clear Selected Status.\n ptCtx.setSelectedIDs(undefined);\n }\n };\n\n toolInstanceRef.current.setShowDefaultCursor = (showDefaultCursor: boolean) => {\n ptCtx.topViewInstance?.pointCloud2dOperation?.setShowDefaultCursor(showDefaultCursor);\n };\n\n toolInstanceRef.current.asyncData = (newData: IFileItem) => {\n // Next Tick to update.\n setTimeout(() => {\n updatePointCloudData?.(newData);\n });\n };\n }, [\n ptCtx.pointCloudBoxList,\n ptCtx.selectedID,\n ptCtx.valid,\n ptCtx.polygonList,\n ptCtx.mainViewInstance,\n ]);\n\n useEffect(() => {\n toolInstanceRef.current.history = {\n // Origin Result\n pushHistory: (result: any[]) => {\n // Rewrite\n // TODO, The polygon is out of range.\n pushHistoryWithList({ pointCloudBoxList: result });\n },\n initRecord: () => {},\n };\n }, []);\n\n useEffect(() => {\n const toolInstance = ptCtx.topViewInstance?.pointCloud2dOperation;\n\n if (!toolInstance || checkMode) {\n return;\n }\n // TopViewOperation Emitter\n const syncAttribute = (newAttribute: string) => {\n syncThreeViewsAttribute(newAttribute);\n };\n\n const messageError = (error: string) => {\n message.error(error);\n };\n const messageInfo = (info: string) => {\n message.info(info);\n };\n\n toolInstance.on('syncAttribute', syncAttribute);\n toolInstance.on('messageError', messageError);\n toolInstance.on('messageInfo', messageInfo);\n\n return () => {\n toolInstance.unbind('syncAttribute', syncAttribute);\n toolInstance.unbind('messageError', messageError);\n toolInstance.unbind('messageInfo', messageInfo);\n };\n }, [ptCtx.topViewInstance]);\n\n return null;\n};\n\nexport default connect(a2MapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloudListener,\n);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{MathUtils as m,getCuboidFromPointCloudBox as at}from"@labelbee/lb-annotation";import{EPerspectiveView as R,PointCloudUtils as A}from"@labelbee/lb-utils";import{useContext as ct}from"react";import{PointCloudContext as ut}from"../PointCloudContext.js";import{useSingleBox as F}from"./useSingleBox.js";import{useSelector as pt,useDispatch as gt}from"../../../store/ctx.js";import ft from"../../../utils/StepUtils.js";import{jsonParser as N}from"../../../utils/index.js";import{SetPointCloudLoading as Z}from"../../../store/annotation/actionCreators.js";import{message as Ct}from"antd";import{useTranslation as Pt}from"react-i18next";import{useHistory as mt}from"./useHistory.js";import{usePolygon as ht}from"./usePolygon.js";var yt=Object.defineProperty,Lt=Object.defineProperties,xt=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable,M=(t,e,i)=>e in t?yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,V=(t,e)=>{for(var i in e||(e={}))vt.call(e,i)&&M(t,i,e[i]);if(W)for(var i of W(e))Bt.call(e,i)&&M(t,i,e[i]);return t},G=(t,e)=>Lt(t,xt(e)),Q=(t,e,i)=>new Promise((a,o)=>{var s=l=>{try{c(i.next(l))}catch(P){o(P)}},g=l=>{try{c(i.throw(l))}catch(P){o(P)}},c=l=>l.done?a(l.value):Promise.resolve(l.value).then(s,g);c((i=i.apply(t,e)).next())});const T=5,q=90,w={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},z=(t,e,i,a,o)=>{const[s,g,c,l]=t.pointList.map(f=>A.transferCanvas2World(f,e)),P=m.getLineCenterPoint([s,c]),h=m.getLineLength(s,g),x=m.getLineLength(g,c),U=m.getRadiusFromQuadrangle(t.pointList);let b=0,D=1,B={};if(i){const f=i.getSensesPointZAxisInPolygon([s,g,c,l]);b=(f.maxZ+f.minZ)/2,D=f.maxZ-f.minZ,B={count:f.zCount}}a&&(b=a.center.z,D=a.depth);const O={center:{x:P.x,y:P.y,z:b},width:x,height:h,depth:D,rotation:U,id:t.id},C=V(a?V(V({},a),O):G(V({},O),{attribute:"",valid:!0}),B);return o&&Object.assign(C,o),C},J=(t,e,i,a)=>{const[o,s,g]=t.pointList,[c,l,P]=e.pointList,h=m.getLineCenterPoint([o,g]),x=m.getLineCenterPoint([c,P]),b={x:{x:h.x-x.x,y:h.y-x.y}.x,y:0,z:h.y-x.y},D=m.getLineLength(o,s),B=m.getLineLength(c,l),O=D-B,C=m.getLineLength(s,g),f=m.getLineLength(l,P),_=C-f,{newBoxParams:I}=a.getNewBoxBySideUpdate(b,_,O,i);return I},wt=(t,e,i,a)=>{const[o,s,g]=t.pointList,[c,l,P]=e.pointList,h=m.getLineCenterPoint([o,g]),x=m.getLineCenterPoint([c,P]),b={x:{x:h.x-x.x,y:h.y-x.y}.x,y:0,z:h.y-x.y},D=m.getLineLength(o,s),B=m.getLineLength(c,l),O=D-B,C=m.getLineLength(s,g),f=m.getLineLength(l,P),_=C-f;let{newBoxParams:I}=a.getNewBoxByBackUpdate(b,_,O,i);return I},K=(t,e,i,a)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:s}=i;s.loadPCDFileByBox(a,t,{width:T,depth:T});const{cameraPositionVector:g}=s.updateOrthoCamera(t,R.Left);s.setInitCameraPosition(g);const{polygon2d:c,zoom:l}=s.getBoxSidePolygon2DCoordinate(t);s.camera.zoom=l,s.camera.updateProjectionMatrix(),s.render(),o.initPosition(),o.zoomChangeOnCenter(l),o.setResultAndSelectedID([{id:e.id,valid:t.valid,pointList:c,textAttribute:"",isRect:!0,attribute:t.attribute}],e.id)},X=(t,e,i,a)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:s}=i;s.loadPCDFileByBox(a,t,{height:T,depth:T});const{cameraPositionVector:g}=s.updateOrthoCamera(t,R.Back);s.setInitCameraPosition(g);const{polygon2d:c,zoom:l}=s.getBoxBackPolygon2DCoordinate(t);s.camera.zoom=l,s.camera.updateProjectionMatrix(),s.render(),o.initPosition(),o.zoomChangeOnCenter(l),o.setResultAndSelectedID([{id:e.id,valid:t.valid,pointList:c,textAttribute:"",isRect:!0,attribute:t.attribute}],e.id)},Y=(t,e,i,a)=>{var o;if(!i||!a)return;a.generateBox(t,e.id),a.updateCameraByBox(t,R.Top),a.render();const{pointCloud2dOperation:s,pointCloudInstance:g}=i,{polygon2d:c}=g.getBoxTopPolygon2DCoordinate(t),l=[...s.polygonList],P=l.find(h=>h.id===e.id);P?P.pointList=c:l.push({id:e.id,pointList:c,textAttribute:"",isRect:!0,valid:(o=t.valid)!=null?o:!0}),s.setResultAndSelectedID(l,e.id)},bt=()=>{const t=ct(ut),{topViewInstance:e,sideViewInstance:i,backViewInstance:a,mainViewInstance:o,addPointCloudBox:s,setSelectedIDs:g,selectedIDs:c,pointCloudBoxList:l,hideAttributes:P}=t,{addHistory:h,initHistory:x,pushHistoryUnderUpdatePolygon:U}=mt(),{selectedPolygon:b}=ht(),{updateSelectedBox:D,updateSelectedBoxes:B,getPointCloudByID:O}=F(),{currentData:C,config:f}=pt(n=>{const{stepList:u,step:p,imgList:r,imgIndex:d}=n.annotation;return{currentData:r[d],config:N(ft.getCurrentStepInfo(p,u).config)}}),_=gt(),{selectedBox:I}=F(),{t:$}=Pt(),H=I==null?void 0:I.info;if(!e||!i||!a)return{topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:tt}=e,ot=n=>{o==null||o.generateBox(n),o==null||o.controls.update(),o==null||o.render()},et=({newPolygon:n,size:u,imgList:p,trackConfigurable:r,zoom:d})=>{var L;const y={attribute:(L=e.pointCloud2dOperation.defaultAttribute)!=null?L:""};r===!0&&Object.assign(y,{trackID:A.getNextTrackID({imgList:[],extraBoxList:l})});const v=z(n,u,tt,void 0,y),k=e==null?void 0:e.pointCloud2dOperation,S=v;if((f==null?void 0:f.lowerLimitPointsNumInBox)&&typeof v.count=="number"&&v.count<f.lowerLimitPointsNumInBox){Ct.info($("LowerLimitPointsNumInBox",{num:f.lowerLimitPointsNumInBox})),k.deletePolygon(v.id);return}const lt=P.includes(n.attribute),dt=s(S);lt?g([]):(g(S.id),k.setSelectedIDs([n.id]),j(w.Top,n,S,d,dt)),h({newBoxParams:S})},nt=(n,u)=>{const p=n!=null?n:I==null?void 0:I.info,r=e==null?void 0:e.pointCloud2dOperation;if(r.setSelectedIDs(c),c.length===0||!r)return;const d=r.selectedPolygon;if(c.length===1&&p){j(w.Top,d,p,void 0,u);return}},E=(n,u,p)=>{if(H){let r,d;switch(p){case w.Back:r=wt;break;case w.Side:r=J;break;default:r=J;break}if(d=r(n,u,H,i.pointCloudInstance),o){const{count:y}=o.getSensesPointZAxisInPolygon(at(d).polygonPointList,[d.center.z-d.depth/2,d.center.z+d.depth/2]);d=G(V({},d),{count:y})}const L=D(d);return j(p,n,d,void 0,L),L}},it=(n,u)=>{E(n,u,w.Side)},st=(n,u)=>{E(n,u,w.Back)},rt=(n,u)=>{if(b){const r=n[0].newPolygon;r.pointList=r.pointList.map(d=>A.transferCanvas2World(d,u)),U(n[0].newPolygon);return}const p=n.map(({newPolygon:r})=>{const d=O(r.id);return z(r,u,e.pointCloudInstance,d)});if(p.length===1){const{newPolygon:r}=n[0],d=B(p);j(w.Top,r,p[0],void 0,d)}else{const r=B(p);r&&t.syncAllViewPointCloudColor(r)}},j=(n,u,p,r,d)=>Q(void 0,null,function*(){const L=C==null?void 0:C.url;d&&(yield t.syncAllViewPointCloudColor(d));const y={[w.Side]:()=>{K(p,u,i,L)},[w.Back]:()=>{a&&X(p,u,a,L)},[w.Top]:()=>{Y(p,u,e,o)}};Object.keys(y).forEach(v=>{v!==n&&y[v]()}),r&&(o==null||o.updateCameraZoom(r)),ot(p)});return{topViewAddBox:et,topViewSelectedChanged:nt,topViewUpdateBox:rt,sideViewUpdateBox:it,backViewUpdateBox:st,pointCloudBoxListUpdated:n=>{e.updatePolygonList(n),o==null||o.generateBoxes(n)},initPointCloud3d:n=>{if(!o)return;const u={left:-n.width/2,right:n.width/2,top:n.height/2,bottom:-n.height/2,near:100,far:-100};o.initOrthographicCamera(u),o.initRenderer(),o.render()},updatePointCloudData:()=>Q(void 0,null,function*(){var n,u,p,r,d,L;if(!(C==null?void 0:C.url)||!o)return;Z(_,!0),yield o.loadPCDFile(C.url,(n=f==null?void 0:f.radius)!=null?n:q),l.forEach(S=>{o==null||o.removeObjectByName(S.id)});let y=[],v=[];C.result?(y=A.getBoxParamsFromResultList(C.result),v=A.getPolygonListFromResultList(C.result),y.forEach(S=>{o==null||o.generateBox(S)}),t.syncAllViewPointCloudColor(y),t.setPointCloudResult(y),t.setPolygonList(v)):(t.setPointCloudResult([]),t.setPolygonList([])),x({pointCloudBoxList:y,polygonList:v}),o.updateTopCamera();const k=(p=(u=N(C.result))==null?void 0:u.valid)!=null?p:!0;t.setPointCloudValid(k),(r=t.sideViewInstance)==null||r.clearAllData(),(d=t.backViewInstance)==null||d.clearAllData(),e.updateData(C.url,C.result,{radius:(L=f==null?void 0:f.radius)!=null?L:q}),Z(_,!1)})}};export{X as synchronizeBackView,K as synchronizeSideView,Y as synchronizeTopView,z as topViewPolygon2PointCloud,bt as usePointCloudViews};
1
+ import{MathUtils as P,getCuboidFromPointCloudBox as at}from"@labelbee/lb-annotation";import{EPerspectiveView as H,PointCloudUtils as k}from"@labelbee/lb-utils";import{useContext as ct}from"react";import{PointCloudContext as ut}from"../PointCloudContext.js";import{useSingleBox as Z}from"./useSingleBox.js";import{useSelector as pt,useDispatch as gt}from"../../../store/ctx.js";import ft from"../../../utils/StepUtils.js";import{jsonParser as W}from"../../../utils/index.js";import{SetPointCloudLoading as M}from"../../../store/annotation/actionCreators.js";import{message as Ct}from"antd";import{useTranslation as Pt}from"react-i18next";import{useHistory as mt}from"./useHistory.js";import{usePolygon as ht}from"./usePolygon.js";var yt=Object.defineProperty,Lt=Object.defineProperties,xt=Object.getOwnPropertyDescriptors,G=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable,Q=(t,e,n)=>e in t?yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,U=(t,e)=>{for(var n in e||(e={}))vt.call(e,n)&&Q(t,n,e[n]);if(G)for(var n of G(e))Bt.call(e,n)&&Q(t,n,e[n]);return t},q=(t,e)=>Lt(t,xt(e)),J=(t,e,n)=>new Promise((c,o)=>{var s=d=>{try{u(n.next(d))}catch(C){o(C)}},g=d=>{try{u(n.throw(d))}catch(C){o(C)}},u=d=>d.done?c(d.value):Promise.resolve(d.value).then(s,g);u((n=n.apply(t,e)).next())});const R=5,K=90,w={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},E=(t,e,n,c,o)=>{const[s,g,u,d]=t.pointList.map(f=>k.transferCanvas2World(f,e)),C=P.getLineCenterPoint([s,u]),m=P.getLineLength(s,g),y=P.getLineLength(g,u),A=P.getRadiusFromQuadrangle(t.pointList);let b=0,O=1,L={};if(n){const f=n.getSensesPointZAxisInPolygon([s,g,u,d]);b=(f.maxZ+f.minZ)/2,O=f.maxZ-f.minZ,L={count:f.zCount}}c&&(b=c.center.z,O=c.depth);const I={center:{x:C.x,y:C.y,z:b},width:y,height:m,depth:O,rotation:A,id:t.id},x=U(c?U(U({},c),I):q(U({},I),{attribute:"",valid:!0}),L);return o&&Object.assign(x,o),x},X=(t,e,n,c)=>{const[o,s,g]=t.pointList,[u,d,C]=e.pointList,m=P.getLineCenterPoint([o,g]),y=P.getLineCenterPoint([u,C]),b={x:{x:m.x-y.x,y:m.y-y.y}.x,y:0,z:m.y-y.y},O=P.getLineLength(o,s),L=P.getLineLength(u,d),I=O-L,x=P.getLineLength(s,g),f=P.getLineLength(d,C),D=x-f,{newBoxParams:S}=c.getNewBoxBySideUpdate(b,D,I,n);return S},wt=(t,e,n,c)=>{const[o,s,g]=t.pointList,[u,d,C]=e.pointList,m=P.getLineCenterPoint([o,g]),y=P.getLineCenterPoint([u,C]),b={x:{x:m.x-y.x,y:m.y-y.y}.x,y:0,z:m.y-y.y},O=P.getLineLength(o,s),L=P.getLineLength(u,d),I=O-L,x=P.getLineLength(s,g),f=P.getLineLength(d,C),D=x-f;let{newBoxParams:S}=c.getNewBoxByBackUpdate(b,D,I,n);return S},Y=(t,e,n,c)=>{if(!n)return;const{pointCloud2dOperation:o,pointCloudInstance:s}=n;s.loadPCDFileByBox(c,t,{width:R,depth:R});const{cameraPositionVector:g}=s.updateOrthoCamera(t,H.Left);s.setInitCameraPosition(g);const{polygon2d:u,zoom:d}=s.getBoxSidePolygon2DCoordinate(t);s.camera.zoom=d,s.camera.updateProjectionMatrix(),s.render(),o.initPosition(),o.zoomChangeOnCenter(d),o.setResultAndSelectedID([{id:e.id,valid:t.valid,pointList:u,textAttribute:"",isRect:!0,attribute:t.attribute}],e.id)},$=(t,e,n,c)=>{if(!n)return;const{pointCloud2dOperation:o,pointCloudInstance:s}=n;s.loadPCDFileByBox(c,t,{height:R,depth:R});const{cameraPositionVector:g}=s.updateOrthoCamera(t,H.Back);s.setInitCameraPosition(g);const{polygon2d:u,zoom:d}=s.getBoxBackPolygon2DCoordinate(t);s.camera.zoom=d,s.camera.updateProjectionMatrix(),s.render(),o.initPosition(),o.zoomChangeOnCenter(d),o.setResultAndSelectedID([{id:e.id,valid:t.valid,pointList:u,textAttribute:"",isRect:!0,attribute:t.attribute}],e.id)},tt=(t,e,n,c)=>{var o;if(!n||!c)return;c.generateBox(t,e.id),c.updateCameraByBox(t,H.Top),c.render();const{pointCloud2dOperation:s,pointCloudInstance:g}=n,{polygon2d:u}=g.getBoxTopPolygon2DCoordinate(t),d=[...s.polygonList],C=d.find(m=>m.id===e.id);C?C.pointList=u:d.push({id:e.id,pointList:u,textAttribute:"",isRect:!0,valid:(o=t.valid)!=null?o:!0}),s.setResultAndSelectedID(d,e.id)},bt=()=>{const t=ct(ut),{topViewInstance:e,sideViewInstance:n,backViewInstance:c,mainViewInstance:o,addPointCloudBox:s,setSelectedIDs:g,selectedIDs:u,pointCloudBoxList:d,hideAttributes:C}=t,{addHistory:m,initHistory:y,pushHistoryUnderUpdatePolygon:A}=mt(),{selectedPolygon:b}=ht(),{updateSelectedBox:O,updateSelectedBoxes:L,getPointCloudByID:I}=Z(),{currentData:x,config:f}=pt(i=>{const{stepList:r,step:p,imgList:l,imgIndex:a}=i.annotation;return{currentData:l[a],config:W(ft.getCurrentStepInfo(p,r).config)}}),D=gt(),{selectedBox:S}=Z(),{t:ot}=Pt(),F=S==null?void 0:S.info;if(!e||!n||!c)return{topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:et}=e,nt=i=>{o==null||o.generateBox(i),o==null||o.controls.update(),o==null||o.render()},it=({newPolygon:i,size:r,imgList:p,trackConfigurable:l,zoom:a})=>{var h;const v={attribute:(h=e.pointCloud2dOperation.defaultAttribute)!=null?h:""};l===!0&&Object.assign(v,{trackID:k.getNextTrackID({imgList:[],extraBoxList:d})});const B=E(i,r,et,void 0,v),_=e==null?void 0:e.pointCloud2dOperation,V=B;if((f==null?void 0:f.lowerLimitPointsNumInBox)&&typeof B.count=="number"&&B.count<f.lowerLimitPointsNumInBox){Ct.info(ot("LowerLimitPointsNumInBox",{num:f.lowerLimitPointsNumInBox})),_.deletePolygon(B.id);return}const z=C.includes(i.attribute),j=s(V);z?g([]):(g(V.id),_.setSelectedIDs([i.id]),T(w.Top,i,V,a,j)),m({newBoxParams:V})},st=(i,r)=>{const p=i!=null?i:S==null?void 0:S.info,l=e==null?void 0:e.pointCloud2dOperation;if(l.setSelectedIDs(u),u.length===0||!l)return;const a=l.selectedPolygon;if(u.length===1&&p){T(w.Top,a,p,void 0,r);return}},N=(i,r,p)=>{if(F){let l,a;switch(p){case w.Back:l=wt;break;case w.Side:l=X;break;default:l=X;break}if(a=l(i,r,F,n.pointCloudInstance),o){const{count:v}=o.getSensesPointZAxisInPolygon(at(a).polygonPointList,[a.center.z-a.depth/2,a.center.z+a.depth/2]);a=q(U({},a),{count:v})}const h=O(a);return T(p,i,a,void 0,h),h}},rt=(i,r)=>{N(i,r,w.Side)},lt=(i,r)=>{N(i,r,w.Back)},dt=(i,r)=>{if(b){const l=i[0].newPolygon;l.pointList=l.pointList.map(a=>k.transferCanvas2World(a,r)),A(i[0].newPolygon);return}const p=i.map(({newPolygon:l})=>{const a=I(l.id);return E(l,r,e.pointCloudInstance,a)});if(p.length===1){const{newPolygon:l}=i[0],a=L(p);T(w.Top,l,p[0],void 0,a)}else{const l=L(p);l&&t.syncAllViewPointCloudColor(l)}},T=(i,r,p,l,a)=>J(void 0,null,function*(){const h=x==null?void 0:x.url;a&&(yield t.syncAllViewPointCloudColor(a));const v={[w.Side]:()=>{Y(p,r,n,h)},[w.Back]:()=>{c&&$(p,r,c,h)},[w.Top]:()=>{tt(p,r,e,o)}};Object.keys(v).forEach(B=>{B!==i&&v[B]()}),l&&(o==null||o.updateCameraZoom(l)),nt(p)});return{topViewAddBox:it,topViewSelectedChanged:st,topViewUpdateBox:dt,sideViewUpdateBox:rt,backViewUpdateBox:lt,pointCloudBoxListUpdated:i=>{e.updatePolygonList(i),o==null||o.generateBoxes(i)},initPointCloud3d:i=>{if(!o)return;const r={left:-i.width/2,right:i.width/2,top:i.height/2,bottom:-i.height/2,near:100,far:-100};o.initOrthographicCamera(r),o.initRenderer(),o.render()},updatePointCloudData:(...i)=>J(void 0,[...i],function*(r=x){var p,l,a,h,v,B;if(!(r==null?void 0:r.url)||!o)return;M(D,!0),yield o.loadPCDFile(r.url,(p=f==null?void 0:f.radius)!=null?p:K),d.forEach(j=>{o==null||o.removeObjectByName(j.id)});let _=[],V=[];r.result?(_=k.getBoxParamsFromResultList(r.result),V=k.getPolygonListFromResultList(r.result),_.forEach(j=>{o==null||o.generateBox(j)}),t.syncAllViewPointCloudColor(_),t.setPointCloudResult(_),t.setPolygonList(V)):(t.setPointCloudResult([]),t.setPolygonList([])),y({pointCloudBoxList:_,polygonList:V}),o.updateTopCamera();const z=(a=(l=W(r.result))==null?void 0:l.valid)!=null?a:!0;t.setPointCloudValid(z),(h=t.sideViewInstance)==null||h.clearAllData(),(v=t.backViewInstance)==null||v.clearAllData(),e.updateData(r.url,r.result,{radius:(B=f==null?void 0:f.radius)!=null?B:K}),M(D,!1)})}};export{$ as synchronizeBackView,Y as synchronizeSideView,tt as synchronizeTopView,E as topViewPolygon2PointCloud,bt as usePointCloudViews};
@@ -1 +1 @@
1
- {"version":3,"file":"usePointCloudViews.js","sources":["../../../../src/components/pointCloudView/hooks/usePointCloudViews.ts"],"sourcesContent":["/**\n * @file Point cloud interface for crud\n * @author Glenfiddish <edwinlee0927@hotmail.com>\n * @createdate 2022-08-17\n */\nimport {\n PointCloudAnnotation,\n PointCloud,\n MathUtils,\n getCuboidFromPointCloudBox,\n} from '@labelbee/lb-annotation';\nimport {\n IPointCloudBox,\n EPerspectiveView,\n PointCloudUtils,\n IPolygonPoint,\n UpdatePolygonByDragList,\n} from '@labelbee/lb-utils';\nimport { useContext } from 'react';\nimport { PointCloudContext } from '../PointCloudContext';\nimport { useSingleBox } from './useSingleBox';\nimport { ISize } from '@/types/main';\nimport _ from 'lodash';\nimport { useDispatch, useSelector } from '@/store/ctx';\nimport { AppState } from '@/store';\nimport StepUtils from '@/utils/StepUtils';\nimport { jsonParser } from '@/utils';\nimport { SetPointCloudLoading } from '@/store/annotation/actionCreators';\nimport { message } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from './useHistory';\nimport { usePolygon } from './usePolygon';\nimport { IFileItem } from '@/types/data';\n\nconst DEFAULT_SCOPE = 5;\nconst DEFAULT_RADIUS = 90;\n\nconst PointCloudView = {\n '3D': '3D',\n Top: 'Top',\n Side: 'Side',\n Back: 'Back',\n};\n\nexport const topViewPolygon2PointCloud = (\n newPolygon: any,\n size: ISize,\n pointCloud?: PointCloud,\n selectedPointCloudBox?: IPointCloudBox,\n defaultValue?: { [v: string]: any },\n) => {\n const [point1, point2, point3, point4] = newPolygon.pointList.map((v: any) =>\n PointCloudUtils.transferCanvas2World(v, size),\n );\n\n const centerPoint = MathUtils.getLineCenterPoint([point1, point3]);\n const height = MathUtils.getLineLength(point1, point2);\n const width = MathUtils.getLineLength(point2, point3);\n const rotation = MathUtils.getRadiusFromQuadrangle(newPolygon.pointList);\n let z = 0;\n let depth = 1;\n let extraData = {};\n\n // Init PointCloud Data\n if (pointCloud) {\n const zInfo = pointCloud.getSensesPointZAxisInPolygon([point1, point2, point3, point4]);\n z = (zInfo.maxZ + zInfo.minZ) / 2;\n depth = zInfo.maxZ - zInfo.minZ;\n extraData = {\n count: zInfo.zCount,\n };\n }\n\n if (selectedPointCloudBox) {\n z = selectedPointCloudBox.center.z;\n depth = selectedPointCloudBox.depth;\n }\n\n const newPosition = {\n center: {\n x: centerPoint.x,\n y: centerPoint.y,\n z,\n },\n width,\n height,\n depth,\n rotation,\n id: newPolygon.id,\n };\n\n /** TrackID will append before it pushed */\n const boxParams: Omit<IPointCloudBox, 'trackID'> = selectedPointCloudBox\n ? {\n ...selectedPointCloudBox,\n ...newPosition,\n ...extraData,\n }\n : {\n // Init Data\n ...newPosition,\n attribute: '',\n valid: true,\n ...extraData,\n };\n\n if (defaultValue) {\n Object.assign(boxParams, defaultValue);\n }\n\n return boxParams;\n};\n\nconst sideViewPolygon2PointCloud = (\n newPolygon: any,\n originPolygon: any,\n selectedPointCloudBox: IPointCloudBox,\n pointCloudInstance: PointCloud,\n) => {\n const [point1, point2, point3] = newPolygon.pointList;\n const [op1, op2, op3] = originPolygon.pointList;\n\n // 2D centerPoint => 3D x & z\n const newCenterPoint = MathUtils.getLineCenterPoint([point1, point3]);\n const oldCenterPoint = MathUtils.getLineCenterPoint([op1, op3]);\n\n const offset = {\n x: newCenterPoint.x - oldCenterPoint.x,\n y: newCenterPoint.y - oldCenterPoint.y,\n };\n\n /**\n * The key of sideView change is x & z, y isn't used.\n */\n const offsetCenterPoint = {\n x: offset.x,\n y: 0,\n z: newCenterPoint.y - oldCenterPoint.y,\n };\n\n // 2D height => 3D depth\n const height = MathUtils.getLineLength(point1, point2);\n const oldHeight = MathUtils.getLineLength(op1, op2);\n const offsetHeight = height - oldHeight; // 3D depth\n\n // 2D width => 3D width\n const width = MathUtils.getLineLength(point2, point3);\n const oldWidth = MathUtils.getLineLength(op2, op3);\n const offsetWidth = width - oldWidth; // 3D width\n\n const { newBoxParams } = pointCloudInstance.getNewBoxBySideUpdate(\n offsetCenterPoint,\n offsetWidth,\n offsetHeight,\n selectedPointCloudBox,\n );\n\n return newBoxParams;\n};\n\nconst backViewPolygon2PointCloud = (\n newPolygon: any,\n originPolygon: any,\n selectedPointCloudBox: IPointCloudBox,\n pointCloudInstance: PointCloud,\n) => {\n // Notice. The sort of polygon is important.\n const [point1, point2, point3] = newPolygon.pointList;\n const [op1, op2, op3] = originPolygon.pointList;\n\n // 2D centerPoint => 3D x & z\n const newCenterPoint = MathUtils.getLineCenterPoint([point1, point3]);\n const oldCenterPoint = MathUtils.getLineCenterPoint([op1, op3]);\n\n const offset = {\n x: newCenterPoint.x - oldCenterPoint.x,\n y: newCenterPoint.y - oldCenterPoint.y,\n };\n\n const offsetCenterPoint = {\n x: offset.x,\n y: 0, // Not be used.\n z: newCenterPoint.y - oldCenterPoint.y,\n };\n\n // 2D height => 3D depth\n const height = MathUtils.getLineLength(point1, point2);\n const oldHeight = MathUtils.getLineLength(op1, op2);\n const offsetHeight = height - oldHeight; // 3D depth\n\n // 2D width => 3D width\n const width = MathUtils.getLineLength(point2, point3);\n const oldWidth = MathUtils.getLineLength(op2, op3);\n const offsetWidth = width - oldWidth; // 3D width\n\n let { newBoxParams } = pointCloudInstance.getNewBoxByBackUpdate(\n offsetCenterPoint,\n offsetWidth,\n offsetHeight,\n selectedPointCloudBox,\n );\n\n return newBoxParams;\n};\n/**\n * NewBox synchronize sideView\n * @param boxParams\n * @param newPolygon TODO! Need to add type\n */\nexport const synchronizeSideView = (\n boxParams: IPointCloudBox,\n newPolygon: any,\n sideViewInstance: PointCloudAnnotation | undefined,\n url: string,\n) => {\n if (!sideViewInstance) {\n return;\n }\n\n const { pointCloud2dOperation, pointCloudInstance } = sideViewInstance;\n\n // Create PointCloud\n pointCloudInstance.loadPCDFileByBox(url, boxParams, {\n width: DEFAULT_SCOPE,\n depth: DEFAULT_SCOPE,\n });\n const { cameraPositionVector } = pointCloudInstance.updateOrthoCamera(\n boxParams,\n EPerspectiveView.Left,\n );\n\n pointCloudInstance.setInitCameraPosition(cameraPositionVector);\n\n // Create Draw Polygon\n const { polygon2d, zoom } = pointCloudInstance.getBoxSidePolygon2DCoordinate(boxParams);\n\n // Synchronize SidePointCloud zoom with PointCloud2dOperation\n pointCloudInstance.camera.zoom = zoom;\n pointCloudInstance.camera.updateProjectionMatrix();\n pointCloudInstance.render();\n\n // Update PolygonView to default zoom and currentPos.\n pointCloud2dOperation.initPosition();\n pointCloud2dOperation.zoomChangeOnCenter(zoom);\n pointCloud2dOperation.setResultAndSelectedID(\n [\n {\n id: newPolygon.id,\n valid: boxParams.valid,\n pointList: polygon2d,\n textAttribute: '',\n isRect: true,\n attribute: boxParams.attribute,\n },\n ],\n newPolygon.id,\n );\n};\n\n/**\n * NewBox synchronize backView\n * @param boxParams\n * @param newPolygon TODO! Need to add type\n */\nexport const synchronizeBackView = (\n boxParams: IPointCloudBox,\n newPolygon: any,\n BackViewInstance: PointCloudAnnotation,\n url: string,\n) => {\n if (!BackViewInstance) {\n return;\n }\n\n const {\n pointCloud2dOperation: backPointCloudPolygonOperation,\n pointCloudInstance: backPointCloud,\n } = BackViewInstance;\n\n // Create PointCloud\n backPointCloud.loadPCDFileByBox(url, boxParams, { height: DEFAULT_SCOPE, depth: DEFAULT_SCOPE });\n const { cameraPositionVector } = backPointCloud.updateOrthoCamera(\n boxParams,\n EPerspectiveView.Back,\n );\n\n backPointCloud.setInitCameraPosition(cameraPositionVector);\n\n // Create Draw Polygon\n const { polygon2d, zoom } = backPointCloud.getBoxBackPolygon2DCoordinate(boxParams);\n\n // Synchronize SidePointCloud zoom with PointCloud2dOperation\n backPointCloud.camera.zoom = zoom;\n backPointCloud.camera.updateProjectionMatrix();\n backPointCloud.render();\n\n // Update PolygonView to default zoom and currentPos.\n backPointCloudPolygonOperation.initPosition();\n backPointCloudPolygonOperation.zoomChangeOnCenter(zoom);\n backPointCloudPolygonOperation.setResultAndSelectedID(\n [\n {\n id: newPolygon.id,\n valid: boxParams.valid,\n pointList: polygon2d,\n textAttribute: '',\n isRect: true,\n attribute: boxParams.attribute,\n },\n ],\n newPolygon.id,\n );\n};\n\n/**\n * NewBox synchronize TopView\n * @param boxParams\n * @param newPolygon TODO! Need to add type\n */\nexport const synchronizeTopView = (\n newBoxParams: IPointCloudBox,\n newPolygon: any,\n topViewInstance?: PointCloudAnnotation,\n mainViewInstance?: PointCloud,\n) => {\n if (!topViewInstance || !mainViewInstance) {\n return;\n }\n\n // Control the 3D view data to create box\n mainViewInstance.generateBox(newBoxParams, newPolygon.id);\n mainViewInstance.updateCameraByBox(newBoxParams, EPerspectiveView.Top);\n mainViewInstance.render();\n\n const { pointCloud2dOperation, pointCloudInstance } = topViewInstance;\n\n const { polygon2d } = pointCloudInstance.getBoxTopPolygon2DCoordinate(newBoxParams);\n\n const newPolygonList = [...pointCloud2dOperation.polygonList];\n const oldPolygon = newPolygonList.find((v) => v.id === newPolygon.id);\n if (oldPolygon) {\n oldPolygon.pointList = polygon2d;\n } else {\n newPolygonList.push({\n id: newPolygon.id,\n pointList: polygon2d,\n textAttribute: '',\n isRect: true,\n valid: newBoxParams.valid ?? true,\n });\n }\n\n pointCloud2dOperation.setResultAndSelectedID(newPolygonList, newPolygon.id);\n};\n\nexport const usePointCloudViews = () => {\n const ptCtx = useContext(PointCloudContext);\n const {\n topViewInstance,\n sideViewInstance,\n backViewInstance,\n mainViewInstance,\n addPointCloudBox,\n setSelectedIDs,\n selectedIDs,\n pointCloudBoxList,\n hideAttributes,\n } = ptCtx;\n const { addHistory, initHistory, pushHistoryUnderUpdatePolygon } = useHistory();\n const { selectedPolygon } = usePolygon();\n\n const { updateSelectedBox, updateSelectedBoxes, getPointCloudByID } = useSingleBox();\n const { currentData, config } = useSelector((state: AppState) => {\n const { stepList, step, imgList, imgIndex } = state.annotation;\n\n return {\n currentData: imgList[imgIndex],\n config: jsonParser(StepUtils.getCurrentStepInfo(step, stepList).config),\n };\n });\n const dispatch = useDispatch();\n const { selectedBox } = useSingleBox();\n const { t } = useTranslation();\n\n const selectedPointCloudBox = selectedBox?.info;\n\n if (!topViewInstance || !sideViewInstance || !backViewInstance) {\n return {\n topViewAddBox: () => {},\n topViewSelectedChanged: () => {},\n sideViewUpdateBox: () => {},\n backViewUpdateBox: () => {},\n };\n }\n\n const { pointCloudInstance: topViewPointCloud } = topViewInstance;\n\n const mainViewGenBox = (boxParams: IPointCloudBox) => {\n mainViewInstance?.generateBox(boxParams);\n mainViewInstance?.controls.update();\n mainViewInstance?.render();\n };\n\n /** Top-view create box from 2D */\n const topViewAddBox = ({\n newPolygon,\n size,\n imgList,\n trackConfigurable,\n zoom,\n }: {\n newPolygon: any;\n size: ISize;\n imgList: IFileItem[];\n trackConfigurable?: boolean;\n zoom: number;\n }) => {\n const extraData = {\n attribute: topViewInstance.pointCloud2dOperation.defaultAttribute ?? '',\n };\n\n if (trackConfigurable === true) {\n Object.assign(extraData, {\n trackID: PointCloudUtils.getNextTrackID({\n imgList: [], // Just calculate by the pointCloudBoxList in current page.\n extraBoxList: pointCloudBoxList,\n }),\n });\n }\n\n const newParams = topViewPolygon2PointCloud(\n newPolygon,\n size,\n topViewPointCloud,\n undefined,\n extraData,\n );\n const polygonOperation = topViewInstance?.pointCloud2dOperation;\n\n const boxParams: IPointCloudBox = newParams;\n\n // If the count is less than lowerLimitPointsNumInBox, needs to delete it\n if (\n config?.lowerLimitPointsNumInBox &&\n typeof newParams.count === 'number' &&\n newParams.count < config.lowerLimitPointsNumInBox\n ) {\n message.info(t('LowerLimitPointsNumInBox', { num: config.lowerLimitPointsNumInBox }));\n polygonOperation.deletePolygon(newParams.id);\n return;\n }\n\n const isBoxHidden = hideAttributes.includes(newPolygon.attribute);\n const newPointCloudList = addPointCloudBox(boxParams);\n\n /** If new box is hidden will not active target point box */\n if (isBoxHidden) {\n setSelectedIDs([]);\n } else {\n setSelectedIDs(boxParams.id);\n polygonOperation.setSelectedIDs([newPolygon.id]);\n syncPointCloudViews(PointCloudView.Top, newPolygon, boxParams, zoom, newPointCloudList);\n }\n\n addHistory({ newBoxParams: boxParams });\n };\n\n /** Top-view selected changed and render to other view */\n const topViewSelectedChanged = (\n newSelectedBox?: IPointCloudBox,\n newPointCloudList?: IPointCloudBox[],\n ) => {\n const boxParams = newSelectedBox ?? selectedBox?.info;\n const polygonOperation = topViewInstance?.pointCloud2dOperation;\n\n polygonOperation.setSelectedIDs(selectedIDs);\n\n if (selectedIDs.length === 0 || !polygonOperation) {\n return;\n }\n\n const polygon = polygonOperation.selectedPolygon;\n\n if (selectedIDs.length === 1 && boxParams) {\n syncPointCloudViews(PointCloudView.Top, polygon, boxParams, undefined, newPointCloudList);\n return;\n }\n };\n\n /**\n * Update box from view\n * @param newPolygon\n * @param originPolygon\n * @param fromView Back or Side\n */\n const viewUpdateBox = (newPolygon: any, originPolygon: any, fromView: string) => {\n if (selectedPointCloudBox) {\n let transfer2PointCloud;\n let newBoxParams;\n\n // Switch the right function.\n switch (fromView) {\n case PointCloudView.Back:\n transfer2PointCloud = backViewPolygon2PointCloud;\n break;\n case PointCloudView.Side:\n transfer2PointCloud = sideViewPolygon2PointCloud;\n break;\n\n default:\n transfer2PointCloud = sideViewPolygon2PointCloud;\n break;\n }\n\n newBoxParams = transfer2PointCloud(\n newPolygon,\n originPolygon,\n selectedPointCloudBox,\n sideViewInstance.pointCloudInstance,\n );\n // Update count\n if (mainViewInstance) {\n const { count } = mainViewInstance.getSensesPointZAxisInPolygon(\n getCuboidFromPointCloudBox(newBoxParams).polygonPointList as IPolygonPoint[],\n [\n newBoxParams.center.z - newBoxParams.depth / 2,\n newBoxParams.center.z + newBoxParams.depth / 2,\n ],\n );\n\n newBoxParams = {\n ...newBoxParams,\n count,\n };\n }\n\n const newPointCloudList = updateSelectedBox(newBoxParams);\n syncPointCloudViews(fromView, newPolygon, newBoxParams, undefined, newPointCloudList);\n return newPointCloudList;\n }\n };\n\n const sideViewUpdateBox = (newPolygon: any, originPolygon: any) => {\n viewUpdateBox(newPolygon, originPolygon, PointCloudView.Side);\n };\n\n const backViewUpdateBox = (newPolygon: any, originPolygon: any) => {\n viewUpdateBox(newPolygon, originPolygon, PointCloudView.Back);\n };\n\n /**\n * Top view box updated and sync views\n * @param polygon\n * @param size\n */\n const topViewUpdateBox = (updateList: UpdatePolygonByDragList, size: ISize) => {\n // If the selected Object is Polygon.\n if (selectedPolygon) {\n /**\n * Notice. The Polygon need to be converted to pointCloud coordinate system for storage.\n */\n const polygon = updateList[0].newPolygon;\n polygon.pointList = polygon.pointList.map((v) =>\n PointCloudUtils.transferCanvas2World(v, size),\n );\n\n pushHistoryUnderUpdatePolygon(updateList[0].newPolygon);\n return;\n }\n\n const updatePointCloudList: IPointCloudBox[] = updateList.map(({ newPolygon: polygon }) => {\n const pointCloudBox = getPointCloudByID(polygon.id);\n\n const newBoxParams = topViewPolygon2PointCloud(\n polygon,\n size,\n topViewInstance.pointCloudInstance,\n pointCloudBox,\n );\n\n return newBoxParams;\n });\n\n /**\n * If single target updated, use syncPointCloudViews to sync all views and render\n * If multi targets updated, use updateSelectedBoxes and update highlight by syncAllViewPointCloudColor\n */\n if (updatePointCloudList.length === 1) {\n const { newPolygon: polygon } = updateList[0];\n const newPointCloudBoxList = updateSelectedBoxes(updatePointCloudList);\n\n syncPointCloudViews(\n PointCloudView.Top,\n polygon,\n updatePointCloudList[0],\n undefined,\n newPointCloudBoxList,\n );\n } else {\n const newPointCloudBoxList = updateSelectedBoxes(updatePointCloudList);\n if (newPointCloudBoxList) {\n ptCtx.syncAllViewPointCloudColor(newPointCloudBoxList);\n }\n }\n };\n\n /**\n * Sync views' data from omit view, regenerate and highlight box on 3D-view\n * @param omitView\n * @param polygon\n * @param boxParams\n */\n const syncPointCloudViews = async (\n omitView: string,\n polygon: any,\n boxParams: IPointCloudBox,\n zoom?: number,\n newPointCloudBoxList?: IPointCloudBox[],\n ) => {\n const dataUrl = currentData?.url;\n\n if (newPointCloudBoxList) {\n // Wait for the mainPointCloudData.\n await ptCtx.syncAllViewPointCloudColor(newPointCloudBoxList);\n }\n\n const viewToBeUpdated = {\n [PointCloudView.Side]: () => {\n synchronizeSideView(boxParams, polygon, sideViewInstance, dataUrl);\n },\n [PointCloudView.Back]: () => {\n if (backViewInstance) {\n synchronizeBackView(boxParams, polygon, backViewInstance, dataUrl);\n }\n },\n [PointCloudView.Top]: () => {\n synchronizeTopView(boxParams, polygon, topViewInstance, mainViewInstance);\n },\n };\n\n Object.keys(viewToBeUpdated).forEach((key) => {\n if (key !== omitView) {\n viewToBeUpdated[key]();\n }\n });\n if (zoom) {\n mainViewInstance?.updateCameraZoom(zoom);\n }\n\n mainViewGenBox(boxParams);\n };\n\n const pointCloudBoxListUpdated = (newBoxes: IPointCloudBox[]) => {\n topViewInstance.updatePolygonList(newBoxes);\n mainViewInstance?.generateBoxes(newBoxes);\n };\n\n const initPointCloud3d = (size: ISize) => {\n if (!mainViewInstance) {\n return;\n }\n\n const orthographicParams = {\n left: -size.width / 2,\n right: size.width / 2,\n top: size.height / 2,\n bottom: -size.height / 2,\n near: 100,\n far: -100,\n };\n\n mainViewInstance.initOrthographicCamera(orthographicParams);\n mainViewInstance.initRenderer();\n mainViewInstance.render();\n };\n\n /**\n * Update the data of pointCloudView when the page change.\n * @returns\n */\n const updatePointCloudData = async () => {\n if (!currentData?.url || !mainViewInstance) {\n return;\n }\n\n SetPointCloudLoading(dispatch, true);\n await mainViewInstance.loadPCDFile(currentData.url, config?.radius ?? DEFAULT_RADIUS);\n\n // Clear All Data\n pointCloudBoxList.forEach((v) => {\n mainViewInstance?.removeObjectByName(v.id);\n });\n\n let boxParamsList: any[] = [];\n let polygonList = [];\n if (currentData.result) {\n boxParamsList = PointCloudUtils.getBoxParamsFromResultList(currentData.result);\n polygonList = PointCloudUtils.getPolygonListFromResultList(currentData.result);\n\n // Add Init Box\n boxParamsList.forEach((v: IPointCloudBox) => {\n mainViewInstance?.generateBox(v);\n });\n\n ptCtx.syncAllViewPointCloudColor(boxParamsList);\n ptCtx.setPointCloudResult(boxParamsList);\n ptCtx.setPolygonList(polygonList);\n } else {\n ptCtx.setPointCloudResult([]);\n ptCtx.setPolygonList([]);\n }\n initHistory({ pointCloudBoxList: boxParamsList, polygonList });\n\n mainViewInstance.updateTopCamera();\n\n const valid = jsonParser(currentData.result)?.valid ?? true;\n ptCtx.setPointCloudValid(valid);\n\n // Clear other view data during initialization\n ptCtx.sideViewInstance?.clearAllData();\n ptCtx.backViewInstance?.clearAllData();\n\n // TopView Data Update\n /**\n * Listen to flip\n * 1. Init\n * 2. Reload PointCloud\n * 3. Clear Polygon\n */\n topViewInstance.updateData(currentData.url, currentData.result, {\n radius: config?.radius ?? DEFAULT_RADIUS,\n });\n SetPointCloudLoading(dispatch, false);\n };\n\n return {\n topViewAddBox,\n topViewSelectedChanged,\n topViewUpdateBox,\n sideViewUpdateBox,\n backViewUpdateBox,\n pointCloudBoxListUpdated,\n initPointCloud3d,\n updatePointCloudData,\n };\n};\n"],"names":["this"],"mappings":"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"}
1
+ {"version":3,"file":"usePointCloudViews.js","sources":["../../../../src/components/pointCloudView/hooks/usePointCloudViews.ts"],"sourcesContent":["/**\n * @file Point cloud interface for crud\n * @author Glenfiddish <edwinlee0927@hotmail.com>\n * @createdate 2022-08-17\n */\nimport {\n PointCloudAnnotation,\n PointCloud,\n MathUtils,\n getCuboidFromPointCloudBox,\n} from '@labelbee/lb-annotation';\nimport {\n IPointCloudBox,\n EPerspectiveView,\n PointCloudUtils,\n IPolygonPoint,\n UpdatePolygonByDragList,\n} from '@labelbee/lb-utils';\nimport { useContext } from 'react';\nimport { PointCloudContext } from '../PointCloudContext';\nimport { useSingleBox } from './useSingleBox';\nimport { ISize } from '@/types/main';\nimport _ from 'lodash';\nimport { useDispatch, useSelector } from '@/store/ctx';\nimport { AppState } from '@/store';\nimport StepUtils from '@/utils/StepUtils';\nimport { jsonParser } from '@/utils';\nimport { SetPointCloudLoading } from '@/store/annotation/actionCreators';\nimport { message } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from './useHistory';\nimport { usePolygon } from './usePolygon';\nimport { IFileItem } from '@/types/data';\n\nconst DEFAULT_SCOPE = 5;\nconst DEFAULT_RADIUS = 90;\n\nconst PointCloudView = {\n '3D': '3D',\n Top: 'Top',\n Side: 'Side',\n Back: 'Back',\n};\n\nexport const topViewPolygon2PointCloud = (\n newPolygon: any,\n size: ISize,\n pointCloud?: PointCloud,\n selectedPointCloudBox?: IPointCloudBox,\n defaultValue?: { [v: string]: any },\n) => {\n const [point1, point2, point3, point4] = newPolygon.pointList.map((v: any) =>\n PointCloudUtils.transferCanvas2World(v, size),\n );\n\n const centerPoint = MathUtils.getLineCenterPoint([point1, point3]);\n const height = MathUtils.getLineLength(point1, point2);\n const width = MathUtils.getLineLength(point2, point3);\n const rotation = MathUtils.getRadiusFromQuadrangle(newPolygon.pointList);\n let z = 0;\n let depth = 1;\n let extraData = {};\n\n // Init PointCloud Data\n if (pointCloud) {\n const zInfo = pointCloud.getSensesPointZAxisInPolygon([point1, point2, point3, point4]);\n z = (zInfo.maxZ + zInfo.minZ) / 2;\n depth = zInfo.maxZ - zInfo.minZ;\n extraData = {\n count: zInfo.zCount,\n };\n }\n\n if (selectedPointCloudBox) {\n z = selectedPointCloudBox.center.z;\n depth = selectedPointCloudBox.depth;\n }\n\n const newPosition = {\n center: {\n x: centerPoint.x,\n y: centerPoint.y,\n z,\n },\n width,\n height,\n depth,\n rotation,\n id: newPolygon.id,\n };\n\n /** TrackID will append before it pushed */\n const boxParams: Omit<IPointCloudBox, 'trackID'> = selectedPointCloudBox\n ? {\n ...selectedPointCloudBox,\n ...newPosition,\n ...extraData,\n }\n : {\n // Init Data\n ...newPosition,\n attribute: '',\n valid: true,\n ...extraData,\n };\n\n if (defaultValue) {\n Object.assign(boxParams, defaultValue);\n }\n\n return boxParams;\n};\n\nconst sideViewPolygon2PointCloud = (\n newPolygon: any,\n originPolygon: any,\n selectedPointCloudBox: IPointCloudBox,\n pointCloudInstance: PointCloud,\n) => {\n const [point1, point2, point3] = newPolygon.pointList;\n const [op1, op2, op3] = originPolygon.pointList;\n\n // 2D centerPoint => 3D x & z\n const newCenterPoint = MathUtils.getLineCenterPoint([point1, point3]);\n const oldCenterPoint = MathUtils.getLineCenterPoint([op1, op3]);\n\n const offset = {\n x: newCenterPoint.x - oldCenterPoint.x,\n y: newCenterPoint.y - oldCenterPoint.y,\n };\n\n /**\n * The key of sideView change is x & z, y isn't used.\n */\n const offsetCenterPoint = {\n x: offset.x,\n y: 0,\n z: newCenterPoint.y - oldCenterPoint.y,\n };\n\n // 2D height => 3D depth\n const height = MathUtils.getLineLength(point1, point2);\n const oldHeight = MathUtils.getLineLength(op1, op2);\n const offsetHeight = height - oldHeight; // 3D depth\n\n // 2D width => 3D width\n const width = MathUtils.getLineLength(point2, point3);\n const oldWidth = MathUtils.getLineLength(op2, op3);\n const offsetWidth = width - oldWidth; // 3D width\n\n const { newBoxParams } = pointCloudInstance.getNewBoxBySideUpdate(\n offsetCenterPoint,\n offsetWidth,\n offsetHeight,\n selectedPointCloudBox,\n );\n\n return newBoxParams;\n};\n\nconst backViewPolygon2PointCloud = (\n newPolygon: any,\n originPolygon: any,\n selectedPointCloudBox: IPointCloudBox,\n pointCloudInstance: PointCloud,\n) => {\n // Notice. The sort of polygon is important.\n const [point1, point2, point3] = newPolygon.pointList;\n const [op1, op2, op3] = originPolygon.pointList;\n\n // 2D centerPoint => 3D x & z\n const newCenterPoint = MathUtils.getLineCenterPoint([point1, point3]);\n const oldCenterPoint = MathUtils.getLineCenterPoint([op1, op3]);\n\n const offset = {\n x: newCenterPoint.x - oldCenterPoint.x,\n y: newCenterPoint.y - oldCenterPoint.y,\n };\n\n const offsetCenterPoint = {\n x: offset.x,\n y: 0, // Not be used.\n z: newCenterPoint.y - oldCenterPoint.y,\n };\n\n // 2D height => 3D depth\n const height = MathUtils.getLineLength(point1, point2);\n const oldHeight = MathUtils.getLineLength(op1, op2);\n const offsetHeight = height - oldHeight; // 3D depth\n\n // 2D width => 3D width\n const width = MathUtils.getLineLength(point2, point3);\n const oldWidth = MathUtils.getLineLength(op2, op3);\n const offsetWidth = width - oldWidth; // 3D width\n\n let { newBoxParams } = pointCloudInstance.getNewBoxByBackUpdate(\n offsetCenterPoint,\n offsetWidth,\n offsetHeight,\n selectedPointCloudBox,\n );\n\n return newBoxParams;\n};\n/**\n * NewBox synchronize sideView\n * @param boxParams\n * @param newPolygon TODO! Need to add type\n */\nexport const synchronizeSideView = (\n boxParams: IPointCloudBox,\n newPolygon: any,\n sideViewInstance: PointCloudAnnotation | undefined,\n url: string,\n) => {\n if (!sideViewInstance) {\n return;\n }\n\n const { pointCloud2dOperation, pointCloudInstance } = sideViewInstance;\n\n // Create PointCloud\n pointCloudInstance.loadPCDFileByBox(url, boxParams, {\n width: DEFAULT_SCOPE,\n depth: DEFAULT_SCOPE,\n });\n const { cameraPositionVector } = pointCloudInstance.updateOrthoCamera(\n boxParams,\n EPerspectiveView.Left,\n );\n\n pointCloudInstance.setInitCameraPosition(cameraPositionVector);\n\n // Create Draw Polygon\n const { polygon2d, zoom } = pointCloudInstance.getBoxSidePolygon2DCoordinate(boxParams);\n\n // Synchronize SidePointCloud zoom with PointCloud2dOperation\n pointCloudInstance.camera.zoom = zoom;\n pointCloudInstance.camera.updateProjectionMatrix();\n pointCloudInstance.render();\n\n // Update PolygonView to default zoom and currentPos.\n pointCloud2dOperation.initPosition();\n pointCloud2dOperation.zoomChangeOnCenter(zoom);\n pointCloud2dOperation.setResultAndSelectedID(\n [\n {\n id: newPolygon.id,\n valid: boxParams.valid,\n pointList: polygon2d,\n textAttribute: '',\n isRect: true,\n attribute: boxParams.attribute,\n },\n ],\n newPolygon.id,\n );\n};\n\n/**\n * NewBox synchronize backView\n * @param boxParams\n * @param newPolygon TODO! Need to add type\n */\nexport const synchronizeBackView = (\n boxParams: IPointCloudBox,\n newPolygon: any,\n BackViewInstance: PointCloudAnnotation,\n url: string,\n) => {\n if (!BackViewInstance) {\n return;\n }\n\n const {\n pointCloud2dOperation: backPointCloudPolygonOperation,\n pointCloudInstance: backPointCloud,\n } = BackViewInstance;\n\n // Create PointCloud\n backPointCloud.loadPCDFileByBox(url, boxParams, { height: DEFAULT_SCOPE, depth: DEFAULT_SCOPE });\n const { cameraPositionVector } = backPointCloud.updateOrthoCamera(\n boxParams,\n EPerspectiveView.Back,\n );\n\n backPointCloud.setInitCameraPosition(cameraPositionVector);\n\n // Create Draw Polygon\n const { polygon2d, zoom } = backPointCloud.getBoxBackPolygon2DCoordinate(boxParams);\n\n // Synchronize SidePointCloud zoom with PointCloud2dOperation\n backPointCloud.camera.zoom = zoom;\n backPointCloud.camera.updateProjectionMatrix();\n backPointCloud.render();\n\n // Update PolygonView to default zoom and currentPos.\n backPointCloudPolygonOperation.initPosition();\n backPointCloudPolygonOperation.zoomChangeOnCenter(zoom);\n backPointCloudPolygonOperation.setResultAndSelectedID(\n [\n {\n id: newPolygon.id,\n valid: boxParams.valid,\n pointList: polygon2d,\n textAttribute: '',\n isRect: true,\n attribute: boxParams.attribute,\n },\n ],\n newPolygon.id,\n );\n};\n\n/**\n * NewBox synchronize TopView\n * @param boxParams\n * @param newPolygon TODO! Need to add type\n */\nexport const synchronizeTopView = (\n newBoxParams: IPointCloudBox,\n newPolygon: any,\n topViewInstance?: PointCloudAnnotation,\n mainViewInstance?: PointCloud,\n) => {\n if (!topViewInstance || !mainViewInstance) {\n return;\n }\n\n // Control the 3D view data to create box\n mainViewInstance.generateBox(newBoxParams, newPolygon.id);\n mainViewInstance.updateCameraByBox(newBoxParams, EPerspectiveView.Top);\n mainViewInstance.render();\n\n const { pointCloud2dOperation, pointCloudInstance } = topViewInstance;\n\n const { polygon2d } = pointCloudInstance.getBoxTopPolygon2DCoordinate(newBoxParams);\n\n const newPolygonList = [...pointCloud2dOperation.polygonList];\n const oldPolygon = newPolygonList.find((v) => v.id === newPolygon.id);\n if (oldPolygon) {\n oldPolygon.pointList = polygon2d;\n } else {\n newPolygonList.push({\n id: newPolygon.id,\n pointList: polygon2d,\n textAttribute: '',\n isRect: true,\n valid: newBoxParams.valid ?? true,\n });\n }\n\n pointCloud2dOperation.setResultAndSelectedID(newPolygonList, newPolygon.id);\n};\n\nexport const usePointCloudViews = () => {\n const ptCtx = useContext(PointCloudContext);\n const {\n topViewInstance,\n sideViewInstance,\n backViewInstance,\n mainViewInstance,\n addPointCloudBox,\n setSelectedIDs,\n selectedIDs,\n pointCloudBoxList,\n hideAttributes,\n } = ptCtx;\n const { addHistory, initHistory, pushHistoryUnderUpdatePolygon } = useHistory();\n const { selectedPolygon } = usePolygon();\n\n const { updateSelectedBox, updateSelectedBoxes, getPointCloudByID } = useSingleBox();\n const { currentData, config } = useSelector((state: AppState) => {\n const { stepList, step, imgList, imgIndex } = state.annotation;\n\n return {\n currentData: imgList[imgIndex],\n config: jsonParser(StepUtils.getCurrentStepInfo(step, stepList).config),\n };\n });\n const dispatch = useDispatch();\n const { selectedBox } = useSingleBox();\n const { t } = useTranslation();\n\n const selectedPointCloudBox = selectedBox?.info;\n\n if (!topViewInstance || !sideViewInstance || !backViewInstance) {\n return {\n topViewAddBox: () => {},\n topViewSelectedChanged: () => {},\n sideViewUpdateBox: () => {},\n backViewUpdateBox: () => {},\n };\n }\n\n const { pointCloudInstance: topViewPointCloud } = topViewInstance;\n\n const mainViewGenBox = (boxParams: IPointCloudBox) => {\n mainViewInstance?.generateBox(boxParams);\n mainViewInstance?.controls.update();\n mainViewInstance?.render();\n };\n\n /** Top-view create box from 2D */\n const topViewAddBox = ({\n newPolygon,\n size,\n imgList,\n trackConfigurable,\n zoom,\n }: {\n newPolygon: any;\n size: ISize;\n imgList: IFileItem[];\n trackConfigurable?: boolean;\n zoom: number;\n }) => {\n const extraData = {\n attribute: topViewInstance.pointCloud2dOperation.defaultAttribute ?? '',\n };\n\n if (trackConfigurable === true) {\n Object.assign(extraData, {\n trackID: PointCloudUtils.getNextTrackID({\n imgList: [], // Just calculate by the pointCloudBoxList in current page.\n extraBoxList: pointCloudBoxList,\n }),\n });\n }\n\n const newParams = topViewPolygon2PointCloud(\n newPolygon,\n size,\n topViewPointCloud,\n undefined,\n extraData,\n );\n const polygonOperation = topViewInstance?.pointCloud2dOperation;\n\n const boxParams: IPointCloudBox = newParams;\n\n // If the count is less than lowerLimitPointsNumInBox, needs to delete it\n if (\n config?.lowerLimitPointsNumInBox &&\n typeof newParams.count === 'number' &&\n newParams.count < config.lowerLimitPointsNumInBox\n ) {\n message.info(t('LowerLimitPointsNumInBox', { num: config.lowerLimitPointsNumInBox }));\n polygonOperation.deletePolygon(newParams.id);\n return;\n }\n\n const isBoxHidden = hideAttributes.includes(newPolygon.attribute);\n const newPointCloudList = addPointCloudBox(boxParams);\n\n /** If new box is hidden will not active target point box */\n if (isBoxHidden) {\n setSelectedIDs([]);\n } else {\n setSelectedIDs(boxParams.id);\n polygonOperation.setSelectedIDs([newPolygon.id]);\n syncPointCloudViews(PointCloudView.Top, newPolygon, boxParams, zoom, newPointCloudList);\n }\n\n addHistory({ newBoxParams: boxParams });\n };\n\n /** Top-view selected changed and render to other view */\n const topViewSelectedChanged = (\n newSelectedBox?: IPointCloudBox,\n newPointCloudList?: IPointCloudBox[],\n ) => {\n const boxParams = newSelectedBox ?? selectedBox?.info;\n const polygonOperation = topViewInstance?.pointCloud2dOperation;\n\n polygonOperation.setSelectedIDs(selectedIDs);\n\n if (selectedIDs.length === 0 || !polygonOperation) {\n return;\n }\n\n const polygon = polygonOperation.selectedPolygon;\n\n if (selectedIDs.length === 1 && boxParams) {\n syncPointCloudViews(PointCloudView.Top, polygon, boxParams, undefined, newPointCloudList);\n return;\n }\n };\n\n /**\n * Update box from view\n * @param newPolygon\n * @param originPolygon\n * @param fromView Back or Side\n */\n const viewUpdateBox = (newPolygon: any, originPolygon: any, fromView: string) => {\n if (selectedPointCloudBox) {\n let transfer2PointCloud;\n let newBoxParams;\n\n // Switch the right function.\n switch (fromView) {\n case PointCloudView.Back:\n transfer2PointCloud = backViewPolygon2PointCloud;\n break;\n case PointCloudView.Side:\n transfer2PointCloud = sideViewPolygon2PointCloud;\n break;\n\n default:\n transfer2PointCloud = sideViewPolygon2PointCloud;\n break;\n }\n\n newBoxParams = transfer2PointCloud(\n newPolygon,\n originPolygon,\n selectedPointCloudBox,\n sideViewInstance.pointCloudInstance,\n );\n // Update count\n if (mainViewInstance) {\n const { count } = mainViewInstance.getSensesPointZAxisInPolygon(\n getCuboidFromPointCloudBox(newBoxParams).polygonPointList as IPolygonPoint[],\n [\n newBoxParams.center.z - newBoxParams.depth / 2,\n newBoxParams.center.z + newBoxParams.depth / 2,\n ],\n );\n\n newBoxParams = {\n ...newBoxParams,\n count,\n };\n }\n\n const newPointCloudList = updateSelectedBox(newBoxParams);\n syncPointCloudViews(fromView, newPolygon, newBoxParams, undefined, newPointCloudList);\n return newPointCloudList;\n }\n };\n\n const sideViewUpdateBox = (newPolygon: any, originPolygon: any) => {\n viewUpdateBox(newPolygon, originPolygon, PointCloudView.Side);\n };\n\n const backViewUpdateBox = (newPolygon: any, originPolygon: any) => {\n viewUpdateBox(newPolygon, originPolygon, PointCloudView.Back);\n };\n\n /**\n * Top view box updated and sync views\n * @param polygon\n * @param size\n */\n const topViewUpdateBox = (updateList: UpdatePolygonByDragList, size: ISize) => {\n // If the selected Object is Polygon.\n if (selectedPolygon) {\n /**\n * Notice. The Polygon need to be converted to pointCloud coordinate system for storage.\n */\n const polygon = updateList[0].newPolygon;\n polygon.pointList = polygon.pointList.map((v) =>\n PointCloudUtils.transferCanvas2World(v, size),\n );\n\n pushHistoryUnderUpdatePolygon(updateList[0].newPolygon);\n return;\n }\n\n const updatePointCloudList: IPointCloudBox[] = updateList.map(({ newPolygon: polygon }) => {\n const pointCloudBox = getPointCloudByID(polygon.id);\n\n const newBoxParams = topViewPolygon2PointCloud(\n polygon,\n size,\n topViewInstance.pointCloudInstance,\n pointCloudBox,\n );\n\n return newBoxParams;\n });\n\n /**\n * If single target updated, use syncPointCloudViews to sync all views and render\n * If multi targets updated, use updateSelectedBoxes and update highlight by syncAllViewPointCloudColor\n */\n if (updatePointCloudList.length === 1) {\n const { newPolygon: polygon } = updateList[0];\n const newPointCloudBoxList = updateSelectedBoxes(updatePointCloudList);\n\n syncPointCloudViews(\n PointCloudView.Top,\n polygon,\n updatePointCloudList[0],\n undefined,\n newPointCloudBoxList,\n );\n } else {\n const newPointCloudBoxList = updateSelectedBoxes(updatePointCloudList);\n if (newPointCloudBoxList) {\n ptCtx.syncAllViewPointCloudColor(newPointCloudBoxList);\n }\n }\n };\n\n /**\n * Sync views' data from omit view, regenerate and highlight box on 3D-view\n * @param omitView\n * @param polygon\n * @param boxParams\n */\n const syncPointCloudViews = async (\n omitView: string,\n polygon: any,\n boxParams: IPointCloudBox,\n zoom?: number,\n newPointCloudBoxList?: IPointCloudBox[],\n ) => {\n const dataUrl = currentData?.url;\n\n if (newPointCloudBoxList) {\n // Wait for the mainPointCloudData.\n await ptCtx.syncAllViewPointCloudColor(newPointCloudBoxList);\n }\n\n const viewToBeUpdated = {\n [PointCloudView.Side]: () => {\n synchronizeSideView(boxParams, polygon, sideViewInstance, dataUrl);\n },\n [PointCloudView.Back]: () => {\n if (backViewInstance) {\n synchronizeBackView(boxParams, polygon, backViewInstance, dataUrl);\n }\n },\n [PointCloudView.Top]: () => {\n synchronizeTopView(boxParams, polygon, topViewInstance, mainViewInstance);\n },\n };\n\n Object.keys(viewToBeUpdated).forEach((key) => {\n if (key !== omitView) {\n viewToBeUpdated[key]();\n }\n });\n if (zoom) {\n mainViewInstance?.updateCameraZoom(zoom);\n }\n\n mainViewGenBox(boxParams);\n };\n\n const pointCloudBoxListUpdated = (newBoxes: IPointCloudBox[]) => {\n topViewInstance.updatePolygonList(newBoxes);\n mainViewInstance?.generateBoxes(newBoxes);\n };\n\n const initPointCloud3d = (size: ISize) => {\n if (!mainViewInstance) {\n return;\n }\n\n const orthographicParams = {\n left: -size.width / 2,\n right: size.width / 2,\n top: size.height / 2,\n bottom: -size.height / 2,\n near: 100,\n far: -100,\n };\n\n mainViewInstance.initOrthographicCamera(orthographicParams);\n mainViewInstance.initRenderer();\n mainViewInstance.render();\n };\n\n /**\n * Update the data of pointCloudView when the page change.\n * @returns\n */\n const updatePointCloudData = async (newData = currentData) => {\n if (!newData?.url || !mainViewInstance) {\n return;\n }\n\n SetPointCloudLoading(dispatch, true);\n await mainViewInstance.loadPCDFile(newData.url, config?.radius ?? DEFAULT_RADIUS);\n\n // Clear All Data\n pointCloudBoxList.forEach((v) => {\n mainViewInstance?.removeObjectByName(v.id);\n });\n\n let boxParamsList: any[] = [];\n let polygonList = [];\n if (newData.result) {\n boxParamsList = PointCloudUtils.getBoxParamsFromResultList(newData.result);\n polygonList = PointCloudUtils.getPolygonListFromResultList(newData.result);\n\n // Add Init Box\n boxParamsList.forEach((v: IPointCloudBox) => {\n mainViewInstance?.generateBox(v);\n });\n\n ptCtx.syncAllViewPointCloudColor(boxParamsList);\n ptCtx.setPointCloudResult(boxParamsList);\n ptCtx.setPolygonList(polygonList);\n } else {\n ptCtx.setPointCloudResult([]);\n ptCtx.setPolygonList([]);\n }\n initHistory({ pointCloudBoxList: boxParamsList, polygonList });\n\n mainViewInstance.updateTopCamera();\n\n const valid = jsonParser(newData.result)?.valid ?? true;\n ptCtx.setPointCloudValid(valid);\n\n // Clear other view data during initialization\n ptCtx.sideViewInstance?.clearAllData();\n ptCtx.backViewInstance?.clearAllData();\n\n // TopView Data Update\n /**\n * Listen to flip\n * 1. Init\n * 2. Reload PointCloud\n * 3. Clear Polygon\n */\n topViewInstance.updateData(newData.url, newData.result, {\n radius: config?.radius ?? DEFAULT_RADIUS,\n });\n SetPointCloudLoading(dispatch, false);\n };\n\n return {\n topViewAddBox,\n topViewSelectedChanged,\n topViewUpdateBox,\n sideViewUpdateBox,\n backViewUpdateBox,\n pointCloudBoxListUpdated,\n initPointCloud3d,\n updatePointCloudData,\n };\n};\n"],"names":["this"],"mappings":"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"}
@@ -1 +1 @@
1
- import{getFormatSize as It}from"../../components/customResizeHook/index.js";import{ESubmitType as W}from"../../constant/index.js";import Tt from"../../constant/styleString.js";import{ANNOTATION_ACTIONS as r}from"../Actions.js";import{jsonParser as H}from"../../utils/index.js";import $ from"../../utils/AnnotationDataUtils.js";import{ConfigUtils as Lt}from"../../utils/ConfigUtils.js";import{composeResultWithBasicImgInfo as nt,composeResult as ot}from"../../utils/data.js";import z from"../../utils/StepUtils.js";import st from"../../utils/ToolUtils.js";import{MathUtils as lt,CommonToolUtils as Et,AnnotationEngine as St,ImgUtils as At}from"@labelbee/lb-annotation";import{PointCloudUtils as it,i18n as w}from"@labelbee/lb-utils";import{Modal as rt}from"antd";import{message as ut}from"antd/es";import vt from"lodash";import{SetAnnotationLoading as K}from"./actionCreators.js";var Dt=Object.defineProperty,yt=Object.defineProperties,Pt=Object.getOwnPropertyDescriptors,at=Object.getOwnPropertySymbols,Rt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable,ct=(t,e,l)=>e in t?Dt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[e]=l,o=(t,e)=>{for(var l in e||(e={}))Rt.call(e,l)&&ct(t,l,e[l]);if(at)for(var l of at(e))Ot.call(e,l)&&ct(t,l,e[l]);return t},u=(t,e)=>yt(t,Pt(e)),dt=(t,e,l)=>new Promise((m,p)=>{var I=f=>{try{E(l.next(f))}catch(P){p(P)}},L=f=>{try{E(l.throw(f))}catch(P){p(P)}},E=f=>f.done?m(f.value):Promise.resolve(f.value).then(I,L);E((l=l.apply(t,e)).next())});const b=(t,e)=>t.find(l=>l.step===e),pt={annotationEngine:null,toolInstance:null,imgList:[],config:"{}",imgIndex:-1,basicIndex:0,imgPageSize:1,step:1,stepList:[],imgNode:new Image,basicResultList:[],resultList:[],stepProgress:0,loading:!1,triggerEventAfterIndexChanged:!1,pointCloudLoading:!1,checkMode:!1},Ct=t=>{const{imgList:e,imgPageSize:l}=t;return Math.ceil(e.length/l)},gt=(t,e)=>t.reduce((l,m)=>{if(m){const p=m.result;if(H(p)[`step_${e}`])return l+1}return l},0)/t.length,ht=(t,e)=>{const{step:l,stepList:m}=t,p=z.getCurrentStepInfo(l,m),I=Lt.jsonParser(p.config);if(st.isVideoTool(p==null?void 0:p.tool)||st.isPointCloudTool(p==null?void 0:p.tool))return;const L=document.getElementById("toolContainer");if(!L)throw"Not exist dom named id-toolContainer";const E=It({width:window.innerWidth,height:window.innerHeight}),f=new St({container:L,toolName:p.tool,size:E,imgNode:e,config:I,style:JSON.parse(Tt)});return{toolInstance:f==null?void 0:f.toolInstance,annotationEngine:f}},bt=(t,e)=>(l,m)=>dt(void 0,null,function*(){const{stepList:p,step:I}=m().annotation,L=z.currentToolIsVideo(I,p),E=z.currentToolIsPointCloud(I,p);if(K(l,!0),yield l(Nt(t)),L||E){l(Ut(t));return}l(wt(t,e))}),Nt=t=>(e,l)=>dt(void 0,null,function*(){const{getFileData:m,imgList:p}=l().annotation;if(m){const I=yield m(p[t],t);e({type:r.SET_FILE_DATA,payload:{fileData:I,index:t}})}}),Ut=t=>e=>{K(e,!1),e({type:r.LOAD_FILE_DATA,payload:{nextIndex:t}})},wt=(t,e)=>(l,m)=>{var p;const{toolInstance:I,imgList:L}=m().annotation,E=(p=L==null?void 0:L[t])==null?void 0:p.url;At.load(E).then(f=>{K(l,!1),l({type:r.LOAD_FILE_DATA,payload:{imgNode:f,nextIndex:t,nextBasicIndex:e}})}).catch(()=>{K(l,!1),I==null||I.setErrorImg(),l({type:r.LOAD_FILE_DATA,payload:{nextIndex:t,nextBasicIndex:e}})})},xt=({toolInstance:t,imgList:e,imgIndex:l,stepList:m,step:p=1})=>{var I,L,E,f;const P=((I=e[l])==null?void 0:I.result)||"",[x,B,F]=(L=t==null?void 0:t.exportData())!=null?L:[],j=(f=(E=t==null?void 0:t.exportCustomData)==null?void 0:E.call(t))!=null?f:{},G=nt(P,B),V=ot(G,{step:p,stepList:m},{rect:x},j);return e.map((N,k)=>k===l?o(u(o({},N),{result:V}),F):o({},N))},Bt=(t=o({},pt),e)=>{var l,m,p,I,L,E,f,P,x,B,F,j,G,V,N,k,X,Y,q,J,Z,Q;switch(e.type){case r.INIT_ALL_STATE:return o(o({},t),pt);case r.UPDATE_TOOL_INSTANCE:return u(o({},t),{toolInstance:e.payload.toolInstance});case r.UPDATE_IMG_LIST:return u(o({},t),{imgList:e.payload.imgList});case r.CALC_STEP_PROGRESS:{const{imgList:n,step:s}=t,i=gt(n,s);return u(o({},t),{stepProgress:i})}case r.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:s,step:i,stepList:a,toolInstance:d,onSubmit:c,resultList:T}=t;if(!d||!n[s])return t;const g=((l=n[s])==null?void 0:l.result)||"",[,_,S]=(m=d==null?void 0:d.exportData())!=null?m:[],A=(I=(p=d==null?void 0:d.exportCustomData)==null?void 0:p.call(d))!=null?I:{},y=nt(g,_),O=ot(y,{step:i,stepList:a},{rect:T},A),v=t.imgList.map((R,D)=>{if(D===s){const U=$.dataCorrection(O,g,i,a);return o(u(o({},R),{result:U}),S)}return R});if(((L=e.payload)==null?void 0:L.submitType)===W.SyncImgList)return u(o({},t),{imgList:v});c&&c([v[s]],(E=e.payload)==null?void 0:E.submitType,s,v);const C=gt(v,i);return u(o({},t),{stepProgress:C,imgList:v})}case r.SAVE_RESULT:{const{imgList:n,imgIndex:s,onSave:i}=t;return i==null||i(n[s],s,n),o({},t)}case r.SUBMIT_RESULT:{const{imgList:n,basicIndex:s,resultList:i,toolInstance:a,basicResultList:d}=t;if(!a)return t;const[c]=(f=a==null?void 0:a.exportData())!=null?f:[];let T=c;if((d==null?void 0:d.length)>0){const g=(P=d[s])==null?void 0:P.id,_=c.map(S=>u(o({},S),{sourceID:g}));T=vt.cloneDeep(i).filter(S=>S.sourceID!==g),T.push(..._)}return u(o({},t),{resultList:T,imgList:n})}case r.SET_BASIC_INDEX:{const{toolInstance:n,step:s,imgList:i,imgIndex:a,stepList:d,annotationEngine:c,resultList:T,basicResultList:g}=t;if(!n||!c)return t;const _=e.payload.basicIndex,S=(x=g[_])==null?void 0:x.id,A=H((B=i[a])==null?void 0:B.result),y=(T||[]).filter(U=>U.sourceID===S),O=b(d,s),{dataSourceStep:v,tool:C}=O,R=b(d,v);let D=[];return v&&C&&(D=(F=A[`step_${v}`])==null?void 0:F.result,(D==null?void 0:D.length)>0?(c==null||c.setBasicInfo(R.tool,D[_]),c==null||c.launchOperation()):(c==null||c.setBasicInfo(R.tool),c==null||c.forbidOperation(),ut.info(w.t("NoDependency")))),n==null||n.setResult(y),n==null||n.history.initRecord(y,!0),u(o({},t),{basicIndex:_})}case r.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED:{const{triggerEventAfterIndexChanged:n}=e.payload;return u(o({},t),{triggerEventAfterIndexChanged:!!n})}case r.LOAD_FILE_DATA:{const{imgList:n,step:s,toolInstance:i,annotationEngine:a,stepList:d}=t;if(!i)return u(o({},t),{imgIndex:e.payload.nextIndex});const c=z.getCurrentStepInfo(s,d),{nextIndex:T,imgNode:g,nextBasicIndex:_,imgError:S}=e.payload,A=_!=null?_:0,y=H((j=n[T])==null?void 0:j.result),O=y[`step_${c.step}`],v=!O,C={rotate:(G=y.rotate)!=null?G:0,valid:(V=y.valid)!=null?V:!0};g&&S!==!0?a==null||a.setImgNode(g,C):i==null||i.setValid(C.valid);const R=b(d,c.step),{dataSourceStep:D,tool:U}=R,tt=b(d,D),et=D&&U,h=(k=(N=y[`step_${D}`])==null?void 0:N.result)!=null?k:[],M=$.getInitialResultList(O==null?void 0:O.result,i,R,h,v);if(a==null||a.launchOperation(),et&&((h==null?void 0:h.length)>0?a==null||a.setBasicInfo(tt.tool,h[A]):(a==null||a.setBasicInfo(tt.tool),a==null||a.forbidOperation(),ut.info(w.t("NoDependency")))),c.tool!=="check"){const _t=(Y=(X=h[A])==null?void 0:X.id)!=null?Y:"",ft=et?M.filter(mt=>Et.isSameSourceID(mt.sourceID,_t)):M;i==null||i.history.initRecord(M,!0),i==null||i.setResult(ft)}return u(o({},t),{imgIndex:T,basicIndex:A,basicResultList:h,resultList:M})}case r.UPDATE_ANNOTATION_CONFIG:return u(o({},t),{config:(q=e.payload.config)!=null?q:"{}"});case r.SET_TASK_STEP_LIST:{const{stepList:n}=e.payload;return u(o({},t),{stepList:n})}case r.SET_TASK_CONFIG:{const{stepList:n,step:s}=e.payload;return u(o({},t),{stepList:n,step:s})}case r.INIT_TOOL:{const{imgNode:n}=t,s=ht(t,n);if(s){const{toolInstance:i,annotationEngine:a}=s;return u(o({},t),{toolInstance:i,annotationEngine:a})}return o({},t)}case r.SET_TOOL:{const n=(J=e.payload)==null?void 0:J.instance;return n?u(o({},t),{toolInstance:n}):o({},t)}case r.UPDATE_ON_SUBMIT:return u(o({},t),{onSubmit:e.payload.onSubmit});case r.UPDATE_ON_SAVE:return u(o({},t),{onSave:e.payload.onSave});case r.UPDATE_ON_PAGE_CHANGE:return u(o({},t),{onPageChange:e.payload.onPageChange});case r.UPDATE_ON_STEP_CHANGE:return u(o({},t),{onStepChange:e.payload.onStepChange});case r.UPDATE_GET_FILE_DATA:return u(o({},t),{getFileData:e.payload.getFileData});case r.UPDATE_PAGE_SIZE:return u(o({},t),{pageSize:e.payload.pageSize});case r.UPDATE_LOAD_FILE_LIST:return u(o({},t),{loadFileList:e.payload.loadFileList});case r.UPDATE_BEFORE_ROTATE:return u(o({},t),{beforeRotate:e.payload.beforeRotate});case r.SKIP_BEFORE_PAGE_TURNING:return u(o({},t),{skipBeforePageTurning:e.payload.skipBeforePageTurning});case r.SET_FILE_DATA:{const{fileData:n,index:s}=e.payload,{imgList:i}=t,a=[...i];return a[s]=o(o({},a[s]),n),u(o({},t),{imgList:a})}case r.UPDATE_ROTATE:{const{toolInstance:n,beforeRotate:s}=t;return s&&s()===!1||n==null||n.updateRotate(),t}case r.UPDATE_ANNOTATION_VALID:{const{toolInstance:n}=t,s=(Z=n==null?void 0:n.valid)!=null?Z:!0;return rt.destroyAll(),rt.confirm({content:w.t(s?"updateValidFromValidToInValid":"updateValidFromInValidToValid"),onOk:()=>{n==null||n.setValid(!s)},okText:w.t("Confirm"),cancelText:w.t("Cancel")}),t}case r.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:s,imgList:i,step:a}=t;if(!n)return t;if(s===0||s>=i.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),t;const d=i[s-1].result;if(!d)return t;const c=$.copyResultChange(d,a,(Q=i[s].result)!=null?Q:"");i[s]=u(o({},i[s]),{result:c});const g=H(c)[`step_${a}`],_=(g==null?void 0:g.result)||[];return n==null||n.setResult(_),n==null||n.history.pushHistory(_),u(o({},t),{imgList:[...i]})}case r.SET_STEP:{const{stepList:n,annotationEngine:s}=t,{toStep:i}=e.payload;if(!s)return t;const a=b(n,i);return s==null||s.setToolName(a.tool,a.config),u(o({},t),{step:i,toolInstance:s==null?void 0:s.toolInstance})}case r.SET_LOADING:{const{loading:n}=e.payload;return u(o({},t),{loading:!!n})}case r.SET_POINT_CLOUD_LOADING:{const{pointCloudLoading:n}=e.payload;return u(o({},t),{pointCloudLoading:!!n})}case r.SET_CHECK_MODE:{const{checkMode:n}=e.payload;return u(o({},t),{checkMode:!!n})}case r.BATCH_UPDATE_TRACK_ID:{const{id:n,newID:s,rangeIndex:i,imgList:a}=e.payload,{imgIndex:d,onSubmit:c}=t,T=[],g=a.map((_,S)=>{if(lt.isInRange(S,i)){const A=u(o({},_),{result:it.batchUpdateTrackID({id:n,newID:s,result:_.result})});return T.push({imgIndex:S,newInfo:A}),A}return _});return c&&c([g[d]],W.BatchUpdateTrackID,d,g,{updateImgList:T}),u(o({},t),{imgList:g})}case r.BATCH_UPDATE_RESULT_BY_TRACK_ID:{const{id:n,newData:s,rangeIndex:i}=e.payload,{imgList:a,imgIndex:d,onSubmit:c}=t,T=[],g=a.map((_,S)=>{if(lt.isInRange(S,i)){const A=u(o({},_),{result:it.batchUpdateResultByTrackID({id:n,newData:s,result:_.result})});return T.push({imgIndex:S,newInfo:A}),A}return _});return c&&c([g[d]],W.BatchUpdateTrackID,d,g,{updateImgList:T}),u(o({},t),{imgList:g})}default:return t}};export{bt as LoadFileAndFileData,Bt as annotationReducer,xt as composeResultByToolInstance,b as getStepConfig,Ct as getTotalPage};
1
+ import{getFormatSize as It}from"../../components/customResizeHook/index.js";import{ESubmitType as W}from"../../constant/index.js";import Tt from"../../constant/styleString.js";import{ANNOTATION_ACTIONS as r}from"../Actions.js";import{jsonParser as H}from"../../utils/index.js";import $ from"../../utils/AnnotationDataUtils.js";import{ConfigUtils as Lt}from"../../utils/ConfigUtils.js";import{composeResultWithBasicImgInfo as nt,composeResult as ot}from"../../utils/data.js";import z from"../../utils/StepUtils.js";import st from"../../utils/ToolUtils.js";import{MathUtils as lt,CommonToolUtils as Et,AnnotationEngine as St,ImgUtils as At}from"@labelbee/lb-annotation";import{PointCloudUtils as it,i18n as w}from"@labelbee/lb-utils";import{Modal as rt}from"antd";import{message as ut}from"antd/es";import vt from"lodash";import{SetAnnotationLoading as K}from"./actionCreators.js";var Dt=Object.defineProperty,yt=Object.defineProperties,Pt=Object.getOwnPropertyDescriptors,at=Object.getOwnPropertySymbols,Rt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable,ct=(t,e,l)=>e in t?Dt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[e]=l,o=(t,e)=>{for(var l in e||(e={}))Rt.call(e,l)&&ct(t,l,e[l]);if(at)for(var l of at(e))Ot.call(e,l)&&ct(t,l,e[l]);return t},u=(t,e)=>yt(t,Pt(e)),dt=(t,e,l)=>new Promise((m,p)=>{var I=f=>{try{E(l.next(f))}catch(P){p(P)}},L=f=>{try{E(l.throw(f))}catch(P){p(P)}},E=f=>f.done?m(f.value):Promise.resolve(f.value).then(I,L);E((l=l.apply(t,e)).next())});const b=(t,e)=>t.find(l=>l.step===e),pt={annotationEngine:null,toolInstance:null,imgList:[],config:"{}",imgIndex:-1,basicIndex:0,imgPageSize:1,step:1,stepList:[],imgNode:new Image,basicResultList:[],resultList:[],stepProgress:0,loading:!1,triggerEventAfterIndexChanged:!1,pointCloudLoading:!1,checkMode:!1},Ct=t=>{const{imgList:e,imgPageSize:l}=t;return Math.ceil(e.length/l)},gt=(t,e)=>t.reduce((l,m)=>{if(m){const p=m.result;if(H(p)[`step_${e}`])return l+1}return l},0)/t.length,ht=(t,e)=>{const{step:l,stepList:m}=t,p=z.getCurrentStepInfo(l,m),I=Lt.jsonParser(p.config);if(st.isVideoTool(p==null?void 0:p.tool)||st.isPointCloudTool(p==null?void 0:p.tool))return;const L=document.getElementById("toolContainer");if(!L)throw"Not exist dom named id-toolContainer";const E=It({width:window.innerWidth,height:window.innerHeight}),f=new St({container:L,toolName:p.tool,size:E,imgNode:e,config:I,style:JSON.parse(Tt)});return{toolInstance:f==null?void 0:f.toolInstance,annotationEngine:f}},bt=(t,e)=>(l,m)=>dt(void 0,null,function*(){const{stepList:p,step:I}=m().annotation,L=z.currentToolIsVideo(I,p),E=z.currentToolIsPointCloud(I,p);if(K(l,!0),yield l(Nt(t)),L||E){l(Ut(t));return}l(wt(t,e))}),Nt=t=>(e,l)=>dt(void 0,null,function*(){const{getFileData:m,imgList:p}=l().annotation;if(m){const I=yield m(p[t],t);e({type:r.SET_FILE_DATA,payload:{fileData:I,index:t}})}}),Ut=t=>e=>{K(e,!1),e({type:r.LOAD_FILE_DATA,payload:{nextIndex:t}})},wt=(t,e)=>(l,m)=>{var p;const{toolInstance:I,imgList:L}=m().annotation,E=(p=L==null?void 0:L[t])==null?void 0:p.url;At.load(E).then(f=>{K(l,!1),l({type:r.LOAD_FILE_DATA,payload:{imgNode:f,nextIndex:t,nextBasicIndex:e}})}).catch(()=>{K(l,!1),I==null||I.setErrorImg(),l({type:r.LOAD_FILE_DATA,payload:{nextIndex:t,nextBasicIndex:e}})})},xt=({toolInstance:t,imgList:e,imgIndex:l,stepList:m,step:p=1})=>{var I,L,E,f;const P=((I=e[l])==null?void 0:I.result)||"",[x,B,F]=(L=t==null?void 0:t.exportData())!=null?L:[],j=(f=(E=t==null?void 0:t.exportCustomData)==null?void 0:E.call(t))!=null?f:{},G=nt(P,B),V=ot(G,{step:p,stepList:m},{rect:x},j);return e.map((N,k)=>k===l?o(u(o({},N),{result:V}),F):o({},N))},Bt=(t=o({},pt),e)=>{var l,m,p,I,L,E,f,P,x,B,F,j,G,V,N,k,X,Y,q,J,Z,Q;switch(e.type){case r.INIT_ALL_STATE:return o(o({},t),pt);case r.UPDATE_TOOL_INSTANCE:return u(o({},t),{toolInstance:e.payload.toolInstance});case r.UPDATE_IMG_LIST:return u(o({},t),{imgList:e.payload.imgList});case r.CALC_STEP_PROGRESS:{const{imgList:n,step:s}=t,i=gt(n,s);return u(o({},t),{stepProgress:i})}case r.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:s,step:i,stepList:a,toolInstance:d,onSubmit:c,resultList:T}=t;if(!d||!n[s])return t;const g=((l=n[s])==null?void 0:l.result)||"",[,_,S]=(m=d==null?void 0:d.exportData())!=null?m:[],A=(I=(p=d==null?void 0:d.exportCustomData)==null?void 0:p.call(d))!=null?I:{},y=nt(g,_),O=ot(y,{step:i,stepList:a},{rect:T},A),v=t.imgList.map((R,D)=>{if(D===s){const U=$.dataCorrection(O,g,i,a);return o(u(o({},R),{result:U}),S)}return R});if(((L=e.payload)==null?void 0:L.submitType)===W.SyncImgList)return u(o({},t),{imgList:v});c&&c([v[s]],(E=e.payload)==null?void 0:E.submitType,s,v);const C=gt(v,i);return u(o({},t),{stepProgress:C,imgList:v})}case r.SAVE_RESULT:{const{imgList:n,imgIndex:s,onSave:i}=t;return i==null||i(n[s],s,n),o({},t)}case r.SUBMIT_RESULT:{const{imgList:n,basicIndex:s,resultList:i,toolInstance:a,basicResultList:d}=t;if(!a)return t;const[c]=(f=a==null?void 0:a.exportData())!=null?f:[];let T=c;if((d==null?void 0:d.length)>0){const g=(P=d[s])==null?void 0:P.id,_=c.map(S=>u(o({},S),{sourceID:g}));T=vt.cloneDeep(i).filter(S=>S.sourceID!==g),T.push(..._)}return u(o({},t),{resultList:T,imgList:n})}case r.SET_BASIC_INDEX:{const{toolInstance:n,step:s,imgList:i,imgIndex:a,stepList:d,annotationEngine:c,resultList:T,basicResultList:g}=t;if(!n||!c)return t;const _=e.payload.basicIndex,S=(x=g[_])==null?void 0:x.id,A=H((B=i[a])==null?void 0:B.result),y=(T||[]).filter(U=>U.sourceID===S),O=b(d,s),{dataSourceStep:v,tool:C}=O,R=b(d,v);let D=[];return v&&C&&(D=(F=A[`step_${v}`])==null?void 0:F.result,(D==null?void 0:D.length)>0?(c==null||c.setBasicInfo(R.tool,D[_]),c==null||c.launchOperation()):(c==null||c.setBasicInfo(R.tool),c==null||c.forbidOperation(),ut.info(w.t("NoDependency")))),n==null||n.setResult(y),n==null||n.history.initRecord(y,!0),u(o({},t),{basicIndex:_})}case r.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED:{const{triggerEventAfterIndexChanged:n}=e.payload;return u(o({},t),{triggerEventAfterIndexChanged:!!n})}case r.LOAD_FILE_DATA:{const{imgList:n,step:s,toolInstance:i,annotationEngine:a,stepList:d}=t;if(!i)return u(o({},t),{imgIndex:e.payload.nextIndex});const c=z.getCurrentStepInfo(s,d),{nextIndex:T,imgNode:g,nextBasicIndex:_,imgError:S}=e.payload,A=_!=null?_:0,y=H((j=n[T])==null?void 0:j.result),O=y[`step_${c.step}`],v=!O,C={rotate:(G=y.rotate)!=null?G:0,valid:(V=y.valid)!=null?V:!0};g&&S!==!0?a==null||a.setImgNode(g,C):i==null||i.setValid(C.valid);const R=b(d,c.step),{dataSourceStep:D,tool:U}=R,tt=b(d,D),et=D&&U,h=(k=(N=y[`step_${D}`])==null?void 0:N.result)!=null?k:[],M=$.getInitialResultList(O==null?void 0:O.result,i,R,h,v);if(a==null||a.launchOperation(),et&&((h==null?void 0:h.length)>0?a==null||a.setBasicInfo(tt.tool,h[A]):(a==null||a.setBasicInfo(tt.tool),a==null||a.forbidOperation(),ut.info(w.t("NoDependency")))),c.tool!=="check"){const _t=(Y=(X=h[A])==null?void 0:X.id)!=null?Y:"",ft=et?M.filter(mt=>Et.isSameSourceID(mt.sourceID,_t)):M;i==null||i.history.initRecord(M,!0),i==null||i.setResult(ft)}return u(o({},t),{imgIndex:T,basicIndex:A,basicResultList:h,resultList:M})}case r.UPDATE_ANNOTATION_CONFIG:return u(o({},t),{config:(q=e.payload.config)!=null?q:"{}"});case r.SET_TASK_STEP_LIST:{const{stepList:n}=e.payload;return u(o({},t),{stepList:n})}case r.SET_TASK_CONFIG:{const{stepList:n,step:s}=e.payload;return u(o({},t),{stepList:n,step:s})}case r.INIT_TOOL:{const{imgNode:n}=t,s=ht(t,n);if(s){const{toolInstance:i,annotationEngine:a}=s;return u(o({},t),{toolInstance:i,annotationEngine:a})}return o({},t)}case r.SET_TOOL:{const n=(J=e.payload)==null?void 0:J.instance;return n?u(o({},t),{toolInstance:n}):o({},t)}case r.UPDATE_ON_SUBMIT:return u(o({},t),{onSubmit:e.payload.onSubmit});case r.UPDATE_ON_SAVE:return u(o({},t),{onSave:e.payload.onSave});case r.UPDATE_ON_PAGE_CHANGE:return u(o({},t),{onPageChange:e.payload.onPageChange});case r.UPDATE_ON_STEP_CHANGE:return u(o({},t),{onStepChange:e.payload.onStepChange});case r.UPDATE_GET_FILE_DATA:return u(o({},t),{getFileData:e.payload.getFileData});case r.UPDATE_PAGE_SIZE:return u(o({},t),{pageSize:e.payload.pageSize});case r.UPDATE_LOAD_FILE_LIST:return u(o({},t),{loadFileList:e.payload.loadFileList});case r.UPDATE_BEFORE_ROTATE:return u(o({},t),{beforeRotate:e.payload.beforeRotate});case r.SKIP_BEFORE_PAGE_TURNING:return u(o({},t),{skipBeforePageTurning:e.payload.skipBeforePageTurning});case r.SET_FILE_DATA:{const{fileData:n,index:s}=e.payload,{imgList:i}=t,a=[...i];return a[s]=o(o({},a[s]),n),u(o({},t),{imgList:a})}case r.UPDATE_ROTATE:{const{toolInstance:n,beforeRotate:s}=t;return s&&s()===!1||n==null||n.updateRotate(),t}case r.UPDATE_ANNOTATION_VALID:{const{toolInstance:n}=t,s=(Z=n==null?void 0:n.valid)!=null?Z:!0;return rt.destroyAll(),rt.confirm({content:w.t(s?"updateValidFromValidToInValid":"updateValidFromInValidToValid"),onOk:()=>{n==null||n.setValid(!s)},okText:w.t("Confirm"),cancelText:w.t("Cancel")}),t}case r.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:s,imgList:i,step:a}=t;if(!n)return t;if(s===0||s>=i.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),t;const d=i[s-1].result;if(!d)return t;const c=$.copyResultChange(d,a,(Q=i[s].result)!=null?Q:"");i[s]=u(o({},i[s]),{result:c});const g=H(c)[`step_${a}`],_=(g==null?void 0:g.result)||[];return n==null||n.setResult(_),n==null||n.history.pushHistory(_),n==null||n.asyncData(i[s]),u(o({},t),{imgList:[...i]})}case r.SET_STEP:{const{stepList:n,annotationEngine:s}=t,{toStep:i}=e.payload;if(!s)return t;const a=b(n,i);return s==null||s.setToolName(a.tool,a.config),u(o({},t),{step:i,toolInstance:s==null?void 0:s.toolInstance})}case r.SET_LOADING:{const{loading:n}=e.payload;return u(o({},t),{loading:!!n})}case r.SET_POINT_CLOUD_LOADING:{const{pointCloudLoading:n}=e.payload;return u(o({},t),{pointCloudLoading:!!n})}case r.SET_CHECK_MODE:{const{checkMode:n}=e.payload;return u(o({},t),{checkMode:!!n})}case r.BATCH_UPDATE_TRACK_ID:{const{id:n,newID:s,rangeIndex:i,imgList:a}=e.payload,{imgIndex:d,onSubmit:c}=t,T=[],g=a.map((_,S)=>{if(lt.isInRange(S,i)){const A=u(o({},_),{result:it.batchUpdateTrackID({id:n,newID:s,result:_.result})});return T.push({imgIndex:S,newInfo:A}),A}return _});return c&&c([g[d]],W.BatchUpdateTrackID,d,g,{updateImgList:T}),u(o({},t),{imgList:g})}case r.BATCH_UPDATE_RESULT_BY_TRACK_ID:{const{id:n,newData:s,rangeIndex:i}=e.payload,{imgList:a,imgIndex:d,onSubmit:c}=t,T=[],g=a.map((_,S)=>{if(lt.isInRange(S,i)){const A=u(o({},_),{result:it.batchUpdateResultByTrackID({id:n,newData:s,result:_.result})});return T.push({imgIndex:S,newInfo:A}),A}return _});return c&&c([g[d]],W.BatchUpdateTrackID,d,g,{updateImgList:T}),u(o({},t),{imgList:g})}default:return t}};export{bt as LoadFileAndFileData,Bt as annotationReducer,xt as composeResultByToolInstance,b as getStepConfig,Ct as getTotalPage};
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sources":["../../../src/store/annotation/reducer.ts"],"sourcesContent":["import { getFormatSize } from '@/components/customResizeHook';\nimport { ESubmitType } from '@/constant';\nimport styleString from '@/constant/styleString';\nimport { ANNOTATION_ACTIONS } from '@/store/Actions';\nimport { IFileItem } from '@/types/data';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport AnnotationDataUtils from '@/utils/AnnotationDataUtils';\nimport { ConfigUtils } from '@/utils/ConfigUtils';\nimport { composeResult, composeResultWithBasicImgInfo } from '@/utils/data';\nimport StepUtils from '@/utils/StepUtils';\nimport ToolUtils from '@/utils/ToolUtils';\nimport { AnnotationEngine, CommonToolUtils, ImgUtils, MathUtils } from '@labelbee/lb-annotation';\nimport { i18n, PointCloudUtils } from '@labelbee/lb-utils';\nimport { Modal } from 'antd';\nimport { message } from 'antd/es';\nimport _ from 'lodash';\nimport { SetAnnotationLoading } from './actionCreators';\nimport { AnnotationActionTypes, AnnotationState } from './types';\n\nexport const getStepConfig = (stepList: any[], step: number) =>\n stepList.find((i) => i.step === step);\n\nconst initialState: AnnotationState = {\n annotationEngine: null,\n toolInstance: null,\n imgList: [],\n config: '{}',\n imgIndex: -1,\n basicIndex: 0,\n imgPageSize: 1,\n step: 1,\n stepList: [],\n imgNode: new Image(),\n basicResultList: [],\n resultList: [],\n stepProgress: 0,\n loading: false,\n triggerEventAfterIndexChanged: false,\n\n pointCloudLoading: false,\n checkMode: false,\n};\n\n/**\n * 获取当前文件列表的总页数\n * @param state\n */\nexport const getTotalPage = (state: AnnotationState) => {\n const { imgList, imgPageSize } = state;\n return Math.ceil(imgList.length / imgPageSize);\n};\n\nconst calcStepProgress = (fileList: any[], step: number) =>\n fileList.reduce((pre, i) => {\n if (i) {\n const resultStr = i.result;\n const resultObject = jsonParser(resultStr);\n if (resultObject[`step_${step}`]) {\n return pre + 1;\n }\n }\n return pre;\n }, 0) / fileList.length;\n\nconst updateToolInstance = (annotation: AnnotationState, imgNode: HTMLImageElement) => {\n const { step, stepList } = annotation;\n const stepConfig = StepUtils.getCurrentStepInfo(step, stepList);\n const config = ConfigUtils.jsonParser(stepConfig.config);\n\n // 视频工具不支持实例化\n if (ToolUtils.isVideoTool(stepConfig?.tool)) {\n return;\n }\n\n // TODO: 点云实例化对接\n if (ToolUtils.isPointCloudTool(stepConfig?.tool)) {\n return;\n }\n\n const container = document.getElementById('toolContainer');\n\n if (!container) {\n throw `Not exist dom named id-toolContainer`;\n }\n\n const canvasSize = getFormatSize({ width: window.innerWidth, height: window.innerHeight });\n const annotationEngine = new AnnotationEngine({\n container,\n toolName: stepConfig.tool,\n size: canvasSize,\n imgNode,\n config,\n style: JSON.parse(styleString),\n });\n\n return { toolInstance: annotationEngine?.toolInstance, annotationEngine };\n};\n\n/**\n * 初始化imgNode并加载数据\n * @param nextIndex\n * @param nextBasicIndex\n */\nexport const LoadFileAndFileData =\n (nextIndex: number, nextBasicIndex?: number): any =>\n async (dispatch: any, getState: any) => {\n const { stepList, step } = getState().annotation;\n const currentIsVideo = StepUtils.currentToolIsVideo(step, stepList);\n const currentIsPointCloud = StepUtils.currentToolIsPointCloud(step, stepList);\n\n SetAnnotationLoading(dispatch, true);\n\n await dispatch(TryGetFileDataByAPI(nextIndex));\n\n if (currentIsVideo || currentIsPointCloud) {\n dispatch(AfterVideoLoaded(nextIndex));\n return;\n }\n\n dispatch(AfterImageLoaded(nextIndex, nextBasicIndex));\n };\n\n/**\n * 支持并优先外部传入的获取文件接口\n * @param nextIndex\n */\nconst TryGetFileDataByAPI = (nextIndex: number) => async (dispatch: any, getState: any) => {\n const { getFileData, imgList } = getState().annotation;\n if (getFileData) {\n const fileData = await getFileData(imgList[nextIndex], nextIndex);\n dispatch({\n type: ANNOTATION_ACTIONS.SET_FILE_DATA,\n payload: {\n fileData,\n index: nextIndex,\n },\n });\n }\n};\n\nconst AfterVideoLoaded = (nextIndex: number) => (dispatch: any) => {\n SetAnnotationLoading(dispatch, false);\n\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n nextIndex,\n },\n });\n};\n\nconst AfterImageLoaded =\n (nextIndex: number, nextBasicIndex?: number) => (dispatch: any, getState: any) => {\n const { toolInstance, imgList } = getState().annotation;\n const url = imgList?.[nextIndex]?.url;\n ImgUtils.load(url)\n .then((imgNode: HTMLImageElement) => {\n SetAnnotationLoading(dispatch, false);\n\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n imgNode,\n nextIndex,\n nextBasicIndex,\n },\n });\n })\n .catch(() => {\n SetAnnotationLoading(dispatch, false);\n toolInstance?.setErrorImg();\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n nextIndex,\n nextBasicIndex,\n },\n });\n });\n };\n\nexport const composeResultByToolInstance = ({\n toolInstance,\n imgList,\n imgIndex,\n stepList,\n step = 1,\n}: {\n toolInstance: any;\n imgList: IFileItem[];\n imgIndex: number;\n stepList: IStepInfo[];\n step?: number;\n}) => {\n const oldResultString = imgList[imgIndex]?.result || '';\n const [resultList, basicImgInfo, extraData] = toolInstance?.exportData() ?? [];\n const customObject = toolInstance?.exportCustomData?.() ?? {};\n\n const resultWithBasicInfo = composeResultWithBasicImgInfo(oldResultString, basicImgInfo);\n const newResultString = composeResult(\n resultWithBasicInfo,\n { step, stepList },\n { rect: resultList },\n customObject,\n );\n\n return imgList.map((v, i) => {\n if (i === imgIndex) {\n return {\n ...v,\n result: newResultString,\n ...extraData,\n };\n }\n return {\n ...v,\n };\n });\n};\n\nexport const annotationReducer = (\n state = { ...initialState },\n action: AnnotationActionTypes,\n): AnnotationState => {\n switch (action.type) {\n case ANNOTATION_ACTIONS.INIT_ALL_STATE: {\n return {\n ...state,\n ...initialState,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE: {\n return {\n ...state,\n toolInstance: action.payload.toolInstance,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_IMG_LIST: {\n return {\n ...state,\n imgList: action.payload.imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.CALC_STEP_PROGRESS: {\n const { imgList, step } = state;\n\n const stepProgress = calcStepProgress(imgList, step);\n\n return {\n ...state,\n stepProgress,\n };\n }\n\n case ANNOTATION_ACTIONS.SUBMIT_FILE_DATA: {\n const { imgList, imgIndex, step, stepList, toolInstance, onSubmit, resultList } = state;\n if (!toolInstance || !imgList[imgIndex]) {\n return state;\n }\n\n const oldResultString = imgList[imgIndex]?.result || '';\n const [, basicImgInfo, extraData] = toolInstance?.exportData() ?? [];\n const customObject = toolInstance?.exportCustomData?.() ?? {};\n\n const resultWithBasicInfo = composeResultWithBasicImgInfo(oldResultString, basicImgInfo);\n const newResultString = composeResult(\n resultWithBasicInfo,\n { step, stepList },\n { rect: resultList },\n customObject,\n );\n\n const newImgList = state.imgList.map((v, i) => {\n if (i === imgIndex) {\n // Update Result\n const newResult = AnnotationDataUtils.dataCorrection(\n newResultString,\n oldResultString,\n step,\n stepList,\n );\n\n return {\n ...v,\n result: newResult,\n ...extraData,\n };\n }\n return v;\n });\n\n // Just for sync imgList\n if (action.payload?.submitType === ESubmitType.SyncImgList) {\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], action.payload?.submitType, imgIndex, newImgList);\n }\n\n const stepProgress = calcStepProgress(newImgList, step);\n return {\n ...state,\n stepProgress,\n imgList: newImgList,\n };\n }\n\n case ANNOTATION_ACTIONS.SAVE_RESULT: {\n const { imgList, imgIndex, onSave } = state;\n onSave?.(imgList[imgIndex], imgIndex, imgList);\n return {\n ...state,\n };\n }\n\n /**\n * For data storage in dependent states\n *\n * Features:\n * 1. Get Data from ToolInstance (If it use toolInstance)\n * 2. Filter Data By BasicResultList\n */\n case ANNOTATION_ACTIONS.SUBMIT_RESULT: {\n const { imgList, basicIndex, resultList, toolInstance, basicResultList } = state;\n if (!toolInstance) {\n return state;\n }\n\n const [exportResult] = toolInstance?.exportData() ?? [];\n\n let previousResultList = exportResult;\n\n if (basicResultList?.length > 0) {\n const sourceID = basicResultList[basicIndex]?.id;\n const newResultData = exportResult.map((i: any) => ({ ...i, sourceID }));\n previousResultList = _.cloneDeep(resultList).filter((i: any) => i.sourceID !== sourceID);\n previousResultList.push(...newResultData);\n }\n\n return {\n ...state,\n resultList: previousResultList,\n imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_BASIC_INDEX: {\n const {\n toolInstance,\n step,\n imgList,\n imgIndex,\n stepList,\n annotationEngine,\n resultList,\n basicResultList,\n } = state;\n\n if (!toolInstance || !annotationEngine) {\n return state;\n }\n\n const nextBasicIndex = action.payload.basicIndex;\n const sourceID = basicResultList[nextBasicIndex]?.id;\n\n const fileResult = jsonParser(imgList[imgIndex]?.result);\n const result = (resultList || []).filter((i) => i.sourceID === sourceID);\n\n const stepConfig = getStepConfig(stepList, step);\n\n const { dataSourceStep, tool } = stepConfig;\n const dependStepConfig = getStepConfig(stepList, dataSourceStep);\n let stepBasicResultList = [];\n\n if (dataSourceStep && tool) {\n stepBasicResultList = fileResult[`step_${dataSourceStep}`]?.result;\n\n if (stepBasicResultList?.length > 0) {\n annotationEngine?.setBasicInfo(\n dependStepConfig.tool,\n stepBasicResultList[nextBasicIndex],\n );\n annotationEngine?.launchOperation();\n } else {\n annotationEngine?.setBasicInfo(dependStepConfig.tool);\n annotationEngine?.forbidOperation();\n message.info(i18n.t('NoDependency'));\n }\n }\n\n toolInstance?.setResult(result);\n toolInstance?.history.initRecord(result, true);\n\n return {\n ...state,\n basicIndex: nextBasicIndex,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED: {\n const { triggerEventAfterIndexChanged } = action.payload;\n return {\n ...state,\n triggerEventAfterIndexChanged: !!triggerEventAfterIndexChanged,\n };\n }\n\n case ANNOTATION_ACTIONS.LOAD_FILE_DATA: {\n const { imgList, step, toolInstance, annotationEngine, stepList } = state;\n\n /**\n * TODO\n * Before: !toolInstance || !annotationEngine\n *\n * The roles of toolInstance and annotationEngine need to be clearly distinguished\n */\n if (!toolInstance) {\n return { ...state, imgIndex: action.payload.nextIndex };\n }\n\n const currentStepInfo = StepUtils.getCurrentStepInfo(step, stepList);\n\n const { nextIndex, imgNode, nextBasicIndex, imgError } = action.payload;\n const basicIndex = nextBasicIndex ?? 0;\n\n const fileResult = jsonParser(imgList[nextIndex]?.result);\n\n const stepResult = fileResult[`step_${currentStepInfo.step}`];\n\n const isInitData = !stepResult; // 是否为初始化数据\n\n const basicImgInfo = {\n rotate: fileResult.rotate ?? 0,\n valid: fileResult.valid ?? true,\n };\n\n if (imgNode && imgError !== true) {\n annotationEngine?.setImgNode(imgNode, basicImgInfo);\n } else {\n // Non-graphical tools to initialize base data\n\n toolInstance?.setValid(basicImgInfo.valid);\n }\n\n const stepConfig = getStepConfig(stepList, currentStepInfo.step);\n\n const { dataSourceStep, tool } = stepConfig;\n const dependStepConfig = getStepConfig(stepList, dataSourceStep);\n const hasDataSourceStep = dataSourceStep && tool;\n const stepBasicResultList = fileResult[`step_${dataSourceStep}`]?.result ?? [];\n\n const result = AnnotationDataUtils.getInitialResultList(\n stepResult?.result,\n toolInstance,\n stepConfig,\n stepBasicResultList,\n isInitData,\n );\n\n annotationEngine?.launchOperation();\n\n if (hasDataSourceStep) {\n if (stepBasicResultList?.length > 0) {\n annotationEngine?.setBasicInfo(dependStepConfig.tool, stepBasicResultList[basicIndex]);\n } else {\n // TODO: 禁用绘制交互,有无依赖之间的操作切换\n annotationEngine?.setBasicInfo(dependStepConfig.tool);\n annotationEngine?.forbidOperation();\n message.info(i18n.t('NoDependency'));\n }\n }\n\n // TODO,非查看模式才允许添加数据\n if (currentStepInfo.tool !== 'check') {\n const sourceID = stepBasicResultList[basicIndex]?.id ?? '';\n const resultForBasicIndex = hasDataSourceStep\n ? result.filter((i: { sourceID: string | number }) =>\n CommonToolUtils.isSameSourceID(i.sourceID, sourceID),\n )\n : result;\n toolInstance?.history.initRecord(result, true);\n toolInstance?.setResult(resultForBasicIndex);\n }\n\n return {\n ...state,\n imgIndex: nextIndex,\n basicIndex,\n basicResultList: stepBasicResultList,\n resultList: result,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG: {\n return {\n ...state,\n config: action.payload.config ?? '{}',\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TASK_STEP_LIST: {\n const { stepList } = action.payload;\n return {\n ...state,\n stepList,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TASK_CONFIG: {\n const { stepList, step } = action.payload;\n return {\n ...state,\n stepList,\n step,\n };\n }\n\n case ANNOTATION_ACTIONS.INIT_TOOL: {\n const { imgNode } = state;\n const instance = updateToolInstance(state, imgNode);\n\n if (instance) {\n const { toolInstance, annotationEngine } = instance;\n return {\n ...state,\n toolInstance,\n annotationEngine,\n };\n }\n\n return {\n ...state,\n };\n }\n\n // react hook tool Proprietary operations\n case ANNOTATION_ACTIONS.SET_TOOL: {\n const instance = action.payload?.instance;\n if (instance) {\n return {\n ...state,\n toolInstance: instance,\n // TODO It needs to optimize\n // annotationEngine: {\n // toolInstance: instance,\n // } as any,\n };\n }\n\n return {\n ...state,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT: {\n return {\n ...state,\n onSubmit: action.payload.onSubmit,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_SAVE: {\n return {\n ...state,\n onSave: action.payload.onSave,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE: {\n return {\n ...state,\n onPageChange: action.payload.onPageChange,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE: {\n return {\n ...state,\n onStepChange: action.payload.onStepChange,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA: {\n return {\n ...state,\n getFileData: action.payload.getFileData,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE: {\n return {\n ...state,\n pageSize: action.payload.pageSize,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST: {\n return {\n ...state,\n loadFileList: action.payload.loadFileList,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_BEFORE_ROTATE: {\n return {\n ...state,\n beforeRotate: action.payload.beforeRotate,\n };\n }\n\n case ANNOTATION_ACTIONS.SKIP_BEFORE_PAGE_TURNING: {\n return {\n ...state,\n skipBeforePageTurning: action.payload.skipBeforePageTurning,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_FILE_DATA: {\n const { fileData, index } = action.payload;\n const { imgList } = state;\n const newImgList = [...imgList];\n newImgList[index] = { ...newImgList[index], ...fileData };\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ROTATE: {\n const { toolInstance, beforeRotate } = state;\n\n // DataCheck before rotate.\n if (beforeRotate) {\n if (beforeRotate() === false) {\n return state;\n }\n }\n\n toolInstance?.updateRotate();\n return state;\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ANNOTATION_VALID: {\n const { toolInstance } = state;\n const valid = toolInstance?.valid ?? true;\n\n Modal.destroyAll();\n Modal.confirm({\n content: i18n.t(valid ? 'updateValidFromValidToInValid' : 'updateValidFromInValidToValid'),\n onOk: () => {\n toolInstance?.setValid(!valid);\n },\n okText: i18n.t('Confirm'),\n cancelText: i18n.t('Cancel'),\n });\n\n return state;\n }\n\n case ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT: {\n const { toolInstance, imgIndex, imgList, step } = state;\n if (!toolInstance) {\n return state;\n }\n\n if (imgIndex === 0 || imgIndex >= imgList.length) {\n console.error('无法复制边界外的内容');\n return state;\n }\n const backwardResult = imgList[imgIndex - 1].result;\n if (!backwardResult) {\n return state;\n }\n\n const newResult = AnnotationDataUtils.copyResultChange(\n backwardResult,\n step,\n imgList[imgIndex].result ?? '',\n );\n imgList[imgIndex] = {\n ...imgList[imgIndex],\n result: newResult,\n };\n\n // 更新当前的结果\n const fileResult = jsonParser(newResult);\n const stepResult = fileResult[`step_${step}`];\n const result = stepResult?.result || [];\n\n toolInstance?.setResult(result);\n toolInstance?.history.pushHistory(result);\n\n return {\n ...state,\n imgList: [...imgList],\n };\n }\n\n case ANNOTATION_ACTIONS.SET_STEP: {\n const { stepList, annotationEngine } = state;\n const { toStep } = action.payload;\n\n if (!annotationEngine) {\n return state;\n }\n\n const stepConfig = getStepConfig(stepList, toStep);\n annotationEngine?.setToolName(stepConfig.tool, stepConfig.config);\n\n return {\n ...state,\n step: toStep,\n toolInstance: annotationEngine?.toolInstance,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_LOADING: {\n const { loading } = action.payload;\n\n return {\n ...state,\n loading: !!loading,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_POINT_CLOUD_LOADING: {\n const { pointCloudLoading } = action.payload;\n\n return {\n ...state,\n pointCloudLoading: !!pointCloudLoading,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_CHECK_MODE: {\n const { checkMode } = action.payload;\n return {\n ...state,\n checkMode: !!checkMode,\n };\n }\n\n case ANNOTATION_ACTIONS.BATCH_UPDATE_TRACK_ID: {\n const { id, newID, rangeIndex, imgList } = action.payload;\n const { imgIndex, onSubmit } = state;\n\n // Record the updated list.\n const updateImgList: Array<{ newInfo: IFileItem; imgIndex: number }> = [];\n const newImgList = imgList.map((v: IFileItem, i: number) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n const newInfo = {\n ...v,\n result: PointCloudUtils.batchUpdateTrackID({ id, newID, result: v.result }),\n };\n\n updateImgList.push({\n imgIndex: i,\n newInfo,\n });\n\n return newInfo;\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList, {\n updateImgList,\n });\n }\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n case ANNOTATION_ACTIONS.BATCH_UPDATE_RESULT_BY_TRACK_ID: {\n const { id, newData, rangeIndex } = action.payload;\n const { imgList, imgIndex, onSubmit } = state;\n // Record the updated list.\n const updateImgList: Array<{ newInfo: IFileItem; imgIndex: number }> = [];\n const newImgList = imgList.map((v, i) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n const newInfo = {\n ...v,\n result: PointCloudUtils.batchUpdateResultByTrackID({ id, newData, result: v.result }),\n };\n\n updateImgList.push({\n imgIndex: i,\n newInfo,\n });\n\n return newInfo;\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList, {\n updateImgList,\n });\n }\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n // eslint-disable-next-line no-fallthrough\n default:\n return state;\n }\n};\n"],"names":["this"],"mappings":"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"}
1
+ {"version":3,"file":"reducer.js","sources":["../../../src/store/annotation/reducer.ts"],"sourcesContent":["import { getFormatSize } from '@/components/customResizeHook';\nimport { ESubmitType } from '@/constant';\nimport styleString from '@/constant/styleString';\nimport { ANNOTATION_ACTIONS } from '@/store/Actions';\nimport { IFileItem } from '@/types/data';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport AnnotationDataUtils from '@/utils/AnnotationDataUtils';\nimport { ConfigUtils } from '@/utils/ConfigUtils';\nimport { composeResult, composeResultWithBasicImgInfo } from '@/utils/data';\nimport StepUtils from '@/utils/StepUtils';\nimport ToolUtils from '@/utils/ToolUtils';\nimport { AnnotationEngine, CommonToolUtils, ImgUtils, MathUtils } from '@labelbee/lb-annotation';\nimport { i18n, PointCloudUtils } from '@labelbee/lb-utils';\nimport { Modal } from 'antd';\nimport { message } from 'antd/es';\nimport _ from 'lodash';\nimport { SetAnnotationLoading } from './actionCreators';\nimport { AnnotationActionTypes, AnnotationState } from './types';\n\nexport const getStepConfig = (stepList: any[], step: number) =>\n stepList.find((i) => i.step === step);\n\nconst initialState: AnnotationState = {\n annotationEngine: null,\n toolInstance: null,\n imgList: [],\n config: '{}',\n imgIndex: -1,\n basicIndex: 0,\n imgPageSize: 1,\n step: 1,\n stepList: [],\n imgNode: new Image(),\n basicResultList: [],\n resultList: [],\n stepProgress: 0,\n loading: false,\n triggerEventAfterIndexChanged: false,\n\n pointCloudLoading: false,\n checkMode: false,\n};\n\n/**\n * 获取当前文件列表的总页数\n * @param state\n */\nexport const getTotalPage = (state: AnnotationState) => {\n const { imgList, imgPageSize } = state;\n return Math.ceil(imgList.length / imgPageSize);\n};\n\nconst calcStepProgress = (fileList: any[], step: number) =>\n fileList.reduce((pre, i) => {\n if (i) {\n const resultStr = i.result;\n const resultObject = jsonParser(resultStr);\n if (resultObject[`step_${step}`]) {\n return pre + 1;\n }\n }\n return pre;\n }, 0) / fileList.length;\n\nconst updateToolInstance = (annotation: AnnotationState, imgNode: HTMLImageElement) => {\n const { step, stepList } = annotation;\n const stepConfig = StepUtils.getCurrentStepInfo(step, stepList);\n const config = ConfigUtils.jsonParser(stepConfig.config);\n\n // 视频工具不支持实例化\n if (ToolUtils.isVideoTool(stepConfig?.tool)) {\n return;\n }\n\n // TODO: 点云实例化对接\n if (ToolUtils.isPointCloudTool(stepConfig?.tool)) {\n return;\n }\n\n const container = document.getElementById('toolContainer');\n\n if (!container) {\n throw `Not exist dom named id-toolContainer`;\n }\n\n const canvasSize = getFormatSize({ width: window.innerWidth, height: window.innerHeight });\n const annotationEngine = new AnnotationEngine({\n container,\n toolName: stepConfig.tool,\n size: canvasSize,\n imgNode,\n config,\n style: JSON.parse(styleString),\n });\n\n return { toolInstance: annotationEngine?.toolInstance, annotationEngine };\n};\n\n/**\n * 初始化imgNode并加载数据\n * @param nextIndex\n * @param nextBasicIndex\n */\nexport const LoadFileAndFileData =\n (nextIndex: number, nextBasicIndex?: number): any =>\n async (dispatch: any, getState: any) => {\n const { stepList, step } = getState().annotation;\n const currentIsVideo = StepUtils.currentToolIsVideo(step, stepList);\n const currentIsPointCloud = StepUtils.currentToolIsPointCloud(step, stepList);\n\n SetAnnotationLoading(dispatch, true);\n\n await dispatch(TryGetFileDataByAPI(nextIndex));\n\n if (currentIsVideo || currentIsPointCloud) {\n dispatch(AfterVideoLoaded(nextIndex));\n return;\n }\n\n dispatch(AfterImageLoaded(nextIndex, nextBasicIndex));\n };\n\n/**\n * 支持并优先外部传入的获取文件接口\n * @param nextIndex\n */\nconst TryGetFileDataByAPI = (nextIndex: number) => async (dispatch: any, getState: any) => {\n const { getFileData, imgList } = getState().annotation;\n if (getFileData) {\n const fileData = await getFileData(imgList[nextIndex], nextIndex);\n dispatch({\n type: ANNOTATION_ACTIONS.SET_FILE_DATA,\n payload: {\n fileData,\n index: nextIndex,\n },\n });\n }\n};\n\nconst AfterVideoLoaded = (nextIndex: number) => (dispatch: any) => {\n SetAnnotationLoading(dispatch, false);\n\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n nextIndex,\n },\n });\n};\n\nconst AfterImageLoaded =\n (nextIndex: number, nextBasicIndex?: number) => (dispatch: any, getState: any) => {\n const { toolInstance, imgList } = getState().annotation;\n const url = imgList?.[nextIndex]?.url;\n ImgUtils.load(url)\n .then((imgNode: HTMLImageElement) => {\n SetAnnotationLoading(dispatch, false);\n\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n imgNode,\n nextIndex,\n nextBasicIndex,\n },\n });\n })\n .catch(() => {\n SetAnnotationLoading(dispatch, false);\n toolInstance?.setErrorImg();\n dispatch({\n type: ANNOTATION_ACTIONS.LOAD_FILE_DATA,\n payload: {\n nextIndex,\n nextBasicIndex,\n },\n });\n });\n };\n\nexport const composeResultByToolInstance = ({\n toolInstance,\n imgList,\n imgIndex,\n stepList,\n step = 1,\n}: {\n toolInstance: any;\n imgList: IFileItem[];\n imgIndex: number;\n stepList: IStepInfo[];\n step?: number;\n}) => {\n const oldResultString = imgList[imgIndex]?.result || '';\n const [resultList, basicImgInfo, extraData] = toolInstance?.exportData() ?? [];\n const customObject = toolInstance?.exportCustomData?.() ?? {};\n\n const resultWithBasicInfo = composeResultWithBasicImgInfo(oldResultString, basicImgInfo);\n const newResultString = composeResult(\n resultWithBasicInfo,\n { step, stepList },\n { rect: resultList },\n customObject,\n );\n\n return imgList.map((v, i) => {\n if (i === imgIndex) {\n return {\n ...v,\n result: newResultString,\n ...extraData,\n };\n }\n return {\n ...v,\n };\n });\n};\n\nexport const annotationReducer = (\n state = { ...initialState },\n action: AnnotationActionTypes,\n): AnnotationState => {\n switch (action.type) {\n case ANNOTATION_ACTIONS.INIT_ALL_STATE: {\n return {\n ...state,\n ...initialState,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_TOOL_INSTANCE: {\n return {\n ...state,\n toolInstance: action.payload.toolInstance,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_IMG_LIST: {\n return {\n ...state,\n imgList: action.payload.imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.CALC_STEP_PROGRESS: {\n const { imgList, step } = state;\n\n const stepProgress = calcStepProgress(imgList, step);\n\n return {\n ...state,\n stepProgress,\n };\n }\n\n case ANNOTATION_ACTIONS.SUBMIT_FILE_DATA: {\n const { imgList, imgIndex, step, stepList, toolInstance, onSubmit, resultList } = state;\n if (!toolInstance || !imgList[imgIndex]) {\n return state;\n }\n\n const oldResultString = imgList[imgIndex]?.result || '';\n const [, basicImgInfo, extraData] = toolInstance?.exportData() ?? [];\n const customObject = toolInstance?.exportCustomData?.() ?? {};\n\n const resultWithBasicInfo = composeResultWithBasicImgInfo(oldResultString, basicImgInfo);\n const newResultString = composeResult(\n resultWithBasicInfo,\n { step, stepList },\n { rect: resultList },\n customObject,\n );\n\n const newImgList = state.imgList.map((v, i) => {\n if (i === imgIndex) {\n // Update Result\n const newResult = AnnotationDataUtils.dataCorrection(\n newResultString,\n oldResultString,\n step,\n stepList,\n );\n\n return {\n ...v,\n result: newResult,\n ...extraData,\n };\n }\n return v;\n });\n\n // Just for sync imgList\n if (action.payload?.submitType === ESubmitType.SyncImgList) {\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], action.payload?.submitType, imgIndex, newImgList);\n }\n\n const stepProgress = calcStepProgress(newImgList, step);\n return {\n ...state,\n stepProgress,\n imgList: newImgList,\n };\n }\n\n case ANNOTATION_ACTIONS.SAVE_RESULT: {\n const { imgList, imgIndex, onSave } = state;\n onSave?.(imgList[imgIndex], imgIndex, imgList);\n return {\n ...state,\n };\n }\n\n /**\n * For data storage in dependent states\n *\n * Features:\n * 1. Get Data from ToolInstance (If it use toolInstance)\n * 2. Filter Data By BasicResultList\n */\n case ANNOTATION_ACTIONS.SUBMIT_RESULT: {\n const { imgList, basicIndex, resultList, toolInstance, basicResultList } = state;\n if (!toolInstance) {\n return state;\n }\n\n const [exportResult] = toolInstance?.exportData() ?? [];\n\n let previousResultList = exportResult;\n\n if (basicResultList?.length > 0) {\n const sourceID = basicResultList[basicIndex]?.id;\n const newResultData = exportResult.map((i: any) => ({ ...i, sourceID }));\n previousResultList = _.cloneDeep(resultList).filter((i: any) => i.sourceID !== sourceID);\n previousResultList.push(...newResultData);\n }\n\n return {\n ...state,\n resultList: previousResultList,\n imgList,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_BASIC_INDEX: {\n const {\n toolInstance,\n step,\n imgList,\n imgIndex,\n stepList,\n annotationEngine,\n resultList,\n basicResultList,\n } = state;\n\n if (!toolInstance || !annotationEngine) {\n return state;\n }\n\n const nextBasicIndex = action.payload.basicIndex;\n const sourceID = basicResultList[nextBasicIndex]?.id;\n\n const fileResult = jsonParser(imgList[imgIndex]?.result);\n const result = (resultList || []).filter((i) => i.sourceID === sourceID);\n\n const stepConfig = getStepConfig(stepList, step);\n\n const { dataSourceStep, tool } = stepConfig;\n const dependStepConfig = getStepConfig(stepList, dataSourceStep);\n let stepBasicResultList = [];\n\n if (dataSourceStep && tool) {\n stepBasicResultList = fileResult[`step_${dataSourceStep}`]?.result;\n\n if (stepBasicResultList?.length > 0) {\n annotationEngine?.setBasicInfo(\n dependStepConfig.tool,\n stepBasicResultList[nextBasicIndex],\n );\n annotationEngine?.launchOperation();\n } else {\n annotationEngine?.setBasicInfo(dependStepConfig.tool);\n annotationEngine?.forbidOperation();\n message.info(i18n.t('NoDependency'));\n }\n }\n\n toolInstance?.setResult(result);\n toolInstance?.history.initRecord(result, true);\n\n return {\n ...state,\n basicIndex: nextBasicIndex,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TRIGGER_EVENT_AFTER_INDEX_CHANGED: {\n const { triggerEventAfterIndexChanged } = action.payload;\n return {\n ...state,\n triggerEventAfterIndexChanged: !!triggerEventAfterIndexChanged,\n };\n }\n\n case ANNOTATION_ACTIONS.LOAD_FILE_DATA: {\n const { imgList, step, toolInstance, annotationEngine, stepList } = state;\n\n /**\n * TODO\n * Before: !toolInstance || !annotationEngine\n *\n * The roles of toolInstance and annotationEngine need to be clearly distinguished\n */\n if (!toolInstance) {\n return { ...state, imgIndex: action.payload.nextIndex };\n }\n\n const currentStepInfo = StepUtils.getCurrentStepInfo(step, stepList);\n\n const { nextIndex, imgNode, nextBasicIndex, imgError } = action.payload;\n const basicIndex = nextBasicIndex ?? 0;\n\n const fileResult = jsonParser(imgList[nextIndex]?.result);\n\n const stepResult = fileResult[`step_${currentStepInfo.step}`];\n\n const isInitData = !stepResult; // 是否为初始化数据\n\n const basicImgInfo = {\n rotate: fileResult.rotate ?? 0,\n valid: fileResult.valid ?? true,\n };\n\n if (imgNode && imgError !== true) {\n annotationEngine?.setImgNode(imgNode, basicImgInfo);\n } else {\n // Non-graphical tools to initialize base data\n\n toolInstance?.setValid(basicImgInfo.valid);\n }\n\n const stepConfig = getStepConfig(stepList, currentStepInfo.step);\n\n const { dataSourceStep, tool } = stepConfig;\n const dependStepConfig = getStepConfig(stepList, dataSourceStep);\n const hasDataSourceStep = dataSourceStep && tool;\n const stepBasicResultList = fileResult[`step_${dataSourceStep}`]?.result ?? [];\n\n const result = AnnotationDataUtils.getInitialResultList(\n stepResult?.result,\n toolInstance,\n stepConfig,\n stepBasicResultList,\n isInitData,\n );\n\n annotationEngine?.launchOperation();\n\n if (hasDataSourceStep) {\n if (stepBasicResultList?.length > 0) {\n annotationEngine?.setBasicInfo(dependStepConfig.tool, stepBasicResultList[basicIndex]);\n } else {\n // TODO: 禁用绘制交互,有无依赖之间的操作切换\n annotationEngine?.setBasicInfo(dependStepConfig.tool);\n annotationEngine?.forbidOperation();\n message.info(i18n.t('NoDependency'));\n }\n }\n\n // TODO,非查看模式才允许添加数据\n if (currentStepInfo.tool !== 'check') {\n const sourceID = stepBasicResultList[basicIndex]?.id ?? '';\n const resultForBasicIndex = hasDataSourceStep\n ? result.filter((i: { sourceID: string | number }) =>\n CommonToolUtils.isSameSourceID(i.sourceID, sourceID),\n )\n : result;\n toolInstance?.history.initRecord(result, true);\n toolInstance?.setResult(resultForBasicIndex);\n }\n\n return {\n ...state,\n imgIndex: nextIndex,\n basicIndex,\n basicResultList: stepBasicResultList,\n resultList: result,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ANNOTATION_CONFIG: {\n return {\n ...state,\n config: action.payload.config ?? '{}',\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TASK_STEP_LIST: {\n const { stepList } = action.payload;\n return {\n ...state,\n stepList,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_TASK_CONFIG: {\n const { stepList, step } = action.payload;\n return {\n ...state,\n stepList,\n step,\n };\n }\n\n case ANNOTATION_ACTIONS.INIT_TOOL: {\n const { imgNode } = state;\n const instance = updateToolInstance(state, imgNode);\n\n if (instance) {\n const { toolInstance, annotationEngine } = instance;\n return {\n ...state,\n toolInstance,\n annotationEngine,\n };\n }\n\n return {\n ...state,\n };\n }\n\n // react hook tool Proprietary operations\n case ANNOTATION_ACTIONS.SET_TOOL: {\n const instance = action.payload?.instance;\n if (instance) {\n return {\n ...state,\n toolInstance: instance,\n // TODO It needs to optimize\n // annotationEngine: {\n // toolInstance: instance,\n // } as any,\n };\n }\n\n return {\n ...state,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_SUBMIT: {\n return {\n ...state,\n onSubmit: action.payload.onSubmit,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_SAVE: {\n return {\n ...state,\n onSave: action.payload.onSave,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_PAGE_CHANGE: {\n return {\n ...state,\n onPageChange: action.payload.onPageChange,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ON_STEP_CHANGE: {\n return {\n ...state,\n onStepChange: action.payload.onStepChange,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_GET_FILE_DATA: {\n return {\n ...state,\n getFileData: action.payload.getFileData,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_PAGE_SIZE: {\n return {\n ...state,\n pageSize: action.payload.pageSize,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_LOAD_FILE_LIST: {\n return {\n ...state,\n loadFileList: action.payload.loadFileList,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_BEFORE_ROTATE: {\n return {\n ...state,\n beforeRotate: action.payload.beforeRotate,\n };\n }\n\n case ANNOTATION_ACTIONS.SKIP_BEFORE_PAGE_TURNING: {\n return {\n ...state,\n skipBeforePageTurning: action.payload.skipBeforePageTurning,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_FILE_DATA: {\n const { fileData, index } = action.payload;\n const { imgList } = state;\n const newImgList = [...imgList];\n newImgList[index] = { ...newImgList[index], ...fileData };\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ROTATE: {\n const { toolInstance, beforeRotate } = state;\n\n // DataCheck before rotate.\n if (beforeRotate) {\n if (beforeRotate() === false) {\n return state;\n }\n }\n\n toolInstance?.updateRotate();\n return state;\n }\n\n case ANNOTATION_ACTIONS.UPDATE_ANNOTATION_VALID: {\n const { toolInstance } = state;\n const valid = toolInstance?.valid ?? true;\n\n Modal.destroyAll();\n Modal.confirm({\n content: i18n.t(valid ? 'updateValidFromValidToInValid' : 'updateValidFromInValidToValid'),\n onOk: () => {\n toolInstance?.setValid(!valid);\n },\n okText: i18n.t('Confirm'),\n cancelText: i18n.t('Cancel'),\n });\n\n return state;\n }\n\n case ANNOTATION_ACTIONS.COPY_BACKWARD_RESULT: {\n const { toolInstance, imgIndex, imgList, step } = state;\n if (!toolInstance) {\n return state;\n }\n\n if (imgIndex === 0 || imgIndex >= imgList.length) {\n console.error('无法复制边界外的内容');\n return state;\n }\n const backwardResult = imgList[imgIndex - 1].result;\n if (!backwardResult) {\n return state;\n }\n\n const newResult = AnnotationDataUtils.copyResultChange(\n backwardResult,\n step,\n imgList[imgIndex].result ?? '',\n );\n imgList[imgIndex] = {\n ...imgList[imgIndex],\n result: newResult,\n };\n\n // 更新当前的结果\n const fileResult = jsonParser(newResult);\n const stepResult = fileResult[`step_${step}`];\n const result = stepResult?.result || [];\n\n toolInstance?.setResult(result);\n toolInstance?.history.pushHistory(result);\n\n /**\n * Async PointCloud Data.\n */\n // @ts-ignore \n toolInstance?.asyncData(imgList[imgIndex]);\n return {\n ...state,\n imgList: [...imgList],\n };\n }\n\n case ANNOTATION_ACTIONS.SET_STEP: {\n const { stepList, annotationEngine } = state;\n const { toStep } = action.payload;\n\n if (!annotationEngine) {\n return state;\n }\n\n const stepConfig = getStepConfig(stepList, toStep);\n annotationEngine?.setToolName(stepConfig.tool, stepConfig.config);\n\n return {\n ...state,\n step: toStep,\n toolInstance: annotationEngine?.toolInstance,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_LOADING: {\n const { loading } = action.payload;\n\n return {\n ...state,\n loading: !!loading,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_POINT_CLOUD_LOADING: {\n const { pointCloudLoading } = action.payload;\n\n return {\n ...state,\n pointCloudLoading: !!pointCloudLoading,\n };\n }\n\n case ANNOTATION_ACTIONS.SET_CHECK_MODE: {\n const { checkMode } = action.payload;\n return {\n ...state,\n checkMode: !!checkMode,\n };\n }\n\n case ANNOTATION_ACTIONS.BATCH_UPDATE_TRACK_ID: {\n const { id, newID, rangeIndex, imgList } = action.payload;\n const { imgIndex, onSubmit } = state;\n\n // Record the updated list.\n const updateImgList: Array<{ newInfo: IFileItem; imgIndex: number }> = [];\n const newImgList = imgList.map((v: IFileItem, i: number) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n const newInfo = {\n ...v,\n result: PointCloudUtils.batchUpdateTrackID({ id, newID, result: v.result }),\n };\n\n updateImgList.push({\n imgIndex: i,\n newInfo,\n });\n\n return newInfo;\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList, {\n updateImgList,\n });\n }\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n case ANNOTATION_ACTIONS.BATCH_UPDATE_RESULT_BY_TRACK_ID: {\n const { id, newData, rangeIndex } = action.payload;\n const { imgList, imgIndex, onSubmit } = state;\n // Record the updated list.\n const updateImgList: Array<{ newInfo: IFileItem; imgIndex: number }> = [];\n const newImgList = imgList.map((v, i) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n const newInfo = {\n ...v,\n result: PointCloudUtils.batchUpdateResultByTrackID({ id, newData, result: v.result }),\n };\n\n updateImgList.push({\n imgIndex: i,\n newInfo,\n });\n\n return newInfo;\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList, {\n updateImgList,\n });\n }\n\n return {\n ...state,\n imgList: newImgList,\n };\n }\n\n // eslint-disable-next-line no-fallthrough\n default:\n return state;\n }\n};\n"],"names":["this"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.9.0-alpha.4",
3
+ "version": "1.9.0-alpha.5",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",
@@ -41,8 +41,8 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@ant-design/icons": "^4.6.2",
44
- "@labelbee/lb-annotation": "^1.13.0-alpha.4",
45
- "@labelbee/lb-utils": "^1.6.0-alpha.4",
44
+ "@labelbee/lb-annotation": "^1.13.0-alpha.5",
45
+ "@labelbee/lb-utils": "^1.6.0-alpha.5",
46
46
  "ahooks": "^3.4.0",
47
47
  "classnames": "^2.3.0",
48
48
  "lodash": "^4.17.21",
@@ -97,5 +97,5 @@
97
97
  "path": "node_modules/cz-conventional-changelog"
98
98
  }
99
99
  },
100
- "gitHead": "9a348d54c0c974d871839d71271cc2f91249a4c3"
100
+ "gitHead": "4b65cf4fc97a570f3e73b7654450e334b8210a4e"
101
101
  }