babylonjs-node-render-graph-editor
Version:
Node Render Graph Editor
1,178 lines (976 loc) • 198 kB
TypeScript
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