UNPKG

babylonjs-node-render-graph-editor

Version:
1,178 lines (976 loc) 198 kB
declare module BABYLON.NodeRenderGraphEditor { export class SerializationTools { static UpdateLocations(renderGraph: BABYLON.NodeRenderGraph, globalState: GlobalState, frame?: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphFrame>): void; static Serialize(renderGraph: BABYLON.NodeRenderGraph, globalState: GlobalState, frame?: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphFrame>): string; static Deserialize(serializationObject: any, globalState: GlobalState): void; static AddFrameToRenderGraph(serializationObject: any, globalState: GlobalState, currentRenderGraph: BABYLON.NodeRenderGraph): void; } interface IPortalProps { globalState: GlobalState; } export class Portal extends React.Component<React.PropsWithChildren<IPortalProps>> { render(): React.ReactPortal; } /** * Interface used to specify creation options for the node editor */ export interface INodeEditorOptions { nodeRenderGraph: BABYLON.NodeRenderGraph; hostScene?: BABYLON.Scene; hostElement?: HTMLElement; customSave?: { label: string; action: (data: string) => Promise<void>; }; customLoadObservable?: BABYLON.Observable<any>; } /** * Class used to create a node editor */ export class NodeRenderGraphEditor { private static _CurrentState; private static _PopupWindow; /** * Show the node editor * @param options defines the options to use to configure the node editor */ static Show(options: INodeEditorOptions): void; } interface IGraphEditorProps { globalState: GlobalState; } interface IGraphEditorState { showPreviewPopUp: boolean; message: string; isError: boolean; } interface IInternalPreviewAreaOptions extends BABYLON.IInspectorOptions { popup: boolean; original: boolean; explorerWidth?: string; inspectorWidth?: string; embedHostWidth?: string; } export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> { private _graphCanvasRef; private _diagramContainerRef; private _graphCanvas; private _previewManager; private _mouseLocationX; private _mouseLocationY; private _onWidgetKeyUpPointer; private _historyStack; private _previewHost; private _popUpWindow; private _externalTextures; appendBlock(dataToAppend: BABYLON.NodeRenderGraphBlock | BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, recursion?: boolean): BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphNode; addValueNode(type: string): BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphNode; prepareHistoryStack(): void; componentDidMount(): void; componentWillUnmount(): void; constructor(props: IGraphEditorProps); zoomToFit(): void; private _setExternalInputs; buildRenderGraph(): void; build(ignoreEditorData?: boolean): void; loadGraph(): void; showWaitScreen(): void; hideWaitScreen(): void; reOrganize(editorData?: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.IEditorData>, isImportingAFrame?: boolean): void; onWheel: (evt: WheelEvent) => void; emitNewBlock(blockType: string, targetX: number, targetY: number): BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphNode | undefined; dropNewBlock(event: React.DragEvent<HTMLDivElement>): void; handlePopUp: () => void; handleClosingPopUp: () => void; initiatePreviewArea: (canvas?: HTMLCanvasElement) => void; createPopUp: () => void; createPreviewMeshControlHostAsync: (options: IInternalPreviewAreaOptions, parentControl: BABYLON.Nullable<HTMLElement>) => Promise<unknown>; createPreviewHostAsync: (options: IInternalPreviewAreaOptions, parentControl: BABYLON.Nullable<HTMLElement>) => Promise<unknown>; fixPopUpStyles: (document: Document) => void; render(): import("react/jsx-runtime").JSX.Element; } export class GlobalState { hostElement: HTMLElement; hostDocument: Document; hostWindow: Window; stateManager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager; onClearUndoStack: BABYLON.Observable<void>; onBuiltObservable: BABYLON.Observable<void>; onResetRequiredObservable: BABYLON.Observable<boolean>; onZoomToFitRequiredObservable: BABYLON.Observable<void>; onReOrganizedRequiredObservable: BABYLON.Observable<void>; onLogRequiredObservable: BABYLON.Observable<LogEntry>; onIsLoadingChanged: BABYLON.Observable<boolean>; onLightUpdated: BABYLON.Observable<void>; onFrame: BABYLON.Observable<void>; onAnimationCommandActivated: BABYLON.Observable<void>; onImportFrameObservable: BABYLON.Observable<any>; onPopupClosedObservable: BABYLON.Observable<void>; onGetNodeFromBlock: (block: BABYLON.NodeRenderGraphBlock) => BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphNode; onDropEventReceivedObservable: BABYLON.Observable<DragEvent>; previewType: PreviewType; previewFile: File; envType: PreviewType; envFile: File; listOfCustomPreviewFiles: File[]; rotatePreview: boolean; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; hemisphericLight: boolean; directionalLight0: boolean; directionalLight1: boolean; pointerOverCanvas: boolean; onRefreshPreviewMeshControlComponentRequiredObservable: BABYLON.Observable<void>; filesInput: BABYLON.FilesInput; scene: BABYLON.Scene; noAutoFillExternalInputs: boolean; _engine: number; customSave?: { label: string; action: (data: string) => Promise<void>; }; private _nodeRenderGraph; /** * Gets the current node render graph */ get nodeRenderGraph(): BABYLON.NodeRenderGraph; /** * Sets the current node material */ set nodeRenderGraph(nodeRenderGraph: BABYLON.NodeRenderGraph); /** Gets the engine */ get engine(): number; /** Sets the engine */ set engine(e: number); constructor(scene: BABYLON.Scene); storeEditorData(serializationObject: any, frame?: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphFrame>): void; } /** * Static class for BlockTools */ export class BlockTools { static GetBlockFromString(data: string, frameGraph: BABYLON.FrameGraph, scene: BABYLON.Scene): BABYLON.NodeRenderGraphTeleportInBlock | BABYLON.NodeRenderGraphTeleportOutBlock | BABYLON.NodeRenderGraphOutputBlock | BABYLON.NodeRenderGraphElbowBlock | BABYLON.NodeRenderGraphResourceContainerBlock | BABYLON.NodeRenderGraphExecuteBlock | BABYLON.NodeRenderGraphUtilityLayerRendererBlock | BABYLON.NodeRenderGraphInputBlock | BABYLON.NodeRenderGraphClearBlock | BABYLON.NodeRenderGraphCopyTextureBlock | BABYLON.NodeRenderGraphGenerateMipmapsBlock | BABYLON.NodeRenderGraphBlackAndWhitePostProcessBlock | BABYLON.NodeRenderGraphBloomPostProcessBlock | BABYLON.NodeRenderGraphBlurPostProcessBlock | BABYLON.NodeRenderGraphPassPostProcessBlock | BABYLON.NodeRenderGraphPassCubePostProcessBlock | BABYLON.GUI.NodeRenderGraphGUIBlock | BABYLON.NodeRenderGraphObjectRendererBlock | BABYLON.NodeRenderGraphGeometryRendererBlock | BABYLON.NodeRenderGraphTAAObjectRendererBlock | BABYLON.NodeRenderGraphCullObjectsBlock | BABYLON.NodeRenderGraphCircleOfConfusionPostProcessBlock | BABYLON.NodeRenderGraphDepthOfFieldPostProcessBlock | BABYLON.NodeRenderGraphExtractHighlightsPostProcessBlock | BABYLON.NodeRenderGraphShadowGeneratorBlock | BABYLON.NodeRenderGraphCascadedShadowGeneratorBlock | BABYLON.NodeRenderGraphGlowLayerBlock | BABYLON.NodeRenderGraphHighlightLayerBlock | BABYLON.NodeRenderGraphSSRPostProcessBlock | BABYLON.NodeRenderGraphAnaglyphPostProcessBlock | BABYLON.NodeRenderGraphChromaticAberrationPostProcessBlock | BABYLON.NodeRenderGraphImageProcessingPostProcessBlock | BABYLON.NodeRenderGraphFXAAPostProcessBlock | BABYLON.NodeRenderGraphGrainPostProcessBlock | BABYLON.NodeRenderGraphMotionBlurPostProcessBlock | null; static GetColorFromConnectionNodeType(type: BABYLON.NodeRenderGraphBlockConnectionPointTypes): string; static GetConnectionNodeTypeFromString(type: string): BABYLON.NodeRenderGraphBlockConnectionPointTypes.Texture | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureBackBuffer | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureVelocity | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity | BABYLON.NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth | BABYLON.NodeRenderGraphBlockConnectionPointTypes.ResourceContainer | BABYLON.NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator | BABYLON.NodeRenderGraphBlockConnectionPointTypes.ShadowLight | BABYLON.NodeRenderGraphBlockConnectionPointTypes.Camera | BABYLON.NodeRenderGraphBlockConnectionPointTypes.ObjectList | BABYLON.NodeRenderGraphBlockConnectionPointTypes.AutoDetect; static GetStringFromConnectionNodeType(type: BABYLON.NodeRenderGraphBlockConnectionPointTypes): "" | "Texture" | "Camera" | "TextureBackBuffer" | "TextureBackBufferDepthStencilAttachment" | "TextureDepthStencilAttachment" | "ObjectList" | "TextureViewDepth" | "TextureNormalizedViewDepth" | "TextureNormal" | "TextureAlbedo" | "TextureReflectivity" | "TexturePosition" | "TextureVelocity" | "TextureScreenDepth" | "TextureLocalPosition" | "TextureWorldNormal" | "TextureLinearVelocity" | "ResourceContainer" | "ShadowGenerator" | "ShadowLight"; } interface ITextureLineComponentProps { texture: BABYLON.BaseTexture; width: number; height: number; globalState?: any; hideChannelSelect?: boolean; } export interface ITextureLineComponentState { displayRed: boolean; displayGreen: boolean; displayBlue: boolean; displayAlpha: boolean; face: number; } export class TextureLineComponent extends React.Component<ITextureLineComponentProps, ITextureLineComponentState> { private _canvasRef; constructor(props: ITextureLineComponentProps); shouldComponentUpdate(): boolean; componentDidMount(): void; componentDidUpdate(): void; updatePreview(): void; static UpdatePreview(previewCanvas: HTMLCanvasElement, texture: BABYLON.BaseTexture, width: number, options: ITextureLineComponentState, onReady?: () => void, globalState?: any): Promise<void>; render(): import("react/jsx-runtime").JSX.Element; } interface ILineWithFileButtonComponentProps { title: string; closed?: boolean; label: string; iconImage: any; onIconClick: (file: File) => void; accept: string; uploadName?: string; } export class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, { isExpanded: boolean; }> { private _uploadRef; constructor(props: ILineWithFileButtonComponentProps); onChange(evt: any): void; switchExpandedState(): void; render(): import("react/jsx-runtime").JSX.Element; } interface ILineContainerComponentProps { title: string; children: any[] | any; closed?: boolean; } export class LineContainerComponent extends React.Component<ILineContainerComponentProps, { isExpanded: boolean; }> { constructor(props: ILineContainerComponentProps); switchExpandedState(): void; renderHeader(): import("react/jsx-runtime").JSX.Element; render(): import("react/jsx-runtime").JSX.Element; } interface IFileButtonLineComponentProps { label: string; onClick: (file: File) => void; accept: string; uploadName?: string; } export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> { private _uploadRef; constructor(props: IFileButtonLineComponentProps); onChange(evt: any): void; render(): import("react/jsx-runtime").JSX.Element; } export interface IDraggableLineWithButtonComponent { data: string; tooltip: string; iconImage: any; onIconClick: (value: string) => void; iconTitle: string; lenSuffixToRemove?: number; } export class DraggableLineWithButtonComponent extends React.Component<IDraggableLineWithButtonComponent> { constructor(props: IDraggableLineWithButtonComponent); render(): import("react/jsx-runtime").JSX.Element; } export interface IButtonLineComponentProps { data: string; tooltip: string; } export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> { constructor(props: IButtonLineComponentProps); render(): import("react/jsx-runtime").JSX.Element; } export interface ICheckBoxLineComponentProps { label: string; target?: any; propertyName?: string; isSelected?: () => boolean; onSelect?: (value: boolean) => void; onValueChanged?: () => void; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; disabled?: boolean; extractValue?: (target: any) => boolean; } export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, { isSelected: boolean; isDisabled?: boolean; }> { private static _UniqueIdSeed; private _uniqueId; private _localChange; constructor(props: ICheckBoxLineComponentProps); shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: { isSelected: boolean; isDisabled: boolean; }): boolean; onChange(): void; render(): import("react/jsx-runtime").JSX.Element; } export const RegisterTypeLedger: () => void; export const RegisterToPropertyTabManagers: () => void; export const RegisterToDisplayManagers: () => void; export const RegisterNodePortDesign: (stateManager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager) => void; export const RegisterExportData: (stateManager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager) => void; export const RegisterElbowSupport: (stateManager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager) => void; export const RegisterDefaultInput: (stateManager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager) => void; export const RegisterDebugSupport: (stateManager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager) => void; export class ConnectionPointPortData implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData { private _connectedPort; private _nodeContainer; data: BABYLON.NodeRenderGraphConnectionPoint; get name(): string; get internalName(): string; get isExposedOnFrame(): boolean; set isExposedOnFrame(value: boolean); get exposedPortPosition(): number; set exposedPortPosition(value: number); get isConnected(): boolean; get isInactive(): boolean; get connectedPort(): BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData>; set connectedPort(value: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData>); get direction(): BABYLON.NodeRenderGraphEditor.SharedUIComponents.PortDataDirection; get ownerData(): BABYLON.NodeRenderGraphBlock; get needDualDirectionValidation(): boolean; get hasEndpoints(): boolean; get endpoints(): BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData[]; constructor(connectionPoint: BABYLON.NodeRenderGraphConnectionPoint, nodeContainer: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeContainer); updateDisplayName(newName: string): void; connectTo(port: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData): void; canConnectTo(port: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData): boolean; disconnectFrom(port: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData): void; checkCompatibilityState(port: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData): 0 | BABYLON.NodeRenderGraphConnectionPointCompatibilityStates.TypeIncompatible | BABYLON.NodeRenderGraphConnectionPointCompatibilityStates.HierarchyIssue; getCompatibilityIssueMessage(issue: number, targetNode: BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphNode, targetPort: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData): string; } export class BlockNodeData implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData { data: BABYLON.NodeRenderGraphBlock; private _inputs; private _outputs; private _onBuildObserver; /** * Gets or sets a callback used to call node visual refresh */ refreshCallback?: () => void; get uniqueId(): number; get name(): string; getClassName(): string; get isInput(): boolean; get inputs(): BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData[]; get outputs(): BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData[]; get comments(): string; set comments(value: string); get executionTime(): number; getPortByName(name: string): BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPortData | null; isConnectedToOutput(): boolean; dispose(): void; prepareHeaderIcon(iconDiv: HTMLDivElement, img: HTMLImageElement): void; get invisibleEndpoints(): BABYLON.NodeRenderGraphTeleportOutBlock[] | null; constructor(data: BABYLON.NodeRenderGraphBlock, nodeContainer: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeContainer); } export class TeleportOutPropertyTabComponent extends React.Component<BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps> { private _onUpdateRequiredObserver; constructor(props: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps); componentDidMount(): void; componentWillUnmount(): void; render(): import("react/jsx-runtime").JSX.Element; } export interface IFrameNodePortPropertyTabComponentProps { stateManager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager; nodePort: BABYLON.NodeRenderGraphEditor.SharedUIComponents.NodePort; } export class NodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps> { constructor(props: IFrameNodePortPropertyTabComponentProps); toggleExposeOnFrame(value: boolean): void; render(): import("react/jsx-runtime").JSX.Element; } export class InputPropertyTabComponent extends React.Component<BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps> { private _onValueChangedObserver; constructor(props: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps); componentDidMount(): void; componentWillUnmount(): void; renderValue(_globalState: GlobalState): import("react/jsx-runtime").JSX.Element | null; setDefaultValue(): void; render(): import("react/jsx-runtime").JSX.Element; } export var samplingModeList: { label: string; value: number; }[]; export var textureFormatList: { label: string; value: number; }[]; export var textureTypeList: { label: string; value: number; }[]; export var textureDepthStencilFormatList: { label: string; value: number; }[]; export class GenericPropertyComponent extends React.Component<BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps> { constructor(props: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps); render(): import("react/jsx-runtime").JSX.Element; } export class GeneralPropertyTabComponent extends React.Component<BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps> { constructor(props: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps); render(): import("react/jsx-runtime").JSX.Element; } export class GenericPropertyTabComponent extends React.Component<BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps> { constructor(props: BABYLON.NodeRenderGraphEditor.SharedUIComponents.IPropertyComponentProps); render(): import("react/jsx-runtime").JSX.Element; } export interface IFramePropertyTabComponentProps { globalState: GlobalState; frame: BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphFrame; } export class FramePropertyTabComponent extends React.Component<IFramePropertyTabComponentProps> { private _onFrameExpandStateChangedObserver; constructor(props: IFramePropertyTabComponentProps); componentDidMount(): void; componentWillUnmount(): void; render(): import("react/jsx-runtime").JSX.Element; } export interface IFrameNodePortPropertyTabComponentProps { stateManager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager; globalState: GlobalState; frameNodePort: BABYLON.NodeRenderGraphEditor.SharedUIComponents.FrameNodePort; frame: BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphFrame; } export class FrameNodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps, { port: BABYLON.NodeRenderGraphEditor.SharedUIComponents.FrameNodePort; }> { private _onFramePortPositionChangedObserver; private _onSelectionChangedObserver; constructor(props: IFrameNodePortPropertyTabComponentProps); componentWillUnmount(): void; render(): import("react/jsx-runtime").JSX.Element; } export class TextureDisplayManager implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.IDisplayManager { getHeaderClass(): string; shouldDisplayPortLabels(): boolean; getHeaderText(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; getBackgroundColor(): string; updatePreviewContent(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void; } export class TeleportOutDisplayManager implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.IDisplayManager { private _hasHighlights; getHeaderClass(): string; shouldDisplayPortLabels(): boolean; getHeaderText(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; getBackgroundColor(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; updatePreviewContent(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void; onSelectionChanged(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, selectedData: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData>, manager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager): void; onDispose(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, manager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager): void; } export class TeleportInDisplayManager implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.IDisplayManager { private _hasHighlights; getHeaderClass(): string; shouldDisplayPortLabels(): boolean; getHeaderText(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; getBackgroundColor(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; updatePreviewContent(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void; onSelectionChanged(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, selectedData: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData>, manager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager): void; onDispose(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, manager: BABYLON.NodeRenderGraphEditor.SharedUIComponents.StateManager): void; } export class PostProcessDisplayManager implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.IDisplayManager { getHeaderClass(): string; shouldDisplayPortLabels(): boolean; getHeaderText(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; getBackgroundColor(): string; updatePreviewContent(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void; } export class OutputDisplayManager implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.IDisplayManager { getHeaderClass(): string; shouldDisplayPortLabels(): boolean; getHeaderText(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; getBackgroundColor(): string; updatePreviewContent(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void; } export class InputDisplayManager implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.IDisplayManager { getHeaderClass(_nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; getHeaderText(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; shouldDisplayPortLabels(): boolean; static GetBaseType(type: BABYLON.NodeRenderGraphBlockConnectionPointTypes): string; getBackgroundColor(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; updatePreviewContent(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void; } export class ElbowDisplayManager implements BABYLON.NodeRenderGraphEditor.SharedUIComponents.IDisplayManager { getHeaderClass(): string; shouldDisplayPortLabels(): boolean; getHeaderText(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; getBackgroundColor(nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData): string; updatePreviewContent(_nodeData: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, _contentArea: HTMLDivElement): void; updateFullVisualContent(data: BABYLON.NodeRenderGraphEditor.SharedUIComponents.INodeData, visualContent: BABYLON.NodeRenderGraphEditor.SharedUIComponents.VisualContentDescription): void; } interface ITextureMemoryUsagePropertyTabComponentProps { globalState: GlobalState; } export class TextureMemoryUsagePropertyTabComponent extends React.Component<ITextureMemoryUsagePropertyTabComponentProps> { constructor(props: ITextureMemoryUsagePropertyTabComponentProps); private _formatMemorySize; render(): import("react/jsx-runtime").JSX.Element; } interface IPropertyTabComponentProps { globalState: GlobalState; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; } interface IPropertyTabComponentState { currentNode: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphNode>; currentFrame: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.GraphFrame>; currentFrameNodePort: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.FrameNodePort>; currentNodePort: BABYLON.Nullable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.NodePort>; uploadInProgress: boolean; } export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> { private _onBuiltObserver; constructor(props: IPropertyTabComponentProps); componentDidMount(): void; componentWillUnmount(): void; load(file: File): void; loadFrame(file: File): void; save(): void; customSave(): void; saveToSnippetServer(): void; loadFromSnippet(): void; render(): import("react/jsx-runtime").JSX.Element; } export enum PreviewType { Sphere = 0, Box = 1, Cylinder = 2, Plane = 3, ShaderBall = 4, Custom = 5, Room = 6 } interface IPreviewMeshControlComponent { globalState: GlobalState; togglePreviewAreaComponent: () => void; onMounted?: () => void; } export class PreviewMeshControlComponent extends React.Component<IPreviewMeshControlComponent> { private _filePickerRef; private _envPickerRef; private _onResetRequiredObserver; private _onDropEventObserver; private _onRefreshPreviewMeshControlComponentRequiredObserver; constructor(props: IPreviewMeshControlComponent); componentWillUnmount(): void; componentDidMount(): void; changeMeshType(newOne: PreviewType): void; useCustomMesh(evt: any): void; useCustomEnv(evt: any): void; onPopUp(): void; frame(): void; render(): import("react/jsx-runtime").JSX.Element; } export class PreviewManager { private _nodeRenderGraph; private _onFrameObserver; private _onPreviewCommandActivatedObserver; private _onUpdateRequiredObserver; private _onRebuildRequiredObserver; private _onImportFrameObserver; private _onResetRequiredObserver; private _onLightUpdatedObserver; private _engine; private _scene; private _globalState; private _currentType; private _lightParent; private _hdrTexture; private _dummyExternalTexture; constructor(targetCanvas: HTMLCanvasElement, globalState: GlobalState); private _initAsync; private _initSceneAsync; private _reset; private _prepareLights; private _createNodeRenderGraph; private _getMesh; private _buildGraphAsync; private _frameCamera; private _prepareBackgroundHDR; private _prepareScene; static DefaultEnvironmentURL: string; private _refreshPreviewMesh; dispose(): void; } interface IPreviewAreaComponentProps { globalState: GlobalState; onMounted?: () => void; } export class PreviewAreaComponent extends React.Component<IPreviewAreaComponentProps, { isLoading: boolean; }> { private _onIsLoadingChangedObserver; private _onResetRequiredObserver; constructor(props: IPreviewAreaComponentProps); componentWillUnmount(): void; componentDidMount(): void; _onPointerOverCanvas: () => void; _onPointerOutCanvas: () => void; render(): import("react/jsx-runtime").JSX.Element; } interface INodeListComponentProps { globalState: GlobalState; } export class NodeListComponent extends React.Component<INodeListComponentProps, { filter: string; }> { private _onResetRequiredObserver; private static _Tooltips; private _customFrameList; constructor(props: INodeListComponentProps); componentWillUnmount(): void; filterContent(filter: string): void; loadCustomFrame(file: File): void; removeItem(value: string): void; render(): import("react/jsx-runtime").JSX.Element; } interface ILogComponentProps { globalState: GlobalState; } export class LogEntry { message: string; isError: boolean; time: Date; constructor(message: string, isError: boolean); } export class LogComponent extends React.Component<ILogComponentProps, { logs: LogEntry[]; }> { private _logConsoleRef; constructor(props: ILogComponentProps); componentDidMount(): void; componentDidUpdate(): void; render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { /** * Copy all styles from a document to another document or shadow root * @param source document to copy styles from * @param target document or shadow root to copy styles to */ export function CopyStyles(source: Document, target: DocumentOrShadowRoot): void; /** * Merges classNames by array of strings or conditions * @param classNames Array of className strings or truthy conditions * @returns A concatenated string, suitable for the className attribute */ export function MergeClassNames(classNames: ClassNameCondition[]): string; /** * className (replicating React type) or a tuple with the second member being any truthy value ["className", true] */ type ClassNameCondition = string | undefined | [string, any]; } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { export class StringTools { private static _SaveAs; private static _Click; /** * Download a string into a file that will be saved locally by the browser * @param document * @param content defines the string to download locally as a file * @param filename */ static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { export class PropertyChangedEvent { object: any; property: string; value: any; initialValue: any; allowNullValue?: boolean; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { /** * Create a popup window * @param title default title for the popup * @param options options for the popup * @returns the parent control of the popup */ export function CreatePopup(title: string, options: Partial<{ onParentControlCreateCallback?: (parentControl: HTMLDivElement) => void; onWindowCreateCallback?: (newWindow: Window) => void; width?: number; height?: number; }>): HTMLDivElement | null; } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { /** * Class handling undo / redo operations */ export class HistoryStack implements BABYLON.IDisposable { private _historyStack; private _redoStack; private _activeData; private readonly _maxHistoryLength; private _locked; private _dataProvider; private _applyUpdate; /** * Gets or sets a boolean indicating if the stack is enabled */ isEnabled: boolean; /** * Constructor * @param dataProvider defines the data provider function * @param applyUpdate defines the code to execute when undo/redo operation is required */ constructor(dataProvider: () => any, applyUpdate: (data: any) => void); /** * Process key event to handle undo / redo * @param evt defines the keyboard event to process * @returns true if the event was processed */ processKeyEvent(evt: KeyboardEvent): boolean; /** * Resets the stack */ reset(): void; /** * Remove the n-1 element of the stack */ collapseLastTwo(): void; private _generateJSONDiff; private _applyJSONDiff; private _copy; /** * Stores the current state */ storeAsync(): Promise<void>; /** * Checks if there is any data in the history stack */ get hasData(): boolean; /** * Undo the latest operation */ undo(): void; /** * Redo the latest undo operation */ redo(): void; /** * Disposes the stack */ dispose(): void; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { export function copyCommandToClipboard(strCommand: string): void; export function getClassNameWithNamespace(obj: any): { className: string; babylonNamespace: string; }; } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { /** * Used by both particleSystem and alphaBlendModes */ export var CommonBlendModes: { label: string; value: number; }[]; /** * Used to populated the blendMode dropdown in our various tools (Node Editor, Inspector, etc.) * The below ParticleSystem consts were defined before new Engine alpha blend modes were added, so we have to reference * the ParticleSystem.FOO consts explicitly (as the underlying var values are different - they get mapped to engine consts within baseParticleSystem.ts) */ export var BlendModeOptions: { label: string; value: number; }[]; /** * Used to populated the alphaMode dropdown in our various tools (Node Editor, Inspector, etc.) */ export var AlphaModeOptions: { label: string; value: number; }[]; } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { /** * Class used to provide lock mechanism */ export class LockObject { /** * Gets or set if the lock is engaged */ lock: boolean; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface ITextBlockPropertyGridComponentProps { textBlock: BABYLON.GUI.TextBlock; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> { constructor(props: ITextBlockPropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IStackPanelPropertyGridComponentProps { stackPanel: BABYLON.GUI.StackPanel; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> { constructor(props: IStackPanelPropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface ISliderPropertyGridComponentProps { slider: BABYLON.GUI.Slider; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> { constructor(props: ISliderPropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IScrollViewerPropertyGridComponentProps { scrollViewer: BABYLON.GUI.ScrollViewer; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> { constructor(props: IScrollViewerPropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IRectanglePropertyGridComponentProps { rectangle: BABYLON.GUI.Rectangle; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> { constructor(props: IRectanglePropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IRadioButtonPropertyGridComponentProps { radioButtons: BABYLON.GUI.RadioButton[]; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> { constructor(props: IRadioButtonPropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface ILinePropertyGridComponentProps { line: BABYLON.GUI.Line; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> { constructor(props: ILinePropertyGridComponentProps); onDashChange(value: string): void; render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IInputTextPropertyGridComponentProps { inputText: BABYLON.GUI.InputText; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> { constructor(props: IInputTextPropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IImagePropertyGridComponentProps { image: BABYLON.GUI.Image; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> { constructor(props: IImagePropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IImageBasedSliderPropertyGridComponentProps { imageBasedSlider: BABYLON.GUI.ImageBasedSlider; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> { constructor(props: IImageBasedSliderPropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IGridPropertyGridComponentProps { grid: BABYLON.GUI.Grid; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> { constructor(props: IGridPropertyGridComponentProps); renderRows(): import("react/jsx-runtime").JSX.Element[]; renderColumns(): import("react/jsx-runtime").JSX.Element[]; render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IEllipsePropertyGridComponentProps { ellipse: BABYLON.GUI.Ellipse; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> { constructor(props: IEllipsePropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IControlPropertyGridComponentProps { control: BABYLON.GUI.Control; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> { constructor(props: IControlPropertyGridComponentProps); render(): import("react/jsx-runtime").JSX.Element; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface ICommonControlPropertyGridComponentProps { controls?: BABYLON.GUI.Control[]; control?: BABYLON.GUI.Control; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> { constructor(props: ICommonControlPropertyGridComponentProps); renderGridInformation(control: BABYLON.GUI.Control): import("react/jsx-runtime").JSX.Element | null; render(): import("react/jsx-runtime").JSX.Element | undefined; } } declare module BABYLON.NodeRenderGraphEditor { } declare module BABYLON.NodeRenderGraphEditor.SharedUIComponents { interface IColorPickerPropertyGridComponentProps { colorPicker: BABYLON.GUI.ColorPicker; lockObject: BABYLON.NodeRenderGraphEditor.SharedUIComponents.LockObject; onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeRenderGraphEditor.SharedUIComponents.PropertyChangedEvent>; } export class ColorPickerPropertyGridComponent extends React.Component<ICo