@reearth/core 0.0.7-alpha.13 → 0.0.7-alpha.15

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 (39) hide show
  1. package/dist/core.js +6864 -5606
  2. package/dist/core.umd.cjs +71 -71
  3. package/dist/index.d.ts +56 -13
  4. package/package.json +8 -5
  5. package/src/Map/Layer/hooks.ts +6 -3
  6. package/src/Map/Layer/index.tsx +2 -0
  7. package/src/Map/Layers/hooks.ts +17 -0
  8. package/src/Map/Layers/index.tsx +12 -1
  9. package/src/Map/Layers/keys.ts +1 -0
  10. package/src/Map/Sketch/hooks.ts +405 -399
  11. package/src/Map/Sketch/index.tsx +65 -18
  12. package/src/Map/Sketch/sketchMachine.ts +359 -4
  13. package/src/Map/Sketch/sketchMachine.typegen.ts +58 -1
  14. package/src/Map/Sketch/types.ts +10 -20
  15. package/src/Map/Sketch/usePluginSketchLayer.ts +105 -0
  16. package/src/Map/Sketch/useSketch.ts +559 -0
  17. package/src/Map/Sketch/useSketchFeature.ts +198 -0
  18. package/src/Map/hooks.ts +32 -1
  19. package/src/Map/index.tsx +24 -0
  20. package/src/Map/ref.ts +8 -0
  21. package/src/Map/types/index.ts +21 -1
  22. package/src/Map/types/viewerProperty.ts +2 -0
  23. package/src/Visualizer/coreContext.tsx +2 -0
  24. package/src/Visualizer/hooks.ts +25 -0
  25. package/src/Visualizer/index.tsx +13 -0
  26. package/src/engines/Cesium/Feature/index.tsx +6 -2
  27. package/src/engines/Cesium/Sketch/ControlPoint.tsx +128 -24
  28. package/src/engines/Cesium/Sketch/ExtrudedControlPoints.tsx +70 -25
  29. package/src/engines/Cesium/Sketch/ExtrudedMeasurement.tsx +3 -1
  30. package/src/engines/Cesium/Sketch/ExtrudedPolygonEntity.tsx +14 -14
  31. package/src/engines/Cesium/Sketch/PolylineEntity.tsx +7 -4
  32. package/src/engines/Cesium/Sketch/SurfaceAddingPoints.tsx +60 -0
  33. package/src/engines/Cesium/Sketch/SurfaceControlPoints.tsx +125 -35
  34. package/src/engines/Cesium/Sketch/constants.ts +5 -0
  35. package/src/engines/Cesium/Sketch/index.tsx +68 -29
  36. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +8 -1
  37. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapVectorMapLabel.tsx +14 -2
  38. package/src/engines/Cesium/core/labels/LabelImageryLayers.tsx +10 -1
  39. package/src/engines/Cesium/hooks/useEngineRef.ts +36 -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
 
@@ -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
  }