@labelbee/lb-components 1.8.0-alpha.2 → 1.8.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AnnotationView/pointCloudAnnotationView.js +1 -1
- package/dist/components/pointCloudView/hooks/useHistory.js +1 -1
- package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
- package/dist/store/annotation/reducer.js +1 -1
- package/dist/types/components/AnnotationView/pointCloudAnnotationView.d.ts +2 -0
- package/es/components/AnnotationView/pointCloudAnnotationView.js +1 -1
- package/es/components/AnnotationView/pointCloudAnnotationView.js.map +1 -1
- package/es/components/pointCloudView/hooks/useHistory.js +1 -1
- package/es/components/pointCloudView/hooks/useHistory.js.map +1 -1
- package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
- package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -1
- package/es/store/annotation/reducer.js +1 -1
- package/es/store/annotation/reducer.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react");function _interopDefaultLegacy(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var React__default=_interopDefaultLegacy(React);const PointCloudAnnotationView=r=>{const{src:l,result:
|
|
1
|
+
"use strict";var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react");function _interopDefaultLegacy(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var React__default=_interopDefaultLegacy(React);function getDefaultOrthographicParams(r){return{left:-r.width/2,right:r.width/2,top:r.height/2,bottom:-r.height/2,near:100,far:-100}}const PointCloudAnnotationView=r=>{const{src:l,result:o,size:i,isOrthographicCamera:u=!1,backgroundColor:f="#ccc"}=r;let c=React.useRef();const e=React.useRef(),d=React.useCallback(t=>{c.current=t},[]);return React.useEffect(()=>{let t={container:c.current,backgroundColor:f,isOrthographicCamera:u};u&&Object.assign(t,{orthographicParams:getDefaultOrthographicParams(i)});const n=new lbAnnotation.PointCloud(t);return e.current=n,()=>{var a;(a=e.current.renderer)==null||a.forceContextLoss()}},[]),React.useEffect(()=>{var t,n,a;e.current&&((t=e.current)==null||t.init(),(n=e.current)==null||n.initOrthographicCamera(getDefaultOrthographicParams(i)),(a=e.current)==null||a.render())},[i]),React.useEffect(()=>{var t;e.current&&l&&((t=e.current)==null||t.loadPCDFile(l))},[l]),React.useEffect(()=>(o&&lbUtils.PointCloudUtils.getBoxParamsFromResultList(o).forEach(n=>{var a;(a=e.current)==null||a.generateBox(n,n.id)}),()=>{var t;lbUtils.PointCloudUtils.getBoxParamsFromResultList(o).forEach(a=>{var s;(s=e.current)==null||s.removeObjectByName(a.id)}),(t=e.current)==null||t.render()}),[o]),React__default.default.createElement("div",{style:i,ref:d})};module.exports=PointCloudAnnotationView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(i,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PointCloudContext=require("../PointCloudContext.js"),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,i,r)=>i in e?__defProp(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r,__spreadValues=(e,i)=>{for(var r in i||(i={}))__hasOwnProp.call(i,r)&&__defNormalProp(e,r,i[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(i))__propIsEnum.call(i,r)&&__defNormalProp(e,r,i[r]);return e};const useHistory=()=>{const{history:e,setPointCloudResult:i,setSelectedIDs:r,pointCloudBoxList:s,mainViewInstance:u,topViewInstance:y,polygonList:d,setPolygonList:a,syncAllViewPointCloudColor:L}=React.useContext(PointCloudContext.PointCloudContext),C=({newBoxParams:t,newPolygon:o})=>{const n={pointCloudBoxList:s,polygonList:d};t&&(n.pointCloudBoxList=s.concat(t)),o&&(n.polygonList=d.concat(o)),e.pushHistory(n)},P=t=>{const o={pointCloudBoxList:s,polygonList:d};t.pointCloudBoxList&&(o.pointCloudBoxList=t.pointCloudBoxList),t.polygonList&&(o.polygonList=t.polygonList),e.pushHistory(o)},g=t=>{if(d.find(n=>n.id===t.id)){const n=d.map(c=>c.id===t.id?t:__spreadValues({},c));e.pushHistory({pointCloudBoxList:s,polygonList:n}),a(n)}},h=({pointCloudBoxList:t,polygonList:o})=>{e.initRecord([{pointCloudBoxList:t,polygonList:o}],!0)},f=t=>{if(!t)return;const{pointCloudBoxList:o=[],polygonList:n=[]}=t;if(o){s.length!==o.length&&r();const c=s.filter(l=>o.every(p=>p.id!==l.id)),v=o.filter(l=>s.every(p=>p.id!==l.id));c.forEach(l=>{u==null||u.removeObjectByName(l.id)}),v.forEach(l=>{u==null||u.generateBox(l)}),i(o),L(o)}n&&a(n),y==null||y.updatePolygonList(o!=null?o:[],n!=null?n:[])};return{addHistory:C,pushHistoryWithList:P,initHistory:h,pushHistoryUnderUpdatePolygon:g,redo:()=>{f(e.redo())},undo:()=>{f(e.undo())}}};exports.useHistory=useHistory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("../PointCloudContext.js"),useSingleBox=require("./useSingleBox.js"),_=require("lodash"),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");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ___default=_interopDefaultLegacy(_),__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((a,e)=>{var s=r=>{try{c(n.next(r))}catch(P){e(P)}},g=r=>{try{c(n.throw(r))}catch(P){e(P)}},c=r=>r.done?a(r.value):Promise.resolve(r.value).then(s,g);c((n=n.apply(t,o)).next())});const DEFAULT_SCOPE=5,DEFAULT_RADIUS=90,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},transferCanvas2World=(t,o)=>{const{width:n,height:a}=o,{x:e,y:s}=t;return{x:-s+a/2,y:-(e-n/2)}},topViewPolygon2PointCloud=(t,o,n,a,e)=>{const[s,g,c,r]=t.pointList.map(v=>transferCanvas2World(v,o)),P=lbAnnotation.MathUtils.getLineCenterPoint([s,c]),f=lbAnnotation.MathUtils.getLineLength(s,g),L=lbAnnotation.MathUtils.getLineLength(g,c),O=lbAnnotation.MathUtils.getRadiusFromQuadrangle(t.pointList);let B=0,h=1,C={};if(n){const v=n.getSensesPointZAxisInPolygon([s,g,c,r]);B=(v.maxZ+v.minZ)/2,h=v.maxZ-v.minZ,C={count:v.zCount}}a&&(B=a.center.z,h=a.depth);const b={center:{x:P.x,y:P.y,z:B},width:L,height:f,depth:h,rotation:O,id:t.id},
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),PointCloudContext=require("../PointCloudContext.js"),useSingleBox=require("./useSingleBox.js"),_=require("lodash"),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");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ___default=_interopDefaultLegacy(_),__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((a,e)=>{var s=r=>{try{c(n.next(r))}catch(P){e(P)}},g=r=>{try{c(n.throw(r))}catch(P){e(P)}},c=r=>r.done?a(r.value):Promise.resolve(r.value).then(s,g);c((n=n.apply(t,o)).next())});const DEFAULT_SCOPE=5,DEFAULT_RADIUS=90,PointCloudView={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},transferCanvas2World=(t,o)=>{const{width:n,height:a}=o,{x:e,y:s}=t;return{x:-s+a/2,y:-(e-n/2)}},topViewPolygon2PointCloud=(t,o,n,a,e)=>{const[s,g,c,r]=t.pointList.map(v=>transferCanvas2World(v,o)),P=lbAnnotation.MathUtils.getLineCenterPoint([s,c]),f=lbAnnotation.MathUtils.getLineLength(s,g),L=lbAnnotation.MathUtils.getLineLength(g,c),O=lbAnnotation.MathUtils.getRadiusFromQuadrangle(t.pointList);let B=0,h=1,C={};if(n){const v=n.getSensesPointZAxisInPolygon([s,g,c,r]);B=(v.maxZ+v.minZ)/2,h=v.maxZ-v.minZ,C={count:v.zCount}}a&&(B=a.center.z,h=a.depth);const b={center:{x:P.x,y:P.y,z:B},width:L,height:f,depth:h,rotation:O,id:t.id},w=__spreadValues(a?__spreadValues(__spreadValues({},a),b):__spreadProps(__spreadValues({},b),{attribute:"",valid:!0}),C);return e&&Object.assign(w,e),w},sideViewPolygon2PointCloud=(t,o,n,a)=>{const[e,s,g]=t.pointList,[c,r,P]=o.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([e,g]),L=lbAnnotation.MathUtils.getLineCenterPoint([c,P]),B={x:{x:f.x-L.x,y:f.y-L.y}.x,y:0,z:f.y-L.y},h=lbAnnotation.MathUtils.getLineLength(e,s),C=lbAnnotation.MathUtils.getLineLength(c,r),b=h-C,w=lbAnnotation.MathUtils.getLineLength(s,g),v=lbAnnotation.MathUtils.getLineLength(r,P),U=w-v,{newBoxParams:S}=a.getNewBoxBySideUpdate(B,U,b,n);return S},backViewPolygon2PointCloud=(t,o,n,a)=>{const[e,s,g]=t.pointList,[c,r,P]=o.pointList,f=lbAnnotation.MathUtils.getLineCenterPoint([e,g]),L=lbAnnotation.MathUtils.getLineCenterPoint([c,P]),B={x:{x:f.x-L.x,y:f.y-L.y}.x,y:0,z:f.y-L.y},h=lbAnnotation.MathUtils.getLineLength(e,s),C=lbAnnotation.MathUtils.getLineLength(c,r),b=h-C,w=lbAnnotation.MathUtils.getLineLength(s,g),v=lbAnnotation.MathUtils.getLineLength(r,P),U=w-v;let{newBoxParams:S}=a.getNewBoxByBackUpdate(B,U,b,n);return S},synchronizeSideView=(t,o,n,a)=>{if(!n)return;const{pointCloud2dOperation:e,pointCloudInstance:s}=n;s.loadPCDFileByBox(a,t,{width:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:g}=s.updateOrthoCamera(t,lbUtils.EPerspectiveView.Left);s.setInitCameraPosition(g);const{polygon2d:c,zoom:r}=s.getBoxSidePolygon2DCoordinate(t);s.camera.zoom=r,s.camera.updateProjectionMatrix(),s.render(),e.initPosition(),e.zoomChangeOnCenter(r),e.setResultAndSelectedID([{id:o.id,valid:t.valid,pointList:c,textAttribute:"",isRect:!0,attribute:t.attribute}],o.id)},synchronizeBackView=(t,o,n,a)=>{if(!n)return;const{pointCloud2dOperation:e,pointCloudInstance:s}=n;s.loadPCDFileByBox(a,t,{height:DEFAULT_SCOPE,depth:DEFAULT_SCOPE});const{cameraPositionVector:g}=s.updateOrthoCamera(t,lbUtils.EPerspectiveView.Back);s.setInitCameraPosition(g);const{polygon2d:c,zoom:r}=s.getBoxBackPolygon2DCoordinate(t);s.camera.zoom=r,s.camera.updateProjectionMatrix(),s.render(),e.initPosition(),e.zoomChangeOnCenter(r),e.setResultAndSelectedID([{id:o.id,valid:t.valid,pointList:c,textAttribute:"",isRect:!0,attribute:t.attribute}],o.id)},synchronizeTopView=(t,o,n,a)=>{var e;if(!n||!a)return;a.generateBox(t,o.id),a.updateCameraByBox(t,lbUtils.EPerspectiveView.Top),a.render();const{pointCloud2dOperation:s,pointCloudInstance:g}=n,{polygon2d:c}=g.getBoxTopPolygon2DCoordinate(t),r=[...s.polygonList],P=r.find(f=>f.id===o.id);P?P.pointList=c:r.push({id:o.id,pointList:c,textAttribute:"",isRect:!0,valid:(e=t.valid)!=null?e:!0}),s.setResultAndSelectedID(r,o.id)},usePointCloudViews=()=>{const t=React.useContext(PointCloudContext.PointCloudContext),{topViewInstance:o,sideViewInstance:n,backViewInstance:a,mainViewInstance:e,addPointCloudBox:s,setSelectedIDs:g,selectedIDs:c,pointCloudBoxList:r}=t,{addHistory:P,initHistory:f,pushHistoryUnderUpdatePolygon:L}=useHistory.useHistory(),{selectedPolygon:O}=usePolygon.usePolygon(),{updateSelectedBox:B}=useSingleBox.useSingleBox(),{currentData:h,config:C}=ctx.useSelector(i=>{const{stepList:l,step:p,imgList:u,imgIndex:d}=i.annotation;return{currentData:u[d],config:index.jsonParser(StepUtils.getCurrentStepInfo(p,l).config)}}),b=ctx.useDispatch(),{selectedBox:w}=useSingleBox.useSingleBox(),{t:v}=reactI18next.useTranslation(),U=w==null?void 0:w.info;if(!o||!n||!a)return{topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{}};const{pointCloudInstance:S}=o,k=i=>{e==null||e.generateBox(i),e==null||e.controls.update(),e==null||e.render()},A=({newPolygon:i,size:l,imgList:p,trackConfigurable:u,zoom:d})=>{var y;const x={attribute:(y=o.pointCloud2dOperation.defaultAttribute)!=null?y:""};u===!0&&Object.assign(x,{trackID:lbUtils.PointCloudUtils.getNextTrackID({imgList:[],extraBoxList:r})});const m=topViewPolygon2PointCloud(i,l,S,void 0,x),I=o==null?void 0:o.pointCloud2dOperation,D=m;if((C==null?void 0:C.lowerLimitPointsNumInBox)&&typeof m.count=="number"&&m.count<C.lowerLimitPointsNumInBox){antd.message.info(v("LowerLimitPointsNumInBox",{num:C.lowerLimitPointsNumInBox})),I.deletePolygon(m.id);return}I.setSelectedIDs([i.id]),g(D.id);const R=s(D);V(PointCloudView.Top,i,D,d,R),P({newBoxParams:D})},M=(i,l)=>{const p=i!=null?i:w==null?void 0:w.info,u=o==null?void 0:o.pointCloud2dOperation;if(u.setSelectedIDs(c),!p||!u)return;const d=u.selectedPolygon;V(PointCloudView.Top,d,p,void 0,l)},j=(i,l,p)=>{if(U){let u,d;switch(p){case PointCloudView.Back:u=backViewPolygon2PointCloud;break;case PointCloudView.Side:u=sideViewPolygon2PointCloud;break;default:u=sideViewPolygon2PointCloud;break}if(d=u(i,l,U,n.pointCloudInstance),e){const{count:x}=e.getSensesPointZAxisInPolygon(lbAnnotation.getCuboidFromPointCloudBox(d).polygonPointList,[d.center.z-d.depth/2,d.center.z+d.depth/2]);d=__spreadProps(__spreadValues({},d),{count:x})}const y=B(d);return V(p,i,d,void 0,y),y}},T=(i,l)=>{j(i,l,PointCloudView.Side)},z=(i,l)=>{j(i,l,PointCloudView.Back)},q=(i,l)=>{if(O){const p=__spreadProps(__spreadValues({},i),{pointList:i.pointList.map(u=>lbUtils.PointCloudUtils.transferCanvas2World(u,l))});L(p);return}if(U){const p=topViewPolygon2PointCloud(i,l,o.pointCloudInstance,U);Object.assign(U,___default.default.pickBy(p,(d,y)=>["width","height","x","y"]));const u=B(p);V(PointCloudView.Top,i,U,void 0,u)}},V=(i,l,p,u,d)=>__async(void 0,null,function*(){const y=h==null?void 0:h.url;d&&(yield t.syncAllViewPointCloudColor(d));const x={[PointCloudView.Side]:()=>{synchronizeSideView(p,l,n,y)},[PointCloudView.Back]:()=>{a&&synchronizeBackView(p,l,a,y)},[PointCloudView.Top]:()=>{synchronizeTopView(p,l,o,e)}};Object.keys(x).forEach(m=>{m!==i&&x[m]()}),u&&(e==null||e.updateCameraZoom(u)),k(p)});return{topViewAddBox:A,topViewSelectedChanged:M,topViewUpdateBox:q,sideViewUpdateBox:T,backViewUpdateBox:z,pointCloudBoxListUpdated:i=>{o.updatePolygonList(i),e==null||e.generateBoxes(i)},initPointCloud3d:i=>{if(!e)return;const l={left:-i.width/2,right:i.width/2,top:i.height/2,bottom:-i.height/2,near:100,far:-100};e.initOrthographicCamera(l),e.initRenderer(),e.render()},updatePointCloudData:()=>__async(void 0,null,function*(){var i,l,p,u,d,y;if(!(h==null?void 0:h.url)||!e)return;actionCreators.SetPointCloudLoading(b,!0),yield e.loadPCDFile(h.url,(i=C==null?void 0:C.radius)!=null?i:DEFAULT_RADIUS),r.forEach(D=>{e==null||e.removeObjectByName(D.id)});let x=[],m=[];h.result?(x=lbUtils.PointCloudUtils.getBoxParamsFromResultList(h.result),m=lbUtils.PointCloudUtils.getPolygonListFromResultList(h.result),x.forEach(D=>{e==null||e.generateBox(D)}),t.syncAllViewPointCloudColor(x),t.setPointCloudResult(x),t.setPolygonList(m)):(t.setPointCloudResult([]),t.setPolygonList([])),f({pointCloudBoxList:x,polygonList:m}),e.updateTopCamera();const I=(p=(l=index.jsonParser(h.result))==null?void 0:l.valid)!=null?p:!0;t.setPointCloudValid(I),(u=t.sideViewInstance)==null||u.clearAllData(),(d=t.backViewInstance)==null||d.clearAllData(),o.updateData(h.url,h.result,{radius:(y=C==null?void 0:C.radius)!=null?y:DEFAULT_RADIUS}),actionCreators.SetPointCloudLoading(b,!1)})}};exports.synchronizeBackView=synchronizeBackView,exports.synchronizeSideView=synchronizeSideView,exports.synchronizeTopView=synchronizeTopView,exports.topViewPolygon2PointCloud=topViewPolygon2PointCloud,exports.transferCanvas2World=transferCanvas2World,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=d=>{try{O(s.next(d))}catch(v){u(v)}},p=d=>{try{O(s.throw(d))}catch(v){u(v)}},O=d=>d.done?I(d.value):Promise.resolve(d.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},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}),d=new lbAnnotation.AnnotationEngine({container:p,toolName:u.tool,size:O,imgNode:t,config:A,style:JSON.parse(styleString)});return{toolInstance:d==null?void 0:d.toolInstance,annotationEngine:d}},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(d=>{actionCreators.SetAnnotationLoading(s,!1),s({type:Actions.ANNOTATION_ACTIONS.LOAD_FILE_DATA,payload:{imgNode:d,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,d;const v=((A=t[s])==null?void 0:A.result)||"",[b,h,U]=(p=e==null?void 0:e.exportData())!=null?p:[],x=(d=(O=e==null?void 0:e.exportCustomData)==null?void 0:O.call(e))!=null?d:{},B=data.composeResultWithBasicImgInfo(v,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,d,v,b,h,U,x,B,w,P,F,q,G,V,k,M,z;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:T}=e;if(!a||!n[o])return e;const c=((s=n[o])==null?void 0:s.result)||"",[,N,f]=(I=a==null?void 0:a.exportData())!=null?I:[],C=(A=(u=a==null?void 0:a.exportCustomData)==null?void 0:u.call(a))!=null?A:{},m=data.composeResultWithBasicImgInfo(c,N),E=data.composeResult(m,{step:i,stepList:l},{rect:T},C),g=e.imgList.map((L,S)=>{if(S===o){const R=AnnotationDataUtils.dataCorrection(E,c,i,l);return __spreadValues(__spreadProps(__spreadValues({},L),{result:R}),f)}return L});if(((p=t.payload)==null?void 0:p.submitType)===index.ESubmitType.SyncImgList)return __spreadProps(__spreadValues({},e),{imgList:g});r&&r([g[o]],(O=t.payload)==null?void 0:O.submitType,o,g);const D=calcStepProgress(g,i);return __spreadProps(__spreadValues({},e),{stepProgress:D,imgList:g})}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]=(d=l==null?void 0:l.exportData())!=null?d:[];let T=r;if((a==null?void 0:a.length)>0){const c=(v=a[o])==null?void 0:v.id,N=r.map(f=>__spreadProps(__spreadValues({},f),{sourceID:c}));T=___default.default.cloneDeep(i).filter(f=>f.sourceID!==c),T.push(...N)}return __spreadProps(__spreadValues({},e),{resultList:T,imgList:n})}case Actions.ANNOTATION_ACTIONS.SET_BASIC_INDEX:{const{toolInstance:n,step:o,imgList:i,imgIndex:l,stepList:a,annotationEngine:r,resultList:T,basicResultList:c}=e;if(!n||!r)return e;const N=t.payload.basicIndex,f=(b=c[N])==null?void 0:b.id,C=index$1.jsonParser((h=i[l])==null?void 0:h.result),m=(T||[]).filter(R=>R.sourceID===f),E=getStepConfig(a,o),{dataSourceStep:g,tool:D}=E,L=getStepConfig(a,g);let S=[];return g&&D&&(S=(U=C[`step_${g}`])==null?void 0:U.result,(S==null?void 0:S.length)>0?(r==null||r.setBasicInfo(L.tool,S[N]),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(m),n==null||n.history.initRecord(m,!0),__spreadProps(__spreadValues({},e),{basicIndex:N})}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:T,imgNode:c,nextBasicIndex:N,imgError:f}=t.payload,C=N!=null?N:0,m=index$1.jsonParser((x=n[T])==null?void 0:x.result),E=m[`step_${r.step}`],g=!E,D={rotate:(B=m.rotate)!=null?B:0,valid:(w=m.valid)!=null?w:!0};c&&f!==!0?l==null||l.setImgNode(c,D):i==null||i.setValid(D.valid);const L=getStepConfig(a,r.step),{dataSourceStep:S,tool:R}=L,H=getStepConfig(a,S),$=S&&R,y=(F=(P=m[`step_${S}`])==null?void 0:P.result)!=null?F:[],j=AnnotationDataUtils.getInitialResultList(E==null?void 0:E.result,i,L,y,g);if(l==null||l.launchOperation(),$&&((y==null?void 0:y.length)>0?l==null||l.setBasicInfo(H.tool,y[C]):(l==null||l.setBasicInfo(H.tool),l==null||l.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),r.tool!=="check"){const K=(G=(q=y[C])==null?void 0:q.id)!=null?G:"",W=$?j.filter(X=>lbAnnotation.CommonToolUtils.isSameSourceID(X.sourceID,K)):j;i==null||i.history.initRecord(j,!0),i==null||i.setResult(W)}return __spreadProps(__spreadValues({},e),{imgIndex:T,basicIndex:C,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=(k=t.payload)==null?void 0:k.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=(M=n==null?void 0:n.valid)!=null?M:!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,(z=i[o].result)!=null?z:"");i[o]=__spreadProps(__spreadValues({},i[o]),{result:r});const c=index$1.jsonParser(r)[`step_${l}`],N=(c==null?void 0:c.result)||[];return n==null||n.setResult(N),n==null||n.history.pushHistory(N),__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.BATCH_UPDATE_TRACK_ID:{const{id:n,newID:o,rangeIndex:i,imgList:l}=t.payload,{imgIndex:a,onSubmit:r}=e,T=l.map((c,N)=>lbAnnotation.MathUtils.isInRange(N,i)?__spreadProps(__spreadValues({},c),{result:lbUtils.PointCloudUtils.batchUpdateTrackID({id:n,newID:o,result:c.result})}):c);return r&&r([T[a]],index.ESubmitType.BatchUpdateTrackID,a,T),__spreadProps(__spreadValues({},e),{imgList:T})}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,T=l.map((c,N)=>lbAnnotation.MathUtils.isInRange(N,i)?__spreadProps(__spreadValues({},c),{result:lbUtils.PointCloudUtils.batchUpdateResultByTrackID({id:n,newData:o,result:c.result})}):c);return r&&r([T[a]],index.ESubmitType.BatchUpdateTrackID,a,T),__spreadProps(__spreadValues({},e),{imgList:T})}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(L){u(L)}},p=T=>{try{O(s.throw(T))}catch(L){u(L)}},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},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 L=((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(L,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,L,b,h,U,x,B,w,P,F,q,G,V,k,M,z;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((C,m)=>{if(m===o){const R=AnnotationDataUtils.dataCorrection(E,c,i,l);return __spreadValues(__spreadProps(__spreadValues({},C),{result:R}),g)}return C});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=(L=a[o])==null?void 0:L.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,C=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(C.tool,m[d]),r==null||r.launchOperation()):(r==null||r.setBasicInfo(C.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 C=getStepConfig(a,r.step),{dataSourceStep:m,tool:R}=C,H=getStepConfig(a,m),$=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,C,y,S);if(l==null||l.launchOperation(),$&&((y==null?void 0:y.length)>0?l==null||l.setBasicInfo(H.tool,y[f]):(l==null||l.setBasicInfo(H.tool),l==null||l.forbidOperation(),es.message.info(lbUtils.i18n.t("NoDependency")))),r.tool!=="check"){const K=(G=(q=y[f])==null?void 0:q.id)!=null?G:"",W=$?j.filter(X=>lbAnnotation.CommonToolUtils.isSameSourceID(X.sourceID,K)):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=(k=t.payload)==null?void 0:k.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=(M=n==null?void 0:n.valid)!=null?M:!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,(z=i[o].result)!=null?z:"");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.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 +1 @@
|
|
|
1
|
-
import{PointCloud as
|
|
1
|
+
import{PointCloud as g}from"@labelbee/lb-annotation";import{PointCloudUtils as m}from"@labelbee/lb-utils";import p,{useRef as f,useCallback as P,useEffect as l}from"react";function b(a){return{left:-a.width/2,right:a.width/2,top:a.height/2,bottom:-a.height/2,near:100,far:-100}}const C=a=>{const{src:c,result:n,size:i,isOrthographicCamera:u=!1,backgroundColor:h="#ccc"}=a;let s=f();const t=f(),v=P(r=>{s.current=r},[]);return l(()=>{let r={container:s.current,backgroundColor:h,isOrthographicCamera:u};u&&Object.assign(r,{orthographicParams:b(i)});const o=new g(r);return t.current=o,()=>{var e;(e=t.current.renderer)==null||e.forceContextLoss()}},[]),l(()=>{var r,o,e;t.current&&((r=t.current)==null||r.init(),(o=t.current)==null||o.initOrthographicCamera(b(i)),(e=t.current)==null||e.render())},[i]),l(()=>{var r;t.current&&c&&((r=t.current)==null||r.loadPCDFile(c))},[c]),l(()=>(n&&m.getBoxParamsFromResultList(n).forEach(o=>{var e;(e=t.current)==null||e.generateBox(o,o.id)}),()=>{var r;m.getBoxParamsFromResultList(n).forEach(e=>{var d;(d=t.current)==null||d.removeObjectByName(e.id)}),(r=t.current)==null||r.render()}),[n]),p.createElement("div",{style:i,ref:v})};export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointCloudAnnotationView.js","sources":["../../../src/components/AnnotationView/pointCloudAnnotationView.tsx"],"sourcesContent":["/*\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-06-13 19:31:36\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-06-27 19:43:25\n */\n\nimport { PointCloud } from '@labelbee/lb-annotation';\nimport { IPointCloudBox, PointCloudUtils } from '@labelbee/lb-utils';\nimport React, { useCallback, useEffect, useRef } from 'react';\n\ninterface IProps {\n src: string; // 图片路径\n result: string;\n size: {\n width: number;\n height: number;\n };\n}\n\nconst PointCloudAnnotationView = (props: IProps) => {\n const { src, result, size } = props;\n let viewOperation = useRef<any>();\n const instance = useRef<any>();\n\n const refCallback = useCallback((node) => {\n viewOperation.current = node;\n }, []);\n\n useEffect(() => {\n
|
|
1
|
+
{"version":3,"file":"pointCloudAnnotationView.js","sources":["../../../src/components/AnnotationView/pointCloudAnnotationView.tsx"],"sourcesContent":["/*\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-06-13 19:31:36\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-06-27 19:43:25\n */\n\nimport { PointCloud } from '@labelbee/lb-annotation';\nimport { IPointCloudBox, PointCloudUtils } from '@labelbee/lb-utils';\nimport React, { useCallback, useEffect, useRef } from 'react';\n\ninterface IProps {\n src: string; // 图片路径\n result: string;\n size: {\n width: number;\n height: number;\n };\n backgroundColor?: string;\n\n // Camera Update\n isOrthographicCamera?: boolean;\n}\n\nfunction getDefaultOrthographicParams(size: { width: number; height: number }) {\n return {\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\nconst PointCloudAnnotationView = (props: IProps) => {\n const { src, result, size, isOrthographicCamera = false, backgroundColor = '#ccc' } = props;\n let viewOperation = useRef<any>();\n const instance = useRef<any>();\n\n const refCallback = useCallback((node) => {\n viewOperation.current = node;\n }, []);\n\n useEffect(() => {\n let pointCloudProps = {\n container: viewOperation.current,\n backgroundColor,\n isOrthographicCamera,\n };\n\n /**\n * Orthographic Camera Params.\n * */\n if (isOrthographicCamera) {\n Object.assign(pointCloudProps, {\n orthographicParams: getDefaultOrthographicParams(size),\n });\n }\n\n const pointCloud = new PointCloud(pointCloudProps);\n instance.current = pointCloud;\n return () => {\n instance.current.renderer?.forceContextLoss();\n };\n }, []);\n\n useEffect(() => {\n // PointCloud camera init.\n\n if (instance.current) {\n // Init the camera\n instance.current?.init();\n\n // Update range of orthographicCamera.\n instance.current?.initOrthographicCamera(getDefaultOrthographicParams(size));\n instance.current?.render();\n }\n }, [size]);\n\n useEffect(() => {\n if (instance.current && src) {\n instance.current?.loadPCDFile(src);\n }\n }, [src]);\n\n useEffect(() => {\n if (result) {\n const boxParamsList = PointCloudUtils.getBoxParamsFromResultList(result);\n\n // Add Init Box\n boxParamsList.forEach((v: IPointCloudBox) => {\n instance.current?.generateBox(v, v.id);\n });\n }\n return () => {\n const boxParamsList = PointCloudUtils.getBoxParamsFromResultList(result);\n boxParamsList.forEach((v: IPointCloudBox) => {\n instance.current?.removeObjectByName(v.id);\n });\n instance.current?.render();\n };\n }, [result]);\n\n return <div style={size} ref={refCallback} />;\n};\n\nexport default PointCloudAnnotationView;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useContext as B}from"react";import{PointCloudContext as m}from"../PointCloudContext.js";var w=Object.defineProperty,a=Object.getOwnPropertySymbols,O=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,C=(i,n,s)=>n in i?w(i,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[n]=s,I=(i,n)=>{for(var s in n||(n={}))O.call(n,s)&&C(i,s,n[s]);if(a)for(var s of a(n))H.call(n,s)&&C(i,s,n[s]);return i};const j=()=>{const{history:i,setPointCloudResult:n,setSelectedIDs:s,pointCloudBoxList:r,mainViewInstance:u,topViewInstance:y,polygonList:d,setPolygonList:f,syncAllViewPointCloudColor:P}=B(m),g=({newBoxParams:t,newPolygon:o})=>{const e={pointCloudBoxList:r,polygonList:d};t&&(e.pointCloudBoxList=r.concat(t)),o&&(e.polygonList=d.concat(o)),i.pushHistory(e)},h=t=>{const o={pointCloudBoxList:r,polygonList:d};t.pointCloudBoxList&&(o.pointCloudBoxList=t.pointCloudBoxList),t.polygonList&&(o.polygonList=t.polygonList),i.pushHistory(o)},x=t=>{if(d.find(e=>e.id===t.id)){const e=d.map(c=>c.id===t.id?t:I({},c));i.pushHistory({pointCloudBoxList:r,polygonList:e}),f(e)}},
|
|
1
|
+
import{useContext as B}from"react";import{PointCloudContext as m}from"../PointCloudContext.js";var w=Object.defineProperty,a=Object.getOwnPropertySymbols,O=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,C=(i,n,s)=>n in i?w(i,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[n]=s,I=(i,n)=>{for(var s in n||(n={}))O.call(n,s)&&C(i,s,n[s]);if(a)for(var s of a(n))H.call(n,s)&&C(i,s,n[s]);return i};const j=()=>{const{history:i,setPointCloudResult:n,setSelectedIDs:s,pointCloudBoxList:r,mainViewInstance:u,topViewInstance:y,polygonList:d,setPolygonList:f,syncAllViewPointCloudColor:P}=B(m),g=({newBoxParams:t,newPolygon:o})=>{const e={pointCloudBoxList:r,polygonList:d};t&&(e.pointCloudBoxList=r.concat(t)),o&&(e.polygonList=d.concat(o)),i.pushHistory(e)},h=t=>{const o={pointCloudBoxList:r,polygonList:d};t.pointCloudBoxList&&(o.pointCloudBoxList=t.pointCloudBoxList),t.polygonList&&(o.polygonList=t.polygonList),i.pushHistory(o)},x=t=>{if(d.find(e=>e.id===t.id)){const e=d.map(c=>c.id===t.id?t:I({},c));i.pushHistory({pointCloudBoxList:r,polygonList:e}),f(e)}},v=({pointCloudBoxList:t,polygonList:o})=>{i.initRecord([{pointCloudBoxList:t,polygonList:o}],!0)},L=t=>{if(!t)return;const{pointCloudBoxList:o=[],polygonList:e=[]}=t;if(o){r.length!==o.length&&s();const c=r.filter(l=>o.every(p=>p.id!==l.id)),_=o.filter(l=>r.every(p=>p.id!==l.id));c.forEach(l=>{u==null||u.removeObjectByName(l.id)}),_.forEach(l=>{u==null||u.generateBox(l)}),n(o),P(o)}e&&f(e),y==null||y.updatePolygonList(o!=null?o:[],e!=null?e:[])};return{addHistory:g,pushHistoryWithList:h,initHistory:v,pushHistoryUnderUpdatePolygon:x,redo:()=>{L(i.redo())},undo:()=>{L(i.undo())}}};export{j as useHistory};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHistory.js","sources":["../../../../src/components/pointCloudView/hooks/useHistory.ts"],"sourcesContent":["import { IPointCloudBox, IPointCloudBoxList, IPolygonData } from '@labelbee/lb-utils';\nimport { useContext } from 'react';\nimport { PointCloudContext } from '../PointCloudContext';\n\nexport const useHistory = () => {\n const {\n history,\n setPointCloudResult,\n setSelectedIDs,\n pointCloudBoxList,\n mainViewInstance,\n topViewInstance,\n polygonList,\n setPolygonList,\n syncAllViewPointCloudColor,\n } = useContext(PointCloudContext);\n\n const addHistory = ({\n newBoxParams,\n newPolygon,\n }: {\n newBoxParams?: IPointCloudBox;\n newPolygon?: IPolygonData;\n }) => {\n const historyRecord = {\n pointCloudBoxList,\n polygonList,\n };\n\n if (newBoxParams) {\n historyRecord.pointCloudBoxList = pointCloudBoxList.concat(newBoxParams);\n }\n\n if (newPolygon) {\n historyRecord.polygonList = polygonList.concat(newPolygon);\n }\n\n history.pushHistory(historyRecord);\n };\n\n const pushHistoryWithList = (\n params: Partial<{\n pointCloudBoxList: IPointCloudBoxList;\n polygonList: IPolygonData[];\n }>,\n ) => {\n const historyRecord = {\n pointCloudBoxList,\n polygonList,\n };\n\n if (params.pointCloudBoxList) {\n historyRecord.pointCloudBoxList = params.pointCloudBoxList;\n }\n\n if (params.polygonList) {\n historyRecord.polygonList = params.polygonList;\n }\n\n history.pushHistory(historyRecord);\n };\n\n const pushHistoryUnderUpdatePolygon = (polygon: IPolygonData) => {\n const selectedPolygon = polygonList.find((v) => v.id === polygon.id);\n\n if (selectedPolygon) {\n const newPolygonList = polygonList.map((v) => {\n if (v.id === polygon.id) {\n return polygon;\n }\n return {\n ...v,\n };\n });\n history.pushHistory({\n pointCloudBoxList,\n polygonList: newPolygonList,\n });\n setPolygonList(newPolygonList);\n }\n };\n\n const initHistory = ({\n pointCloudBoxList,\n polygonList,\n }: {\n pointCloudBoxList: IPointCloudBoxList;\n polygonList: IPolygonData[];\n }) => {\n history.initRecord([{ pointCloudBoxList, polygonList }], true);\n };\n\n const updatePointCloud = (params?: {\n pointCloudBoxList: IPointCloudBoxList;\n polygonList: IPolygonData[];\n }) => {\n if (!params) {\n return;\n }\n\n const { pointCloudBoxList: newPointCloudBoxList = [], polygonList: newPolygonList = [] }
|
|
1
|
+
{"version":3,"file":"useHistory.js","sources":["../../../../src/components/pointCloudView/hooks/useHistory.ts"],"sourcesContent":["import { IPointCloudBox, IPointCloudBoxList, IPolygonData } from '@labelbee/lb-utils';\nimport { useContext } from 'react';\nimport { PointCloudContext } from '../PointCloudContext';\n\nexport const useHistory = () => {\n const {\n history,\n setPointCloudResult,\n setSelectedIDs,\n pointCloudBoxList,\n mainViewInstance,\n topViewInstance,\n polygonList,\n setPolygonList,\n syncAllViewPointCloudColor,\n } = useContext(PointCloudContext);\n\n const addHistory = ({\n newBoxParams,\n newPolygon,\n }: {\n newBoxParams?: IPointCloudBox;\n newPolygon?: IPolygonData;\n }) => {\n const historyRecord = {\n pointCloudBoxList,\n polygonList,\n };\n\n if (newBoxParams) {\n historyRecord.pointCloudBoxList = pointCloudBoxList.concat(newBoxParams);\n }\n\n if (newPolygon) {\n historyRecord.polygonList = polygonList.concat(newPolygon);\n }\n\n history.pushHistory(historyRecord);\n };\n\n const pushHistoryWithList = (\n params: Partial<{\n pointCloudBoxList: IPointCloudBoxList;\n polygonList: IPolygonData[];\n }>,\n ) => {\n const historyRecord = {\n pointCloudBoxList,\n polygonList,\n };\n\n if (params.pointCloudBoxList) {\n historyRecord.pointCloudBoxList = params.pointCloudBoxList;\n }\n\n if (params.polygonList) {\n historyRecord.polygonList = params.polygonList;\n }\n\n history.pushHistory(historyRecord);\n };\n\n const pushHistoryUnderUpdatePolygon = (polygon: IPolygonData) => {\n const selectedPolygon = polygonList.find((v) => v.id === polygon.id);\n\n if (selectedPolygon) {\n const newPolygonList = polygonList.map((v) => {\n if (v.id === polygon.id) {\n return polygon;\n }\n return {\n ...v,\n };\n });\n history.pushHistory({\n pointCloudBoxList,\n polygonList: newPolygonList,\n });\n setPolygonList(newPolygonList);\n }\n };\n\n const initHistory = ({\n pointCloudBoxList,\n polygonList,\n }: {\n pointCloudBoxList: IPointCloudBoxList;\n polygonList: IPolygonData[];\n }) => {\n history.initRecord([{ pointCloudBoxList, polygonList }], true);\n };\n\n const updatePointCloud = (params?: {\n pointCloudBoxList: IPointCloudBoxList;\n polygonList: IPolygonData[];\n }) => {\n if (!params) {\n return;\n }\n\n const { pointCloudBoxList: newPointCloudBoxList = [], polygonList: newPolygonList = [] } =\n params;\n\n if (newPointCloudBoxList) {\n if (pointCloudBoxList.length !== newPointCloudBoxList.length) {\n setSelectedIDs();\n }\n\n const deletePointCloudList = pointCloudBoxList.filter((v) =>\n newPointCloudBoxList.every((d) => d.id !== v.id),\n );\n const addPointCloudList = newPointCloudBoxList.filter((v) =>\n pointCloudBoxList.every((d) => d.id !== v.id),\n );\n\n // Clear All Data\n deletePointCloudList.forEach((v) => {\n mainViewInstance?.removeObjectByName(v.id);\n });\n\n // Add Init Box\n addPointCloudList.forEach((v) => {\n mainViewInstance?.generateBox(v);\n });\n\n setPointCloudResult(newPointCloudBoxList);\n syncAllViewPointCloudColor(newPointCloudBoxList);\n }\n\n if (newPolygonList) {\n setPolygonList(newPolygonList);\n }\n\n topViewInstance?.updatePolygonList(newPointCloudBoxList ?? [], newPolygonList ?? []);\n };\n\n const redo = () => {\n updatePointCloud(history.redo());\n };\n\n const undo = () => {\n updatePointCloud(history.undo());\n };\n\n return {\n addHistory,\n pushHistoryWithList,\n initHistory,\n pushHistoryUnderUpdatePolygon,\n redo,\n undo,\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{MathUtils as m,getCuboidFromPointCloudBox as rt}from"@labelbee/lb-annotation";import{EPerspectiveView as R,PointCloudUtils as A}from"@labelbee/lb-utils";import{useContext as dt}from"react";import{PointCloudContext as
|
|
1
|
+
import{MathUtils as m,getCuboidFromPointCloudBox as rt}from"@labelbee/lb-annotation";import{EPerspectiveView as R,PointCloudUtils as A}from"@labelbee/lb-utils";import{useContext as dt}from"react";import{PointCloudContext as lt}from"../PointCloudContext.js";import{useSingleBox as H}from"./useSingleBox.js";import at from"lodash";import{useSelector as ct,useDispatch as ut}from"../../../store/ctx.js";import pt from"../../../utils/StepUtils.js";import{jsonParser as N}from"../../../utils/index.js";import{SetPointCloudLoading as Z}from"../../../store/annotation/actionCreators.js";import{message as ft}from"antd";import{useTranslation as gt}from"react-i18next";import{useHistory as Ct}from"./useHistory.js";import{usePolygon as Pt}from"./usePolygon.js";var mt=Object.defineProperty,ht=Object.defineProperties,Lt=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertySymbols,yt=Object.prototype.hasOwnProperty,xt=Object.prototype.propertyIsEnumerable,M=(t,e,n)=>e in t?mt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,S=(t,e)=>{for(var n in e||(e={}))yt.call(e,n)&&M(t,n,e[n]);if(W)for(var n of W(e))xt.call(e,n)&&M(t,n,e[n]);return t},z=(t,e)=>ht(t,Lt(e)),G=(t,e,n)=>new Promise((d,o)=>{var s=r=>{try{c(n.next(r))}catch(C){o(C)}},f=r=>{try{c(n.throw(r))}catch(C){o(C)}},c=r=>r.done?d(r.value):Promise.resolve(r.value).then(s,f);c((n=n.apply(t,e)).next())});const T=5,Q=90,b={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},q=(t,e)=>{const{width:n,height:d}=e,{x:o,y:s}=t;return{x:-s+d/2,y:-(o-n/2)}},E=(t,e,n,d,o)=>{const[s,f,c,r]=t.pointList.map(L=>q(L,e)),C=m.getLineCenterPoint([s,c]),h=m.getLineLength(s,f),v=m.getLineLength(f,c),V=m.getRadiusFromQuadrangle(t.pointList);let D=0,g=1,P={};if(n){const L=n.getSensesPointZAxisInPolygon([s,f,c,r]);D=(L.maxZ+L.minZ)/2,g=L.maxZ-L.minZ,P={count:L.zCount}}d&&(D=d.center.z,g=d.depth);const _={center:{x:C.x,y:C.y,z:D},width:v,height:h,depth:g,rotation:V,id:t.id},B=S(d?S(S({},d),_):z(S({},_),{attribute:"",valid:!0}),P);return o&&Object.assign(B,o),B},J=(t,e,n,d)=>{const[o,s,f]=t.pointList,[c,r,C]=e.pointList,h=m.getLineCenterPoint([o,f]),v=m.getLineCenterPoint([c,C]),D={x:{x:h.x-v.x,y:h.y-v.y}.x,y:0,z:h.y-v.y},g=m.getLineLength(o,s),P=m.getLineLength(c,r),_=g-P,B=m.getLineLength(s,f),L=m.getLineLength(r,C),O=B-L,{newBoxParams:j}=d.getNewBoxBySideUpdate(D,O,_,n);return j},vt=(t,e,n,d)=>{const[o,s,f]=t.pointList,[c,r,C]=e.pointList,h=m.getLineCenterPoint([o,f]),v=m.getLineCenterPoint([c,C]),D={x:{x:h.x-v.x,y:h.y-v.y}.x,y:0,z:h.y-v.y},g=m.getLineLength(o,s),P=m.getLineLength(c,r),_=g-P,B=m.getLineLength(s,f),L=m.getLineLength(r,C),O=B-L;let{newBoxParams:j}=d.getNewBoxByBackUpdate(D,O,_,n);return j},K=(t,e,n,d)=>{if(!n)return;const{pointCloud2dOperation:o,pointCloudInstance:s}=n;s.loadPCDFileByBox(d,t,{width:T,depth:T});const{cameraPositionVector:f}=s.updateOrthoCamera(t,R.Left);s.setInitCameraPosition(f);const{polygon2d:c,zoom:r}=s.getBoxSidePolygon2DCoordinate(t);s.camera.zoom=r,s.camera.updateProjectionMatrix(),s.render(),o.initPosition(),o.zoomChangeOnCenter(r),o.setResultAndSelectedID([{id:e.id,valid:t.valid,pointList:c,textAttribute:"",isRect:!0,attribute:t.attribute}],e.id)},X=(t,e,n,d)=>{if(!n)return;const{pointCloud2dOperation:o,pointCloudInstance:s}=n;s.loadPCDFileByBox(d,t,{height:T,depth:T});const{cameraPositionVector:f}=s.updateOrthoCamera(t,R.Back);s.setInitCameraPosition(f);const{polygon2d:c,zoom:r}=s.getBoxBackPolygon2DCoordinate(t);s.camera.zoom=r,s.camera.updateProjectionMatrix(),s.render(),o.initPosition(),o.zoomChangeOnCenter(r),o.setResultAndSelectedID([{id:e.id,valid:t.valid,pointList:c,textAttribute:"",isRect:!0,attribute:t.attribute}],e.id)},Y=(t,e,n,d)=>{var o;if(!n||!d)return;d.generateBox(t,e.id),d.updateCameraByBox(t,R.Top),d.render();const{pointCloud2dOperation:s,pointCloudInstance:f}=n,{polygon2d:c}=f.getBoxTopPolygon2DCoordinate(t),r=[...s.polygonList],C=r.find(h=>h.id===e.id);C?C.pointList=c:r.push({id:e.id,pointList:c,textAttribute:"",isRect:!0,valid:(o=t.valid)!=null?o:!0}),s.setResultAndSelectedID(r,e.id)},Bt=()=>{const t=dt(lt),{topViewInstance:e,sideViewInstance:n,backViewInstance:d,mainViewInstance:o,addPointCloudBox:s,setSelectedIDs:f,selectedIDs:c,pointCloudBoxList:r}=t,{addHistory:C,initHistory:h,pushHistoryUnderUpdatePolygon:v}=Ct(),{selectedPolygon:V}=Pt(),{updateSelectedBox:D}=H(),{currentData:g,config:P}=ct(i=>{const{stepList:l,step:p,imgList:u,imgIndex:a}=i.annotation;return{currentData:u[a],config:N(pt.getCurrentStepInfo(p,l).config)}}),_=ut(),{selectedBox:B}=H(),{t:L}=gt(),O=B==null?void 0:B.info;if(!e||!n||!d)return{topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{}};const{pointCloudInstance:j}=e,$=i=>{o==null||o.generateBox(i),o==null||o.controls.update(),o==null||o.render()},tt=({newPolygon:i,size:l,imgList:p,trackConfigurable:u,zoom:a})=>{var x;const y={attribute:(x=e.pointCloud2dOperation.defaultAttribute)!=null?x:""};u===!0&&Object.assign(y,{trackID:A.getNextTrackID({imgList:[],extraBoxList:r})});const w=E(i,l,j,void 0,y),k=e==null?void 0:e.pointCloud2dOperation,I=w;if((P==null?void 0:P.lowerLimitPointsNumInBox)&&typeof w.count=="number"&&w.count<P.lowerLimitPointsNumInBox){ft.info(L("LowerLimitPointsNumInBox",{num:P.lowerLimitPointsNumInBox})),k.deletePolygon(w.id);return}k.setSelectedIDs([i.id]),f(I.id);const st=s(I);U(b.Top,i,I,a,st),C({newBoxParams:I})},ot=(i,l)=>{const p=i!=null?i:B==null?void 0:B.info,u=e==null?void 0:e.pointCloud2dOperation;if(u.setSelectedIDs(c),!p||!u)return;const a=u.selectedPolygon;U(b.Top,a,p,void 0,l)},F=(i,l,p)=>{if(O){let u,a;switch(p){case b.Back:u=vt;break;case b.Side:u=J;break;default:u=J;break}if(a=u(i,l,O,n.pointCloudInstance),o){const{count:y}=o.getSensesPointZAxisInPolygon(rt(a).polygonPointList,[a.center.z-a.depth/2,a.center.z+a.depth/2]);a=z(S({},a),{count:y})}const x=D(a);return U(p,i,a,void 0,x),x}},et=(i,l)=>{F(i,l,b.Side)},nt=(i,l)=>{F(i,l,b.Back)},it=(i,l)=>{if(V){const p=z(S({},i),{pointList:i.pointList.map(u=>A.transferCanvas2World(u,l))});v(p);return}if(O){const p=E(i,l,e.pointCloudInstance,O);Object.assign(O,at.pickBy(p,(a,x)=>["width","height","x","y"]));const u=D(p);U(b.Top,i,O,void 0,u)}},U=(i,l,p,u,a)=>G(void 0,null,function*(){const x=g==null?void 0:g.url;a&&(yield t.syncAllViewPointCloudColor(a));const y={[b.Side]:()=>{K(p,l,n,x)},[b.Back]:()=>{d&&X(p,l,d,x)},[b.Top]:()=>{Y(p,l,e,o)}};Object.keys(y).forEach(w=>{w!==i&&y[w]()}),u&&(o==null||o.updateCameraZoom(u)),$(p)});return{topViewAddBox:tt,topViewSelectedChanged:ot,topViewUpdateBox:it,sideViewUpdateBox:et,backViewUpdateBox:nt,pointCloudBoxListUpdated:i=>{e.updatePolygonList(i),o==null||o.generateBoxes(i)},initPointCloud3d:i=>{if(!o)return;const l={left:-i.width/2,right:i.width/2,top:i.height/2,bottom:-i.height/2,near:100,far:-100};o.initOrthographicCamera(l),o.initRenderer(),o.render()},updatePointCloudData:()=>G(void 0,null,function*(){var i,l,p,u,a,x;if(!(g==null?void 0:g.url)||!o)return;Z(_,!0),yield o.loadPCDFile(g.url,(i=P==null?void 0:P.radius)!=null?i:Q),r.forEach(I=>{o==null||o.removeObjectByName(I.id)});let y=[],w=[];g.result?(y=A.getBoxParamsFromResultList(g.result),w=A.getPolygonListFromResultList(g.result),y.forEach(I=>{o==null||o.generateBox(I)}),t.syncAllViewPointCloudColor(y),t.setPointCloudResult(y),t.setPolygonList(w)):(t.setPointCloudResult([]),t.setPolygonList([])),h({pointCloudBoxList:y,polygonList:w}),o.updateTopCamera();const k=(p=(l=N(g.result))==null?void 0:l.valid)!=null?p:!0;t.setPointCloudValid(k),(u=t.sideViewInstance)==null||u.clearAllData(),(a=t.backViewInstance)==null||a.clearAllData(),e.updateData(g.url,g.result,{radius:(x=P==null?void 0:P.radius)!=null?x:Q}),Z(_,!1)})}};export{X as synchronizeBackView,K as synchronizeSideView,Y as synchronizeTopView,E as topViewPolygon2PointCloud,q as transferCanvas2World,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 IPolygonData,\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\n/**\n * Get the coordinate from canvas2d-coordinate to world coordinate\n */\nexport const transferCanvas2World = (\n currentPos: { x: number; y: number },\n size: { width: number; height: number },\n) => {\n const { width: w, height: h } = size;\n const { x, y } = currentPos;\n\n // x-Axis is the Positive Direction, so the x-coordinates need to be swapped with the y-coordinates\n return {\n x: -y + h / 2,\n y: -(x - w / 2),\n };\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 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 } = ptCtx;\n const { addHistory, initHistory, pushHistoryUnderUpdatePolygon } = useHistory();\n const { selectedPolygon } = usePolygon();\n\n const { updateSelectedBox } = 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 };\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 polygonOperation.setSelectedIDs([newPolygon.id]);\n setSelectedIDs(boxParams.id);\n const newPointCloudList = addPointCloudBox(boxParams);\n syncPointCloudViews(PointCloudView.Top, newPolygon, boxParams, zoom, newPointCloudList);\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 if (!boxParams || !polygonOperation) {\n return;\n }\n\n const polygon = polygonOperation.selectedPolygon;\n syncPointCloudViews(PointCloudView.Top, polygon, boxParams, undefined, newPointCloudList);\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 = (polygon: IPolygonData, 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 newPolygon = {\n ...polygon,\n pointList: polygon.pointList.map((v) => PointCloudUtils.transferCanvas2World(v, size)),\n };\n pushHistoryUnderUpdatePolygon(newPolygon);\n return;\n }\n\n if (selectedPointCloudBox) {\n const newBoxParams = topViewPolygon2PointCloud(\n polygon,\n size,\n topViewInstance.pointCloudInstance,\n selectedPointCloudBox,\n );\n\n Object.assign(\n selectedPointCloudBox,\n _.pickBy(newBoxParams, (v, k) => ['width', 'height', 'x', 'y']),\n );\n\n const newPointCloudBoxList = updateSelectedBox(newBoxParams);\n syncPointCloudViews(\n PointCloudView.Top,\n polygon,\n selectedPointCloudBox,\n undefined,\n 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.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 IPolygonData,\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\n/**\n * Get the coordinate from canvas2d-coordinate to world coordinate\n */\nexport const transferCanvas2World = (\n currentPos: { x: number; y: number },\n size: { width: number; height: number },\n) => {\n const { width: w, height: h } = size;\n const { x, y } = currentPos;\n\n // x-Axis is the Positive Direction, so the x-coordinates need to be swapped with the y-coordinates\n return {\n x: -y + h / 2,\n y: -(x - w / 2),\n };\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 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 } = ptCtx;\n const { addHistory, initHistory, pushHistoryUnderUpdatePolygon } = useHistory();\n const { selectedPolygon } = usePolygon();\n\n const { updateSelectedBox } = 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 };\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 polygonOperation.setSelectedIDs([newPolygon.id]);\n setSelectedIDs(boxParams.id);\n const newPointCloudList = addPointCloudBox(boxParams);\n syncPointCloudViews(PointCloudView.Top, newPolygon, boxParams, zoom, newPointCloudList);\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 if (!boxParams || !polygonOperation) {\n return;\n }\n\n const polygon = polygonOperation.selectedPolygon;\n syncPointCloudViews(PointCloudView.Top, polygon, boxParams, undefined, newPointCloudList);\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 = (polygon: IPolygonData, 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 newPolygon = {\n ...polygon,\n pointList: polygon.pointList.map((v) => PointCloudUtils.transferCanvas2World(v, size)),\n };\n pushHistoryUnderUpdatePolygon(newPolygon);\n return;\n }\n\n if (selectedPointCloudBox) {\n const newBoxParams = topViewPolygon2PointCloud(\n polygon,\n size,\n topViewInstance.pointCloudInstance,\n selectedPointCloudBox,\n );\n\n Object.assign(\n selectedPointCloudBox,\n _.pickBy(newBoxParams, (v, k) => ['width', 'height', 'x', 'y']),\n );\n\n const newPointCloudBoxList = updateSelectedBox(newBoxParams);\n syncPointCloudViews(\n PointCloudView.Top,\n polygon,\n selectedPointCloudBox,\n undefined,\n 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 +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 M from"../../utils/StepUtils.js";import lt from"../../utils/ToolUtils.js";import{MathUtils as st,CommonToolUtils as Et,AnnotationEngine as St,ImgUtils as At}from"@labelbee/lb-annotation";import{PointCloudUtils as it,i18n as B}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,s)=>e in t?Dt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,o=(t,e)=>{for(var s in e||(e={}))Rt.call(e,s)&&ct(t,s,e[s]);if(at)for(var s of at(e))Ot.call(e,s)&&ct(t,s,e[s]);return t},u=(t,e)=>yt(t,Pt(e)),dt=(t,e,s)=>new Promise((m,p)=>{var I=_=>{try{E(s.next(_))}catch(y){p(y)}},L=_=>{try{E(s.throw(_))}catch(y){p(y)}},E=_=>_.done?m(_.value):Promise.resolve(_.value).then(I,L);E((s=s.apply(t,e)).next())});const h=(t,e)=>t.find(s=>s.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},Ct=t=>{const{imgList:e,imgPageSize:s}=t;return Math.ceil(e.length/s)},gt=(t,e)=>t.reduce((s,m)=>{if(m){const p=m.result;if(H(p)[`step_${e}`])return s+1}return s},0)/t.length,bt=(t,e)=>{const{step:s,stepList:m}=t,p=M.getCurrentStepInfo(s,m),I=Lt.jsonParser(p.config);if(lt.isVideoTool(p==null?void 0:p.tool)||lt.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}),_=new St({container:L,toolName:p.tool,size:E,imgNode:e,config:I,style:JSON.parse(Tt)});return{toolInstance:_==null?void 0:_.toolInstance,annotationEngine:_}},ht=(t,e)=>(s,m)=>dt(void 0,null,function*(){const{stepList:p,step:I}=m().annotation,L=M.currentToolIsVideo(I,p),E=M.currentToolIsPointCloud(I,p);if(K(s,!0),yield s(Nt(t)),L||E){s(Ut(t));return}s(Bt(t,e))}),Nt=t=>(e,s)=>dt(void 0,null,function*(){const{getFileData:m,imgList:p}=s().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}})},Bt=(t,e)=>(s,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(_=>{K(s,!1),s({type:r.LOAD_FILE_DATA,payload:{imgNode:_,nextIndex:t,nextBasicIndex:e}})}).catch(()=>{K(s,!1),I==null||I.setErrorImg(),s({type:r.LOAD_FILE_DATA,payload:{nextIndex:t,nextBasicIndex:e}})})},wt=({toolInstance:t,imgList:e,imgIndex:s,stepList:m,step:p=1})=>{var I,L,E,_;const y=((I=e[s])==null?void 0:I.result)||"",[w,x,F]=(L=t==null?void 0:t.exportData())!=null?L:[],j=(_=(E=t==null?void 0:t.exportCustomData)==null?void 0:E.call(t))!=null?_:{},G=nt(y,x),V=ot(G,{step:p,stepList:m},{rect:w},j);return e.map((N,k)=>k===s?o(u(o({},N),{result:V}),F):o({},N))},xt=(t=o({},pt),e)=>{var s,m,p,I,L,E,_,y,w,x,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:l}=t,i=gt(n,l);return u(o({},t),{stepProgress:i})}case r.SUBMIT_FILE_DATA:{const{imgList:n,imgIndex:l,step:i,stepList:a,toolInstance:d,onSubmit:c,resultList:f}=t;if(!d||!n[l])return t;const g=((s=n[l])==null?void 0:s.result)||"",[,T,v]=(m=d==null?void 0:d.exportData())!=null?m:[],R=(I=(p=d==null?void 0:d.exportCustomData)==null?void 0:p.call(d))!=null?I:{},D=nt(g,T),O=ot(D,{step:i,stepList:a},{rect:f},R),S=t.imgList.map((P,A)=>{if(A===l){const U=$.dataCorrection(O,g,i,a);return o(u(o({},P),{result:U}),v)}return P});if(((L=e.payload)==null?void 0:L.submitType)===W.SyncImgList)return u(o({},t),{imgList:S});c&&c([S[l]],(E=e.payload)==null?void 0:E.submitType,l,S);const C=gt(S,i);return u(o({},t),{stepProgress:C,imgList:S})}case r.SAVE_RESULT:{const{imgList:n,imgIndex:l,onSave:i}=t;return i==null||i(n[l],l,n),o({},t)}case r.SUBMIT_RESULT:{const{imgList:n,basicIndex:l,resultList:i,toolInstance:a,basicResultList:d}=t;if(!a)return t;const[c]=(_=a==null?void 0:a.exportData())!=null?_:[];let f=c;if((d==null?void 0:d.length)>0){const g=(y=d[l])==null?void 0:y.id,T=c.map(v=>u(o({},v),{sourceID:g}));f=vt.cloneDeep(i).filter(v=>v.sourceID!==g),f.push(...T)}return u(o({},t),{resultList:f,imgList:n})}case r.SET_BASIC_INDEX:{const{toolInstance:n,step:l,imgList:i,imgIndex:a,stepList:d,annotationEngine:c,resultList:f,basicResultList:g}=t;if(!n||!c)return t;const T=e.payload.basicIndex,v=(w=g[T])==null?void 0:w.id,R=H((x=i[a])==null?void 0:x.result),D=(f||[]).filter(U=>U.sourceID===v),O=h(d,l),{dataSourceStep:S,tool:C}=O,P=h(d,S);let A=[];return S&&C&&(A=(F=R[`step_${S}`])==null?void 0:F.result,(A==null?void 0:A.length)>0?(c==null||c.setBasicInfo(P.tool,A[T]),c==null||c.launchOperation()):(c==null||c.setBasicInfo(P.tool),c==null||c.forbidOperation(),ut.info(B.t("NoDependency")))),n==null||n.setResult(D),n==null||n.history.initRecord(D,!0),u(o({},t),{basicIndex:T})}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:l,toolInstance:i,annotationEngine:a,stepList:d}=t;if(!i)return u(o({},t),{imgIndex:e.payload.nextIndex});const c=M.getCurrentStepInfo(l,d),{nextIndex:f,imgNode:g,nextBasicIndex:T,imgError:v}=e.payload,R=T!=null?T:0,D=H((j=n[f])==null?void 0:j.result),O=D[`step_${c.step}`],S=!O,C={rotate:(G=D.rotate)!=null?G:0,valid:(V=D.valid)!=null?V:!0};g&&v!==!0?a==null||a.setImgNode(g,C):i==null||i.setValid(C.valid);const P=h(d,c.step),{dataSourceStep:A,tool:U}=P,tt=h(d,A),et=A&&U,b=(k=(N=D[`step_${A}`])==null?void 0:N.result)!=null?k:[],z=$.getInitialResultList(O==null?void 0:O.result,i,P,b,S);if(a==null||a.launchOperation(),et&&((b==null?void 0:b.length)>0?a==null||a.setBasicInfo(tt.tool,b[R]):(a==null||a.setBasicInfo(tt.tool),a==null||a.forbidOperation(),ut.info(B.t("NoDependency")))),c.tool!=="check"){const _t=(Y=(X=b[R])==null?void 0:X.id)!=null?Y:"",ft=et?z.filter(mt=>Et.isSameSourceID(mt.sourceID,_t)):z;i==null||i.history.initRecord(z,!0),i==null||i.setResult(ft)}return u(o({},t),{imgIndex:f,basicIndex:R,basicResultList:b,resultList:z})}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:l}=e.payload;return u(o({},t),{stepList:n,step:l})}case r.INIT_TOOL:{const{imgNode:n}=t,l=bt(t,n);if(l){const{toolInstance:i,annotationEngine:a}=l;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:l}=e.payload,{imgList:i}=t,a=[...i];return a[l]=o(o({},a[l]),n),u(o({},t),{imgList:a})}case r.UPDATE_ROTATE:{const{toolInstance:n,beforeRotate:l}=t;return l&&l()===!1||n==null||n.updateRotate(),t}case r.UPDATE_ANNOTATION_VALID:{const{toolInstance:n}=t,l=(Z=n==null?void 0:n.valid)!=null?Z:!0;return rt.destroyAll(),rt.confirm({content:B.t(l?"updateValidFromValidToInValid":"updateValidFromInValidToValid"),onOk:()=>{n==null||n.setValid(!l)},okText:B.t("Confirm"),cancelText:B.t("Cancel")}),t}case r.COPY_BACKWARD_RESULT:{const{toolInstance:n,imgIndex:l,imgList:i,step:a}=t;if(!n)return t;if(l===0||l>=i.length)return console.error("\u65E0\u6CD5\u590D\u5236\u8FB9\u754C\u5916\u7684\u5185\u5BB9"),t;const d=i[l-1].result;if(!d)return t;const c=$.copyResultChange(d,a,(Q=i[l].result)!=null?Q:"");i[l]=u(o({},i[l]),{result:c});const g=H(c)[`step_${a}`],T=(g==null?void 0:g.result)||[];return n==null||n.setResult(T),n==null||n.history.pushHistory(T),u(o({},t),{imgList:[...i]})}case r.SET_STEP:{const{stepList:n,annotationEngine:l}=t,{toStep:i}=e.payload;if(!l)return t;const a=h(n,i);return l==null||l.setToolName(a.tool,a.config),u(o({},t),{step:i,toolInstance:l==null?void 0:l.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.BATCH_UPDATE_TRACK_ID:{const{id:n,newID:l,rangeIndex:i,imgList:a}=e.payload,{imgIndex:d,onSubmit:c}=t,f=a.map((g,T)=>st.isInRange(T,i)?u(o({},g),{result:it.batchUpdateTrackID({id:n,newID:l,result:g.result})}):g);return c&&c([f[d]],W.BatchUpdateTrackID,d,f),u(o({},t),{imgList:f})}case r.BATCH_UPDATE_RESULT_BY_TRACK_ID:{const{id:n,newData:l,rangeIndex:i}=e.payload,{imgList:a,imgIndex:d,onSubmit:c}=t,f=a.map((g,T)=>st.isInRange(T,i)?u(o({},g),{result:it.batchUpdateResultByTrackID({id:n,newData:l,result:g.result})}):g);return c&&c([f[d]],W.BatchUpdateTrackID,d,f),u(o({},t),{imgList:f})}default:return t}};export{ht as LoadFileAndFileData,xt as annotationReducer,wt as composeResultByToolInstance,h 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 M 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 h=(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},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,bt=(t,e)=>{const{step:l,stepList:m}=t,p=M.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}},ht=(t,e)=>(l,m)=>dt(void 0,null,function*(){const{stepList:p,step:I}=m().annotation,L=M.currentToolIsVideo(I,p),E=M.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=h(d,s),{dataSourceStep:v,tool:C}=O,R=h(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=M.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=h(d,c.step),{dataSourceStep:D,tool:U}=R,tt=h(d,D),et=D&&U,b=(k=(N=y[`step_${D}`])==null?void 0:N.result)!=null?k:[],z=$.getInitialResultList(O==null?void 0:O.result,i,R,b,v);if(a==null||a.launchOperation(),et&&((b==null?void 0:b.length)>0?a==null||a.setBasicInfo(tt.tool,b[A]):(a==null||a.setBasicInfo(tt.tool),a==null||a.forbidOperation(),ut.info(w.t("NoDependency")))),c.tool!=="check"){const _t=(Y=(X=b[A])==null?void 0:X.id)!=null?Y:"",ft=et?z.filter(mt=>Et.isSameSourceID(mt.sourceID,_t)):z;i==null||i.history.initRecord(z,!0),i==null||i.setResult(ft)}return u(o({},t),{imgIndex:T,basicIndex:A,basicResultList:b,resultList:z})}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=bt(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=h(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.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{ht as LoadFileAndFileData,Bt as annotationReducer,xt as composeResultByToolInstance,h 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};\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.BATCH_UPDATE_TRACK_ID: {\n const { id, newID, rangeIndex, imgList } = action.payload;\n const { imgIndex, onSubmit } = state;\n const newImgList = imgList.map((v: IFileItem, i: number) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n return {\n ...v,\n result: PointCloudUtils.batchUpdateTrackID({ id, newID, result: v.result }),\n };\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList);\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 const newImgList = imgList.map((v, i) => {\n if (MathUtils.isInRange(i, rangeIndex)) {\n return {\n ...v,\n result: PointCloudUtils.batchUpdateResultByTrackID({ id, newData, result: v.result }),\n };\n }\n return v;\n });\n\n // Notify external data changes.\n if (onSubmit) {\n onSubmit([newImgList[imgIndex]], ESubmitType.BatchUpdateTrackID, imgIndex, newImgList);\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};\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.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.8.0-alpha.
|
|
3
|
+
"version": "1.8.0-alpha.3",
|
|
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.12.0-alpha.
|
|
45
|
-
"@labelbee/lb-utils": "^1.5.0-alpha.
|
|
44
|
+
"@labelbee/lb-annotation": "^1.12.0-alpha.3",
|
|
45
|
+
"@labelbee/lb-utils": "^1.5.0-alpha.3",
|
|
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": "
|
|
100
|
+
"gitHead": "c2b91721064f1e9813b9c39db87f85c5933ee6a6"
|
|
101
101
|
}
|