@babylonjs/gui-editor 5.0.0-alpha.61 → 5.0.0-alpha.65

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.
@@ -31,6 +31,641 @@ declare module "@babylonjs/gui-editor/tools" {
31
31
  static reorderGrid(grid: Grid, index: number, control: Control, cell: Vector2): void;
32
32
  }
33
33
  }
34
+ declare module "@babylonjs/gui-editor/diagram/GUIEditorNodeMaterial" {
35
+ export const GUIEditorNodeMaterial: {
36
+ tags: null;
37
+ ignoreAlpha: boolean;
38
+ maxSimultaneousLights: number;
39
+ mode: number;
40
+ id: string;
41
+ name: string;
42
+ checkReadyOnEveryCall: boolean;
43
+ checkReadyOnlyOnce: boolean;
44
+ state: string;
45
+ alpha: number;
46
+ backFaceCulling: boolean;
47
+ cullBackFaces: boolean;
48
+ sideOrientation: number;
49
+ alphaMode: number;
50
+ _needDepthPrePass: boolean;
51
+ disableDepthWrite: boolean;
52
+ disableColorWrite: boolean;
53
+ forceDepthWrite: boolean;
54
+ depthFunction: number;
55
+ separateCullingPass: boolean;
56
+ fogEnabled: boolean;
57
+ pointSize: number;
58
+ zOffset: number;
59
+ zOffsetUnits: number;
60
+ pointsCloud: boolean;
61
+ fillMode: number;
62
+ editorData: {
63
+ locations: {
64
+ blockId: number;
65
+ x: number;
66
+ y: number;
67
+ }[];
68
+ frames: {
69
+ x: number;
70
+ y: number;
71
+ width: number;
72
+ height: number;
73
+ color: number[];
74
+ name: string;
75
+ isCollapsed: boolean;
76
+ blocks: number[];
77
+ }[];
78
+ x: number;
79
+ y: number;
80
+ zoom: number;
81
+ };
82
+ customType: string;
83
+ outputNodes: number[];
84
+ blocks: ({
85
+ customType: string;
86
+ id: number;
87
+ name: string;
88
+ comments: string;
89
+ visibleInInspector: boolean;
90
+ visibleOnFrame: boolean;
91
+ target: number;
92
+ inputs: {
93
+ name: string;
94
+ inputName: string;
95
+ targetBlockId: number;
96
+ targetConnectionName: string;
97
+ isExposedOnFrame: boolean;
98
+ exposedPortPosition: number;
99
+ }[];
100
+ outputs: {
101
+ name: string;
102
+ }[];
103
+ complementZ: number;
104
+ complementW: number;
105
+ type?: undefined;
106
+ mode?: undefined;
107
+ animationType?: undefined;
108
+ min?: undefined;
109
+ max?: undefined;
110
+ isBoolean?: undefined;
111
+ matrixMode?: undefined;
112
+ isConstant?: undefined;
113
+ groupInInspector?: undefined;
114
+ convertToGammaSpace?: undefined;
115
+ convertToLinearSpace?: undefined;
116
+ systemValue?: undefined;
117
+ rSwizzle?: undefined;
118
+ gSwizzle?: undefined;
119
+ bSwizzle?: undefined;
120
+ aSwizzle?: undefined;
121
+ operation?: undefined;
122
+ xSwizzle?: undefined;
123
+ ySwizzle?: undefined;
124
+ zSwizzle?: undefined;
125
+ wSwizzle?: undefined;
126
+ valueType?: undefined;
127
+ value?: undefined;
128
+ fragmentOnly?: undefined;
129
+ disableLevelMultiplication?: undefined;
130
+ } | {
131
+ customType: string;
132
+ id: number;
133
+ name: string;
134
+ comments: string;
135
+ visibleInInspector: boolean;
136
+ visibleOnFrame: boolean;
137
+ target: number;
138
+ inputs: never[];
139
+ outputs: {
140
+ name: string;
141
+ }[];
142
+ type: number;
143
+ mode: number;
144
+ animationType: number;
145
+ min: number;
146
+ max: number;
147
+ isBoolean: boolean;
148
+ matrixMode: number;
149
+ isConstant: boolean;
150
+ groupInInspector: string;
151
+ convertToGammaSpace: boolean;
152
+ convertToLinearSpace: boolean;
153
+ complementZ?: undefined;
154
+ complementW?: undefined;
155
+ systemValue?: undefined;
156
+ rSwizzle?: undefined;
157
+ gSwizzle?: undefined;
158
+ bSwizzle?: undefined;
159
+ aSwizzle?: undefined;
160
+ operation?: undefined;
161
+ xSwizzle?: undefined;
162
+ ySwizzle?: undefined;
163
+ zSwizzle?: undefined;
164
+ wSwizzle?: undefined;
165
+ valueType?: undefined;
166
+ value?: undefined;
167
+ fragmentOnly?: undefined;
168
+ disableLevelMultiplication?: undefined;
169
+ } | {
170
+ customType: string;
171
+ id: number;
172
+ name: string;
173
+ comments: string;
174
+ visibleInInspector: boolean;
175
+ visibleOnFrame: boolean;
176
+ target: number;
177
+ inputs: never[];
178
+ outputs: {
179
+ name: string;
180
+ }[];
181
+ type: number;
182
+ mode: number;
183
+ systemValue: number;
184
+ animationType: number;
185
+ min: number;
186
+ max: number;
187
+ isBoolean: boolean;
188
+ matrixMode: number;
189
+ isConstant: boolean;
190
+ groupInInspector: string;
191
+ convertToGammaSpace: boolean;
192
+ convertToLinearSpace: boolean;
193
+ complementZ?: undefined;
194
+ complementW?: undefined;
195
+ rSwizzle?: undefined;
196
+ gSwizzle?: undefined;
197
+ bSwizzle?: undefined;
198
+ aSwizzle?: undefined;
199
+ operation?: undefined;
200
+ xSwizzle?: undefined;
201
+ ySwizzle?: undefined;
202
+ zSwizzle?: undefined;
203
+ wSwizzle?: undefined;
204
+ valueType?: undefined;
205
+ value?: undefined;
206
+ fragmentOnly?: undefined;
207
+ disableLevelMultiplication?: undefined;
208
+ } | {
209
+ customType: string;
210
+ id: number;
211
+ name: string;
212
+ comments: string;
213
+ visibleInInspector: boolean;
214
+ visibleOnFrame: boolean;
215
+ target: number;
216
+ inputs: ({
217
+ name: string;
218
+ displayName: string;
219
+ inputName?: undefined;
220
+ targetBlockId?: undefined;
221
+ targetConnectionName?: undefined;
222
+ isExposedOnFrame?: undefined;
223
+ exposedPortPosition?: undefined;
224
+ } | {
225
+ name: string;
226
+ displayName: string;
227
+ inputName: string;
228
+ targetBlockId: number;
229
+ targetConnectionName: string;
230
+ isExposedOnFrame: boolean;
231
+ exposedPortPosition: number;
232
+ })[];
233
+ outputs: never[];
234
+ convertToGammaSpace: boolean;
235
+ convertToLinearSpace: boolean;
236
+ complementZ?: undefined;
237
+ complementW?: undefined;
238
+ type?: undefined;
239
+ mode?: undefined;
240
+ animationType?: undefined;
241
+ min?: undefined;
242
+ max?: undefined;
243
+ isBoolean?: undefined;
244
+ matrixMode?: undefined;
245
+ isConstant?: undefined;
246
+ groupInInspector?: undefined;
247
+ systemValue?: undefined;
248
+ rSwizzle?: undefined;
249
+ gSwizzle?: undefined;
250
+ bSwizzle?: undefined;
251
+ aSwizzle?: undefined;
252
+ operation?: undefined;
253
+ xSwizzle?: undefined;
254
+ ySwizzle?: undefined;
255
+ zSwizzle?: undefined;
256
+ wSwizzle?: undefined;
257
+ valueType?: undefined;
258
+ value?: undefined;
259
+ fragmentOnly?: undefined;
260
+ disableLevelMultiplication?: undefined;
261
+ } | {
262
+ customType: string;
263
+ id: number;
264
+ name: string;
265
+ comments: string;
266
+ visibleInInspector: boolean;
267
+ visibleOnFrame: boolean;
268
+ target: number;
269
+ inputs: ({
270
+ name: string;
271
+ displayName: string;
272
+ inputName: string;
273
+ targetBlockId: number;
274
+ targetConnectionName: string;
275
+ isExposedOnFrame: boolean;
276
+ exposedPortPosition: number;
277
+ } | {
278
+ name: string;
279
+ displayName: string;
280
+ isExposedOnFrame: boolean;
281
+ exposedPortPosition: number;
282
+ inputName?: undefined;
283
+ targetBlockId?: undefined;
284
+ targetConnectionName?: undefined;
285
+ })[];
286
+ outputs: {
287
+ name: string;
288
+ displayName: string;
289
+ }[];
290
+ complementZ?: undefined;
291
+ complementW?: undefined;
292
+ type?: undefined;
293
+ mode?: undefined;
294
+ animationType?: undefined;
295
+ min?: undefined;
296
+ max?: undefined;
297
+ isBoolean?: undefined;
298
+ matrixMode?: undefined;
299
+ isConstant?: undefined;
300
+ groupInInspector?: undefined;
301
+ convertToGammaSpace?: undefined;
302
+ convertToLinearSpace?: undefined;
303
+ systemValue?: undefined;
304
+ rSwizzle?: undefined;
305
+ gSwizzle?: undefined;
306
+ bSwizzle?: undefined;
307
+ aSwizzle?: undefined;
308
+ operation?: undefined;
309
+ xSwizzle?: undefined;
310
+ ySwizzle?: undefined;
311
+ zSwizzle?: undefined;
312
+ wSwizzle?: undefined;
313
+ valueType?: undefined;
314
+ value?: undefined;
315
+ fragmentOnly?: undefined;
316
+ disableLevelMultiplication?: undefined;
317
+ } | {
318
+ customType: string;
319
+ id: number;
320
+ name: string;
321
+ comments: string;
322
+ visibleInInspector: boolean;
323
+ visibleOnFrame: boolean;
324
+ target: number;
325
+ inputs: ({
326
+ name: string;
327
+ displayName: string;
328
+ inputName?: undefined;
329
+ targetBlockId?: undefined;
330
+ targetConnectionName?: undefined;
331
+ isExposedOnFrame?: undefined;
332
+ exposedPortPosition?: undefined;
333
+ } | {
334
+ name: string;
335
+ displayName: string;
336
+ inputName: string;
337
+ targetBlockId: number;
338
+ targetConnectionName: string;
339
+ isExposedOnFrame: boolean;
340
+ exposedPortPosition: number;
341
+ })[];
342
+ outputs: {
343
+ name: string;
344
+ displayName: string;
345
+ }[];
346
+ rSwizzle: string;
347
+ gSwizzle: string;
348
+ bSwizzle: string;
349
+ aSwizzle: string;
350
+ complementZ?: undefined;
351
+ complementW?: undefined;
352
+ type?: undefined;
353
+ mode?: undefined;
354
+ animationType?: undefined;
355
+ min?: undefined;
356
+ max?: undefined;
357
+ isBoolean?: undefined;
358
+ matrixMode?: undefined;
359
+ isConstant?: undefined;
360
+ groupInInspector?: undefined;
361
+ convertToGammaSpace?: undefined;
362
+ convertToLinearSpace?: undefined;
363
+ systemValue?: undefined;
364
+ operation?: undefined;
365
+ xSwizzle?: undefined;
366
+ ySwizzle?: undefined;
367
+ zSwizzle?: undefined;
368
+ wSwizzle?: undefined;
369
+ valueType?: undefined;
370
+ value?: undefined;
371
+ fragmentOnly?: undefined;
372
+ disableLevelMultiplication?: undefined;
373
+ } | {
374
+ customType: string;
375
+ id: number;
376
+ name: string;
377
+ comments: string;
378
+ visibleInInspector: boolean;
379
+ visibleOnFrame: boolean;
380
+ target: number;
381
+ inputs: {
382
+ name: string;
383
+ inputName: string;
384
+ targetBlockId: number;
385
+ targetConnectionName: string;
386
+ isExposedOnFrame: boolean;
387
+ exposedPortPosition: number;
388
+ }[];
389
+ outputs: {
390
+ name: string;
391
+ }[];
392
+ operation: number;
393
+ complementZ?: undefined;
394
+ complementW?: undefined;
395
+ type?: undefined;
396
+ mode?: undefined;
397
+ animationType?: undefined;
398
+ min?: undefined;
399
+ max?: undefined;
400
+ isBoolean?: undefined;
401
+ matrixMode?: undefined;
402
+ isConstant?: undefined;
403
+ groupInInspector?: undefined;
404
+ convertToGammaSpace?: undefined;
405
+ convertToLinearSpace?: undefined;
406
+ systemValue?: undefined;
407
+ rSwizzle?: undefined;
408
+ gSwizzle?: undefined;
409
+ bSwizzle?: undefined;
410
+ aSwizzle?: undefined;
411
+ xSwizzle?: undefined;
412
+ ySwizzle?: undefined;
413
+ zSwizzle?: undefined;
414
+ wSwizzle?: undefined;
415
+ valueType?: undefined;
416
+ value?: undefined;
417
+ fragmentOnly?: undefined;
418
+ disableLevelMultiplication?: undefined;
419
+ } | {
420
+ customType: string;
421
+ id: number;
422
+ name: string;
423
+ comments: string;
424
+ visibleInInspector: boolean;
425
+ visibleOnFrame: boolean;
426
+ target: number;
427
+ inputs: ({
428
+ name: string;
429
+ inputName?: undefined;
430
+ targetBlockId?: undefined;
431
+ targetConnectionName?: undefined;
432
+ isExposedOnFrame?: undefined;
433
+ exposedPortPosition?: undefined;
434
+ } | {
435
+ name: string;
436
+ inputName: string;
437
+ targetBlockId: number;
438
+ targetConnectionName: string;
439
+ isExposedOnFrame: boolean;
440
+ exposedPortPosition: number;
441
+ })[];
442
+ outputs: {
443
+ name: string;
444
+ }[];
445
+ xSwizzle: string;
446
+ ySwizzle: string;
447
+ zSwizzle: string;
448
+ wSwizzle: string;
449
+ complementZ?: undefined;
450
+ complementW?: undefined;
451
+ type?: undefined;
452
+ mode?: undefined;
453
+ animationType?: undefined;
454
+ min?: undefined;
455
+ max?: undefined;
456
+ isBoolean?: undefined;
457
+ matrixMode?: undefined;
458
+ isConstant?: undefined;
459
+ groupInInspector?: undefined;
460
+ convertToGammaSpace?: undefined;
461
+ convertToLinearSpace?: undefined;
462
+ systemValue?: undefined;
463
+ rSwizzle?: undefined;
464
+ gSwizzle?: undefined;
465
+ bSwizzle?: undefined;
466
+ aSwizzle?: undefined;
467
+ operation?: undefined;
468
+ valueType?: undefined;
469
+ value?: undefined;
470
+ fragmentOnly?: undefined;
471
+ disableLevelMultiplication?: undefined;
472
+ } | {
473
+ customType: string;
474
+ id: number;
475
+ name: string;
476
+ comments: string;
477
+ visibleInInspector: boolean;
478
+ visibleOnFrame: boolean;
479
+ target: number;
480
+ inputs: ({
481
+ name: string;
482
+ inputName: string;
483
+ targetBlockId: number;
484
+ targetConnectionName: string;
485
+ isExposedOnFrame: boolean;
486
+ exposedPortPosition: number;
487
+ } | {
488
+ name: string;
489
+ isExposedOnFrame: boolean;
490
+ exposedPortPosition: number;
491
+ inputName?: undefined;
492
+ targetBlockId?: undefined;
493
+ targetConnectionName?: undefined;
494
+ } | {
495
+ name: string;
496
+ inputName?: undefined;
497
+ targetBlockId?: undefined;
498
+ targetConnectionName?: undefined;
499
+ isExposedOnFrame?: undefined;
500
+ exposedPortPosition?: undefined;
501
+ })[];
502
+ outputs: {
503
+ name: string;
504
+ }[];
505
+ complementZ?: undefined;
506
+ complementW?: undefined;
507
+ type?: undefined;
508
+ mode?: undefined;
509
+ animationType?: undefined;
510
+ min?: undefined;
511
+ max?: undefined;
512
+ isBoolean?: undefined;
513
+ matrixMode?: undefined;
514
+ isConstant?: undefined;
515
+ groupInInspector?: undefined;
516
+ convertToGammaSpace?: undefined;
517
+ convertToLinearSpace?: undefined;
518
+ systemValue?: undefined;
519
+ rSwizzle?: undefined;
520
+ gSwizzle?: undefined;
521
+ bSwizzle?: undefined;
522
+ aSwizzle?: undefined;
523
+ operation?: undefined;
524
+ xSwizzle?: undefined;
525
+ ySwizzle?: undefined;
526
+ zSwizzle?: undefined;
527
+ wSwizzle?: undefined;
528
+ valueType?: undefined;
529
+ value?: undefined;
530
+ fragmentOnly?: undefined;
531
+ disableLevelMultiplication?: undefined;
532
+ } | {
533
+ customType: string;
534
+ id: number;
535
+ name: string;
536
+ comments: string;
537
+ visibleInInspector: boolean;
538
+ visibleOnFrame: boolean;
539
+ target: number;
540
+ inputs: never[];
541
+ outputs: {
542
+ name: string;
543
+ }[];
544
+ type: number;
545
+ mode: number;
546
+ animationType: number;
547
+ min: number;
548
+ max: number;
549
+ isBoolean: boolean;
550
+ matrixMode: number;
551
+ isConstant: boolean;
552
+ groupInInspector: string;
553
+ convertToGammaSpace: boolean;
554
+ convertToLinearSpace: boolean;
555
+ valueType: string;
556
+ value: number[];
557
+ complementZ?: undefined;
558
+ complementW?: undefined;
559
+ systemValue?: undefined;
560
+ rSwizzle?: undefined;
561
+ gSwizzle?: undefined;
562
+ bSwizzle?: undefined;
563
+ aSwizzle?: undefined;
564
+ operation?: undefined;
565
+ xSwizzle?: undefined;
566
+ ySwizzle?: undefined;
567
+ zSwizzle?: undefined;
568
+ wSwizzle?: undefined;
569
+ fragmentOnly?: undefined;
570
+ disableLevelMultiplication?: undefined;
571
+ } | {
572
+ customType: string;
573
+ id: number;
574
+ name: string;
575
+ comments: string;
576
+ visibleInInspector: boolean;
577
+ visibleOnFrame: boolean;
578
+ target: number;
579
+ inputs: never[];
580
+ outputs: {
581
+ name: string;
582
+ }[];
583
+ type: number;
584
+ mode: number;
585
+ animationType: number;
586
+ min: number;
587
+ max: number;
588
+ isBoolean: boolean;
589
+ matrixMode: number;
590
+ isConstant: boolean;
591
+ groupInInspector: string;
592
+ convertToGammaSpace: boolean;
593
+ convertToLinearSpace: boolean;
594
+ valueType: string;
595
+ value: number;
596
+ complementZ?: undefined;
597
+ complementW?: undefined;
598
+ systemValue?: undefined;
599
+ rSwizzle?: undefined;
600
+ gSwizzle?: undefined;
601
+ bSwizzle?: undefined;
602
+ aSwizzle?: undefined;
603
+ operation?: undefined;
604
+ xSwizzle?: undefined;
605
+ ySwizzle?: undefined;
606
+ zSwizzle?: undefined;
607
+ wSwizzle?: undefined;
608
+ fragmentOnly?: undefined;
609
+ disableLevelMultiplication?: undefined;
610
+ } | {
611
+ customType: string;
612
+ id: number;
613
+ name: string;
614
+ comments: string;
615
+ visibleInInspector: boolean;
616
+ visibleOnFrame: boolean;
617
+ target: number;
618
+ inputs: ({
619
+ name: string;
620
+ displayName: string;
621
+ inputName: string;
622
+ targetBlockId: number;
623
+ targetConnectionName: string;
624
+ isExposedOnFrame: boolean;
625
+ exposedPortPosition: number;
626
+ } | {
627
+ name: string;
628
+ displayName: string;
629
+ inputName?: undefined;
630
+ targetBlockId?: undefined;
631
+ targetConnectionName?: undefined;
632
+ isExposedOnFrame?: undefined;
633
+ exposedPortPosition?: undefined;
634
+ })[];
635
+ outputs: {
636
+ name: string;
637
+ displayName: string;
638
+ }[];
639
+ convertToGammaSpace: boolean;
640
+ convertToLinearSpace: boolean;
641
+ fragmentOnly: boolean;
642
+ disableLevelMultiplication: boolean;
643
+ complementZ?: undefined;
644
+ complementW?: undefined;
645
+ type?: undefined;
646
+ mode?: undefined;
647
+ animationType?: undefined;
648
+ min?: undefined;
649
+ max?: undefined;
650
+ isBoolean?: undefined;
651
+ matrixMode?: undefined;
652
+ isConstant?: undefined;
653
+ groupInInspector?: undefined;
654
+ systemValue?: undefined;
655
+ rSwizzle?: undefined;
656
+ gSwizzle?: undefined;
657
+ bSwizzle?: undefined;
658
+ aSwizzle?: undefined;
659
+ operation?: undefined;
660
+ xSwizzle?: undefined;
661
+ ySwizzle?: undefined;
662
+ zSwizzle?: undefined;
663
+ wSwizzle?: undefined;
664
+ valueType?: undefined;
665
+ value?: undefined;
666
+ })[];
667
+ };
668
+ }
34
669
  declare module "@babylonjs/gui-editor/diagram/workbench" {
35
670
  import * as React from "react";
36
671
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
@@ -39,6 +674,7 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
39
674
  import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
40
675
  import { Scene } from "@babylonjs/core/scene";
41
676
  import { ArcRotateCamera } from "@babylonjs/core/Cameras/arcRotateCamera";
677
+ import { Mesh } from "@babylonjs/core/Meshes/mesh";
42
678
  import { Plane } from "@babylonjs/core/Maths/math.plane";
43
679
  import { PointerInfo } from "@babylonjs/core/Events/pointerEvents";
44
680
  import { EventState } from "@babylonjs/core/Misc/observable";
@@ -46,8 +682,6 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
46
682
  export interface IWorkbenchComponentProps {
47
683
  globalState: GlobalState;
48
684
  }
49
- export type FramePortData = {};
50
- export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
51
685
  export enum ConstraintDirection {
52
686
  NONE = 0,
53
687
  X = 2,
@@ -59,7 +693,7 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
59
693
  private _setConstraintDirection;
60
694
  private _mouseStartPointX;
61
695
  private _mouseStartPointY;
62
- private _textureMesh;
696
+ _textureMesh: Mesh;
63
697
  _scene: Scene;
64
698
  private _selectedGuiNodes;
65
699
  private _ctrlKeyIsPressed;
@@ -67,7 +701,6 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
67
701
  private _constraintDirection;
68
702
  private _forcePanning;
69
703
  private _forceZooming;
70
- private _forceMoving;
71
704
  private _forceSelecting;
72
705
  private _outlines;
73
706
  private _panning;
@@ -76,33 +709,42 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
76
709
  private _isOverGUINode;
77
710
  private _clipboard;
78
711
  private _selectAll;
79
- private _camera;
712
+ _camera: ArcRotateCamera;
80
713
  private _cameraRadias;
81
714
  private _cameraMaxRadiasFactor;
82
715
  private _pasted;
83
716
  private _engine;
717
+ private _liveRenderObserver;
718
+ private _guiRenderObserver;
719
+ private _mainSelection;
720
+ private _selectionDepth;
721
+ private _doubleClick;
722
+ private _lockMainSelection;
84
723
  get globalState(): GlobalState;
85
724
  get nodes(): Control[];
86
725
  get selectedGuiNodes(): Control[];
726
+ private _getParentWithDepth;
727
+ private _getMaxParent;
87
728
  constructor(props: IWorkbenchComponentProps);
729
+ determineMouseSelection(selection: Nullable<Control>): void;
88
730
  keyEvent: (evt: KeyboardEvent) => void;
89
731
  private updateHitTest;
90
732
  private updateHitTestForSelection;
91
733
  private setCameraRadius;
92
- private copyToClipboard;
93
- private pasteFromClipboard;
734
+ copyToClipboard(): void;
735
+ pasteFromClipboard(): void;
94
736
  CopyGUIControl(original: Control): void;
95
737
  private selectAllGUI;
96
738
  blurEvent: () => void;
97
739
  componentWillUnmount(): void;
98
740
  loadFromJson(serializationObject: any): void;
99
- loadFromSnippet(snippedId: string): Promise<void>;
741
+ loadFromSnippet(snippetId: string): Promise<void>;
100
742
  loadToEditor(): void;
101
743
  changeSelectionHighlight(value: boolean): void;
102
744
  resizeGuiTexture(newvalue: Vector2): void;
103
745
  findNodeFromGuiElement(guiControl: Control): Control;
104
746
  appendBlock(guiElement: Control): Control;
105
- isContainer(guiControl: Control): boolean;
747
+ private _isMainSelectionParent;
106
748
  createNewGuiNode(guiControl: Control): Control;
107
749
  private parent;
108
750
  private _convertToPixels;
@@ -112,15 +754,16 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
112
754
  isSelected(value: boolean, guiNode: Control): void;
113
755
  clicked: boolean;
114
756
  _onMove(guiControl: Control, evt: Vector2, startPos: Vector2, ignorClick?: boolean): boolean;
115
- componentDidMount(): void;
757
+ convertToPercentage(guiControl: Control, includeScale: boolean): void;
116
758
  onMove(evt: React.PointerEvent): void;
117
759
  getGroundPosition(): Nullable<Vector3>;
118
760
  onDown(evt: React.PointerEvent<HTMLElement>): void;
119
761
  isUp: boolean;
120
762
  onUp(evt: React.PointerEvent): void;
121
763
  createGUICanvas(): void;
764
+ synchronizeLiveGUI(): void;
122
765
  addControls(scene: Scene, camera: ArcRotateCamera): void;
123
- getPosition(scene: Scene, camera: ArcRotateCamera, plane: Plane): Vector3;
766
+ getPosition(scene: Scene, camera: ArcRotateCamera, plane: Plane, x?: number, y?: number): Vector3;
124
767
  panning(newPos: Vector3, initialPos: Vector3, inertia: number, ref: Vector3): Vector3;
125
768
  zoomWheel(p: PointerInfo, e: EventState, camera: ArcRotateCamera): number;
126
769
  zooming(delta: number, scene: Scene, camera: ArcRotateCamera, plane: Plane, ref: Vector3): void;
@@ -148,6 +791,82 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lock
148
791
  lock: boolean;
149
792
  }
150
793
  }
794
+ declare module "@babylonjs/gui-editor/diagram/guiGizmo" {
795
+ import { Control } from "@babylonjs/gui/2D/controls/control";
796
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
797
+ import * as React from "react";
798
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
799
+ export interface IGuiGizmoProps {
800
+ globalState: GlobalState;
801
+ }
802
+ export class GuiGizmoComponent extends React.Component<IGuiGizmoProps> {
803
+ scalePoints: HTMLDivElement[];
804
+ private _scalePointIndex;
805
+ private _pointerData;
806
+ private _htmlPoints;
807
+ private _matrixCache;
808
+ private _responsive;
809
+ constructor(props: IGuiGizmoProps);
810
+ componentDidMount(): void;
811
+ /**
812
+ * Update the gizmo's corners positions
813
+ * @param force should the update be forced. otherwise it will be updated only when the pointer is down
814
+ */
815
+ updateGizmo(force?: boolean): void;
816
+ private _resetMatrixArray;
817
+ /**
818
+ * This function calculates a local matrix for a node, including it's full transformation and pivot point
819
+ *
820
+ * @param node the node to calculate the matrix for
821
+ * @param useStoredValues should the stored (cached) values be used to calculate the matrix
822
+ * @returns a new matrix for the control
823
+ */
824
+ private _getNodeMatrix;
825
+ /**
826
+ * Using the node's tree, calculate its world matrix and return it
827
+ * @param node the node to calculate the matrix for
828
+ * @param useStoredValuesIfPossible used stored valued (cached when pointer down is clicked)
829
+ * @returns the world matrix for this node
830
+ */
831
+ private _nodeToRTTWorldMatrix;
832
+ private _nodeToRTTSpace;
833
+ private _rttToLocalNodeSpace;
834
+ private _rttToCanvasSpace;
835
+ private _plane;
836
+ private _mousePointerToRTTSpace;
837
+ /**
838
+ * Get the scaling of a specific GUI control
839
+ * @param node the node for which we are getting the scaling
840
+ * @param relative should we return only the relative scaling (relative to the parent)
841
+ * @returns an X,Y vector of the scaling
842
+ */
843
+ getScale(node: Control, relative?: boolean): Vector2;
844
+ getRotation(node: Control, relative?: boolean): number;
845
+ createBaseGizmo(): void;
846
+ onUp(evt?: React.PointerEvent): void;
847
+ private _onUp;
848
+ onMove(evt: React.PointerEvent): void;
849
+ private _initH;
850
+ private _initW;
851
+ private _initX;
852
+ private _initY;
853
+ private _onMove;
854
+ /**
855
+ * Calculate the 4 corners in node space
856
+ * @param node The node to use
857
+ */
858
+ private _nodeToCorners;
859
+ /**
860
+ * Computer the node's width, height, top and left, using the 4 corners
861
+ * @param node the node we use
862
+ */
863
+ private _updateNodeFromCorners;
864
+ private _rotate;
865
+ private _setNodeCorner;
866
+ private _setMousePosition;
867
+ render(): null;
868
+ }
869
+ }
151
870
  declare module "@babylonjs/gui-editor/globalState" {
152
871
  import { Nullable } from "@babylonjs/core/types";
153
872
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -160,6 +879,7 @@ declare module "@babylonjs/gui-editor/globalState" {
160
879
  import { Scene } from "@babylonjs/core/scene";
161
880
  import { Control } from "@babylonjs/gui/2D/controls/control";
162
881
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
882
+ import { GuiGizmoComponent } from "@babylonjs/gui-editor/diagram/guiGizmo";
163
883
  export enum DragOverLocation {
164
884
  ABOVE = 0,
165
885
  BELOW = 1,
@@ -168,6 +888,7 @@ declare module "@babylonjs/gui-editor/globalState" {
168
888
  }
169
889
  export class GlobalState {
170
890
  [x: string]: any;
891
+ liveGuiTexture: Nullable<AdvancedDynamicTexture>;
171
892
  guiTexture: AdvancedDynamicTexture;
172
893
  hostElement: HTMLElement;
173
894
  hostDocument: HTMLDocument;
@@ -183,11 +904,13 @@ declare module "@babylonjs/gui-editor/globalState" {
183
904
  onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
184
905
  onNewSceneObservable: Observable<Nullable<Scene>>;
185
906
  onGuiNodeRemovalObservable: Observable<Control>;
907
+ onPopupClosedObservable: Observable<void>;
186
908
  backgroundColor: Color4;
187
909
  blockKeyboardEvents: boolean;
188
910
  controlCamera: boolean;
189
911
  selectionLock: boolean;
190
912
  workbench: WorkbenchComponent;
913
+ guiGizmo: GuiGizmoComponent;
191
914
  onPropertyChangedObservable: Observable<PropertyChangedEvent>;
192
915
  onZoomObservable: Observable<void>;
193
916
  onFitToWindowObservable: Observable<void>;
@@ -205,6 +928,7 @@ declare module "@babylonjs/gui-editor/globalState" {
205
928
  onDraggingEndObservable: Observable<void>;
206
929
  onDraggingStartObservable: Observable<void>;
207
930
  onWindowResizeObservable: Observable<void>;
931
+ onGizmoUpdateRequireObservable: Observable<void>;
208
932
  draggedControl: Nullable<Control>;
209
933
  draggedControlDirection: DragOverLocation;
210
934
  isSaving: boolean;
@@ -257,7 +981,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
257
981
  import { Observable } from "@babylonjs/core/Misc/observable";
258
982
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
259
983
  export interface ICheckBoxLineComponentProps {
260
- label: string;
984
+ label?: string;
261
985
  target?: any;
262
986
  propertyName?: string;
263
987
  isSelected?: () => boolean;
@@ -267,6 +991,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
267
991
  disabled?: boolean;
268
992
  icon?: string;
269
993
  iconLabel?: string;
994
+ faIcons?: {
995
+ };
270
996
  }
271
997
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
272
998
  isSelected: boolean;
@@ -340,6 +1066,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponen
340
1066
  onEnter?: (newValue: number) => void;
341
1067
  icon?: string;
342
1068
  iconLabel?: string;
1069
+ defaultValue?: number;
343
1070
  }
344
1071
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
345
1072
  value: string;
@@ -412,6 +1139,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textInputLineComp
412
1139
  iconLabel?: string;
413
1140
  noUnderline?: boolean;
414
1141
  numbersOnly?: boolean;
1142
+ delayInput?: boolean;
415
1143
  }
416
1144
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
417
1145
  value: string;
@@ -436,6 +1164,8 @@ declare module "@babylonjs/gui-editor/components/commandButtonComponent" {
436
1164
  iconLabel?: string;
437
1165
  isActive: boolean;
438
1166
  onClick: () => void;
1167
+ altStyle?: boolean;
1168
+ disabled?: boolean;
439
1169
  }
440
1170
  export class CommandButtonComponent extends React.Component<ICommandButtonComponentProps> {
441
1171
  constructor(props: ICommandButtonComponentProps);
@@ -546,7 +1276,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorPicker
546
1276
  }
547
1277
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorPickerComponent" {
548
1278
  import * as React from "react";
549
- import { Color4, Color3 } from '@babylonjs/core/Maths/math.color';
1279
+ import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
550
1280
  export interface IColorPickerComponentProps {
551
1281
  value: Color4 | Color3;
552
1282
  linearHint?: boolean;
@@ -575,7 +1305,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineCompone
575
1305
  import * as React from "react";
576
1306
  import { Observable } from "@babylonjs/core/Misc/observable";
577
1307
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
578
- import { Color3, Color4 } from '@babylonjs/core/Maths/math.color';
1308
+ import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
579
1309
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
580
1310
  export interface IColor3LineComponentProps {
581
1311
  label: string;
@@ -629,10 +1359,10 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
629
1359
  export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
630
1360
  private _width;
631
1361
  private _height;
632
- private _responsive;
633
1362
  constructor(props: ICommonControlPropertyGridComponentProps);
634
1363
  private _updateAlignment;
635
1364
  private _checkAndUpdateValues;
1365
+ private _markChildrenAsDirty;
636
1366
  render(): JSX.Element;
637
1367
  }
638
1368
  }
@@ -642,8 +1372,9 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
642
1372
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
643
1373
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
644
1374
  import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1375
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
645
1376
  interface ISliderPropertyGridComponentProps {
646
- slider: Slider;
1377
+ slider: Slider | ImageBasedSlider;
647
1378
  lockObject: LockObject;
648
1379
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
649
1380
  }
@@ -652,6 +1383,22 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
652
1383
  render(): JSX.Element;
653
1384
  }
654
1385
  }
1386
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/sliderGenericPropertyGridComponent" {
1387
+ import * as React from "react";
1388
+ import { Observable } from "@babylonjs/core/Misc/observable";
1389
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1390
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1391
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1392
+ interface ISliderGenericPropertyGridComponentProps {
1393
+ slider: Slider;
1394
+ lockObject: LockObject;
1395
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1396
+ }
1397
+ export class SliderGenericPropertyGridComponent extends React.Component<ISliderGenericPropertyGridComponentProps> {
1398
+ constructor(props: ISliderGenericPropertyGridComponentProps);
1399
+ render(): JSX.Element;
1400
+ }
1401
+ }
655
1402
  declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/linePropertyGridComponent" {
656
1403
  import * as React from "react";
657
1404
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -853,6 +1600,8 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/g
853
1600
  private _columnDefinitions;
854
1601
  private _editedRow;
855
1602
  private _editedColumn;
1603
+ private _rowChild;
1604
+ private _columnChild;
856
1605
  renderRows(): JSX.Element[];
857
1606
  setRowValues(): void;
858
1607
  setColumnValues(): void;
@@ -861,6 +1610,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/g
861
1610
  resizeColumn(): void;
862
1611
  checkValue(value: string, percent: boolean): string;
863
1612
  checkPercentage(value: string): boolean;
1613
+ resetValues(): void;
864
1614
  render(): JSX.Element;
865
1615
  }
866
1616
  }
@@ -999,7 +1749,7 @@ declare module "@babylonjs/gui-editor/guiNodeTools" {
999
1749
  import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1000
1750
  export class GUINodeTools {
1001
1751
  static ImageControlDefaultUrl: string;
1002
- static CreateControlFromString(data: string): Grid | Rectangle | Line | TextBlock | Image | Slider | RadioButton | InputText | ColorPicker | ImageBasedSlider | StackPanel | Ellipse | Checkbox | DisplayGrid;
1752
+ static CreateControlFromString(data: string): Grid | Rectangle | Line | Image | TextBlock | Slider | ImageBasedSlider | RadioButton | InputText | ColorPicker | StackPanel | Ellipse | Checkbox | DisplayGrid;
1003
1753
  }
1004
1754
  }
1005
1755
  declare module "@babylonjs/gui-editor/components/propertyTab/propertyTabComponent" {
@@ -1092,7 +1842,7 @@ declare module "@babylonjs/gui-editor/components/sceneExplorer/extensionsCompone
1092
1842
  declare module "@babylonjs/gui-editor/components/sceneExplorer/entities/gui/controlTreeItemComponent" {
1093
1843
  import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1094
1844
  import { Control } from "@babylonjs/gui/2D/controls/control";
1095
- import * as React from 'react';
1845
+ import * as React from "react";
1096
1846
  import { DragOverLocation, GlobalState } from "@babylonjs/gui-editor/globalState";
1097
1847
  interface IControlTreeItemComponentProps {
1098
1848
  control: Control;
@@ -1273,7 +2023,6 @@ declare module "@babylonjs/gui-editor/components/commandBarComponent" {
1273
2023
  private _panning;
1274
2024
  private _zooming;
1275
2025
  private _selecting;
1276
- private _moving;
1277
2026
  private _outlines;
1278
2027
  constructor(props: ICommandBarComponentProps);
1279
2028
  private updateNodeOutline;
@@ -1295,10 +2044,9 @@ declare module "@babylonjs/gui-editor/workbenchEditor" {
1295
2044
  private _leftWidth;
1296
2045
  private _rightWidth;
1297
2046
  private _toolBarIconSize;
1298
- private _onWidgetKeyUpPointer;
1299
2047
  private _popUpWindow;
2048
+ private _draggedItem;
1300
2049
  componentDidMount(): void;
1301
- componentWillUnmount(): void;
1302
2050
  constructor(props: IGraphEditorProps);
1303
2051
  showWaitScreen(): void;
1304
2052
  hideWaitScreen(): void;
@@ -1335,10 +2083,12 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/popup" {
1335
2083
  }
1336
2084
  declare module "@babylonjs/gui-editor/guiEditor" {
1337
2085
  import { Observable } from "@babylonjs/core/Misc/observable";
2086
+ import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
1338
2087
  /**
1339
2088
  * Interface used to specify creation options for the gui editor
1340
2089
  */
1341
2090
  export interface IGUIEditorOptions {
2091
+ liveGuiTexture?: AdvancedDynamicTexture;
1342
2092
  customLoad: {
1343
2093
  label: string;
1344
2094
  action: (data: string) => Promise<string>;
@@ -1360,7 +2110,7 @@ declare module "@babylonjs/gui-editor/guiEditor" {
1360
2110
  * Show the gui editor
1361
2111
  * @param options defines the options to use to configure the gui editor
1362
2112
  */
1363
- static Show(options: IGUIEditorOptions): void;
2113
+ static Show(options: IGUIEditorOptions): Promise<void>;
1364
2114
  }
1365
2115
  }
1366
2116
  declare module "@babylonjs/gui-editor/index" {
@@ -1714,7 +2464,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/hexLineComponent"
1714
2464
  }
1715
2465
  }
1716
2466
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/iconButtonLineComponent" {
1717
- import * as React from 'react';
2467
+ import * as React from "react";
1718
2468
  export interface IIconButtonLineComponentProps {
1719
2469
  icon: string;
1720
2470
  onClick: () => void;