babylonjs-node-editor 5.13.3 → 5.15.0

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.
@@ -61,6 +61,8 @@ declare module BABYLON.NodeEditor {
61
61
  componentWillUnmount(): void;
62
62
  changeBackFaceCulling(value: boolean): void;
63
63
  changeDepthPrePass(value: boolean): void;
64
+ _onPointerOverCanvas: () => void;
65
+ _onPointerOutCanvas: () => void;
64
66
  changeParticleSystemBlendMode(newOne: number): void;
65
67
  render(): JSX.Element;
66
68
  }
@@ -140,6 +142,7 @@ declare module BABYLON.NodeEditor {
140
142
  interface IInputsPropertyTabComponentProps {
141
143
  globalState: GlobalState;
142
144
  inputs: BABYLON.InputBlock[];
145
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
143
146
  }
144
147
  export class InputsPropertyTabComponent extends React.Component<IInputsPropertyTabComponentProps> {
145
148
  constructor(props: IInputsPropertyTabComponentProps);
@@ -152,6 +155,7 @@ declare module BABYLON.NodeEditor {
152
155
  interface IColor3PropertyTabComponentProps {
153
156
  globalState: GlobalState;
154
157
  inputBlock: BABYLON.InputBlock;
158
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
155
159
  }
156
160
  export class Color3PropertyTabComponent extends React.Component<IColor3PropertyTabComponentProps> {
157
161
  render(): JSX.Element;
@@ -161,6 +165,7 @@ declare module BABYLON.NodeEditor {
161
165
  interface IColor4PropertyTabComponentProps {
162
166
  globalState: GlobalState;
163
167
  inputBlock: BABYLON.InputBlock;
168
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
164
169
  }
165
170
  export class Color4PropertyTabComponent extends React.Component<IColor4PropertyTabComponentProps> {
166
171
  render(): JSX.Element;
@@ -179,6 +184,7 @@ declare module BABYLON.NodeEditor {
179
184
  interface IMatrixPropertyTabComponentProps {
180
185
  globalState: GlobalState;
181
186
  inputBlock: BABYLON.InputBlock;
187
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
182
188
  }
183
189
  export class MatrixPropertyTabComponent extends React.Component<IMatrixPropertyTabComponentProps> {
184
190
  render(): JSX.Element;
@@ -188,6 +194,7 @@ declare module BABYLON.NodeEditor {
188
194
  interface IVector2PropertyTabComponentProps {
189
195
  globalState: GlobalState;
190
196
  inputBlock: BABYLON.InputBlock;
197
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
191
198
  }
192
199
  export class Vector2PropertyTabComponent extends React.Component<IVector2PropertyTabComponentProps> {
193
200
  render(): JSX.Element;
@@ -197,6 +204,7 @@ declare module BABYLON.NodeEditor {
197
204
  interface IVector3PropertyTabComponentProps {
198
205
  globalState: GlobalState;
199
206
  inputBlock: BABYLON.InputBlock;
207
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
200
208
  }
201
209
  export class Vector3PropertyTabComponent extends React.Component<IVector3PropertyTabComponentProps> {
202
210
  render(): JSX.Element;
@@ -206,6 +214,7 @@ declare module BABYLON.NodeEditor {
206
214
  interface IVector4PropertyTabComponentProps {
207
215
  globalState: GlobalState;
208
216
  inputBlock: BABYLON.InputBlock;
217
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
209
218
  }
210
219
  export class Vector4PropertyTabComponent extends React.Component<IVector4PropertyTabComponentProps> {
211
220
  render(): JSX.Element;
@@ -214,6 +223,7 @@ declare module BABYLON.NodeEditor {
214
223
 
215
224
  interface IPropertyTabComponentProps {
216
225
  globalState: GlobalState;
226
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
217
227
  }
218
228
  interface IPropertyTabComponentState {
219
229
  currentNode: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphNode>;
@@ -276,6 +286,7 @@ declare module BABYLON.NodeEditor {
276
286
  directionalLight1: boolean;
277
287
  controlCamera: boolean;
278
288
  _mode: BABYLON.NodeMaterialModes;
289
+ pointerOverCanvas: boolean;
279
290
  /** Gets the mode */
280
291
  get mode(): BABYLON.NodeMaterialModes;
281
292
  /** Sets the mode */
@@ -303,7 +314,6 @@ declare module BABYLON.NodeEditor {
303
314
  embedHostWidth?: string;
304
315
  }
305
316
  export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
306
- static readonly NodeWidth = 100;
307
317
  private _graphCanvasRef;
308
318
  private _diagramContainerRef;
309
319
  private _graphCanvas;
@@ -313,8 +323,6 @@ declare module BABYLON.NodeEditor {
313
323
  private _leftWidth;
314
324
  private _rightWidth;
315
325
  private _previewManager;
316
- private _copiedNodes;
317
- private _copiedFrames;
318
326
  private _mouseLocationX;
319
327
  private _mouseLocationY;
320
328
  private _onWidgetKeyUpPointer;
@@ -325,8 +333,6 @@ declare module BABYLON.NodeEditor {
325
333
  componentDidMount(): void;
326
334
  componentWillUnmount(): void;
327
335
  constructor(props: IGraphEditorProps);
328
- reconnectNewNodes(nodeIndex: number, newNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], sourceNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], done: boolean[]): void;
329
- pasteSelection(copiedNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], currentX: number, currentY: number, selectNew?: boolean): BABYLON.NodeEditor.SharedUIComponents.GraphNode[] | undefined;
330
336
  zoomToFit(): void;
331
337
  buildMaterial(autoConfigure?: boolean): void;
332
338
  build(ignoreEditorData?: boolean): void;
@@ -336,7 +342,7 @@ declare module BABYLON.NodeEditor {
336
342
  reOrganize(editorData?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IEditorData>, isImportingAFrame?: boolean): void;
337
343
  onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
338
344
  onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
339
- onWheel(this: any, evt: WheelEvent): void;
345
+ onWheel: (evt: WheelEvent) => void;
340
346
  resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
341
347
  buildColumnLayout(): string;
342
348
  emitNewBlock(blockType: string, targetX: number, targetY: number): void;
@@ -367,7 +373,7 @@ declare module BABYLON.NodeEditor {
367
373
  set comments(value: string);
368
374
  getPortByName(name: string): BABYLON.NodeEditor.SharedUIComponents.IPortData | null;
369
375
  dispose(): void;
370
- getWarningMessage(): "" | "For optimization reasons, this block will be promoted to the vertex shader. You can force it to render in the fragment shader by setting its target to Fragment";
376
+ prepareHeaderIcon(iconDiv: HTMLDivElement, img: HTMLImageElement): void;
371
377
  constructor(data: BABYLON.NodeMaterialBlock, nodeContainer: BABYLON.NodeEditor.SharedUIComponents.INodeContainer);
372
378
  }
373
379
 
@@ -393,6 +399,7 @@ declare module BABYLON.NodeEditor {
393
399
  constructor(connectionPoint: BABYLON.NodeMaterialConnectionPoint, nodeContainer: BABYLON.NodeEditor.SharedUIComponents.INodeContainer);
394
400
  updateDisplayName(newName: string): void;
395
401
  connectTo(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): void;
402
+ canConnectTo(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): boolean;
396
403
  disconnectFrom(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): void;
397
404
  checkCompatibilityState(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): 0 | BABYLON.NodeMaterialConnectionPointCompatibilityStates.TypeIncompatible | BABYLON.NodeMaterialConnectionPointCompatibilityStates.TargetIncompatible | BABYLON.NodeMaterialConnectionPointCompatibilityStates.HierarchyIssue;
398
405
  getCompatibilityIssueMessage(issue: number, targetNode: BABYLON.NodeEditor.SharedUIComponents.GraphNode, targetPort: BABYLON.NodeEditor.SharedUIComponents.IPortData): "" | "Cannot connect two different connection types" | "Source block can only work in fragment shader whereas destination block is currently aimed for the vertex shader" | "Source block cannot be connected with one of its ancestors";
@@ -782,7 +789,7 @@ declare module BABYLON.NodeEditor {
782
789
  isSelected?: () => boolean;
783
790
  onSelect?: (value: boolean) => void;
784
791
  onValueChanged?: () => void;
785
- onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
792
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeEditor.SharedUIComponents.PropertyChangedEvent>;
786
793
  disabled?: boolean;
787
794
  }
788
795
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
@@ -802,29 +809,6 @@ declare module BABYLON.NodeEditor {
802
809
  }
803
810
 
804
811
 
805
- export interface IColorPickerComponentProps {
806
- value: BABYLON.Color4 | BABYLON.Color3;
807
- onColorChanged: (newOne: string) => void;
808
- globalState: GlobalState;
809
- }
810
- interface IColorPickerComponentState {
811
- pickerEnabled: boolean;
812
- color: BABYLON.Color3 | BABYLON.Color4;
813
- hex: string;
814
- }
815
- export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
816
- private _floatRef;
817
- private _floatHostRef;
818
- constructor(props: IColorPickerComponentProps);
819
- syncPositions(): void;
820
- shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
821
- componentDidUpdate(): void;
822
- componentDidMount(): void;
823
- setPickerState(enabled: boolean): void;
824
- render(): JSX.Element;
825
- }
826
-
827
-
828
812
  export interface IButtonLineComponentProps {
829
813
  data: string;
830
814
  tooltip: string;
@@ -863,40 +847,6 @@ declare module BABYLON.NodeEditor {
863
847
  }
864
848
 
865
849
 
866
- interface IFloatLineComponentProps {
867
- label: string;
868
- target: any;
869
- propertyName: string;
870
- onChange?: (newValue: number) => void;
871
- isInteger?: boolean;
872
- onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
873
- additionalClass?: string;
874
- step?: string;
875
- digits?: number;
876
- globalState: GlobalState;
877
- min?: number;
878
- max?: number;
879
- smallUI?: boolean;
880
- onEnter?: (newValue: number) => void;
881
- }
882
- export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
883
- value: string;
884
- }> {
885
- private _localChange;
886
- private _store;
887
- private _regExp;
888
- private _onFocus;
889
- constructor(props: IFloatLineComponentProps);
890
- shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
891
- value: string;
892
- }): boolean;
893
- componentWillUnmount(): void;
894
- raiseOnPropertyChanged(newValue: number, previousValue: number): void;
895
- updateValue(valueString: string): void;
896
- render(): JSX.Element;
897
- }
898
-
899
-
900
850
  interface ILineContainerComponentProps {
901
851
  title: string;
902
852
  children: any[] | any;
@@ -944,88 +894,12 @@ declare module BABYLON.NodeEditor {
944
894
  }
945
895
 
946
896
 
947
- interface INumericInputComponentProps {
948
- label: string;
949
- value: number;
950
- step?: number;
951
- onChange: (value: number) => void;
952
- globalState: GlobalState;
953
- }
954
- export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
955
- value: string;
956
- }> {
957
- static defaultProps: {
958
- step: number;
959
- };
960
- private _localChange;
961
- constructor(props: INumericInputComponentProps);
962
- shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
963
- value: string;
964
- }): boolean;
965
- updateValue(evt: any): void;
966
- render(): JSX.Element;
967
- }
968
-
969
-
970
897
  export class Popup {
971
898
  static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
972
899
  static _CopyStyles(sourceDoc: HTMLDocument, targetDoc: HTMLDocument): void;
973
900
  }
974
901
 
975
902
 
976
- export class PropertyChangedEvent {
977
- object: any;
978
- property: string;
979
- value: any;
980
- initialValue: any;
981
- }
982
-
983
-
984
- interface ISliderLineComponentProps {
985
- label: string;
986
- target?: any;
987
- propertyName?: string;
988
- minimum: number;
989
- maximum: number;
990
- step: number;
991
- directValue?: number;
992
- useEuler?: boolean;
993
- onChange?: (value: number) => void;
994
- onInput?: (value: number) => void;
995
- onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
996
- decimalCount?: number;
997
- globalState: GlobalState;
998
- }
999
- export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
1000
- value: number;
1001
- }> {
1002
- private _localChange;
1003
- constructor(props: ISliderLineComponentProps);
1004
- shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
1005
- value: number;
1006
- }): boolean;
1007
- onChange(newValueString: any): void;
1008
- onInput(newValueString: any): void;
1009
- prepareDataToRead(value: number): number;
1010
- render(): JSX.Element;
1011
- }
1012
-
1013
-
1014
- interface ITextLineComponentProps {
1015
- label: string;
1016
- value: string;
1017
- color?: string;
1018
- underline?: boolean;
1019
- onLink?: () => void;
1020
- }
1021
- export class TextLineComponent extends React.Component<ITextLineComponentProps> {
1022
- constructor(props: ITextLineComponentProps);
1023
- onLink(): void;
1024
- renderContent(): JSX.Element;
1025
- render(): JSX.Element;
1026
- }
1027
-
1028
-
1029
903
  interface ITextureLineComponentProps {
1030
904
  texture: BABYLON.BaseTexture;
1031
905
  width: number;
@@ -1062,10 +936,13 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1062
936
  min?: number;
1063
937
  onChange: (value: number) => void;
1064
938
  disabled?: boolean;
939
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1065
940
  }
1066
941
  export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
1067
942
  constructor(props: IColorComponentEntryProps);
1068
943
  updateValue(valueString: string): void;
944
+ lock(): void;
945
+ unlock(): void;
1069
946
  render(): JSX.Element;
1070
947
  }
1071
948
 
@@ -1084,6 +961,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1084
961
  linearhint?: boolean;
1085
962
  debugMode?: boolean;
1086
963
  onColorChanged?: (color: BABYLON.Color3 | BABYLON.Color4) => void;
964
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1087
965
  }
1088
966
  /**
1089
967
  * Interface used to specify creation options for color picker
@@ -1126,6 +1004,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1126
1004
  value: string;
1127
1005
  expectedLength: number;
1128
1006
  onChange: (value: string) => void;
1007
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1129
1008
  }
1130
1009
  export class HexColor extends React.Component<IHexColorProps, {
1131
1010
  hex: string;
@@ -1134,6 +1013,8 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1134
1013
  shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
1135
1014
  hex: string;
1136
1015
  }): boolean;
1016
+ lock(): void;
1017
+ unlock(): void;
1137
1018
  updateHexValue(valueString: string): void;
1138
1019
  render(): JSX.Element;
1139
1020
  }
@@ -1300,7 +1181,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1300
1181
  onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeEditor.SharedUIComponents.PropertyChangedEvent>;
1301
1182
  isLinear?: boolean;
1302
1183
  icon?: string;
1303
- lockObject?: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1184
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1304
1185
  iconLabel?: string;
1305
1186
  onChange?: () => void;
1306
1187
  }
@@ -1324,7 +1205,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1324
1205
  isLinear?: boolean;
1325
1206
  icon?: string;
1326
1207
  iconLabel?: string;
1327
- lockObject?: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1208
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1328
1209
  }
1329
1210
  export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
1330
1211
  render(): JSX.Element;
@@ -1346,8 +1227,8 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1346
1227
  isLinear?: boolean;
1347
1228
  icon?: string;
1348
1229
  iconLabel?: string;
1349
- lockObject?: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1350
1230
  disableAlpha?: boolean;
1231
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1351
1232
  }
1352
1233
  interface IColorLineComponentState {
1353
1234
  isExpanded: boolean;
@@ -1386,6 +1267,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1386
1267
  icon?: string;
1387
1268
  iconLabel?: string;
1388
1269
  shouldPopRight?: boolean;
1270
+ lockObject?: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1389
1271
  }
1390
1272
  interface IColorPickerComponentState {
1391
1273
  pickerEnabled: boolean;
@@ -1479,7 +1361,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1479
1361
  label: string;
1480
1362
  target: any;
1481
1363
  propertyName: string;
1482
- lockObject?: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1364
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1483
1365
  onChange?: (newValue: number) => void;
1484
1366
  isInteger?: boolean;
1485
1367
  onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeEditor.SharedUIComponents.PropertyChangedEvent>;
@@ -1711,6 +1593,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1711
1593
  onModeChange?: (mode: number) => void;
1712
1594
  onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeEditor.SharedUIComponents.PropertyChangedEvent>;
1713
1595
  mode?: number;
1596
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1714
1597
  }
1715
1598
  export class MatrixLineComponent extends React.Component<IMatrixLineComponentProps, {
1716
1599
  value: BABYLON.Matrix;
@@ -1763,6 +1646,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1763
1646
  precision?: number;
1764
1647
  icon?: string;
1765
1648
  iconLabel?: string;
1649
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1766
1650
  }
1767
1651
  export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
1768
1652
  value: string;
@@ -1772,6 +1656,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1772
1656
  };
1773
1657
  private _localChange;
1774
1658
  constructor(props: INumericInputComponentProps);
1659
+ componentWillUnmount(): void;
1775
1660
  shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
1776
1661
  value: string;
1777
1662
  }): boolean;
@@ -1882,7 +1767,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1882
1767
  margin?: boolean;
1883
1768
  icon?: string;
1884
1769
  iconLabel?: string;
1885
- lockObject?: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1770
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
1886
1771
  unit?: React.ReactNode;
1887
1772
  }
1888
1773
  export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
@@ -1961,7 +1846,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
1961
1846
  }): boolean;
1962
1847
  raiseOnPropertyChanged(newValue: string, previousValue: string): void;
1963
1848
  getCurrentNumericValue(value: string): number;
1964
- updateValue(value: string): void;
1849
+ updateValue(value: string, valueToValidate?: string): void;
1965
1850
  incrementValue(amount: number): void;
1966
1851
  onKeyDown(event: React.KeyboardEvent): void;
1967
1852
  render(): JSX.Element;
@@ -2046,6 +1931,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2046
1931
  onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeEditor.SharedUIComponents.PropertyChangedEvent>;
2047
1932
  icon?: string;
2048
1933
  iconLabel?: string;
1934
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
2049
1935
  }
2050
1936
  export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
2051
1937
  isExpanded: boolean;
@@ -2085,6 +1971,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2085
1971
  noSlider?: boolean;
2086
1972
  icon?: string;
2087
1973
  iconLabel?: string;
1974
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
2088
1975
  }
2089
1976
  export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
2090
1977
  isExpanded: boolean;
@@ -2127,6 +2014,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2127
2014
  icon?: string;
2128
2015
  iconLabel?: string;
2129
2016
  value?: BABYLON.Vector4;
2017
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
2130
2018
  }
2131
2019
  export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
2132
2020
  isExpanded: boolean;
@@ -2202,6 +2090,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2202
2090
  onEmitNewNode: (nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData) => BABYLON.NodeEditor.SharedUIComponents.GraphNode;
2203
2091
  }
2204
2092
  export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentProps> implements BABYLON.NodeEditor.SharedUIComponents.INodeContainer {
2093
+ static readonly NodeWidth = 100;
2205
2094
  private readonly _minZoom;
2206
2095
  private readonly _maxZoom;
2207
2096
  private _hostCanvas;
@@ -2238,6 +2127,8 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2238
2127
  private _oldY;
2239
2128
  _frameIsMoving: boolean;
2240
2129
  _isLoading: boolean;
2130
+ private _copiedNodes;
2131
+ private _copiedFrames;
2241
2132
  get gridSize(): number;
2242
2133
  set gridSize(value: number);
2243
2134
  get stateManager(): BABYLON.NodeEditor.SharedUIComponents.StateManager;
@@ -2261,6 +2152,11 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2261
2152
  get frameContainer(): HTMLDivElement;
2262
2153
  private _selectedFrameAndNodesConflict;
2263
2154
  constructor(props: IGraphCanvasComponentProps);
2155
+ populateConnectedEntriesBeforeRemoval(item: BABYLON.NodeEditor.SharedUIComponents.GraphNode, items: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], inputs: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>[], outputs: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>[]): void;
2156
+ automaticRewire(inputs: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>[], outputs: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>[]): void;
2157
+ handleKeyDown(evt: KeyboardEvent, onRemove: (nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData) => void, mouseLocationX: number, mouseLocationY: number, dataGenerator: (nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData) => any, rootElement: HTMLDivElement): void;
2158
+ pasteSelection(copiedNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], currentX: number, currentY: number, dataGenerator: (nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData) => any, selectNew?: boolean): BABYLON.NodeEditor.SharedUIComponents.GraphNode[];
2159
+ reconnectNewNodes(nodeIndex: number, newNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], sourceNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], done: boolean[]): void;
2264
2160
  getCachedData(): any[];
2265
2161
  removeDataFromCache(data: any): void;
2266
2162
  createNodeFromObject(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, onNodeCreated: (data: any) => void, recursion?: boolean): BABYLON.NodeEditor.SharedUIComponents.GraphNode;
@@ -2282,6 +2178,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2282
2178
  zoomToFit(): void;
2283
2179
  processCandidatePort(): void;
2284
2180
  connectNodes(nodeA: BABYLON.NodeEditor.SharedUIComponents.GraphNode, pointA: BABYLON.NodeEditor.SharedUIComponents.IPortData, nodeB: BABYLON.NodeEditor.SharedUIComponents.GraphNode, pointB: BABYLON.NodeEditor.SharedUIComponents.IPortData): void;
2181
+ drop(newNode: BABYLON.NodeEditor.SharedUIComponents.GraphNode, targetX: number, targetY: number, offsetX: number, offsetY: number): void;
2285
2182
  processEditorData(editorData: BABYLON.NodeEditor.SharedUIComponents.IEditorData): void;
2286
2183
  reOrganize(editorData?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IEditorData>, isImportingAFrame?: boolean): void;
2287
2184
  addFrame(frameData: BABYLON.NodeEditor.SharedUIComponents.IFrameData): void;
@@ -2454,7 +2351,8 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2454
2351
  content: BABYLON.NodeEditor.SharedUIComponents.INodeData;
2455
2352
  private _visual;
2456
2353
  private _headerContainer;
2457
- private _warning;
2354
+ private _headerIcon;
2355
+ private _headerIconImg;
2458
2356
  private _header;
2459
2357
  private _connections;
2460
2358
  private _inputsContainer;
@@ -2559,7 +2457,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2559
2457
  uniqueId: number;
2560
2458
  isInput: boolean;
2561
2459
  comments: string;
2562
- getWarningMessage: () => string;
2460
+ prepareHeaderIcon: (iconDiv: HTMLDivElement, img: HTMLImageElement) => void;
2563
2461
  getClassName: () => string;
2564
2462
  dispose: () => void;
2565
2463
  getPortByName: (name: string) => BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>;
@@ -2628,6 +2526,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2628
2526
  hasEndpoints: boolean;
2629
2527
  endpoints: BABYLON.Nullable<IPortData[]>;
2630
2528
  updateDisplayName: (newName: string) => void;
2529
+ canConnectTo: (port: IPortData) => boolean;
2631
2530
  connectTo: (port: IPortData) => void;
2632
2531
  disconnectFrom: (port: IPortData) => void;
2633
2532
  checkCompatibilityState(port: IPortData): number;
@@ -2766,7 +2665,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
2766
2665
  targetY: number;
2767
2666
  needRepositioning?: boolean | undefined;
2768
2667
  }>;
2769
- exportData: (data: any) => string;
2668
+ exportData: (data: any, frame?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphFrame>) => string;
2770
2669
  isElbowConnectionAllowed: (nodeA: BABYLON.NodeEditor.SharedUIComponents.FrameNodePort | BABYLON.NodeEditor.SharedUIComponents.NodePort, nodeB: BABYLON.NodeEditor.SharedUIComponents.FrameNodePort | BABYLON.NodeEditor.SharedUIComponents.NodePort) => boolean;
2771
2670
  applyNodePortDesign: (data: BABYLON.NodeEditor.SharedUIComponents.IPortData, element: HTMLElement, img: HTMLImageElement) => void;
2772
2671
  storeEditorData: (serializationObject: any, frame?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphFrame>) => void;