@babylonjs/gui-editor 5.0.0-alpha.60 → 5.0.0-alpha.64

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,148 +1164,14 @@ 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);
442
1172
  render(): JSX.Element;
443
1173
  }
444
1174
  }
445
- declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent" {
446
- import * as React from "react";
447
- import { Observable } from "@babylonjs/core/Misc/observable";
448
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
449
- import { Control } from "@babylonjs/gui/2D/controls/control";
450
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
451
- interface ICommonControlPropertyGridComponentProps {
452
- control: Control;
453
- lockObject: LockObject;
454
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
455
- }
456
- export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
457
- private _width;
458
- private _height;
459
- private _responsive;
460
- constructor(props: ICommonControlPropertyGridComponentProps);
461
- private _updateAlignment;
462
- private _checkAndUpdateValues;
463
- render(): JSX.Element;
464
- }
465
- }
466
- declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/sliderPropertyGridComponent" {
467
- import * as React from "react";
468
- import { Observable } from "@babylonjs/core/Misc/observable";
469
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
470
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
471
- import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
472
- interface ISliderPropertyGridComponentProps {
473
- slider: Slider;
474
- lockObject: LockObject;
475
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
476
- }
477
- export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
478
- constructor(props: ISliderPropertyGridComponentProps);
479
- render(): JSX.Element;
480
- }
481
- }
482
- declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/linePropertyGridComponent" {
483
- import * as React from "react";
484
- import { Observable } from "@babylonjs/core/Misc/observable";
485
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
486
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
487
- import { Line } from "@babylonjs/gui/2D/controls/line";
488
- interface ILinePropertyGridComponentProps {
489
- line: Line;
490
- lockObject: LockObject;
491
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
492
- }
493
- export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
494
- constructor(props: ILinePropertyGridComponentProps);
495
- onDashChange(value: string): void;
496
- render(): JSX.Element;
497
- }
498
- }
499
- declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/radioButtonPropertyGridComponent" {
500
- import * as React from "react";
501
- import { Observable } from "@babylonjs/core/Misc/observable";
502
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
503
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
504
- import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
505
- interface IRadioButtonPropertyGridComponentProps {
506
- radioButton: RadioButton;
507
- lockObject: LockObject;
508
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
509
- }
510
- export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
511
- constructor(props: IRadioButtonPropertyGridComponentProps);
512
- render(): JSX.Element;
513
- }
514
- }
515
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/optionsLineComponent" {
516
- import * as React from "react";
517
- import { Observable } from "@babylonjs/core/Misc/observable";
518
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
519
- import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
520
- export const Null_Value: number;
521
- export interface IOptionsLineComponentProps {
522
- label: string;
523
- target: any;
524
- propertyName: string;
525
- options: IInspectableOptions[];
526
- noDirectUpdate?: boolean;
527
- onSelect?: (value: number) => void;
528
- extractValue?: () => number;
529
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
530
- allowNullValue?: boolean;
531
- icon?: string;
532
- iconLabel?: string;
533
- }
534
- export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
535
- value: number;
536
- }> {
537
- private _localChange;
538
- private remapValueIn;
539
- private remapValueOut;
540
- constructor(props: IOptionsLineComponentProps);
541
- shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
542
- value: number;
543
- }): boolean;
544
- raiseOnPropertyChanged(newValue: number, previousValue: number): void;
545
- updateValue(valueString: string): void;
546
- render(): JSX.Element;
547
- }
548
- }
549
- declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/textBlockPropertyGridComponent" {
550
- import * as React from "react";
551
- import { Observable } from "@babylonjs/core/Misc/observable";
552
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
553
- import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
554
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
555
- interface ITextBlockPropertyGridComponentProps {
556
- textBlock: TextBlock;
557
- lockObject: LockObject;
558
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
559
- }
560
- export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
561
- constructor(props: ITextBlockPropertyGridComponentProps);
562
- render(): JSX.Element;
563
- }
564
- }
565
- declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/inputTextPropertyGridComponent" {
566
- import * as React from "react";
567
- import { Observable } from "@babylonjs/core/Misc/observable";
568
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
569
- import { InputText } from "@babylonjs/gui/2D/controls/inputText";
570
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
571
- interface IInputTextPropertyGridComponentProps {
572
- inputText: InputText;
573
- lockObject: LockObject;
574
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
575
- }
576
- export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
577
- constructor(props: IInputTextPropertyGridComponentProps);
578
- render(): JSX.Element;
579
- }
580
- }
581
1175
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/numericInputComponent" {
582
1176
  import * as React from "react";
583
1177
  interface INumericInputComponentProps {
@@ -682,7 +1276,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorPicker
682
1276
  }
683
1277
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorPickerComponent" {
684
1278
  import * as React from "react";
685
- import { Color4, Color3 } from '@babylonjs/core/Maths/math.color';
1279
+ import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
686
1280
  export interface IColorPickerComponentProps {
687
1281
  value: Color4 | Color3;
688
1282
  linearHint?: boolean;
@@ -711,7 +1305,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineCompone
711
1305
  import * as React from "react";
712
1306
  import { Observable } from "@babylonjs/core/Misc/observable";
713
1307
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
714
- import { Color3 } from '@babylonjs/core/Maths/math.color';
1308
+ import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
715
1309
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
716
1310
  export interface IColor3LineComponentProps {
717
1311
  label: string;
@@ -722,29 +1316,188 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineCompone
722
1316
  icon?: string;
723
1317
  lockObject?: LockObject;
724
1318
  iconLabel?: string;
1319
+ onValueChange?: (value: string) => void;
725
1320
  }
726
1321
  export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
727
1322
  isExpanded: boolean;
728
- color: Color3;
1323
+ color: Color3 | Color4;
1324
+ colorText: string;
729
1325
  }> {
730
1326
  private _localChange;
731
1327
  constructor(props: IColor3LineComponentProps);
1328
+ private convertToColor3;
732
1329
  shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
733
- color: Color3;
1330
+ color: Color3 | Color4;
1331
+ colorText: string;
734
1332
  }): boolean;
735
- setPropertyValue(newColor: Color3): void;
1333
+ setPropertyValue(newColor: Color3 | Color4, newColorText: string): void;
736
1334
  onChange(newValue: string): void;
737
1335
  switchExpandState(): void;
738
- raiseOnPropertyChanged(previousValue: Color3): void;
1336
+ raiseOnPropertyChanged(previousValue: Color3 | Color4): void;
739
1337
  updateStateR(value: number): void;
740
1338
  updateStateG(value: number): void;
741
1339
  updateStateB(value: number): void;
742
1340
  copyToClipboard(): void;
743
1341
  convert(colorString: string): void;
1342
+ private _colorStringSaved;
1343
+ private _colorPickerOpen;
744
1344
  private _colorString;
745
1345
  render(): JSX.Element;
746
1346
  }
747
1347
  }
1348
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent" {
1349
+ import * as React from "react";
1350
+ import { Observable } from "@babylonjs/core/Misc/observable";
1351
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1352
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1353
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1354
+ interface ICommonControlPropertyGridComponentProps {
1355
+ control: Control;
1356
+ lockObject: LockObject;
1357
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1358
+ }
1359
+ export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
1360
+ private _width;
1361
+ private _height;
1362
+ constructor(props: ICommonControlPropertyGridComponentProps);
1363
+ private _updateAlignment;
1364
+ private _checkAndUpdateValues;
1365
+ private _markChildrenAsDirty;
1366
+ render(): JSX.Element;
1367
+ }
1368
+ }
1369
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/sliderPropertyGridComponent" {
1370
+ import * as React from "react";
1371
+ import { Observable } from "@babylonjs/core/Misc/observable";
1372
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1373
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1374
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1375
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1376
+ interface ISliderPropertyGridComponentProps {
1377
+ slider: Slider | ImageBasedSlider;
1378
+ lockObject: LockObject;
1379
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1380
+ }
1381
+ export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
1382
+ constructor(props: ISliderPropertyGridComponentProps);
1383
+ render(): JSX.Element;
1384
+ }
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
+ }
1402
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/linePropertyGridComponent" {
1403
+ import * as React from "react";
1404
+ import { Observable } from "@babylonjs/core/Misc/observable";
1405
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1406
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1407
+ import { Line } from "@babylonjs/gui/2D/controls/line";
1408
+ interface ILinePropertyGridComponentProps {
1409
+ line: Line;
1410
+ lockObject: LockObject;
1411
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1412
+ }
1413
+ export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
1414
+ constructor(props: ILinePropertyGridComponentProps);
1415
+ onDashChange(value: string): void;
1416
+ render(): JSX.Element;
1417
+ }
1418
+ }
1419
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/radioButtonPropertyGridComponent" {
1420
+ import * as React from "react";
1421
+ import { Observable } from "@babylonjs/core/Misc/observable";
1422
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1423
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1424
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1425
+ interface IRadioButtonPropertyGridComponentProps {
1426
+ radioButton: RadioButton;
1427
+ lockObject: LockObject;
1428
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1429
+ }
1430
+ export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
1431
+ constructor(props: IRadioButtonPropertyGridComponentProps);
1432
+ render(): JSX.Element;
1433
+ }
1434
+ }
1435
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/optionsLineComponent" {
1436
+ import * as React from "react";
1437
+ import { Observable } from "@babylonjs/core/Misc/observable";
1438
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1439
+ import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
1440
+ export const Null_Value: number;
1441
+ export interface IOptionsLineComponentProps {
1442
+ label: string;
1443
+ target: any;
1444
+ propertyName: string;
1445
+ options: IInspectableOptions[];
1446
+ noDirectUpdate?: boolean;
1447
+ onSelect?: (value: number) => void;
1448
+ extractValue?: () => number;
1449
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1450
+ allowNullValue?: boolean;
1451
+ icon?: string;
1452
+ iconLabel?: string;
1453
+ }
1454
+ export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
1455
+ value: number;
1456
+ }> {
1457
+ private _localChange;
1458
+ private remapValueIn;
1459
+ private remapValueOut;
1460
+ constructor(props: IOptionsLineComponentProps);
1461
+ shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
1462
+ value: number;
1463
+ }): boolean;
1464
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1465
+ updateValue(valueString: string): void;
1466
+ render(): JSX.Element;
1467
+ }
1468
+ }
1469
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/textBlockPropertyGridComponent" {
1470
+ import * as React from "react";
1471
+ import { Observable } from "@babylonjs/core/Misc/observable";
1472
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1473
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1474
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1475
+ interface ITextBlockPropertyGridComponentProps {
1476
+ textBlock: TextBlock;
1477
+ lockObject: LockObject;
1478
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1479
+ }
1480
+ export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
1481
+ constructor(props: ITextBlockPropertyGridComponentProps);
1482
+ render(): JSX.Element;
1483
+ }
1484
+ }
1485
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/inputTextPropertyGridComponent" {
1486
+ import * as React from "react";
1487
+ import { Observable } from "@babylonjs/core/Misc/observable";
1488
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1489
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1490
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1491
+ interface IInputTextPropertyGridComponentProps {
1492
+ inputText: InputText;
1493
+ lockObject: LockObject;
1494
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1495
+ }
1496
+ export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
1497
+ constructor(props: IInputTextPropertyGridComponentProps);
1498
+ render(): JSX.Element;
1499
+ }
1500
+ }
748
1501
  declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/colorPickerPropertyGridComponent" {
749
1502
  import * as React from "react";
750
1503
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -847,6 +1600,8 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/g
847
1600
  private _columnDefinitions;
848
1601
  private _editedRow;
849
1602
  private _editedColumn;
1603
+ private _rowChild;
1604
+ private _columnChild;
850
1605
  renderRows(): JSX.Element[];
851
1606
  setRowValues(): void;
852
1607
  setColumnValues(): void;
@@ -855,6 +1610,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/g
855
1610
  resizeColumn(): void;
856
1611
  checkValue(value: string, percent: boolean): string;
857
1612
  checkPercentage(value: string): boolean;
1613
+ resetValues(): void;
858
1614
  render(): JSX.Element;
859
1615
  }
860
1616
  }
@@ -959,6 +1715,43 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/d
959
1715
  render(): JSX.Element;
960
1716
  }
961
1717
  }
1718
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/buttonPropertyGridComponent" {
1719
+ import * as React from "react";
1720
+ import { Observable } from "@babylonjs/core/Misc/observable";
1721
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1722
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1723
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1724
+ interface IButtonPropertyGridComponentProps {
1725
+ rectangle: Rectangle;
1726
+ lockObject: LockObject;
1727
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1728
+ onAddComponent: (newComponent: string) => void;
1729
+ }
1730
+ export class ButtonPropertyGridComponent extends React.Component<IButtonPropertyGridComponentProps> {
1731
+ constructor(props: IButtonPropertyGridComponentProps);
1732
+ render(): JSX.Element;
1733
+ }
1734
+ }
1735
+ declare module "@babylonjs/gui-editor/guiNodeTools" {
1736
+ import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
1737
+ import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
1738
+ import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
1739
+ import { Line } from "@babylonjs/gui/2D/controls/line";
1740
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1741
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1742
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1743
+ import { Image } from "@babylonjs/gui/2D/controls/image";
1744
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1745
+ import { Grid } from "@babylonjs/gui/2D/controls/grid";
1746
+ import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
1747
+ import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
1748
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1749
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1750
+ export class GUINodeTools {
1751
+ static ImageControlDefaultUrl: string;
1752
+ static CreateControlFromString(data: string): Grid | Rectangle | Line | Image | TextBlock | Slider | ImageBasedSlider | RadioButton | InputText | ColorPicker | StackPanel | Ellipse | Checkbox | DisplayGrid;
1753
+ }
1754
+ }
962
1755
  declare module "@babylonjs/gui-editor/components/propertyTab/propertyTabComponent" {
963
1756
  import * as React from "react";
964
1757
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
@@ -1000,25 +1793,6 @@ declare module "@babylonjs/gui-editor/portal" {
1000
1793
  render(): React.ReactPortal;
1001
1794
  }
1002
1795
  }
1003
- declare module "@babylonjs/gui-editor/guiNodeTools" {
1004
- import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
1005
- import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
1006
- import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
1007
- import { Line } from "@babylonjs/gui/2D/controls/line";
1008
- import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1009
- import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1010
- import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1011
- import { Image } from "@babylonjs/gui/2D/controls/image";
1012
- import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1013
- import { Grid } from "@babylonjs/gui/2D/controls/grid";
1014
- import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
1015
- import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
1016
- import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1017
- import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1018
- export class GUINodeTools {
1019
- static CreateControlFromString(data: string): Grid | Rectangle | Line | TextBlock | Image | Slider | RadioButton | InputText | ColorPicker | ImageBasedSlider | StackPanel | Ellipse | Checkbox | DisplayGrid;
1020
- }
1021
- }
1022
1796
  declare module "@babylonjs/gui-editor/sharedComponents/messageDialog" {
1023
1797
  import * as React from "react";
1024
1798
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
@@ -1068,7 +1842,7 @@ declare module "@babylonjs/gui-editor/components/sceneExplorer/extensionsCompone
1068
1842
  declare module "@babylonjs/gui-editor/components/sceneExplorer/entities/gui/controlTreeItemComponent" {
1069
1843
  import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1070
1844
  import { Control } from "@babylonjs/gui/2D/controls/control";
1071
- import * as React from 'react';
1845
+ import * as React from "react";
1072
1846
  import { DragOverLocation, GlobalState } from "@babylonjs/gui-editor/globalState";
1073
1847
  interface IControlTreeItemComponentProps {
1074
1848
  control: Control;
@@ -1249,7 +2023,6 @@ declare module "@babylonjs/gui-editor/components/commandBarComponent" {
1249
2023
  private _panning;
1250
2024
  private _zooming;
1251
2025
  private _selecting;
1252
- private _moving;
1253
2026
  private _outlines;
1254
2027
  constructor(props: ICommandBarComponentProps);
1255
2028
  private updateNodeOutline;
@@ -1266,16 +2039,14 @@ declare module "@babylonjs/gui-editor/workbenchEditor" {
1266
2039
  showPreviewPopUp: boolean;
1267
2040
  }
1268
2041
  export class WorkbenchEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
1269
- private _workbenchCanvas;
1270
2042
  private _startX;
1271
2043
  private _moveInProgress;
1272
2044
  private _leftWidth;
1273
2045
  private _rightWidth;
1274
2046
  private _toolBarIconSize;
1275
- private _onWidgetKeyUpPointer;
1276
2047
  private _popUpWindow;
2048
+ private _draggedItem;
1277
2049
  componentDidMount(): void;
1278
- componentWillUnmount(): void;
1279
2050
  constructor(props: IGraphEditorProps);
1280
2051
  showWaitScreen(): void;
1281
2052
  hideWaitScreen(): void;
@@ -1283,7 +2054,6 @@ declare module "@babylonjs/gui-editor/workbenchEditor" {
1283
2054
  onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1284
2055
  resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
1285
2056
  buildColumnLayout(): string;
1286
- emitNewBlock(event: React.DragEvent<HTMLDivElement>): void;
1287
2057
  handlePopUp: () => void;
1288
2058
  handleClosingPopUp: () => void;
1289
2059
  createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
@@ -1313,10 +2083,12 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/popup" {
1313
2083
  }
1314
2084
  declare module "@babylonjs/gui-editor/guiEditor" {
1315
2085
  import { Observable } from "@babylonjs/core/Misc/observable";
2086
+ import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
1316
2087
  /**
1317
2088
  * Interface used to specify creation options for the gui editor
1318
2089
  */
1319
2090
  export interface IGUIEditorOptions {
2091
+ liveGuiTexture?: AdvancedDynamicTexture;
1320
2092
  customLoad: {
1321
2093
  label: string;
1322
2094
  action: (data: string) => Promise<string>;
@@ -1338,7 +2110,7 @@ declare module "@babylonjs/gui-editor/guiEditor" {
1338
2110
  * Show the gui editor
1339
2111
  * @param options defines the options to use to configure the gui editor
1340
2112
  */
1341
- static Show(options: IGUIEditorOptions): void;
2113
+ static Show(options: IGUIEditorOptions): Promise<void>;
1342
2114
  }
1343
2115
  }
1344
2116
  declare module "@babylonjs/gui-editor/index" {
@@ -1692,7 +2464,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/hexLineComponent"
1692
2464
  }
1693
2465
  }
1694
2466
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/iconButtonLineComponent" {
1695
- import * as React from 'react';
2467
+ import * as React from "react";
1696
2468
  export interface IIconButtonLineComponentProps {
1697
2469
  icon: string;
1698
2470
  onClick: () => void;