copper3d 3.6.2 → 3.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/Loader/copperNrrdLoader.js +1 -1
  2. package/dist/Loader/copperNrrdLoader.js.map +1 -1
  3. package/dist/Scene/copperScene.d.ts +4 -4
  4. package/dist/Scene/copperScene.js +4 -4
  5. package/dist/Scene/copperScene.js.map +1 -1
  6. package/dist/Utils/segmentation/NrrdTools.d.ts +41 -2
  7. package/dist/Utils/segmentation/NrrdTools.js +30 -2
  8. package/dist/Utils/segmentation/NrrdTools.js.map +1 -1
  9. package/dist/Utils/segmentation/tools/AiAssistTool.d.ts +108 -5
  10. package/dist/Utils/segmentation/tools/AiAssistTool.js +408 -25
  11. package/dist/Utils/segmentation/tools/AiAssistTool.js.map +1 -1
  12. package/dist/Utils/surfaceAnnotation/MeshGraph.d.ts +12 -10
  13. package/dist/Utils/surfaceAnnotation/MeshGraph.js +14 -12
  14. package/dist/Utils/surfaceAnnotation/MeshGraph.js.map +1 -1
  15. package/dist/Utils/surfaceAnnotation/SurfaceAnnotator.d.ts +48 -28
  16. package/dist/Utils/surfaceAnnotation/SurfaceAnnotator.js +76 -50
  17. package/dist/Utils/surfaceAnnotation/SurfaceAnnotator.js.map +1 -1
  18. package/dist/Utils/surfaceAnnotation/annotationStore.d.ts +4 -4
  19. package/dist/Utils/surfaceAnnotation/annotationStore.js +4 -4
  20. package/dist/Utils/surfaceAnnotation/annotationStore.js.map +1 -1
  21. package/dist/Utils/surfaceAnnotation/contourRender.d.ts +1 -1
  22. package/dist/Utils/surfaceAnnotation/contourRender.js +16 -11
  23. package/dist/Utils/surfaceAnnotation/contourRender.js.map +1 -1
  24. package/dist/Utils/surfaceAnnotation/geodesicContour.d.ts +11 -10
  25. package/dist/Utils/surfaceAnnotation/geodesicContour.js +16 -15
  26. package/dist/Utils/surfaceAnnotation/geodesicContour.js.map +1 -1
  27. package/dist/Utils/surfaceAnnotation/pointMarkers.d.ts +3 -2
  28. package/dist/Utils/surfaceAnnotation/pointMarkers.js +6 -2
  29. package/dist/Utils/surfaceAnnotation/pointMarkers.js.map +1 -1
  30. package/dist/Utils/surfaceAnnotation/raycastSurface.d.ts +3 -2
  31. package/dist/Utils/surfaceAnnotation/raycastSurface.js +71 -5
  32. package/dist/Utils/surfaceAnnotation/raycastSurface.js.map +1 -1
  33. package/dist/Utils/surfaceAnnotation/strokeContour.d.ts +9 -6
  34. package/dist/Utils/surfaceAnnotation/strokeContour.js +15 -10
  35. package/dist/Utils/surfaceAnnotation/strokeContour.js.map +1 -1
  36. package/dist/Utils/surfaceAnnotation/types.d.ts +5 -5
  37. package/dist/Utils/surfaceAnnotation/types.js +2 -2
  38. package/dist/Utils/surfaceAnnotation/types.js.map +1 -1
  39. package/dist/Utils/texture2d.js +4 -2
  40. package/dist/Utils/texture2d.js.map +1 -1
  41. package/dist/Utils/workers/reformatSaveDataWorker.js +2 -2
  42. package/dist/Utils/workers/reformatSaveDataWorker.js.map +1 -1
  43. package/dist/bundle.esm.js +684 -157
  44. package/dist/bundle.umd.js +684 -157
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +9 -2
  47. package/dist/index.js.map +1 -1
  48. package/dist/lib/three-vignette.js +8 -2
  49. package/dist/lib/three-vignette.js.map +1 -1
  50. package/dist/types/Scene/copperScene.d.ts +4 -4
  51. package/dist/types/Utils/segmentation/NrrdTools.d.ts +41 -2
  52. package/dist/types/Utils/segmentation/tools/AiAssistTool.d.ts +108 -5
  53. package/dist/types/Utils/surfaceAnnotation/MeshGraph.d.ts +12 -10
  54. package/dist/types/Utils/surfaceAnnotation/SurfaceAnnotator.d.ts +48 -28
  55. package/dist/types/Utils/surfaceAnnotation/annotationStore.d.ts +4 -4
  56. package/dist/types/Utils/surfaceAnnotation/contourRender.d.ts +1 -1
  57. package/dist/types/Utils/surfaceAnnotation/geodesicContour.d.ts +11 -10
  58. package/dist/types/Utils/surfaceAnnotation/pointMarkers.d.ts +3 -2
  59. package/dist/types/Utils/surfaceAnnotation/raycastSurface.d.ts +3 -2
  60. package/dist/types/Utils/surfaceAnnotation/strokeContour.d.ts +9 -6
  61. package/dist/types/Utils/surfaceAnnotation/types.d.ts +5 -5
  62. package/dist/types/index.d.ts +1 -1
  63. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SurfaceAnnotator.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/SurfaceAnnotator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAyB7E,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IA4B3B,YAAY,IAA6B;;QA1BjC,SAAI,GAAmB,UAAU,CAAC;QAClC,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QAOpB,UAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9B,YAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpC,QAAG,GAAG,CAAC,CAAC;QACR,eAAU,GAAkB,IAAI,CAAC;QAOjC,qBAAgB,GAAiB,EAAE,CAAC,CAAC,cAAc;QACnD,WAAM,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC/B,WAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAE7B,qBAAgB,GAAG,CAAC,CAAC,CAAC;QACtB,WAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAuCrC,2CAA2C;QACnC,aAAQ,GAAG,GAAG,EAAE;YACtB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE;oBACtC,MAAM,GAAG,GAAI,CAAC,CAAC,QAAkB,CAAC,QAAwB,CAAC;oBAC3D,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC1B;aACF;YACD,IAAI,IAAI,CAAC,UAAU;gBACjB,CAAE,IAAI,CAAC,UAAU,CAAC,QAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,IAAI,CAAC,aAAa;gBACpB,CAAE,IAAI,CAAC,aAAa,CAAC,QAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC;QA6JM,kBAAa,GAAG,CAAC,CAAe,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC3B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,MAAM;YAClC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAAE,OAAO;YACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAExB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,CAAC;oBAAE,OAAO;gBACf,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,eAAe,CAC5B,CAAC,EACD,IAAI,CAAC,CAAC,CAAC,IAAI,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,CAClB,CAAC;gBACF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACzB,MAAM,GAAG,GAAe;oBACtB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;oBACjB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE;oBAC1B,KAAK,EAAE,IAAI,CAAC,aAAa;oBACzB,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACb,QAAQ,EAAE,MAAM;iBACjB,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC9E,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC;oBAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,GAAG,eAAe,CAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAC1B,IAAI,CAAC,aAAa,EAClB,KAAK,EACL,IAAI,CAAC,CAAC,CAAC,SAAS,EAChB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,CAAC,CAAC,IAAI,CACZ,CAAC;gBACF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClC,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC5B,qCAAqC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;oBAC/B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,CAAC;wBAAE,IAAI,CAAC,cAAc,EAAE,CAAC;yBACvD;wBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;qBACtB;oBACD,OAAO;iBACR;gBACD,eAAe;gBACf,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,CAAC;oBAAE,OAAO;gBACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC/D;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC,CAAC;QA2JM,kBAAa,GAAG,CAAC,CAAe,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrB,OAAO;aACR;YACD,oCAAoC;YACpC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACjD,IAAI,CAAC,WAAW,CACd,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;aACH;YACD,IACE,IAAI,CAAC,IAAI,KAAK,UAAU;gBACxB,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,YAAY;gBACjB,IAAI,CAAC,UAAU,EACf;gBACA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,CAAC;oBAAE,OAAO;gBACf,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC/B,iBAAiB,CACf,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,CAAC,QAAQ,EAC1B,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,CAAC,CAAC,IAAI,CACZ,CAAC;aACH;QACH,CAAC,CAAC;QAEM,gBAAW,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO;YAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;gBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;oBACrB,MAAM,GAAG,GAAe;wBACtB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;wBACjB,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE;wBAC5B,KAAK,EAAE,IAAI,CAAC,aAAa;wBACzB,MAAM,EAAE,KAAK;wBACb,QAAQ,EAAE,KAAK;wBACf,QAAQ,EAAE,IAAI,CAAC,UAAU;qBAC1B,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;iBACzB;qBAAM;oBACL,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACtC;gBACD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;aAC7B;QACH,CAAC,CAAC;QAwEM,cAAS,GAAG,CAAC,CAAgB,EAAE,EAAE;YACvC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,OAAO;YACnC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO;aACR;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACzB,OAAO;aACR;YACD,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;gBAChE,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO;aACR;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;gBAC/C,IAAI,IAAI,CAAC,UAAU;oBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5D,OAAO;aACR;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;gBACrB,gCAAgC;gBAChC,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,cAAc,EAAE,CAAC;;oBACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,OAAO;aACR;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG;gBAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG;gBAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG;gBAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG;gBAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,CAAgB,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;gBACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC1B;QACH,CAAC,CAAC;QAplBA,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAgC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,SAAS;QAC9E,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC7B,MAAM,IAAI,GACR,MAAA,IAAI,CAAC,YAAY,mCAChB,OAAO,CAAC,WAA0B,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5E,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,YAAY,mCAAI,IAAI,GAAG,MAAM,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QAE3B,uCAAuC;QACvC,0CAA0C;QAC1C,kDAAkD;QAClD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3C,OAAO,CAAC,YAAY,CAClB,UAAU,EACT,OAAO,CAAC,YAAY,CAAC,UAAU,CAA2B,CAAC,KAAK,EAAE,CACpE,CAAC;QACF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7C,+DAA+D;QAC/D,yDAAyD;QACzD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAkBD,IAAY,aAAa;;QACvB,OAAO,MAAA,IAAI,CAAC,CAAC,CAAC,aAAa,mCAAI,SAAS,CAAC;IAC3C,CAAC;IACD,IAAY,aAAa;;QACvB,OAAO,MAAA,IAAI,CAAC,CAAC,CAAC,aAAa,mCAAI,SAAS,CAAC;IAC3C,CAAC;IACD,IAAY,aAAa;;QACvB,OAAO,MAAA,IAAI,CAAC,CAAC,CAAC,UAAU,mCAAI,SAAS,CAAC;IACxC,CAAC;IAED,6BAA6B;IAE7B,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,CAAiB;;QACvB,2CAA2C;QAC3C,IAAI,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAA,MAAA,IAAI,CAAC,CAAC,EAAC,YAAY,mDAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,gBAAgB;IAChB,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,qCAAqC;QACrC,kBAAkB;QAClB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,CAAC;gBAAE,IAAI,CAAC,cAAc,EAAE,CAAC;iBACvD;gBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;YACD,OAAO;SACR;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACd,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,EAAU;QACzB,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,EAAiB;QAChC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,0BAA0B;IAC1B,iBAAiB,CAAC,EAAU;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,OAAO;QAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;YACxB,eAAe,CAAC,CAAC,CAAC,QAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;SAC/C;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,CAAC,QAAsB,CAAC;YAClC,CAAC,CAAC,QAAoC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC5D;IACH,CAAC;IAED,UAAU,CAAC,SAAiB,EAAE,IAAoB;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,eAAe;IAEP,iBAAiB;QACvB,sCAAsC;QACtC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;IACvE,CAAC;IAED,2DAA2D;IACnD,SAAS;;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,CAAC,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC7C;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAA,MAAA,IAAI,CAAC,CAAC,EAAC,QAAQ,mDAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,cAAc;QACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,CAAC,QAAQ;gBAAE,SAAS;YAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;gBACxB,MAAM,GAAG,GAAI,CAAC,CAAC,QAAkB,CAAC,QAAwB,CAAC;gBAC3D,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;aAC3C;iBAAM;gBACL,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAEO,aAAa,CAAC,CAAiB;;QACrC,MAAM,GAAG,GAAG,CAAe,CAAC;QAC5B,MAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,OAAO,kDAAI,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAyD,CAAC;QAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;;YACnD,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,mDAAI,CAAC;IACxB,CAAC;IAEO,MAAM;QACZ,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;IAC1B,CAAC;IAEO,GAAG,CAAC,CAAe;QACzB,OAAO,cAAc,CACnB,IAAI,CAAC,CAAC,CAAC,MAAM,EACb,IAAI,CAAC,CAAC,CAAC,SAAS,EAChB,IAAI,CAAC,CAAC,CAAC,IAAI,EACX,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,OAAO,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,CAAQ;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,MAA4B,CAAC;QACzC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IA2ED,oCAAoC;IAC5B,aAAa,CAAC,CAAe;QACnC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAoB,CAAC,CAAC;IACrE,CAAC;IAED,+CAA+C;IACvC,WAAW,CAAC,GAAW;QAC7B,IAAI,GAAG,KAAK,IAAI,CAAC,gBAAgB,EAAE;YACjC,IAAI,GAAG,IAAI,CAAC;gBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1D,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;SAC3C;aAAM;YACL,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAClE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;SACpC;IACH,CAAC;IAED,0DAA0D;IAClD,cAAc;QACpB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE;YACrB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,kCAAkC;YACxC,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,2BAA2B;YACtC,SAAS,EAAE,uBAAuB;YAClC,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,KAAK;SACqB,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,2CAA2C;IACnC,gBAAgB,CAAC,MAAkB;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,yCAAyC;IACjC,iBAAiB;QACvB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,eAAe,CAC5B,CAAC,EACD,IAAI,CAAC,CAAC,CAAC,IAAI,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CACzB,CAAC;YACF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACpC;IACH,CAAC;IAED,oCAAoC;IAC5B,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;aAChC;YACD,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,eAAe,CAClC,KAAK,EACL,IAAI,CAAC,aAAa,EAClB,KAAK,EACL,IAAI,CAAC,CAAC,CAAC,SAAS,EAChB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,CAAC,CAAC,IAAI,CACZ,CAAC;YACF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACtC;aAAM;YACL,iBAAiB,CACf,IAAI,CAAC,aAAa,EAClB,KAAK,EACL,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,CAAC,CAAC,IAAI,CACZ,CAAC;SACH;IACH,CAAC;IAED,oCAAoC;IAC5B,cAAc;QACpB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;SAChC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,mCAAmC;IAC3B,gBAAgB;QACtB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;IA0DO,gBAAgB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC/E,qCAAqC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,iBAAiB,CACf,IAAI,CAAC,QAAiB,EACtB,IAAI,CAAC,QAAQ,EACb,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,CAAC,CAAC,IAAI,CACZ,CAAC;IACJ,CAAC;IAED,2DAA2D;IACnD,kBAAkB,CACxB,CAAmB,EACnB,CAAmB;QAEnB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,kCAAkC;IAC1B,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB,iBAAiB,CACf,IAAI,CAAC,aAAa,EAClB,KAAK,EACL,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,CAAC,CAAC,IAAI,CACZ,CAAC;YACF,MAAM,GAAG,GAAe;gBACtB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;gBACjB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE;gBAC5B,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,MAAM;gBACN,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI,CAAC,aAAa;aAC7B,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACrB;aAAM;YACL,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACxC;QACD,uBAAuB;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAEO,cAAc,CAAC,CAAgB;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,MAA4B,CAAC;QACzC,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrB,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;QACtB,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC;IACtE,CAAC;IAyCD,OAAO;;QACL,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"SurfaceAnnotator.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/SurfaceAnnotator.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import * as THREE from "three";
2
2
  import type { Annotation, ExportOptions } from "./types";
3
3
  /**
4
- * 标注数据模型 + 撤销栈 + 导出。纯数据,无 three / DOM 依赖。
5
- * 撤销只记录 add / remove 两类原子操作(满足"撤销最近添加 / 恢复删除")
6
- * 通过 subscribe 通知 UI 与渲染层(后者据 list() 做场景对账)
4
+ * Annotation data model + undo stack + export. Pure data, no three / DOM dependencies.
5
+ * Undo only records two atomic operations, add / remove (enough for "undo last add / restore delete").
6
+ * Notifies the UI and render layer via subscribe (the latter reconciles the scene against list()).
7
7
  */
8
8
  export declare class AnnotationStore {
9
9
  private items;
@@ -14,7 +14,7 @@ export declare class AnnotationStore {
14
14
  add(a: Annotation): void;
15
15
  remove(id: string): Annotation | undefined;
16
16
  undo(): void;
17
- /** 清空,返回被清掉的项(供渲染层 dispose three 对象) */
17
+ /** Clear all, returning the removed items (so the render layer can dispose three objects). */
18
18
  clear(): Annotation[];
19
19
  list(): Annotation[];
20
20
  get(id: string): Annotation | undefined;
@@ -1,8 +1,8 @@
1
1
  import * as THREE from "three";
2
2
  /**
3
- * 标注数据模型 + 撤销栈 + 导出。纯数据,无 three / DOM 依赖。
4
- * 撤销只记录 add / remove 两类原子操作(满足"撤销最近添加 / 恢复删除")
5
- * 通过 subscribe 通知 UI 与渲染层(后者据 list() 做场景对账)
3
+ * Annotation data model + undo stack + export. Pure data, no three / DOM dependencies.
4
+ * Undo only records two atomic operations, add / remove (enough for "undo last add / restore delete").
5
+ * Notifies the UI and render layer via subscribe (the latter reconciles the scene against list()).
6
6
  */
7
7
  export class AnnotationStore {
8
8
  constructor() {
@@ -45,7 +45,7 @@ export class AnnotationStore {
45
45
  }
46
46
  this.notify();
47
47
  }
48
- /** 清空,返回被清掉的项(供渲染层 dispose three 对象) */
48
+ /** Clear all, returning the removed items (so the render layer can dispose three objects). */
49
49
  clear() {
50
50
  const old = this.items;
51
51
  this.items = [];
@@ -1 +1 @@
1
- {"version":3,"file":"annotationStore.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/annotationStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"annotationStore.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/annotationStore.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ import { Line2 } from "three/examples/jsm/lines/Line2";
3
3
  import type { AnnotationVertex } from "./types";
4
4
  export declare function makeContourLine(verts: AnnotationVertex[], color: string, closed: boolean, container: HTMLElement, epsilon: number, mesh: THREE.Mesh): Line2;
5
5
  export declare function updateContourLine(line: Line2, verts: AnnotationVertex[], closed: boolean, epsilon: number, mesh: THREE.Mesh): void;
6
- /** 改变已有 contour 线的颜色。 */
6
+ /** Change the color of an existing contour line. */
7
7
  export declare function setContourColor(line: Line2, color: string): void;
@@ -4,9 +4,10 @@ import { LineGeometry } from "three/examples/jsm/lines/LineGeometry";
4
4
  import { LineMaterial } from "three/examples/jsm/lines/LineMaterial";
5
5
  import { localVertexToWorld } from "./types";
6
6
  /**
7
- * 把标注顶点(local)序列展平成 Line2 需要的 world [x,y,z, ...]
8
- * 每个点 local→world,再沿 world 法线外移 epsilon,避免与模型表面 z-fighting。
9
- * closed 时把首点追加到末尾形成环。
7
+ * Flatten a sequence of annotation vertices (local) into the world [x,y,z, ...] that Line2 needs.
8
+ * Each point goes local→world, then is pushed outward along the world normal by epsilon to avoid
9
+ * z-fighting with the model surface.
10
+ * When closed, the first point is appended to the end to form a ring.
10
11
  */
11
12
  function flatten(verts, closed, epsilon, mesh) {
12
13
  const pts = [];
@@ -22,27 +23,31 @@ function flatten(verts, closed, epsilon, mesh) {
22
23
  export function makeContourLine(verts, color, closed, container, epsilon, mesh) {
23
24
  const geo = new LineGeometry();
24
25
  const pos = flatten(verts, closed, epsilon, mesh);
25
- // Line2 至少需要 2 个点;不足时给一个退化占位,后续 update 会补上。
26
+ // Line2 needs at least 2 points; when there aren't enough, give a degenerate placeholder that a later update fills in.
26
27
  geo.setPositions(pos.length >= 6 ? pos : [0, 0, 0, 0, 0, 0]);
27
28
  const mat = new LineMaterial({
28
29
  color: new THREE.Color(color).getHex(),
29
- linewidth: 3, // 像素宽( resolution 配合)
30
+ linewidth: 3, // width in pixels (requires resolution to be set)
31
+ // depthTest stays ON so the model correctly occludes the line when it is on the far side
32
+ // (no see-through). The host applies polygonOffset to the SURFACE material so the line still
33
+ // wins where it lies coplanar with the surface (no z-fighting / sinking on bumpy meshes).
30
34
  });
31
35
  mat.resolution.set(container.clientWidth, container.clientHeight);
32
36
  const line = new Line2(geo, mat);
33
37
  line.computeLineDistances();
34
38
  line.renderOrder = 998;
35
- // 关键:Line2 的包围球停留在初始点,拖拽生长后真实几何会被错误剔除。
36
- // 关闭视锥剔除,保证线始终渲染。
39
+ // Important: Line2's bounding sphere stays at the initial point, so once the geometry grows by
40
+ // dragging, the real geometry gets wrongly culled. Disable frustum culling so the line always renders.
37
41
  line.frustumCulled = false;
38
42
  return line;
39
43
  }
40
44
  export function updateContourLine(line, verts, closed, epsilon, mesh) {
41
45
  const pos = flatten(verts, closed, epsilon, mesh);
42
46
  if (pos.length < 6)
43
- return; // Line2 需要 >=2
44
- // 关键:Line2 在原 geometry setPositions 扩容后只渲染首段(已知坑)。
45
- // 改为每次重建一个新 LineGeometry 并替换,保证实例数正确、全段渲染。
47
+ return; // Line2 needs >=2 points
48
+ // Important: calling setPositions on the existing geometry to grow it only renders the first
49
+ // segment (a known pitfall). Instead, rebuild and swap in a new LineGeometry each time so the
50
+ // instance count is correct and every segment renders.
46
51
  const geo = new LineGeometry();
47
52
  geo.setPositions(pos);
48
53
  const old = line.geometry;
@@ -50,7 +55,7 @@ export function updateContourLine(line, verts, closed, epsilon, mesh) {
50
55
  old.dispose();
51
56
  line.computeLineDistances();
52
57
  }
53
- /** 改变已有 contour 线的颜色。 */
58
+ /** Change the color of an existing contour line. */
54
59
  export function setContourColor(line, color) {
55
60
  line.material.color.set(color);
56
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contourRender.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/contourRender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contourRender.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/contourRender.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import * as THREE from "three";
2
2
  import type { AnnotationVertex } from "./types";
3
3
  import { MeshGraph } from "./MeshGraph";
4
4
  /**
5
- * 模式 B(测地线)状态机:逐次点击锚点,相邻锚点之间用 MeshGraph 求最短路径,
6
- * 拼成一条贴合表面的折线。Enter 结束并可闭合(首尾再求一段)。
5
+ * State machine for mode B (geodesic): click anchors one by one, find the shortest path between
6
+ * adjacent anchors with MeshGraph, and stitch them into a polyline that hugs the surface.
7
+ * Enter finishes and can close the loop (computing one more segment between first and last).
7
8
  */
8
9
  export declare class GeodesicContour {
9
10
  private graph;
@@ -12,21 +13,21 @@ export declare class GeodesicContour {
12
13
  private segments;
13
14
  private history;
14
15
  constructor(graph: MeshGraph, mesh: THREE.Mesh);
15
- /** 任何改动锚点前先存一份快照(顶点索引数组很小,快照成本可忽略) */
16
+ /** Save a snapshot before any anchor change (the vertex-index array is tiny, so snapshot cost is negligible). */
16
17
  private snapshot;
17
- /** 传入 local 命中点,snap 到最近顶点并对上一锚点求路径。 */
18
+ /** Given a local hit point, snap to the nearest vertex and compute the path to the previous anchor. */
18
19
  addAnchor(localHitPoint: THREE.Vector3): void;
19
- /** 删除指定下标的锚点,重算相邻段(支持取消中间任意一点) */
20
+ /** Remove the anchor at the given index and recompute adjacent segments (allows canceling any middle point). */
20
21
  removeAnchorAt(index: number): void;
21
- /** 是否还有可撤销的编辑(加点/删点) */
22
+ /** Whether there is still an editable change to undo (add/remove point). */
22
23
  canUndo(): boolean;
23
- /** 撤销上一次锚点编辑(加点删回去;删点恢复)。无历史返回 false */
24
+ /** Undo the last anchor edit (addremove it; remove restore it). Returns false when no history. */
24
25
  undoEdit(): boolean;
25
- /** 据当前锚点序列整体重算所有相邻段路径。 */
26
+ /** Recompute all adjacent-segment paths from the current anchor sequence. */
26
27
  private rebuildSegments;
27
- /** 各锚点的 local 顶点(用于绘制可见的锚点标记) */
28
+ /** Local vertex of each anchor (used to draw visible anchor markers). */
28
29
  getAnchorLocals(): AnnotationVertex[];
29
30
  get anchorCount(): number;
30
- /** 把所有路径顶点(world)+ 法线 拼成折线;closed 时补一段首尾路径。 */
31
+ /** Stitch all path vertices (world) + normals into a polyline; when closed, add one first-to-last segment. */
31
32
  buildVertices(closed: boolean): AnnotationVertex[];
32
33
  }
@@ -1,20 +1,21 @@
1
1
  /**
2
- * 模式 B(测地线)状态机:逐次点击锚点,相邻锚点之间用 MeshGraph 求最短路径,
3
- * 拼成一条贴合表面的折线。Enter 结束并可闭合(首尾再求一段)。
2
+ * State machine for mode B (geodesic): click anchors one by one, find the shortest path between
3
+ * adjacent anchors with MeshGraph, and stitch them into a polyline that hugs the surface.
4
+ * Enter finishes and can close the loop (computing one more segment between first and last).
4
5
  */
5
6
  export class GeodesicContour {
6
7
  constructor(graph, mesh) {
7
8
  this.graph = graph;
8
9
  this.mesh = mesh;
9
- this.anchors = []; // 顶点索引
10
- this.segments = []; // 相邻锚点间路径(含端点)
11
- this.history = []; // 每次增删前的锚点快照,用于撤销
10
+ this.anchors = []; // vertex indices
11
+ this.segments = []; // path between adjacent anchors (endpoints included)
12
+ this.history = []; // anchor snapshot before each add/remove, for undo
12
13
  }
13
- /** 任何改动锚点前先存一份快照(顶点索引数组很小,快照成本可忽略) */
14
+ /** Save a snapshot before any anchor change (the vertex-index array is tiny, so snapshot cost is negligible). */
14
15
  snapshot() {
15
16
  this.history.push(this.anchors.slice());
16
17
  }
17
- /** 传入 local 命中点,snap 到最近顶点并对上一锚点求路径。 */
18
+ /** Given a local hit point, snap to the nearest vertex and compute the path to the previous anchor. */
18
19
  addAnchor(localHitPoint) {
19
20
  const v = this.graph.nearestVertex(localHitPoint);
20
21
  this.snapshot();
@@ -24,7 +25,7 @@ export class GeodesicContour {
24
25
  }
25
26
  this.anchors.push(v);
26
27
  }
27
- /** 删除指定下标的锚点,重算相邻段(支持取消中间任意一点) */
28
+ /** Remove the anchor at the given index and recompute adjacent segments (allows canceling any middle point). */
28
29
  removeAnchorAt(index) {
29
30
  if (index < 0 || index >= this.anchors.length)
30
31
  return;
@@ -32,11 +33,11 @@ export class GeodesicContour {
32
33
  this.anchors.splice(index, 1);
33
34
  this.rebuildSegments();
34
35
  }
35
- /** 是否还有可撤销的编辑(加点/删点) */
36
+ /** Whether there is still an editable change to undo (add/remove point). */
36
37
  canUndo() {
37
38
  return this.history.length > 0;
38
39
  }
39
- /** 撤销上一次锚点编辑(加点删回去;删点恢复)。无历史返回 false */
40
+ /** Undo the last anchor edit (addremove it; remove restore it). Returns false when no history. */
40
41
  undoEdit() {
41
42
  const prev = this.history.pop();
42
43
  if (!prev)
@@ -45,21 +46,21 @@ export class GeodesicContour {
45
46
  this.rebuildSegments();
46
47
  return true;
47
48
  }
48
- /** 据当前锚点序列整体重算所有相邻段路径。 */
49
+ /** Recompute all adjacent-segment paths from the current anchor sequence. */
49
50
  rebuildSegments() {
50
51
  this.segments = [];
51
52
  for (let i = 1; i < this.anchors.length; i++) {
52
53
  this.segments.push(this.graph.shortestPath(this.anchors[i - 1], this.anchors[i]));
53
54
  }
54
55
  }
55
- /** 各锚点的 local 顶点(用于绘制可见的锚点标记) */
56
+ /** Local vertex of each anchor (used to draw visible anchor markers). */
56
57
  getAnchorLocals() {
57
58
  return this.anchors.map((i) => this.graph.vertexLocal(i));
58
59
  }
59
60
  get anchorCount() {
60
61
  return this.anchors.length;
61
62
  }
62
- /** 把所有路径顶点(world)+ 法线 拼成折线;closed 时补一段首尾路径。 */
63
+ /** Stitch all path vertices (world) + normals into a polyline; when closed, add one first-to-last segment. */
63
64
  buildVertices(closed) {
64
65
  const segs = this.segments.slice();
65
66
  if (closed && this.anchors.length > 2) {
@@ -67,14 +68,14 @@ export class GeodesicContour {
67
68
  }
68
69
  const idxPath = [];
69
70
  segs.forEach((s, si) => {
70
- const start = si === 0 ? 0 : 1; // 去重相邻段共享端点
71
+ const start = si === 0 ? 0 : 1; // dedupe the endpoint shared between adjacent segments
71
72
  for (let k = start; k < s.length; k++)
72
73
  idxPath.push(s[k]);
73
74
  });
74
75
  if (idxPath.length === 0 && this.anchors.length === 1) {
75
76
  idxPath.push(this.anchors[0]);
76
77
  }
77
- // 图几何即 local 空间,直接产出 local 顶点(渲染时再派生 world)
78
+ // The graph geometry is already local space, so emit local vertices directly (world is derived at render time).
78
79
  return idxPath.map((i) => this.graph.vertexLocal(i));
79
80
  }
80
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"geodesicContour.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/geodesicContour.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,OAAO,eAAe;IAK1B,YAAoB,KAAgB,EAAU,IAAgB;QAA1C,UAAK,GAAL,KAAK,CAAW;QAAU,SAAI,GAAJ,IAAI,CAAY;QAJtD,YAAO,GAAa,EAAE,CAAC,CAAC,OAAO;QAC/B,aAAQ,GAAe,EAAE,CAAC,CAAC,eAAe;QAC1C,YAAO,GAAe,EAAE,CAAC,CAAC,kBAAkB;IAEa,CAAC;IAElE,uCAAuC;IAC/B,QAAQ;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,wCAAwC;IACxC,SAAS,CAAC,aAA4B;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SACtD;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,mCAAmC;IACnC,cAAc,CAAC,KAAa;QAC1B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,yBAAyB;IACzB,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,+CAA+C;IAC/C,QAAQ;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAClB,eAAe;QACrB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC9D,CAAC;SACH;IACH,CAAC;IAED,kCAAkC;IAClC,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,+CAA+C;IAC/C,aAAa,CAAC,MAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,KAAK,CAAC,YAAY,CACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EACrC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAChB,CACF,CAAC;SACH;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YAC5C,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACrD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,6CAA6C;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;CACF"}
1
+ {"version":3,"file":"geodesicContour.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/geodesicContour.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import * as THREE from "three";
2
2
  import type { AnnotationVertex } from "./types";
3
3
  /**
4
- * local 顶点处生成一个标记小球(fiducial)local→world 后沿 world 法线略外移,
5
- * 避免一半埋进表面。radius 由调用方按模型 bbox 缩放传入。
4
+ * Create a marker sphere (fiducial) at a local vertex. After local→world, nudge it
5
+ * outward along the world normal so it doesn't sink halfway into the surface.
6
+ * radius is passed in by the caller, scaled to the model bbox.
6
7
  */
7
8
  export declare function makePointMarker(v: AnnotationVertex, mesh: THREE.Mesh, color: string, radius: number): THREE.Mesh;
@@ -1,11 +1,15 @@
1
1
  import * as THREE from "three";
2
2
  import { localVertexToWorld } from "./types";
3
3
  /**
4
- * local 顶点处生成一个标记小球(fiducial)local→world 后沿 world 法线略外移,
5
- * 避免一半埋进表面。radius 由调用方按模型 bbox 缩放传入。
4
+ * Create a marker sphere (fiducial) at a local vertex. After local→world, nudge it
5
+ * outward along the world normal so it doesn't sink halfway into the surface.
6
+ * radius is passed in by the caller, scaled to the model bbox.
6
7
  */
7
8
  export function makePointMarker(v, mesh, color, radius) {
8
9
  const geo = new THREE.SphereGeometry(radius, 16, 16);
10
+ // depthTest ON so markers are occluded by the model when they are on the far side (no
11
+ // see-through), consistent with the contour lines. Markers are volumetric spheres lifted off
12
+ // the surface, so they still show on the visible side without z-fighting.
9
13
  const mat = new THREE.MeshBasicMaterial({ color });
10
14
  const m = new THREE.Mesh(geo, mat);
11
15
  const { p, n } = localVertexToWorld(v, mesh);
@@ -1 +1 @@
1
- {"version":3,"file":"pointMarkers.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/pointMarkers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,CAAmB,EACnB,IAAgB,EAChB,KAAa,EACb,MAAc;IAEd,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;IACpB,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"pointMarkers.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/pointMarkers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,CAAmB,EACnB,IAAgB,EAChB,KAAa,EACb,MAAc;IAEd,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,sFAAsF;IACtF,6FAA6F;IAC7F,0EAA0E;IAC1E,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;IACpB,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import * as THREE from "three";
2
2
  import type { SurfaceHit } from "./types";
3
3
  /**
4
- * 把屏幕坐标(clientX/Y)投射到 mesh 表面,返回命中点、world-space 法线与 faceIndex。
5
- * 未命中返回 null。本地实现,不依赖 Copper3D 未导出的 raycast 内部函数。
4
+ * Project screen coordinates (clientX/Y) onto the mesh surface, returning the hit point,
5
+ * world-space normal, and faceIndex. Returns null on a miss. Local implementation that does not
6
+ * depend on Copper3D's unexported raycast internals.
6
7
  */
7
8
  export declare function raycastSurface(camera: THREE.PerspectiveCamera, container: HTMLElement, mesh: THREE.Mesh, clientX: number, clientY: number): SurfaceHit | null;
@@ -1,9 +1,69 @@
1
1
  import * as THREE from "three";
2
2
  const ray = new THREE.Raycaster();
3
3
  const ndc = new THREE.Vector2();
4
+ // scratch objects for the smooth-normal interpolation (avoid per-call allocation)
5
+ const _nm = new THREE.Matrix3();
6
+ const _lp = new THREE.Vector3();
7
+ const _pa = new THREE.Vector3();
8
+ const _pb = new THREE.Vector3();
9
+ const _pc = new THREE.Vector3();
10
+ const _na = new THREE.Vector3();
11
+ const _nb = new THREE.Vector3();
12
+ const _nc = new THREE.Vector3();
13
+ const _v0 = new THREE.Vector3();
14
+ const _v1 = new THREE.Vector3();
15
+ const _v2 = new THREE.Vector3();
4
16
  /**
5
- * 把屏幕坐标(clientX/Y)投射到 mesh 表面,返回命中点、world-space 法线与 faceIndex。
6
- * 未命中返回 null。本地实现,不依赖 Copper3D 未导出的 raycast 内部函数。
17
+ * Interpolate a "smooth per-vertex normal" across the hit triangle using barycentric coordinates,
18
+ * instead of using the per-face normal.
19
+ *
20
+ * Per-face normals on voxel / marching-cubes meshes are axis-aligned stair directions (±x/±y/±z);
21
+ * using them to push the annotation line outward along the normal shoves points toward neighboring
22
+ * stairs rather than cleanly "outward", making the line dip in and out on bumpy surfaces and get
23
+ * occluded by the steps. A smooth normal varies continuously along the surface, so the outward
24
+ * direction is stable and consistent and the line can float smoothly above the relief. Returns false
25
+ * when interpolation isn't possible (caller falls back to the face normal).
26
+ */
27
+ function interpolateLocalNormal(geom, face, localPoint, out) {
28
+ const posAttr = geom.getAttribute("position");
29
+ const norAttr = geom.getAttribute("normal");
30
+ if (!posAttr || !norAttr)
31
+ return false;
32
+ _pa.fromBufferAttribute(posAttr, face.a);
33
+ _pb.fromBufferAttribute(posAttr, face.b);
34
+ _pc.fromBufferAttribute(posAttr, face.c);
35
+ // Barycentric coordinates (local space): u/v/w
36
+ _v0.subVectors(_pb, _pa);
37
+ _v1.subVectors(_pc, _pa);
38
+ _v2.subVectors(localPoint, _pa);
39
+ const d00 = _v0.dot(_v0);
40
+ const d01 = _v0.dot(_v1);
41
+ const d11 = _v1.dot(_v1);
42
+ const d20 = _v2.dot(_v0);
43
+ const d21 = _v2.dot(_v1);
44
+ const denom = d00 * d11 - d01 * d01;
45
+ if (Math.abs(denom) < 1e-12)
46
+ return false;
47
+ const v = (d11 * d20 - d01 * d21) / denom;
48
+ const w = (d00 * d21 - d01 * d20) / denom;
49
+ const u = 1 - v - w;
50
+ _na.fromBufferAttribute(norAttr, face.a);
51
+ _nb.fromBufferAttribute(norAttr, face.b);
52
+ _nc.fromBufferAttribute(norAttr, face.c);
53
+ out
54
+ .set(0, 0, 0)
55
+ .addScaledVector(_na, u)
56
+ .addScaledVector(_nb, v)
57
+ .addScaledVector(_nc, w);
58
+ if (out.lengthSq() < 1e-12)
59
+ return false;
60
+ out.normalize();
61
+ return true;
62
+ }
63
+ /**
64
+ * Project screen coordinates (clientX/Y) onto the mesh surface, returning the hit point,
65
+ * world-space normal, and faceIndex. Returns null on a miss. Local implementation that does not
66
+ * depend on Copper3D's unexported raycast internals.
7
67
  */
8
68
  export function raycastSurface(camera, container, mesh, clientX, clientY) {
9
69
  var _a;
@@ -18,9 +78,15 @@ export function raycastSurface(camera, container, mesh, clientX, clientY) {
18
78
  const point = h.point.clone();
19
79
  const normal = new THREE.Vector3(0, 0, 1);
20
80
  if (h.face) {
21
- normal.copy(h.face.normal);
22
- const nm = new THREE.Matrix3().getNormalMatrix(mesh.matrixWorld);
23
- normal.applyMatrix3(nm).normalize();
81
+ // Prefer a smooth interpolated normal (stable outward direction on bumpy/voxel meshes);
82
+ // fall back to the flat face normal if the geometry has no normal attribute.
83
+ _lp.copy(h.point);
84
+ mesh.worldToLocal(_lp);
85
+ if (!interpolateLocalNormal(mesh.geometry, h.face, _lp, normal)) {
86
+ normal.copy(h.face.normal);
87
+ }
88
+ _nm.getNormalMatrix(mesh.matrixWorld);
89
+ normal.applyMatrix3(_nm).normalize();
24
90
  }
25
91
  return { point, normal, faceIndex: (_a = h.faceIndex) !== null && _a !== void 0 ? _a : -1 };
26
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"raycastSurface.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/raycastSurface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;AAClC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA+B,EAC/B,SAAsB,EACtB,IAAgB,EAChB,OAAe,EACf,OAAe;;IAEf,MAAM,IAAI,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;IAC/C,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrD,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtD,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,IAAI,EAAE;QACV,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;KACrC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAA,CAAC,CAAC,SAAS,mCAAI,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"raycastSurface.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/raycastSurface.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import * as THREE from "three";
2
2
  import type { AnnotationVertex, SurfaceHit } from "./types";
3
3
  /**
4
- * 模式 A(自由手绘)一笔的状态机。
5
- * pointermove 时不断 addSample;与上一采样点世界距离 < minGap 的样本丢弃,避免过密。
6
- * 顶点以 local 存(由 mesh 把世界命中点转 local)。
4
+ * State machine for one stroke in mode A (freehand).
5
+ * On pointermove it keeps calling addSample; samples whose world distance from the previous
6
+ * sample is < minGap are dropped to avoid over-density.
7
+ * Vertices are stored in local space (the mesh converts the world hit point to local).
7
8
  */
8
9
  export declare class StrokeContour {
9
10
  private minGap;
@@ -14,9 +15,11 @@ export declare class StrokeContour {
14
15
  private lastNormal;
15
16
  private has;
16
17
  /**
17
- * @param minGap 采样最小间距(世界系),去抖
18
- * @param maxJump 跳变阈值(世界系):距离 > maxJump 且法线大幅翻转时丢弃该样本,
19
- * 避免笔触掠过沟缝/轮廓边时相邻点落在不同深度、直线段横穿模型。
18
+ * @param minGap minimum sample spacing (world space), debounce
19
+ * @param maxJump jump threshold (world space): drop the sample when distance > maxJump and the
20
+ * normal flips sharply, to prevent adjacent points landing at different depths
21
+ * (and the straight segment cutting through the model) when the stroke grazes a
22
+ * groove or contour edge.
20
23
  */
21
24
  constructor(minGap: number, maxJump: number, mesh: THREE.Mesh);
22
25
  begin(): void;