babylonjs-node-editor 5.14.1 → 5.16.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.
@@ -161,6 +161,8 @@ export class PreviewAreaComponent extends React.Component<IPreviewAreaComponentP
161
161
  componentWillUnmount(): void;
162
162
  changeBackFaceCulling(value: boolean): void;
163
163
  changeDepthPrePass(value: boolean): void;
164
+ _onPointerOverCanvas: () => void;
165
+ _onPointerOutCanvas: () => void;
164
166
  changeParticleSystemBlendMode(newOne: number): void;
165
167
  render(): JSX.Element;
166
168
  }
@@ -467,6 +469,7 @@ export class GlobalState {
467
469
  directionalLight1: boolean;
468
470
  controlCamera: boolean;
469
471
  _mode: NodeMaterialModes;
472
+ pointerOverCanvas: boolean;
470
473
  /** Gets the mode */
471
474
  get mode(): NodeMaterialModes;
472
475
  /** Sets the mode */
@@ -532,7 +535,7 @@ export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditor
532
535
  reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
533
536
  onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
534
537
  onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
535
- onWheel(this: any, evt: WheelEvent): void;
538
+ onWheel: (evt: WheelEvent) => void;
536
539
  resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
537
540
  buildColumnLayout(): string;
538
541
  emitNewBlock(blockType: string, targetX: number, targetY: number): void;
@@ -569,7 +572,7 @@ export class BlockNodeData implements INodeData {
569
572
  set comments(value: string);
570
573
  getPortByName(name: string): IPortData | null;
571
574
  dispose(): void;
572
- 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";
575
+ prepareHeaderIcon(iconDiv: HTMLDivElement, img: HTMLImageElement): void;
573
576
  constructor(data: NodeMaterialBlock, nodeContainer: INodeContainer);
574
577
  }
575
578
 
@@ -603,6 +606,7 @@ export class ConnectionPointPortData implements IPortData {
603
606
  constructor(connectionPoint: NodeMaterialConnectionPoint, nodeContainer: INodeContainer);
604
607
  updateDisplayName(newName: string): void;
605
608
  connectTo(port: IPortData): void;
609
+ canConnectTo(port: IPortData): boolean;
606
610
  disconnectFrom(port: IPortData): void;
607
611
  checkCompatibilityState(port: IPortData): 0 | NodeMaterialConnectionPointCompatibilityStates.TypeIncompatible | NodeMaterialConnectionPointCompatibilityStates.TargetIncompatible | NodeMaterialConnectionPointCompatibilityStates.HierarchyIssue;
608
612
  getCompatibilityIssueMessage(issue: number, targetNode: GraphNode, targetPort: 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";
@@ -1672,7 +1676,7 @@ interface IFloatLineComponentProps {
1672
1676
  label: string;
1673
1677
  target: any;
1674
1678
  propertyName: string;
1675
- lockObject?: LockObject;
1679
+ lockObject: LockObject;
1676
1680
  onChange?: (newValue: number) => void;
1677
1681
  isInteger?: boolean;
1678
1682
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
@@ -2046,7 +2050,7 @@ interface ISliderLineComponentProps {
2046
2050
  margin?: boolean;
2047
2051
  icon?: string;
2048
2052
  iconLabel?: string;
2049
- lockObject?: LockObject;
2053
+ lockObject: LockObject;
2050
2054
  unit?: React.ReactNode;
2051
2055
  }
2052
2056
  export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
@@ -2426,6 +2430,8 @@ export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentP
2426
2430
  get frameContainer(): HTMLDivElement;
2427
2431
  private _selectedFrameAndNodesConflict;
2428
2432
  constructor(props: IGraphCanvasComponentProps);
2433
+ populateConnectedEntriesBeforeRemoval(item: GraphNode, items: GraphNode[], inputs: Nullable<IPortData>[], outputs: Nullable<IPortData>[]): void;
2434
+ automaticRewire(inputs: Nullable<IPortData>[], outputs: Nullable<IPortData>[]): void;
2429
2435
  handleKeyDown(evt: KeyboardEvent, onRemove: (nodeData: INodeData) => void, mouseLocationX: number, mouseLocationY: number, dataGenerator: (nodeData: INodeData) => any, rootElement: HTMLDivElement): void;
2430
2436
  pasteSelection(copiedNodes: GraphNode[], currentX: number, currentY: number, dataGenerator: (nodeData: INodeData) => any, selectNew?: boolean): GraphNode[];
2431
2437
  reconnectNewNodes(nodeIndex: number, newNodes: GraphNode[], sourceNodes: GraphNode[], done: boolean[]): void;
@@ -2628,7 +2634,8 @@ export class GraphNode {
2628
2634
  content: INodeData;
2629
2635
  private _visual;
2630
2636
  private _headerContainer;
2631
- private _warning;
2637
+ private _headerIcon;
2638
+ private _headerIconImg;
2632
2639
  private _header;
2633
2640
  private _connections;
2634
2641
  private _inputsContainer;
@@ -2724,7 +2731,7 @@ export interface INodeData {
2724
2731
  uniqueId: number;
2725
2732
  isInput: boolean;
2726
2733
  comments: string;
2727
- getWarningMessage: () => string;
2734
+ prepareHeaderIcon: (iconDiv: HTMLDivElement, img: HTMLImageElement) => void;
2728
2735
  getClassName: () => string;
2729
2736
  dispose: () => void;
2730
2737
  getPortByName: (name: string) => Nullable<IPortData>;
@@ -2785,6 +2792,7 @@ export interface IPortData {
2785
2792
  hasEndpoints: boolean;
2786
2793
  endpoints: Nullable<IPortData[]>;
2787
2794
  updateDisplayName: (newName: string) => void;
2795
+ canConnectTo: (port: IPortData) => boolean;
2788
2796
  connectTo: (port: IPortData) => void;
2789
2797
  disconnectFrom: (port: IPortData) => void;
2790
2798
  checkCompatibilityState(port: IPortData): number;
@@ -2928,7 +2936,7 @@ export class StateManager {
2928
2936
  targetY: number;
2929
2937
  needRepositioning?: boolean | undefined;
2930
2938
  }>;
2931
- exportData: (data: any) => string;
2939
+ exportData: (data: any, frame?: Nullable<GraphFrame>) => string;
2932
2940
  isElbowConnectionAllowed: (nodeA: FrameNodePort | NodePort, nodeB: FrameNodePort | NodePort) => boolean;
2933
2941
  applyNodePortDesign: (data: IPortData, element: HTMLElement, img: HTMLImageElement) => void;
2934
2942
  storeEditorData: (serializationObject: any, frame?: Nullable<GraphFrame>) => void;
@@ -3416,6 +3424,8 @@ declare module BABYLON.NodeEditor {
3416
3424
  componentWillUnmount(): void;
3417
3425
  changeBackFaceCulling(value: boolean): void;
3418
3426
  changeDepthPrePass(value: boolean): void;
3427
+ _onPointerOverCanvas: () => void;
3428
+ _onPointerOutCanvas: () => void;
3419
3429
  changeParticleSystemBlendMode(newOne: number): void;
3420
3430
  render(): JSX.Element;
3421
3431
  }
@@ -3639,6 +3649,7 @@ declare module BABYLON.NodeEditor {
3639
3649
  directionalLight1: boolean;
3640
3650
  controlCamera: boolean;
3641
3651
  _mode: BABYLON.NodeMaterialModes;
3652
+ pointerOverCanvas: boolean;
3642
3653
  /** Gets the mode */
3643
3654
  get mode(): BABYLON.NodeMaterialModes;
3644
3655
  /** Sets the mode */
@@ -3694,7 +3705,7 @@ declare module BABYLON.NodeEditor {
3694
3705
  reOrganize(editorData?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IEditorData>, isImportingAFrame?: boolean): void;
3695
3706
  onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
3696
3707
  onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
3697
- onWheel(this: any, evt: WheelEvent): void;
3708
+ onWheel: (evt: WheelEvent) => void;
3698
3709
  resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
3699
3710
  buildColumnLayout(): string;
3700
3711
  emitNewBlock(blockType: string, targetX: number, targetY: number): void;
@@ -3725,7 +3736,7 @@ declare module BABYLON.NodeEditor {
3725
3736
  set comments(value: string);
3726
3737
  getPortByName(name: string): BABYLON.NodeEditor.SharedUIComponents.IPortData | null;
3727
3738
  dispose(): void;
3728
- 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";
3739
+ prepareHeaderIcon(iconDiv: HTMLDivElement, img: HTMLImageElement): void;
3729
3740
  constructor(data: BABYLON.NodeMaterialBlock, nodeContainer: BABYLON.NodeEditor.SharedUIComponents.INodeContainer);
3730
3741
  }
3731
3742
 
@@ -3751,6 +3762,7 @@ declare module BABYLON.NodeEditor {
3751
3762
  constructor(connectionPoint: BABYLON.NodeMaterialConnectionPoint, nodeContainer: BABYLON.NodeEditor.SharedUIComponents.INodeContainer);
3752
3763
  updateDisplayName(newName: string): void;
3753
3764
  connectTo(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): void;
3765
+ canConnectTo(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): boolean;
3754
3766
  disconnectFrom(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): void;
3755
3767
  checkCompatibilityState(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): 0 | BABYLON.NodeMaterialConnectionPointCompatibilityStates.TypeIncompatible | BABYLON.NodeMaterialConnectionPointCompatibilityStates.TargetIncompatible | BABYLON.NodeMaterialConnectionPointCompatibilityStates.HierarchyIssue;
3756
3768
  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";
@@ -4712,7 +4724,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
4712
4724
  label: string;
4713
4725
  target: any;
4714
4726
  propertyName: string;
4715
- lockObject?: BABYLON.NodeEditor.SharedUIComponents.LockObject;
4727
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
4716
4728
  onChange?: (newValue: number) => void;
4717
4729
  isInteger?: boolean;
4718
4730
  onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeEditor.SharedUIComponents.PropertyChangedEvent>;
@@ -5118,7 +5130,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
5118
5130
  margin?: boolean;
5119
5131
  icon?: string;
5120
5132
  iconLabel?: string;
5121
- lockObject?: BABYLON.NodeEditor.SharedUIComponents.LockObject;
5133
+ lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
5122
5134
  unit?: React.ReactNode;
5123
5135
  }
5124
5136
  export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
@@ -5503,6 +5515,8 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
5503
5515
  get frameContainer(): HTMLDivElement;
5504
5516
  private _selectedFrameAndNodesConflict;
5505
5517
  constructor(props: IGraphCanvasComponentProps);
5518
+ 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;
5519
+ automaticRewire(inputs: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>[], outputs: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>[]): void;
5506
5520
  handleKeyDown(evt: KeyboardEvent, onRemove: (nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData) => void, mouseLocationX: number, mouseLocationY: number, dataGenerator: (nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData) => any, rootElement: HTMLDivElement): void;
5507
5521
  pasteSelection(copiedNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], currentX: number, currentY: number, dataGenerator: (nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData) => any, selectNew?: boolean): BABYLON.NodeEditor.SharedUIComponents.GraphNode[];
5508
5522
  reconnectNewNodes(nodeIndex: number, newNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], sourceNodes: BABYLON.NodeEditor.SharedUIComponents.GraphNode[], done: boolean[]): void;
@@ -5700,7 +5714,8 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
5700
5714
  content: BABYLON.NodeEditor.SharedUIComponents.INodeData;
5701
5715
  private _visual;
5702
5716
  private _headerContainer;
5703
- private _warning;
5717
+ private _headerIcon;
5718
+ private _headerIconImg;
5704
5719
  private _header;
5705
5720
  private _connections;
5706
5721
  private _inputsContainer;
@@ -5805,7 +5820,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
5805
5820
  uniqueId: number;
5806
5821
  isInput: boolean;
5807
5822
  comments: string;
5808
- getWarningMessage: () => string;
5823
+ prepareHeaderIcon: (iconDiv: HTMLDivElement, img: HTMLImageElement) => void;
5809
5824
  getClassName: () => string;
5810
5825
  dispose: () => void;
5811
5826
  getPortByName: (name: string) => BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>;
@@ -5874,6 +5889,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
5874
5889
  hasEndpoints: boolean;
5875
5890
  endpoints: BABYLON.Nullable<IPortData[]>;
5876
5891
  updateDisplayName: (newName: string) => void;
5892
+ canConnectTo: (port: IPortData) => boolean;
5877
5893
  connectTo: (port: IPortData) => void;
5878
5894
  disconnectFrom: (port: IPortData) => void;
5879
5895
  checkCompatibilityState(port: IPortData): number;
@@ -6012,7 +6028,7 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
6012
6028
  targetY: number;
6013
6029
  needRepositioning?: boolean | undefined;
6014
6030
  }>;
6015
- exportData: (data: any) => string;
6031
+ exportData: (data: any, frame?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphFrame>) => string;
6016
6032
  isElbowConnectionAllowed: (nodeA: BABYLON.NodeEditor.SharedUIComponents.FrameNodePort | BABYLON.NodeEditor.SharedUIComponents.NodePort, nodeB: BABYLON.NodeEditor.SharedUIComponents.FrameNodePort | BABYLON.NodeEditor.SharedUIComponents.NodePort) => boolean;
6017
6033
  applyNodePortDesign: (data: BABYLON.NodeEditor.SharedUIComponents.IPortData, element: HTMLElement, img: HTMLImageElement) => void;
6018
6034
  storeEditorData: (serializationObject: any, frame?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphFrame>) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-node-editor",
3
- "version": "5.14.1",
3
+ "version": "5.16.0",
4
4
  "main": "babylon.nodeEditor.js",
5
5
  "types": "babylon.nodeEditor.module.d.ts",
6
6
  "files": [
@@ -14,7 +14,7 @@
14
14
  "clean": "rimraf dist && rimraf babylon*.*"
15
15
  },
16
16
  "dependencies": {
17
- "babylonjs": "^5.14.1"
17
+ "babylonjs": "^5.16.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@dev/build-tools": "1.0.0",