@reearth/core 0.0.7-alpha.5 → 0.0.7-alpha.51

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 (480) hide show
  1. package/dist/core.js +58676 -51066
  2. package/dist/core.umd.cjs +3959 -3915
  3. package/dist/{index-DqatWUTw.js → index-DqGWVPtz.js} +0 -1
  4. package/dist/index.d.ts +150 -34
  5. package/package.json +55 -39
  6. package/src/Map/ClusteredLayers/index.tsx +1 -1
  7. package/src/Map/Geoid/index.tsx +68 -0
  8. package/src/Map/Geoid/types.ts +8 -0
  9. package/src/Map/Layer/hooks.ts +7 -4
  10. package/src/Map/Layer/index.tsx +3 -1
  11. package/src/Map/Layers/hooks.ts +19 -2
  12. package/src/Map/Layers/index.tsx +13 -2
  13. package/src/Map/Layers/keys.ts +1 -0
  14. package/src/Map/Sketch/hooks.ts +453 -410
  15. package/src/Map/Sketch/index.tsx +67 -20
  16. package/src/Map/Sketch/sketchMachine.ts +359 -4
  17. package/src/Map/Sketch/sketchMachine.typegen.ts +58 -1
  18. package/src/Map/Sketch/types.ts +10 -20
  19. package/src/Map/Sketch/usePluginSketchLayer.ts +105 -0
  20. package/src/Map/Sketch/useSketch.ts +559 -0
  21. package/src/Map/Sketch/useSketchFeature.ts +198 -0
  22. package/src/Map/SpatialId/constants.ts +21 -0
  23. package/src/Map/SpatialId/hooks.ts +448 -0
  24. package/src/Map/SpatialId/index.tsx +63 -0
  25. package/src/Map/SpatialId/types.ts +68 -0
  26. package/src/Map/SpatialId/utils.ts +65 -0
  27. package/src/Map/hooks.ts +54 -8
  28. package/src/Map/index.tsx +41 -8
  29. package/src/Map/ref.ts +32 -3
  30. package/src/Map/types/index.ts +39 -3
  31. package/src/Map/types/viewerProperty.ts +10 -0
  32. package/src/Map/useTimelineManager.ts +2 -2
  33. package/src/Map/utils.ts +1 -1
  34. package/src/Visualizer/context.tsx +5 -5
  35. package/src/Visualizer/coreContext.tsx +2 -0
  36. package/src/Visualizer/hooks.ts +54 -20
  37. package/src/Visualizer/index.tsx +22 -3
  38. package/src/Visualizer/interactionMode.ts +2 -1
  39. package/src/Visualizer/useViewport.ts +1 -1
  40. package/src/engines/Cesium/Feature/Box/hooks/box.ts +4 -4
  41. package/src/engines/Cesium/Feature/HeatMap/HeatmapMesh.tsx +1 -1
  42. package/src/engines/Cesium/Feature/Model/index.tsx +3 -3
  43. package/src/engines/Cesium/Feature/PhotoOverlay/hooks.ts +1 -1
  44. package/src/engines/Cesium/Feature/PhotoOverlay/index.tsx +3 -1
  45. package/src/engines/Cesium/Feature/Polygon/index.tsx +6 -4
  46. package/src/engines/Cesium/Feature/Raster/mvt.ts +2 -1
  47. package/src/engines/Cesium/Feature/Resource/utils.ts +86 -91
  48. package/src/engines/Cesium/Feature/Tileset/hooks.ts +135 -70
  49. package/src/engines/Cesium/Feature/Tileset/index.tsx +1 -1
  50. package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +2 -2
  51. package/src/engines/Cesium/Feature/context.ts +1 -0
  52. package/src/engines/Cesium/Feature/index.tsx +7 -3
  53. package/src/engines/Cesium/Feature/utils.tsx +18 -7
  54. package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/IBL.glsl +6 -10
  55. package/src/engines/Cesium/Sketch/ControlPoint.tsx +128 -24
  56. package/src/engines/Cesium/Sketch/ExtrudedControlPoints.tsx +70 -25
  57. package/src/engines/Cesium/Sketch/ExtrudedMeasurement.tsx +3 -1
  58. package/src/engines/Cesium/Sketch/ExtrudedPolygonEntity.tsx +14 -14
  59. package/src/engines/Cesium/Sketch/PolylineEntity.tsx +7 -4
  60. package/src/engines/Cesium/Sketch/SurfaceAddingPoints.tsx +60 -0
  61. package/src/engines/Cesium/Sketch/SurfaceControlPoints.tsx +125 -35
  62. package/src/engines/Cesium/Sketch/constants.ts +5 -0
  63. package/src/engines/Cesium/Sketch/index.tsx +68 -29
  64. package/src/engines/Cesium/SpatialId/CoordinateIndicator.tsx +28 -0
  65. package/src/engines/Cesium/SpatialId/SpatialIdSpace.tsx +33 -0
  66. package/src/engines/Cesium/SpatialId/VerticalSpaceIndicator.tsx +32 -0
  67. package/src/engines/Cesium/SpatialId/index.ts +3 -0
  68. package/src/engines/Cesium/common.ts +52 -16
  69. package/src/engines/Cesium/core/Clock.tsx +1 -1
  70. package/src/engines/Cesium/core/Globe/index.tsx +73 -0
  71. package/src/engines/Cesium/core/Globe/useTerrainProviderPromise.ts +79 -0
  72. package/src/engines/Cesium/core/Imagery.test.ts +29 -11
  73. package/src/engines/Cesium/core/Imagery.tsx +22 -6
  74. package/src/engines/Cesium/core/Indicator/Indicator.tsx +1 -1
  75. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +9 -2
  76. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapVectorMapLabel.tsx +14 -2
  77. package/src/engines/Cesium/core/labels/LabelImageryLayers.tsx +10 -1
  78. package/src/engines/Cesium/core/presets.ts +24 -28
  79. package/src/engines/Cesium/helpers/getGeometryFromEntity.ts +55 -0
  80. package/src/engines/Cesium/hooks/useCamera.ts +1 -1
  81. package/src/engines/Cesium/hooks/useCameraLimiter.ts +1 -1
  82. package/src/engines/Cesium/hooks/useEngineRef.ts +48 -3
  83. package/src/engines/Cesium/hooks/useExplicitRender.ts +2 -2
  84. package/src/engines/Cesium/hooks/useInstance.ts +1 -1
  85. package/src/engines/Cesium/hooks/useLayerDragDrop.ts +2 -2
  86. package/src/engines/Cesium/hooks/useLayerSelectWithRect.ts +1 -1
  87. package/src/engines/Cesium/hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts +98 -52
  88. package/src/engines/Cesium/hooks/useViewerProperty.ts +1 -1
  89. package/src/engines/Cesium/hooks.ts +52 -10
  90. package/src/engines/Cesium/index.tsx +16 -3
  91. package/src/engines/Cesium/types.ts +1 -1
  92. package/src/mantle/atoms/compute.ts +8 -3
  93. package/src/mantle/data/geojson.ts +53 -22
  94. package/src/mantle/data/shapefile/parseZip.ts +1 -0
  95. package/src/mantle/evaluator/simple/expression/expression.test.ts +72 -0
  96. package/src/mantle/evaluator/simple/expression/node.ts +10 -12
  97. package/src/mantle/types/appearance.ts +4 -2
  98. package/src/mantle/types/index.ts +3 -0
  99. package/src/test/utils.tsx +1 -1
  100. package/src/utils/image.ts +2 -12
  101. package/src/utils/use-delayed-count.ts +1 -1
  102. package/src/utils/use-dnd/drop.ts +1 -1
  103. package/src/utils/util.ts +1 -1
  104. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1
  105. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1
  106. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1
  107. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1
  108. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1
  109. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1
  110. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1
  111. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1
  112. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1
  113. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1
  114. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1
  115. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1
  116. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1
  117. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1
  118. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1
  119. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1
  120. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1
  121. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1
  122. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1
  123. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1
  124. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -1
  125. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1
  126. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1
  127. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1
  128. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1
  129. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1
  130. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1
  131. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1
  132. package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
  133. package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
  134. package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
  135. package/dist/cesium/Assets/Images/ion-credit.png +0 -0
  136. package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  137. package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  138. package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  139. package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  140. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  141. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  142. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  143. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  144. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  145. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  146. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  147. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  148. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  149. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  150. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  151. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  152. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  153. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  154. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  155. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  156. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  157. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  158. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  159. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  160. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  161. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  162. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  163. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  164. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  165. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  166. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  167. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  168. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  169. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  170. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  171. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  172. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  173. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  174. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  175. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  176. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  177. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  178. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  179. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  180. package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
  181. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  182. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  183. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  184. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  185. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  186. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  187. package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
  188. package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
  189. package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  190. package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
  191. package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
  192. package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
  193. package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
  194. package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
  195. package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
  196. package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
  197. package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
  198. package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
  199. package/dist/cesium/Assets/Textures/maki/building.png +0 -0
  200. package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
  201. package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
  202. package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
  203. package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
  204. package/dist/cesium/Assets/Textures/maki/car.png +0 -0
  205. package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
  206. package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
  207. package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
  208. package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
  209. package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  210. package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
  211. package/dist/cesium/Assets/Textures/maki/city.png +0 -0
  212. package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
  213. package/dist/cesium/Assets/Textures/maki/college.png +0 -0
  214. package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
  215. package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
  216. package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
  217. package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
  218. package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
  219. package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
  220. package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
  221. package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
  222. package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  223. package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
  224. package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
  225. package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
  226. package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
  227. package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
  228. package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
  229. package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
  230. package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
  231. package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
  232. package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
  233. package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
  234. package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
  235. package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
  236. package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
  237. package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
  238. package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
  239. package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
  240. package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
  241. package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
  242. package/dist/cesium/Assets/Textures/maki/library.png +0 -0
  243. package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
  244. package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
  245. package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
  246. package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
  247. package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  248. package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
  249. package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
  250. package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
  251. package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
  252. package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
  253. package/dist/cesium/Assets/Textures/maki/music.png +0 -0
  254. package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
  255. package/dist/cesium/Assets/Textures/maki/park.png +0 -0
  256. package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
  257. package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
  258. package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
  259. package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
  260. package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
  261. package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  262. package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
  263. package/dist/cesium/Assets/Textures/maki/police.png +0 -0
  264. package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
  265. package/dist/cesium/Assets/Textures/maki/post.png +0 -0
  266. package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
  267. package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
  268. package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
  269. package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
  270. package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
  271. package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
  272. package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
  273. package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  274. package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  275. package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
  276. package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
  277. package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
  278. package/dist/cesium/Assets/Textures/maki/school.png +0 -0
  279. package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
  280. package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
  281. package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
  282. package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  283. package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
  284. package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
  285. package/dist/cesium/Assets/Textures/maki/square.png +0 -0
  286. package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
  287. package/dist/cesium/Assets/Textures/maki/star.png +0 -0
  288. package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
  289. package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
  290. package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
  291. package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
  292. package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
  293. package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
  294. package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
  295. package/dist/cesium/Assets/Textures/maki/town.png +0 -0
  296. package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  297. package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
  298. package/dist/cesium/Assets/Textures/maki/village.png +0 -0
  299. package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
  300. package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
  301. package/dist/cesium/Assets/Textures/maki/water.png +0 -0
  302. package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
  303. package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
  304. package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
  305. package/dist/cesium/Assets/Textures/pin.svg +0 -1
  306. package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
  307. package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  308. package/dist/cesium/Assets/approximateTerrainHeights.json +0 -1
  309. package/dist/cesium/ThirdParty/Workers/package.json +0 -1
  310. package/dist/cesium/ThirdParty/Workers/pako_deflate.min.js +0 -1
  311. package/dist/cesium/ThirdParty/Workers/pako_inflate.min.js +0 -1
  312. package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +0 -1
  313. package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  314. package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
  315. package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +0 -1
  316. package/dist/cesium/Widgets/Animation/Animation.css +0 -127
  317. package/dist/cesium/Widgets/Animation/lighter.css +0 -70
  318. package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -108
  319. package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +0 -22
  320. package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -102
  321. package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -113
  322. package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -124
  323. package/dist/cesium/Widgets/CesiumWidget/lighter.css +0 -14
  324. package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -8
  325. package/dist/cesium/Widgets/Geocoder/Geocoder.css +0 -70
  326. package/dist/cesium/Widgets/Geocoder/lighter.css +0 -17
  327. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
  328. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  329. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  330. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  331. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  332. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  333. package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  334. package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  335. package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  336. package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  337. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  338. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  339. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  340. package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  341. package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  342. package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  343. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  344. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  345. package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  346. package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  347. package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
  348. package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
  349. package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
  350. package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
  351. package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -120
  352. package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
  353. package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
  354. package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
  355. package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
  356. package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  357. package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  358. package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
  359. package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
  360. package/dist/cesium/Widgets/InfoBox/InfoBox.css +0 -92
  361. package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -178
  362. package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -93
  363. package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +0 -38
  364. package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
  365. package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -38
  366. package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -56
  367. package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -20
  368. package/dist/cesium/Widgets/Timeline/Timeline.css +0 -103
  369. package/dist/cesium/Widgets/Timeline/lighter.css +0 -23
  370. package/dist/cesium/Widgets/VRButton/VRButton.css +0 -8
  371. package/dist/cesium/Widgets/Viewer/Viewer.css +0 -107
  372. package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -16
  373. package/dist/cesium/Widgets/lighter.css +0 -237
  374. package/dist/cesium/Widgets/lighterShared.css +0 -46
  375. package/dist/cesium/Widgets/shared.css +0 -103
  376. package/dist/cesium/Widgets/widgets.css +0 -1346
  377. package/dist/cesium/Workers/chunk-2ED5WI77.js +0 -26
  378. package/dist/cesium/Workers/chunk-2MBPFWCP.js +0 -26
  379. package/dist/cesium/Workers/chunk-3C74MLG3.js +0 -26
  380. package/dist/cesium/Workers/chunk-45U7TTT3.js +0 -26
  381. package/dist/cesium/Workers/chunk-4N7SRDH5.js +0 -26
  382. package/dist/cesium/Workers/chunk-4T6AS6BZ.js +0 -26
  383. package/dist/cesium/Workers/chunk-5AG2MVRM.js +0 -26
  384. package/dist/cesium/Workers/chunk-5Z6L2FHX.js +0 -26
  385. package/dist/cesium/Workers/chunk-6AUUBDOF.js +0 -26
  386. package/dist/cesium/Workers/chunk-74N6MC2V.js +0 -26
  387. package/dist/cesium/Workers/chunk-7VJK3KHI.js +0 -26
  388. package/dist/cesium/Workers/chunk-7VZHIB6P.js +0 -26
  389. package/dist/cesium/Workers/chunk-7X2YQ6I4.js +0 -27
  390. package/dist/cesium/Workers/chunk-B2SKQ7LU.js +0 -26
  391. package/dist/cesium/Workers/chunk-B4TQDFIE.js +0 -26
  392. package/dist/cesium/Workers/chunk-B6TRTFAA.js +0 -26
  393. package/dist/cesium/Workers/chunk-BK3HCS7I.js +0 -26
  394. package/dist/cesium/Workers/chunk-BOPB43LN.js +0 -26
  395. package/dist/cesium/Workers/chunk-C6DMEJQ7.js +0 -26
  396. package/dist/cesium/Workers/chunk-CN7UN2OZ.js +0 -26
  397. package/dist/cesium/Workers/chunk-CSISXEG7.js +0 -26
  398. package/dist/cesium/Workers/chunk-CUOR5F7T.js +0 -28
  399. package/dist/cesium/Workers/chunk-DGCK3LD2.js +0 -30
  400. package/dist/cesium/Workers/chunk-DXEZYE3K.js +0 -62
  401. package/dist/cesium/Workers/chunk-EXBFEYPQ.js +0 -26
  402. package/dist/cesium/Workers/chunk-FK5KFB6H.js +0 -26
  403. package/dist/cesium/Workers/chunk-HPBHKP5S.js +0 -26
  404. package/dist/cesium/Workers/chunk-JCJ24DHF.js +0 -26
  405. package/dist/cesium/Workers/chunk-JEWHFDAA.js +0 -26
  406. package/dist/cesium/Workers/chunk-JZLZJJQD.js +0 -26
  407. package/dist/cesium/Workers/chunk-KRZBI2MU.js +0 -26
  408. package/dist/cesium/Workers/chunk-KTTUANTJ.js +0 -26
  409. package/dist/cesium/Workers/chunk-LDCAXLGS.js +0 -26
  410. package/dist/cesium/Workers/chunk-LOPN5R3I.js +0 -26
  411. package/dist/cesium/Workers/chunk-MDLPQIMP.js +0 -26
  412. package/dist/cesium/Workers/chunk-MRR3RGFO.js +0 -26
  413. package/dist/cesium/Workers/chunk-NPBZI5YA.js +0 -26
  414. package/dist/cesium/Workers/chunk-NUSW5B6A.js +0 -26
  415. package/dist/cesium/Workers/chunk-OUXRUXNB.js +0 -26
  416. package/dist/cesium/Workers/chunk-QPOPEH3M.js +0 -26
  417. package/dist/cesium/Workers/chunk-R2AN7EKC.js +0 -26
  418. package/dist/cesium/Workers/chunk-RURL6ZX2.js +0 -26
  419. package/dist/cesium/Workers/chunk-SUQM3OSW.js +0 -28
  420. package/dist/cesium/Workers/chunk-UBIRX2SP.js +0 -26
  421. package/dist/cesium/Workers/chunk-VAKC5J5C.js +0 -26
  422. package/dist/cesium/Workers/chunk-VHNZBQTR.js +0 -27
  423. package/dist/cesium/Workers/chunk-VKV642QV.js +0 -26
  424. package/dist/cesium/Workers/chunk-VMSXG4OA.js +0 -26
  425. package/dist/cesium/Workers/chunk-VQZSIOZW.js +0 -26
  426. package/dist/cesium/Workers/chunk-WZUWQMI7.js +0 -26
  427. package/dist/cesium/Workers/chunk-YBI55DLZ.js +0 -26
  428. package/dist/cesium/Workers/chunk-YEJWCH6C.js +0 -26
  429. package/dist/cesium/Workers/chunk-YPDO7SPO.js +0 -26
  430. package/dist/cesium/Workers/chunk-ZYWD6OQH.js +0 -26
  431. package/dist/cesium/Workers/combineGeometry.js +0 -26
  432. package/dist/cesium/Workers/createBoxGeometry.js +0 -26
  433. package/dist/cesium/Workers/createBoxOutlineGeometry.js +0 -26
  434. package/dist/cesium/Workers/createCircleGeometry.js +0 -26
  435. package/dist/cesium/Workers/createCircleOutlineGeometry.js +0 -26
  436. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +0 -26
  437. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +0 -26
  438. package/dist/cesium/Workers/createCorridorGeometry.js +0 -26
  439. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +0 -26
  440. package/dist/cesium/Workers/createCylinderGeometry.js +0 -26
  441. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +0 -26
  442. package/dist/cesium/Workers/createEllipseGeometry.js +0 -26
  443. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +0 -26
  444. package/dist/cesium/Workers/createEllipsoidGeometry.js +0 -26
  445. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +0 -26
  446. package/dist/cesium/Workers/createFrustumGeometry.js +0 -26
  447. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +0 -26
  448. package/dist/cesium/Workers/createGeometry.js +0 -26
  449. package/dist/cesium/Workers/createGroundPolylineGeometry.js +0 -26
  450. package/dist/cesium/Workers/createPlaneGeometry.js +0 -26
  451. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +0 -26
  452. package/dist/cesium/Workers/createPolygonGeometry.js +0 -26
  453. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +0 -26
  454. package/dist/cesium/Workers/createPolylineGeometry.js +0 -26
  455. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +0 -26
  456. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +0 -26
  457. package/dist/cesium/Workers/createRectangleGeometry.js +0 -26
  458. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +0 -26
  459. package/dist/cesium/Workers/createSimplePolylineGeometry.js +0 -26
  460. package/dist/cesium/Workers/createSphereGeometry.js +0 -26
  461. package/dist/cesium/Workers/createSphereOutlineGeometry.js +0 -26
  462. package/dist/cesium/Workers/createTaskProcessorWorker.js +0 -26
  463. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +0 -26
  464. package/dist/cesium/Workers/createVectorTileGeometries.js +0 -26
  465. package/dist/cesium/Workers/createVectorTilePoints.js +0 -26
  466. package/dist/cesium/Workers/createVectorTilePolygons.js +0 -26
  467. package/dist/cesium/Workers/createVectorTilePolylines.js +0 -26
  468. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -26
  469. package/dist/cesium/Workers/createVerticesFromHeightmap.js +0 -26
  470. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -26
  471. package/dist/cesium/Workers/createWallGeometry.js +0 -26
  472. package/dist/cesium/Workers/createWallOutlineGeometry.js +0 -26
  473. package/dist/cesium/Workers/decodeDraco.js +0 -26
  474. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +0 -26
  475. package/dist/cesium/Workers/decodeI3S.js +0 -26
  476. package/dist/cesium/Workers/transcodeKTX2.js +0 -56
  477. package/dist/cesium/Workers/transferTypedArrayTest.js +0 -26
  478. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +0 -26
  479. package/src/engines/Cesium/core/Globe.tsx +0 -104
  480. /package/src/{Map/Sketch/utils.ts → utils/use-window-event.ts} +0 -0
@@ -7,7 +7,13 @@ import { InteractionModeType } from "../../Visualizer/interactionMode";
7
7
  import { EngineRef, Feature, LayerSelectionReason, LayersRef, SketchRef } from "../types";
8
8
 
9
9
  import useHooks from "./hooks";
10
- import { SketchComponentType, SketchEventProps, SketchFeature, SketchType } from "./types";
10
+ import {
11
+ SketchComponentType,
12
+ SketchEditingFeature,
13
+ SketchEventProps,
14
+ SketchFeature,
15
+ SketchType,
16
+ } from "./types";
11
17
 
12
18
  export * from "./types";
13
19
 
@@ -20,8 +26,8 @@ export type OnLayerSelectType = (
20
26
  ) => void;
21
27
 
22
28
  export type SketchProps = {
23
- layersRef: RefObject<LayersRef>;
24
- engineRef: RefObject<EngineRef>;
29
+ layersRef: RefObject<LayersRef | null>;
30
+ engineRef: RefObject<EngineRef | null>;
25
31
  SketchComponent?: SketchComponentType;
26
32
  selectedFeature?: Feature;
27
33
  interactionMode?: InteractionModeType;
@@ -29,7 +35,14 @@ export type SketchProps = {
29
35
  onSketchTypeChange?: (type: SketchType | undefined, from?: "editor" | "plugin") => void;
30
36
  onSketchFeatureCreate?: (feature: SketchFeature | null) => void;
31
37
  onSketchPluginFeatureCreate?: (props: SketchEventProps) => void;
38
+ onSketchFeatureUpdate?: (feature: SketchFeature | null) => void;
39
+ onSketchPluginFeatureUpdate?: (props: SketchEventProps) => void;
40
+ onSketchFeatureDelete?: (layerId: string, featureId: string) => void;
41
+ onSketchPluginFeatureDelete?: (props: { layerId: string; featureId: string }) => void;
32
42
  onLayerSelect?: OnLayerSelectType;
43
+ sketchEditingFeature?: SketchEditingFeature;
44
+ onSketchEditFeature?: (feature: SketchEditingFeature | undefined) => void;
45
+ onMount?: () => void;
33
46
  };
34
47
 
35
48
  const Sketch: ForwardRefRenderFunction<SketchRef, SketchProps> = (
@@ -43,23 +56,51 @@ const Sketch: ForwardRefRenderFunction<SketchRef, SketchProps> = (
43
56
  onSketchTypeChange,
44
57
  onSketchFeatureCreate,
45
58
  onSketchPluginFeatureCreate,
59
+ onSketchFeatureUpdate,
60
+ onSketchPluginFeatureUpdate,
61
+ onSketchFeatureDelete,
62
+ onSketchPluginFeatureDelete,
46
63
  onLayerSelect,
64
+ sketchEditingFeature,
65
+ onSketchEditFeature,
66
+ onMount,
47
67
  },
48
68
  ref,
49
69
  ) => {
50
- const { state, extrudedHeight, geometryOptions, color, disableShadow, enableRelativeHeight } =
51
- useHooks({
52
- ref,
53
- layersRef,
54
- engineRef,
55
- interactionMode,
56
- selectedFeature,
57
- overrideInteractionMode,
58
- onSketchTypeChange,
59
- onSketchFeatureCreate,
60
- onSketchPluginFeatureCreate,
61
- onLayerSelect,
62
- });
70
+ const {
71
+ state,
72
+ isEditing,
73
+ catchedControlPointIndex,
74
+ catchedExtrudedPoint,
75
+ extrudedHeight,
76
+ extrudedPoint,
77
+ centroidBasePoint,
78
+ centroidExtrudedPoint,
79
+ geometryOptions,
80
+ color,
81
+ disableShadow,
82
+ handleControlPointMouseEvent,
83
+ handleAddControlPoint,
84
+ selectedControlPointIndex,
85
+ } = useHooks({
86
+ ref,
87
+ layersRef,
88
+ engineRef,
89
+ interactionMode,
90
+ selectedFeature,
91
+ overrideInteractionMode,
92
+ onSketchTypeChange,
93
+ onSketchFeatureCreate,
94
+ onSketchPluginFeatureCreate,
95
+ onSketchFeatureUpdate,
96
+ onSketchPluginFeatureUpdate,
97
+ onSketchFeatureDelete,
98
+ onSketchPluginFeatureDelete,
99
+ onLayerSelect,
100
+ sketchEditingFeature,
101
+ onSketchEditFeature,
102
+ onMount,
103
+ });
63
104
  if (state.matches("idle")) {
64
105
  return null;
65
106
  }
@@ -68,10 +109,16 @@ const Sketch: ForwardRefRenderFunction<SketchRef, SketchProps> = (
68
109
  geometryOptions={geometryOptions}
69
110
  color={color}
70
111
  disableShadow={disableShadow}
71
- enableRelativeHeight={enableRelativeHeight}
72
- {...(state.matches("extruding") && {
73
- extrudedHeight,
74
- })}
112
+ isEditing={isEditing}
113
+ catchedControlPointIndex={catchedControlPointIndex}
114
+ catchedExtrudedPoint={catchedExtrudedPoint}
115
+ extrudedHeight={extrudedHeight}
116
+ extrudedPoint={extrudedPoint}
117
+ centroidBasePoint={centroidBasePoint}
118
+ centroidExtrudedPoint={centroidExtrudedPoint}
119
+ handleControlPointMouseEvent={handleControlPointMouseEvent}
120
+ handleAddControlPoint={handleAddControlPoint}
121
+ selectedControlPointIndex={selectedControlPointIndex}
75
122
  />
76
123
  ) : null;
77
124
  };
@@ -1,5 +1,4 @@
1
1
  // TODO: Refactor: move cesium related code to engine.
2
- // import { Cartesian2, Cartesian3 } from "cesium";
3
2
  import invariant from "tiny-invariant";
4
3
  import { createMachine, type StateFrom } from "xstate";
5
4
 
@@ -24,15 +23,38 @@ export type EventObject =
24
23
  pointerPosition: Position2d;
25
24
  controlPoint: Position3d;
26
25
  })
26
+ | ((
27
+ | { type: "EDIT_MARKER" }
28
+ | { type: "EDIT_POLYLINE" }
29
+ | { type: "EDIT_CIRCLE" }
30
+ | { type: "EDIT_RECTANGLE" }
31
+ | { type: "EDIT_POLYGON" }
32
+ | { type: "EDIT_EXTRUDED_CIRCLE" }
33
+ | { type: "EDIT_EXTRUDED_RECTANGLE" }
34
+ | { type: "EDIT_EXTRUDED_POLYGON" }
35
+ | { type: "CATCH" }
36
+ | { type: "UPDATE" }
37
+ | { type: "MOVE" }
38
+ | { type: "RELEASE" }
39
+ ) & {
40
+ extrudedHeight?: number;
41
+ controlPoints: Position3d[];
42
+ catchedControlPointIndex?: number;
43
+ catchedExtrudedPoint?: boolean;
44
+ })
27
45
  | { type: "CREATE" }
28
46
  | { type: "CANCEL" }
29
- | { type: "ABORT" };
47
+ | { type: "ABORT" }
48
+ | { type: "EXIT_EDIT" };
30
49
 
31
- interface Context {
50
+ export interface Context {
32
51
  lastPointerPosition?: Position2d;
33
52
  lastControlPoint?: Position3d;
34
53
  type?: SketchType;
35
54
  controlPoints?: Position3d[];
55
+ catchedControlPointIndex?: number;
56
+ catchedExtrudedPoint?: boolean;
57
+ originalControlPoint?: Position3d;
36
58
  }
37
59
 
38
60
  export function createSketchMachine() {
@@ -76,6 +98,38 @@ export function createSketchMachine() {
76
98
  target: "drawing.extrudedPolygon",
77
99
  actions: ["createExtrudedPolygon"],
78
100
  },
101
+ EDIT_MARKER: {
102
+ target: "editing.marker",
103
+ actions: ["editMarker"],
104
+ },
105
+ EDIT_POLYLINE: {
106
+ target: "editing.polyline",
107
+ actions: ["editPolyline"],
108
+ },
109
+ EDIT_CIRCLE: {
110
+ target: "editing.circle",
111
+ actions: ["editCircle"],
112
+ },
113
+ EDIT_RECTANGLE: {
114
+ target: "editing.rectangle",
115
+ actions: ["editRectangle"],
116
+ },
117
+ EDIT_POLYGON: {
118
+ target: "editing.polygon",
119
+ actions: ["editPolygon"],
120
+ },
121
+ EDIT_EXTRUDED_CIRCLE: {
122
+ target: "editing.circle",
123
+ actions: ["editExtrudedCircle"],
124
+ },
125
+ EDIT_EXTRUDED_RECTANGLE: {
126
+ target: "editing.extrudedRectangle",
127
+ actions: ["editExtrudedRectangle"],
128
+ },
129
+ EDIT_EXTRUDED_POLYGON: {
130
+ target: "editing.extrudedPolygon",
131
+ actions: ["editExtrudedPolygon"],
132
+ },
79
133
  },
80
134
  },
81
135
  drawing: {
@@ -138,7 +192,7 @@ export function createSketchMachine() {
138
192
  {
139
193
  target: "#sketch.extruding",
140
194
  cond: "willRectangleComplete",
141
- actions: ["pushPosition"],
195
+ actions: ["pushPosition", "recordOriginalControlPoint"],
142
196
  },
143
197
  {
144
198
  target: "vertex",
@@ -224,6 +278,247 @@ export function createSketchMachine() {
224
278
  },
225
279
  },
226
280
  },
281
+ editing: {
282
+ states: {
283
+ marker: {
284
+ initial: "waiting",
285
+ states: {
286
+ waiting: {
287
+ on: {
288
+ CATCH: {
289
+ target: "moving",
290
+ internal: true,
291
+ actions: ["catchControlPoint"],
292
+ },
293
+ },
294
+ },
295
+ moving: {
296
+ on: {
297
+ MOVE: {
298
+ target: "moving",
299
+ internal: true,
300
+ actions: ["moveControlPoint"],
301
+ },
302
+ RELEASE: {
303
+ target: "waiting",
304
+ actions: ["releaseControlPoint"],
305
+ },
306
+ },
307
+ },
308
+ },
309
+ },
310
+ polyline: {
311
+ initial: "waiting",
312
+ states: {
313
+ waiting: {
314
+ on: {
315
+ CATCH: {
316
+ target: "moving",
317
+ internal: true,
318
+ actions: ["catchControlPoint"],
319
+ },
320
+ UPDATE: {
321
+ target: "waiting",
322
+ internal: true,
323
+ actions: ["updateControlPoints"],
324
+ },
325
+ },
326
+ },
327
+ moving: {
328
+ on: {
329
+ MOVE: {
330
+ target: "moving",
331
+ internal: true,
332
+ actions: ["moveControlPoint"],
333
+ },
334
+ RELEASE: {
335
+ target: "waiting",
336
+ actions: ["releaseControlPoint"],
337
+ },
338
+ },
339
+ },
340
+ },
341
+ },
342
+ circle: {
343
+ initial: "waiting",
344
+ states: {
345
+ waiting: {
346
+ on: {
347
+ CATCH: {
348
+ target: "moving",
349
+ internal: true,
350
+ actions: ["catchControlPoint"],
351
+ },
352
+ },
353
+ },
354
+ moving: {
355
+ on: {
356
+ MOVE: {
357
+ target: "moving",
358
+ internal: true,
359
+ actions: ["moveControlPoint"],
360
+ },
361
+ RELEASE: {
362
+ target: "waiting",
363
+ actions: ["releaseControlPoint"],
364
+ },
365
+ },
366
+ },
367
+ },
368
+ },
369
+ rectangle: {
370
+ initial: "waiting",
371
+ states: {
372
+ waiting: {
373
+ on: {
374
+ CATCH: {
375
+ target: "moving",
376
+ internal: true,
377
+ actions: ["catchControlPoint"],
378
+ },
379
+ },
380
+ },
381
+ moving: {
382
+ on: {
383
+ MOVE: {
384
+ target: "moving",
385
+ internal: true,
386
+ actions: ["moveControlPoint"],
387
+ },
388
+ RELEASE: {
389
+ target: "waiting",
390
+ actions: ["releaseControlPoint"],
391
+ },
392
+ },
393
+ },
394
+ },
395
+ },
396
+ polygon: {
397
+ initial: "waiting",
398
+ states: {
399
+ waiting: {
400
+ on: {
401
+ CATCH: {
402
+ target: "moving",
403
+ internal: true,
404
+ actions: ["catchControlPoint"],
405
+ },
406
+ UPDATE: {
407
+ target: "waiting",
408
+ internal: true,
409
+ actions: ["updateControlPoints"],
410
+ },
411
+ },
412
+ },
413
+ moving: {
414
+ on: {
415
+ MOVE: {
416
+ target: "moving",
417
+ internal: true,
418
+ actions: ["moveControlPoint"],
419
+ },
420
+ RELEASE: {
421
+ target: "waiting",
422
+ actions: ["releaseControlPoint"],
423
+ },
424
+ },
425
+ },
426
+ },
427
+ },
428
+ extrudedCircle: {
429
+ initial: "waiting",
430
+ states: {
431
+ waiting: {
432
+ on: {
433
+ CATCH: {
434
+ target: "moving",
435
+ internal: true,
436
+ actions: ["catchControlPoint"],
437
+ },
438
+ },
439
+ },
440
+ moving: {
441
+ on: {
442
+ MOVE: {
443
+ target: "moving",
444
+ internal: true,
445
+ actions: ["moveControlPoint"],
446
+ },
447
+ RELEASE: {
448
+ target: "waiting",
449
+ actions: ["releaseControlPoint"],
450
+ },
451
+ },
452
+ },
453
+ },
454
+ },
455
+ extrudedRectangle: {
456
+ initial: "waiting",
457
+ states: {
458
+ waiting: {
459
+ on: {
460
+ CATCH: {
461
+ target: "moving",
462
+ internal: true,
463
+ actions: ["catchControlPoint"],
464
+ },
465
+ },
466
+ },
467
+ moving: {
468
+ on: {
469
+ MOVE: {
470
+ target: "moving",
471
+ internal: true,
472
+ actions: ["moveControlPoint"],
473
+ },
474
+ RELEASE: {
475
+ target: "waiting",
476
+ actions: ["releaseControlPoint"],
477
+ },
478
+ },
479
+ },
480
+ },
481
+ },
482
+ extrudedPolygon: {
483
+ initial: "waiting",
484
+ states: {
485
+ waiting: {
486
+ on: {
487
+ CATCH: {
488
+ target: "moving",
489
+ internal: true,
490
+ actions: ["catchControlPoint"],
491
+ },
492
+ UPDATE: {
493
+ target: "waiting",
494
+ internal: true,
495
+ actions: ["updateControlPoints"],
496
+ },
497
+ },
498
+ },
499
+ moving: {
500
+ on: {
501
+ MOVE: {
502
+ target: "moving",
503
+ internal: true,
504
+ actions: ["moveControlPoint"],
505
+ },
506
+ RELEASE: {
507
+ target: "waiting",
508
+ actions: ["releaseControlPoint"],
509
+ },
510
+ },
511
+ },
512
+ },
513
+ },
514
+ },
515
+ on: {
516
+ EXIT_EDIT: {
517
+ target: "idle",
518
+ actions: ["clearDrawing"],
519
+ },
520
+ },
521
+ },
227
522
  },
228
523
  schema: {
229
524
  events: {} as unknown as EventObject,
@@ -249,6 +544,11 @@ export function createSketchMachine() {
249
544
  context.type = "marker";
250
545
  context.controlPoints = [controlPoint];
251
546
  },
547
+ editMarker: (context, event) => {
548
+ context.lastControlPoint = undefined;
549
+ context.type = "marker";
550
+ context.controlPoints = event.controlPoints;
551
+ },
252
552
  createPolyline: (context, event) => {
253
553
  context.lastPointerPosition = [...event.pointerPosition];
254
554
  const controlPoint = [...event.controlPoint] as Position3d;
@@ -256,6 +556,11 @@ export function createSketchMachine() {
256
556
  context.type = "polyline";
257
557
  context.controlPoints = [controlPoint];
258
558
  },
559
+ editPolyline: (context, event) => {
560
+ context.lastControlPoint = undefined;
561
+ context.type = "polyline";
562
+ context.controlPoints = event.controlPoints;
563
+ },
259
564
  createCircle: (context, event) => {
260
565
  context.lastPointerPosition = [...event.pointerPosition];
261
566
  const controlPoint = [...event.controlPoint] as Position3d;
@@ -263,6 +568,11 @@ export function createSketchMachine() {
263
568
  context.type = "circle";
264
569
  context.controlPoints = [controlPoint];
265
570
  },
571
+ editCircle: (context, event) => {
572
+ context.lastControlPoint = undefined;
573
+ context.type = "circle";
574
+ context.controlPoints = event.controlPoints;
575
+ },
266
576
  createRectangle: (context, event) => {
267
577
  context.lastPointerPosition = [...event.pointerPosition];
268
578
  const controlPoint = [...event.controlPoint] as Position3d;
@@ -270,6 +580,11 @@ export function createSketchMachine() {
270
580
  context.type = "rectangle";
271
581
  context.controlPoints = [controlPoint];
272
582
  },
583
+ editRectangle: (context, event) => {
584
+ context.lastControlPoint = undefined;
585
+ context.type = "rectangle";
586
+ context.controlPoints = event.controlPoints;
587
+ },
273
588
  createPolygon: (context, event) => {
274
589
  context.lastPointerPosition = [...event.pointerPosition];
275
590
  const controlPoint = [...event.controlPoint] as Position3d;
@@ -277,6 +592,11 @@ export function createSketchMachine() {
277
592
  context.type = "polygon";
278
593
  context.controlPoints = [controlPoint];
279
594
  },
595
+ editPolygon: (context, event) => {
596
+ context.lastControlPoint = undefined;
597
+ context.type = "polygon";
598
+ context.controlPoints = event.controlPoints;
599
+ },
280
600
  createExtrudedCircle: (context, event) => {
281
601
  context.lastPointerPosition = [...event.pointerPosition];
282
602
  const controlPoint = [...event.controlPoint] as Position3d;
@@ -284,6 +604,11 @@ export function createSketchMachine() {
284
604
  context.type = "extrudedCircle";
285
605
  context.controlPoints = [controlPoint];
286
606
  },
607
+ editExtrudedCircle: (context, event) => {
608
+ context.lastControlPoint = undefined;
609
+ context.type = "extrudedCircle";
610
+ context.controlPoints = event.controlPoints;
611
+ },
287
612
  createExtrudedRectangle: (context, event) => {
288
613
  context.lastPointerPosition = [...event.pointerPosition];
289
614
  const controlPoint = [...event.controlPoint] as Position3d;
@@ -291,6 +616,11 @@ export function createSketchMachine() {
291
616
  context.type = "extrudedRectangle";
292
617
  context.controlPoints = [controlPoint];
293
618
  },
619
+ editExtrudedRectangle: (context, event) => {
620
+ context.lastControlPoint = undefined;
621
+ context.type = "extrudedRectangle";
622
+ context.controlPoints = event.controlPoints;
623
+ },
294
624
  createExtrudedPolygon: (context, event) => {
295
625
  context.lastPointerPosition = [...event.pointerPosition];
296
626
  const controlPoint = [...event.controlPoint] as Position3d;
@@ -298,6 +628,11 @@ export function createSketchMachine() {
298
628
  context.type = "extrudedPolygon";
299
629
  context.controlPoints = [controlPoint];
300
630
  },
631
+ editExtrudedPolygon: (context, event) => {
632
+ context.lastControlPoint = undefined;
633
+ context.type = "extrudedPolygon";
634
+ context.controlPoints = event.controlPoints;
635
+ },
301
636
  pushPosition: (context, event) => {
302
637
  context.lastPointerPosition = [...event.pointerPosition];
303
638
  const controlPoint = [...event.controlPoint] as Position3d;
@@ -313,6 +648,26 @@ export function createSketchMachine() {
313
648
  delete context.lastControlPoint;
314
649
  delete context.type;
315
650
  delete context.controlPoints;
651
+ delete context.catchedControlPointIndex;
652
+ delete context.catchedExtrudedPoint;
653
+ delete context.originalControlPoint;
654
+ },
655
+ catchControlPoint: (context, event) => {
656
+ context.catchedControlPointIndex = event.catchedControlPointIndex;
657
+ context.catchedExtrudedPoint = event.catchedExtrudedPoint;
658
+ },
659
+ moveControlPoint: (context, event) => {
660
+ context.controlPoints = event.controlPoints;
661
+ },
662
+ releaseControlPoint: context => {
663
+ delete context.catchedControlPointIndex;
664
+ delete context.catchedExtrudedPoint;
665
+ },
666
+ updateControlPoints: (context, event) => {
667
+ context.controlPoints = event.controlPoints;
668
+ },
669
+ recordOriginalControlPoint: (context, event) => {
670
+ context.originalControlPoint = [...event.controlPoint] as Position3d;
316
671
  },
317
672
  },
318
673
  },
@@ -13,7 +13,8 @@ export interface Typegen0 {
13
13
  services: never;
14
14
  };
15
15
  eventsCausingActions: {
16
- clearDrawing: "ABORT" | "CANCEL" | "CREATE";
16
+ catchControlPoint: "CATCH";
17
+ clearDrawing: "ABORT" | "CANCEL" | "CREATE" | "EXIT_EDIT";
17
18
  createCircle: "CIRCLE";
18
19
  createExtrudedCircle: "EXTRUDED_CIRCLE";
19
20
  createExtrudedPolygon: "EXTRUDED_POLYGON";
@@ -22,8 +23,20 @@ export interface Typegen0 {
22
23
  createPolygon: "POLYGON";
23
24
  createPolyline: "POLYLINE";
24
25
  createRectangle: "RECTANGLE";
26
+ editCircle: "EDIT_CIRCLE";
27
+ editExtrudedCircle: "EDIT_EXTRUDED_CIRCLE";
28
+ editExtrudedPolygon: "EDIT_EXTRUDED_POLYGON";
29
+ editExtrudedRectangle: "EDIT_EXTRUDED_RECTANGLE";
30
+ editMarker: "EDIT_MARKER";
31
+ editPolygon: "EDIT_POLYGON";
32
+ editPolyline: "EDIT_POLYLINE";
33
+ editRectangle: "EDIT_RECTANGLE";
34
+ moveControlPoint: "MOVE";
25
35
  popPosition: "CANCEL";
26
36
  pushPosition: "EXTRUDE" | "NEXT";
37
+ recordOriginalControlPoint: "NEXT";
38
+ releaseControlPoint: "RELEASE";
39
+ updateControlPoints: "UPDATE";
27
40
  };
28
41
  eventsCausingDelays: {};
29
42
  eventsCausingGuards: {
@@ -47,6 +60,31 @@ export interface Typegen0 {
47
60
  | "drawing.polyline.vertex"
48
61
  | "drawing.rectangle"
49
62
  | "drawing.rectangle.vertex"
63
+ | "editing"
64
+ | "editing.circle"
65
+ | "editing.circle.moving"
66
+ | "editing.circle.waiting"
67
+ | "editing.extrudedCircle"
68
+ | "editing.extrudedCircle.moving"
69
+ | "editing.extrudedCircle.waiting"
70
+ | "editing.extrudedPolygon"
71
+ | "editing.extrudedPolygon.moving"
72
+ | "editing.extrudedPolygon.waiting"
73
+ | "editing.extrudedRectangle"
74
+ | "editing.extrudedRectangle.moving"
75
+ | "editing.extrudedRectangle.waiting"
76
+ | "editing.marker"
77
+ | "editing.marker.moving"
78
+ | "editing.marker.waiting"
79
+ | "editing.polygon"
80
+ | "editing.polygon.moving"
81
+ | "editing.polygon.waiting"
82
+ | "editing.polyline"
83
+ | "editing.polyline.moving"
84
+ | "editing.polyline.waiting"
85
+ | "editing.rectangle"
86
+ | "editing.rectangle.moving"
87
+ | "editing.rectangle.waiting"
50
88
  | "extruding"
51
89
  | "idle"
52
90
  | {
@@ -67,6 +105,25 @@ export interface Typegen0 {
67
105
  polyline?: "vertex";
68
106
  rectangle?: "vertex";
69
107
  };
108
+ editing?:
109
+ | "circle"
110
+ | "extrudedCircle"
111
+ | "extrudedPolygon"
112
+ | "extrudedRectangle"
113
+ | "marker"
114
+ | "polygon"
115
+ | "polyline"
116
+ | "rectangle"
117
+ | {
118
+ circle?: "moving" | "waiting";
119
+ extrudedCircle?: "moving" | "waiting";
120
+ extrudedPolygon?: "moving" | "waiting";
121
+ extrudedRectangle?: "moving" | "waiting";
122
+ marker?: "moving" | "waiting";
123
+ polygon?: "moving" | "waiting";
124
+ polyline?: "moving" | "waiting";
125
+ rectangle?: "moving" | "waiting";
126
+ };
70
127
  };
71
128
  tags: never;
72
129
  }