/// declare module "babylonjs-node-editor/blockTools" { import { DiscardBlock } from 'babylonjs/Materials/Node/Blocks/Fragment/discardBlock'; import { BonesBlock } from 'babylonjs/Materials/Node/Blocks/Vertex/bonesBlock'; import { InstancesBlock } from 'babylonjs/Materials/Node/Blocks/Vertex/instancesBlock'; import { MorphTargetsBlock } from 'babylonjs/Materials/Node/Blocks/Vertex/morphTargetsBlock'; import { ImageProcessingBlock } from 'babylonjs/Materials/Node/Blocks/Fragment/imageProcessingBlock'; import { ColorMergerBlock } from 'babylonjs/Materials/Node/Blocks/colorMergerBlock'; import { VectorMergerBlock } from 'babylonjs/Materials/Node/Blocks/vectorMergerBlock'; import { ColorSplitterBlock } from 'babylonjs/Materials/Node/Blocks/colorSplitterBlock'; import { VectorSplitterBlock } from 'babylonjs/Materials/Node/Blocks/vectorSplitterBlock'; import { RemapBlock } from 'babylonjs/Materials/Node/Blocks/remapBlock'; import { TextureBlock } from 'babylonjs/Materials/Node/Blocks/Dual/textureBlock'; import { ReflectionTextureBlock } from 'babylonjs/Materials/Node/Blocks/Dual/reflectionTextureBlock'; import { LightBlock } from 'babylonjs/Materials/Node/Blocks/Dual/lightBlock'; import { FogBlock } from 'babylonjs/Materials/Node/Blocks/Dual/fogBlock'; import { VertexOutputBlock } from 'babylonjs/Materials/Node/Blocks/Vertex/vertexOutputBlock'; import { FragmentOutputBlock } from 'babylonjs/Materials/Node/Blocks/Fragment/fragmentOutputBlock'; import { NormalizeBlock } from 'babylonjs/Materials/Node/Blocks/normalizeBlock'; import { AddBlock } from 'babylonjs/Materials/Node/Blocks/addBlock'; import { ScaleBlock } from 'babylonjs/Materials/Node/Blocks/scaleBlock'; import { TrigonometryBlock } from 'babylonjs/Materials/Node/Blocks/trigonometryBlock'; import { ClampBlock } from 'babylonjs/Materials/Node/Blocks/clampBlock'; import { CrossBlock } from 'babylonjs/Materials/Node/Blocks/crossBlock'; import { DotBlock } from 'babylonjs/Materials/Node/Blocks/dotBlock'; import { MultiplyBlock } from 'babylonjs/Materials/Node/Blocks/multiplyBlock'; import { TransformBlock } from 'babylonjs/Materials/Node/Blocks/transformBlock'; import { NodeMaterialBlockConnectionPointTypes } from 'babylonjs/Materials/Node/Enums/nodeMaterialBlockConnectionPointTypes'; import { FresnelBlock } from 'babylonjs/Materials/Node/Blocks/fresnelBlock'; import { LerpBlock } from 'babylonjs/Materials/Node/Blocks/lerpBlock'; import { NLerpBlock } from 'babylonjs/Materials/Node/Blocks/nLerpBlock'; import { DivideBlock } from 'babylonjs/Materials/Node/Blocks/divideBlock'; import { SubtractBlock } from 'babylonjs/Materials/Node/Blocks/subtractBlock'; import { StepBlock } from 'babylonjs/Materials/Node/Blocks/stepBlock'; import { SmoothStepBlock } from 'babylonjs/Materials/Node/Blocks/smoothStepBlock'; import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock'; import { OneMinusBlock } from 'babylonjs/Materials/Node/Blocks/oneMinusBlock'; import { ViewDirectionBlock } from 'babylonjs/Materials/Node/Blocks/viewDirectionBlock'; import { LightInformationBlock } from 'babylonjs/Materials/Node/Blocks/Vertex/lightInformationBlock'; import { MaxBlock } from 'babylonjs/Materials/Node/Blocks/maxBlock'; import { MinBlock } from 'babylonjs/Materials/Node/Blocks/minBlock'; import { PerturbNormalBlock } from 'babylonjs/Materials/Node/Blocks/Fragment/perturbNormalBlock'; import { LengthBlock } from 'babylonjs/Materials/Node/Blocks/lengthBlock'; import { DistanceBlock } from 'babylonjs/Materials/Node/Blocks/distanceBlock'; import { FrontFacingBlock } from 'babylonjs/Materials/Node/Blocks/Fragment/frontFacingBlock'; import { NegateBlock } from 'babylonjs/Materials/Node/Blocks/negateBlock'; import { PowBlock } from 'babylonjs/Materials/Node/Blocks/powBlock'; import { Scene } from 'babylonjs/scene'; import { RandomNumberBlock } from 'babylonjs/Materials/Node/Blocks/randomNumberBlock'; import { ReplaceColorBlock } from 'babylonjs/Materials/Node/Blocks/replaceColorBlock'; import { PosterizeBlock } from 'babylonjs/Materials/Node/Blocks/posterizeBlock'; import { ArcTan2Block } from 'babylonjs/Materials/Node/Blocks/arcTan2Block'; import { ReciprocalBlock } from 'babylonjs/Materials/Node/Blocks/reciprocalBlock'; import { GradientBlock } from 'babylonjs/Materials/Node/Blocks/gradientBlock'; import { WaveBlock } from 'babylonjs/Materials/Node/Blocks/waveBlock'; import { NodeMaterial } from 'babylonjs/Materials/Node/nodeMaterial'; import { WorleyNoise3DBlock } from 'babylonjs/Materials/Node/Blocks/worleyNoise3DBlock'; import { SimplexPerlin3DBlock } from 'babylonjs/Materials/Node/Blocks/simplexPerlin3DBlock'; export class BlockTools { static GetBlockFromString(data: string, scene: Scene, nodeMaterial: NodeMaterial): WorleyNoise3DBlock | SimplexPerlin3DBlock | BonesBlock | InstancesBlock | MorphTargetsBlock | DiscardBlock | ImageProcessingBlock | ColorMergerBlock | VectorMergerBlock | ColorSplitterBlock | VectorSplitterBlock | TextureBlock | ReflectionTextureBlock | LightBlock | FogBlock | VertexOutputBlock | FragmentOutputBlock | AddBlock | ClampBlock | ScaleBlock | CrossBlock | DotBlock | PowBlock | MultiplyBlock | TransformBlock | TrigonometryBlock | RemapBlock | NormalizeBlock | FresnelBlock | LerpBlock | NLerpBlock | DivideBlock | SubtractBlock | StepBlock | SmoothStepBlock | OneMinusBlock | ReciprocalBlock | ViewDirectionBlock | LightInformationBlock | MaxBlock | MinBlock | LengthBlock | DistanceBlock | NegateBlock | PerturbNormalBlock | RandomNumberBlock | ReplaceColorBlock | PosterizeBlock | ArcTan2Block | GradientBlock | FrontFacingBlock | WaveBlock | InputBlock | null; static GetColorFromConnectionNodeType(type: NodeMaterialBlockConnectionPointTypes): string; static GetConnectionNodeTypeFromString(type: string): NodeMaterialBlockConnectionPointTypes.Float | NodeMaterialBlockConnectionPointTypes.Vector2 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4 | NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Color4 | NodeMaterialBlockConnectionPointTypes.Matrix | NodeMaterialBlockConnectionPointTypes.AutoDetect; static GetStringFromConnectionNodeType(type: NodeMaterialBlockConnectionPointTypes): "Float" | "Vector2" | "Vector3" | "Vector4" | "Matrix" | "Color3" | "Color4" | ""; } } declare module "babylonjs-node-editor/dataStorage" { export class DataStorage { private static _InMemoryStorage; static ReadBoolean(key: string, defaultValue: boolean): boolean; static StoreBoolean(key: string, value: boolean): void; static ReadNumber(key: string, defaultValue: number): number; static StoreNumber(key: string, value: number): void; } } declare module "babylonjs-node-editor/sharedComponents/textLineComponent" { import * as React from "react"; interface ITextLineComponentProps { label: string; value: string; color?: string; underline?: boolean; onLink?: () => void; } export class TextLineComponent extends React.Component { constructor(props: ITextLineComponentProps); onLink(): void; renderContent(): JSX.Element; render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/lineContainerComponent" { import * as React from "react"; interface ILineContainerComponentProps { title: string; children: any[] | any; closed?: boolean; } export class LineContainerComponent extends React.Component { constructor(props: ILineContainerComponentProps); switchExpandedState(): void; renderHeader(): JSX.Element; render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/propertyChangedEvent" { export class PropertyChangedEvent { object: any; property: string; value: any; initialValue: any; } } declare module "babylonjs-node-editor/sharedComponents/textInputLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; import { GlobalState } from "babylonjs-node-editor/globalState"; interface ITextInputLineComponentProps { label: string; globalState: GlobalState; target?: any; propertyName?: string; value?: string; onChange?: (value: string) => void; onPropertyChangedObservable?: Observable; } export class TextInputLineComponent extends React.Component { private _localChange; constructor(props: ITextInputLineComponentProps); shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: string, previousValue: string): void; updateValue(value: string, raisePropertyChanged: boolean): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/checkBoxLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; export interface ICheckBoxLineComponentProps { label: string; target?: any; propertyName?: string; isSelected?: () => boolean; onSelect?: (value: boolean) => void; onValueChanged?: () => void; onPropertyChangedObservable?: Observable; } export class CheckBoxLineComponent extends React.Component { private static _UniqueIdSeed; private _uniqueId; private _localChange; constructor(props: ICheckBoxLineComponentProps); shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: { isSelected: boolean; }): boolean; onChange(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/generic/genericNodeModel" { import { Nullable } from 'babylonjs/types'; import { Vector2, Vector3, Vector4, Matrix } from 'babylonjs/Maths/math'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { DiagramModel } from 'storm-react-diagrams/dist/@types/src/models/DiagramModel'; import { GraphEditor, NodeCreationOptions } from "babylonjs-node-editor/graphEditor"; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * Generic node model which stores information about a node editor block */ export class GenericNodeModel extends DefaultNodeModel { /** * Vector2 for the node if it exists */ vector2: Nullable; /** * Vector3 for the node if it exists */ vector3: Nullable; /** * Vector4 for the node if it exists */ vector4: Nullable; /** * Matrix for the node if it exists */ matrix: Nullable; /** * Constructs the node model */ constructor(); prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; renderProperties(globalState: GlobalState): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/link/advancedLinkModel" { import { DefaultLinkModel } from 'storm-react-diagrams'; export class AdvancedLinkModel extends DefaultLinkModel { constructor(); } } declare module "babylonjs-node-editor/components/diagram/port/defaultPortModel" { import { LinkModel, PortModel } from "storm-react-diagrams"; import { Nullable } from 'babylonjs/types'; import { NodeMaterialConnectionPoint } from 'babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; /** * Port model */ export class DefaultPortModel extends PortModel { /** * If the port is input or output */ position: string | "input" | "output"; /** * What the port is connected to */ connection: Nullable; defaultValue: any; static idCounter: number; constructor(name: string, type?: string); canLinkToPort(port: DefaultPortModel): boolean; syncWithNodeMaterialConnectionPoint(connection: NodeMaterialConnectionPoint): void; getNodeModel(): DefaultNodeModel; link(outPort: DefaultPortModel): LinkModel; createLinkModel(): LinkModel; static SortInputOutput(a: Nullable, b: Nullable): { input: DefaultPortModel; output: DefaultPortModel; } | null; } } declare module "babylonjs-node-editor/components/diagram/port/defaultPortWidget" { import { BaseWidget, PortState, NodeModel, BaseWidgetProps } from 'storm-react-diagrams'; export interface IDefaultPortWidgetProps extends BaseWidgetProps { name: string; node: NodeModel; style: any; } export class DefaultPortWidget extends BaseWidget { constructor(props: IDefaultPortWidgetProps); getClassName(): string; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/portHelper" { import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { Nullable } from 'babylonjs/types'; import { NodeMaterialBlockConnectionPointTypes } from 'babylonjs/Materials/Node/Enums/nodeMaterialBlockConnectionPointTypes'; export class PortHelper { private static _GetPortTypeIndicator; static _GetPortStyle(type: NodeMaterialBlockConnectionPointTypes): { background: string; }; static GenerateOutputPorts(node: Nullable, ignoreLabel: boolean): JSX.Element[]; static GenerateInputPorts(node: Nullable, includeOnly?: string[], ignoreLabel?: boolean): JSX.Element[]; } } declare module "babylonjs-node-editor/components/diagram/generic/genericNodeWidget" { import * as React from "react"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; import { GenericNodeModel } from "babylonjs-node-editor/components/diagram/generic/genericNodeModel"; /** * GenericNodeWidgetProps */ export interface GenericNodeWidgetProps { node: Nullable; globalState: GlobalState; } /** * GenericNodeWidgetState */ export interface GenericNodeWidgetState { } /** * Used to display a node block for the node editor */ export class GenericNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: GenericNodeWidgetProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/generic/genericNodeFactory" { import * as SRD from "storm-react-diagrams"; import { GenericNodeModel } from "babylonjs-node-editor/components/diagram/generic/genericNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * Node factory which creates editor nodes */ export class GenericNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a GenericNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: GenericNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns generic node model */ getNewInstance(): GenericNodeModel; } } declare module "babylonjs-node-editor/sharedComponents/draggableLineComponent" { import * as React from "react"; export interface IButtonLineComponentProps { data: string; } export class DraggableLineComponent extends React.Component { constructor(props: IButtonLineComponentProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/components/nodeList/nodeListComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; interface INodeListComponentProps { globalState: GlobalState; } export class NodeListComponent extends React.Component { constructor(props: INodeListComponentProps); filterContent(filter: string): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/buttonLineComponent" { import * as React from "react"; export interface IButtonLineComponentProps { label: string; onClick: () => void; } export class ButtonLineComponent extends React.Component { constructor(props: IButtonLineComponentProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/stringTools" { import { NodeMaterialBlockConnectionPointTypes } from 'babylonjs/Materials/Node/Enums/nodeMaterialBlockConnectionPointTypes'; export class StringTools { private static _SaveAs; private static _Click; /** * Gets the base math type of node material block connection point. * @param type Type to parse. */ static GetBaseType(type: NodeMaterialBlockConnectionPointTypes): string; /** * Download a string into a file that will be saved locally by the browser * @param content defines the string to download locally as a file */ static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void; } } declare module "babylonjs-node-editor/sharedComponents/fileButtonLineComponent" { import * as React from "react"; interface IFileButtonLineComponentProps { label: string; onClick: (file: File) => void; accept: string; } export class FileButtonLineComponent extends React.Component { constructor(props: IFileButtonLineComponentProps); onChange(evt: any): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/serializationTools" { import { NodeMaterial } from 'babylonjs/Materials/Node/nodeMaterial'; import { GlobalState } from "babylonjs-node-editor/globalState"; export class SerializationTools { static Serialize(material: NodeMaterial, globalState: GlobalState): string; static Deserialize(serializationObject: any, globalState: GlobalState): void; } } declare module "babylonjs-node-editor/components/propertyTab/propertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { Nullable } from 'babylonjs/types'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; interface IPropertyTabComponentProps { globalState: GlobalState; } export class PropertyTabComponent extends React.Component; }> { constructor(props: IPropertyTabComponentProps); componentDidMount(): void; load(file: File): void; save(): void; customSave(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/portal" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; interface IPortalProps { globalState: GlobalState; } export class Portal extends React.Component { render(): React.ReactPortal; } } declare module "babylonjs-node-editor/sharedComponents/sliderLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; interface ISliderLineComponentProps { label: string; target?: any; propertyName?: string; minimum: number; maximum: number; step: number; directValue?: number; useEuler?: boolean; onChange?: (value: number) => void; onInput?: (value: number) => void; onPropertyChangedObservable?: Observable; decimalCount?: number; } export class SliderLineComponent extends React.Component { private _localChange; constructor(props: ISliderLineComponentProps); shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: { value: number; }): boolean; onChange(newValueString: any): void; onInput(newValueString: any): void; prepareDataToRead(value: number): number; render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/floatLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; interface IFloatLineComponentProps { label: string; target: any; propertyName: string; onChange?: (newValue: number) => void; isInteger?: boolean; onPropertyChangedObservable?: Observable; additionalClass?: string; step?: string; digits?: number; } export class FloatLineComponent extends React.Component { private _localChange; private _store; constructor(props: IFloatLineComponentProps); shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; updateValue(valueString: string): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/reflectionTexture/reflectionTextureNodeModel" { import { Nullable } from 'babylonjs/types'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { NodeCreationOptions, GraphEditor } from "babylonjs-node-editor/graphEditor"; import { DiagramModel } from 'storm-react-diagrams/dist/@types/src/models/DiagramModel'; import { BaseTexture } from 'babylonjs/Materials/Textures/baseTexture'; /** * Texture node model which stores information about a node editor block */ export class ReflectionTextureNodeModel extends DefaultNodeModel { private _block; /** * Texture for the node if it exists */ texture: Nullable; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; } } declare module "babylonjs-node-editor/sharedComponents/optionsLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; class ListLineOption { label: string; value: number | string; } interface IOptionsLineComponentProps { label: string; target: any; className?: string; propertyName?: string; options: ListLineOption[]; noDirectUpdate?: boolean; onSelect?: (value: number | string) => void; onPropertyChangedObservable?: Observable; valuesAreStrings?: boolean; defaultIfNull?: number; getSelection?: (target: any) => number; } export class OptionsLineComponent extends React.Component { private _localChange; private _getValue; constructor(props: IOptionsLineComponentProps); shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: { value: number; }): boolean; raiseOnPropertyChanged(newValue: number | string, previousValue: number | string): void; updateValue(valueString: string): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/texture/texturePropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { TextureNodeModel } from "babylonjs-node-editor/components/diagram/texture/textureNodeModel"; import { ReflectionTextureNodeModel } from "babylonjs-node-editor/components/diagram/reflectionTexture/reflectionTextureNodeModel"; interface ITexturePropertyTabComponentProps { globalState: GlobalState; node: TextureNodeModel | ReflectionTextureNodeModel; } export class TexturePropertyTabComponent extends React.Component { constructor(props: ITexturePropertyTabComponentProps); UNSAFE_componentWillUpdate(nextProps: ITexturePropertyTabComponentProps, nextState: { isEmbedded: boolean; loadAsCubeTexture: boolean; }): void; private _generateRandomForCache; updateAfterTextureLoad(): void; removeTexture(): void; _prepareTexture(): void; /** * Replaces the texture of the node * @param file the file of the texture to use */ replaceTexture(file: File): void; replaceTextureWithUrl(url: string): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/texture/textureNodeModel" { import { Nullable } from 'babylonjs/types'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { NodeCreationOptions, GraphEditor } from "babylonjs-node-editor/graphEditor"; import { DiagramModel } from 'storm-react-diagrams/dist/@types/src/models/DiagramModel'; import { Texture } from 'babylonjs/Materials/Textures/texture'; /** * Texture node model which stores information about a node editor block */ export class TextureNodeModel extends DefaultNodeModel { private _block; /** * Texture for the node if it exists */ texture: Nullable; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; } } declare module "babylonjs-node-editor/sharedComponents/textureLineComponent" { import * as React from "react"; import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture"; interface ITextureLineComponentProps { texture: BaseTexture; width: number; height: number; globalState?: any; hideChannelSelect?: boolean; } export class TextureLineComponent extends React.Component { constructor(props: ITextureLineComponentProps); shouldComponentUpdate(nextProps: ITextureLineComponentProps, nextState: { displayRed: boolean; displayGreen: boolean; displayBlue: boolean; displayAlpha: boolean; face: number; }): boolean; componentDidMount(): void; componentDidUpdate(): void; updatePreview(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/texture/textureNodeWidget" { import * as React from "react"; import { TextureNodeModel } from "babylonjs-node-editor/components/diagram/texture/textureNodeModel"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * GenericNodeWidgetProps */ export interface ITextureNodeWidgetProps { node: Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class TextureNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: ITextureNodeWidgetProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/texture/textureNodeFactory" { import * as SRD from "storm-react-diagrams"; import { TextureNodeModel } from "babylonjs-node-editor/components/diagram/texture/textureNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * Node factory which creates editor nodes */ export class TextureNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a TextureNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: TextureNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns texture node model */ getNewInstance(): TextureNodeModel; } } declare module "babylonjs-node-editor/sharedComponents/numericInputComponent" { import * as React from "react"; interface INumericInputComponentProps { label: string; value: number; step?: number; onChange: (value: number) => void; } export class NumericInputComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: INumericInputComponentProps); shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: { value: string; }): boolean; updateValue(evt: any): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/vector2LineComponent" { import * as React from "react"; import { Vector2 } from "babylonjs/Maths/math"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; interface IVector2LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: Vector2) => void; onPropertyChangedObservable?: Observable; } export class Vector2LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector2LineComponentProps); shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: { isExpanded: boolean; value: Vector2; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Vector2): void; updateStateX(value: number): void; updateStateY(value: number): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/propertyTab/properties/vector2PropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock'; interface IVector2PropertyTabComponentProps { globalState: GlobalState; inputBlock: InputBlock; } export class Vector2PropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/vector3LineComponent" { import * as React from "react"; import { Vector3 } from "babylonjs/Maths/math"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; interface IVector3LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: Vector3) => void; onPropertyChangedObservable?: Observable; } export class Vector3LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector3LineComponentProps); shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: { isExpanded: boolean; value: Vector3; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Vector3): void; updateVector3(): void; updateStateX(value: number): void; updateStateY(value: number): void; updateStateZ(value: number): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/propertyTab/properties/vector3PropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock'; interface IVector3PropertyTabComponentProps { globalState: GlobalState; inputBlock: InputBlock; } export class Vector3PropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/color3LineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { Color3 } from "babylonjs/Maths/math"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; export interface IColor3LineComponentProps { label: string; target: any; propertyName: string; onPropertyChangedObservable?: Observable; onChange?: () => void; } export class Color3LineComponent extends React.Component { private _localChange; constructor(props: IColor3LineComponentProps); shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: { color: Color3; }): boolean; onChange(newValue: string): void; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Color3): void; updateStateR(value: number): void; updateStateG(value: number): void; updateStateB(value: number): void; copyToClipboard(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/propertyTab/properties/color3PropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock'; interface IColor3PropertyTabComponentProps { globalState: GlobalState; inputBlock: InputBlock; } export class Color3PropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module "babylonjs-node-editor/components/propertyTab/properties/floatPropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock'; interface IFloatPropertyTabComponentProps { globalState: GlobalState; inputBlock: InputBlock; } export class FloatPropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/vector4LineComponent" { import * as React from "react"; import { Vector4 } from "babylonjs/Maths/math"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; interface IVector4LineComponentProps { label: string; target?: any; propertyName?: string; value?: Vector4; step?: number; onChange?: (newvalue: Vector4) => void; onPropertyChangedObservable?: Observable; } export class Vector4LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector4LineComponentProps); shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: { isExpanded: boolean; value: Vector4; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Vector4): void; updateVector4(): void; updateStateX(value: number): void; updateStateY(value: number): void; updateStateZ(value: number): void; updateStateW(value: number): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/propertyTab/properties/vector4PropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock'; interface IVector4PropertyTabComponentProps { globalState: GlobalState; inputBlock: InputBlock; } export class Vector4PropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module "babylonjs-node-editor/sharedComponents/matrixLineComponent" { import * as React from "react"; import { Vector3, Matrix, Vector4 } from "babylonjs/Maths/math"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent"; interface IMatrixLineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newValue: Matrix) => void; onModeChange?: (mode: number) => void; onPropertyChangedObservable?: Observable; mode?: number; } export class MatrixLineComponent extends React.Component { private _localChange; constructor(props: IMatrixLineComponentProps); shouldComponentUpdate(nextProps: IMatrixLineComponentProps, nextState: { value: Matrix; mode: number; angle: number; }): boolean; raiseOnPropertyChanged(previousValue: Vector3): void; updateMatrix(): void; updateRow(value: Vector4, row: number): void; updateBasedOnMode(value: number): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/propertyTab/properties/matrixPropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock'; interface IMatrixPropertyTabComponentProps { globalState: GlobalState; inputBlock: InputBlock; } export class MatrixPropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/input/inputNodePropertyComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputNodeModel } from "babylonjs-node-editor/components/diagram/input/inputNodeModel"; interface IInputPropertyTabComponentProps { globalState: GlobalState; inputNode: InputNodeModel; } export class InputPropertyTabComponentProps extends React.Component { constructor(props: IInputPropertyTabComponentProps); renderValue(globalState: GlobalState): JSX.Element | null; setDefaultValue(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/input/inputNodeModel" { import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock'; /** * Generic node model which stores information about a node editor block */ export class InputNodeModel extends DefaultNodeModel { readonly inputBlock: InputBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/input/inputNodeWidget" { import * as React from "react"; import { InputNodeModel } from "babylonjs-node-editor/components/diagram/input/inputNodeModel"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * GenericNodeWidgetProps */ export interface IInputNodeWidgetProps { node: Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class InputNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: IInputNodeWidgetProps); renderValue(value: string): JSX.Element | null; render(): JSX.Element | null; } } declare module "babylonjs-node-editor/components/diagram/input/inputNodeFactory" { import * as SRD from "storm-react-diagrams"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { InputNodeModel } from "babylonjs-node-editor/components/diagram/input/inputNodeModel"; /** * Node factory which creates editor nodes */ export class InputNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a GenericNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: InputNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns input node model */ getNewInstance(): InputNodeModel; } } declare module "babylonjs-node-editor/components/log/logComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; interface ILogComponentProps { globalState: GlobalState; } export class LogEntry { message: string; isError: boolean; constructor(message: string, isError: boolean); } export class LogComponent extends React.Component { constructor(props: ILogComponentProps); componentDidMount(): void; componentDidUpdate(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/light/lightPropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { LightNodeModel } from "babylonjs-node-editor/components/diagram/light/lightNodeModel"; interface ILightPropertyTabComponentProps { globalState: GlobalState; node: LightNodeModel; } export class LightPropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/light/lightNodeModel" { import { Nullable } from 'babylonjs/types'; import { Light } from 'babylonjs/Lights/light'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { NodeCreationOptions, GraphEditor } from "babylonjs-node-editor/graphEditor"; import { DiagramModel } from 'storm-react-diagrams/dist/@types/src/models/DiagramModel'; /** * Light node model which stores information about a node editor block */ export class LightNodeModel extends DefaultNodeModel { private _block; /** * Light for the node if it exists */ light: Nullable; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; } } declare module "babylonjs-node-editor/components/diagram/light/lightNodeWidget" { import * as React from "react"; import { LightNodeModel } from "babylonjs-node-editor/components/diagram/light/lightNodeModel"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * GenericNodeWidgetProps */ export interface ILightNodeWidgetProps { node: Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class LightNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: ILightNodeWidgetProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/light/lightNodeFactory" { import * as SRD from "storm-react-diagrams"; import { LightNodeModel } from "babylonjs-node-editor/components/diagram/light/lightNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * Node factory which creates editor nodes */ export class LightNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a LightNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: LightNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns light node model */ getNewInstance(): LightNodeModel; } } declare module "babylonjs-node-editor/sharedComponents/messageDialog" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; interface IMessageDialogComponentProps { globalState: GlobalState; } export class MessageDialogComponent extends React.Component { constructor(props: IMessageDialogComponentProps); render(): JSX.Element | null; } } declare module "babylonjs-node-editor/components/diagram/link/advancedLinkFactory" { import { DefaultLinkFactory, DefaultLinkWidget } from 'storm-react-diagrams'; import { AdvancedLinkModel } from "babylonjs-node-editor/components/diagram/link/advancedLinkModel"; export class AdvancedLinkFactory extends DefaultLinkFactory { constructor(); getNewInstance(initialConfig?: any): AdvancedLinkModel; generateLinkSegment(model: AdvancedLinkModel, widget: DefaultLinkWidget, selected: boolean, path: string): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/remap/remapNodePropertyComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { RemapNodeModel } from "babylonjs-node-editor/components/diagram/remap/remapNodeModel"; interface IRemapPropertyTabComponentProps { globalState: GlobalState; remapNode: RemapNodeModel; } export class RemapPropertyTabComponentProps extends React.Component { constructor(props: IRemapPropertyTabComponentProps); forceRebuild(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/remap/remapNodeModel" { import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { RemapBlock } from 'babylonjs/Materials/Node/Blocks/remapBlock'; /** * Generic node model which stores information about a node editor block */ export class RemapNodeModel extends DefaultNodeModel { readonly remapBlock: RemapBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/remap/remapNodeWidget" { import * as React from "react"; import { RemapNodeModel } from "babylonjs-node-editor/components/diagram/remap/remapNodeModel"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; import { NodeMaterialConnectionPoint } from 'babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint'; /** * RemapNodeWidgetProps */ export interface RemapNodeWidgetProps { node: Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class RemapNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: RemapNodeWidgetProps); renderValue(value: string): JSX.Element | null; extractInputValue(connectionPoint: NodeMaterialConnectionPoint): any; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/remap/remapNodeFactory" { import * as SRD from "storm-react-diagrams"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { RemapNodeModel } from "babylonjs-node-editor/components/diagram/remap/remapNodeModel"; /** * Node factory which creates editor nodes */ export class RemapNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a GenericNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: RemapNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns input node model */ getNewInstance(): RemapNodeModel; } } declare module "babylonjs-node-editor/graphHelper" { import * as dagre from "babylonjs-node-editor/dagre"; import { DiagramModel } from 'storm-react-diagrams/dist/@types/src/models/DiagramModel'; export class GraphHelper { static DistributeGraph(model: DiagramModel): dagre.Node[]; private static _MapElements; private static _MapEdges; } } declare module "babylonjs-node-editor/components/preview/previewMeshType" { export enum PreviewMeshType { Sphere = 0, Box = 1, Torus = 2, Cylinder = 3, Plane = 4, ShaderBall = 5, Custom = 6 } } declare module "babylonjs-node-editor/components/preview/previewManager" { import { GlobalState } from "babylonjs-node-editor/globalState"; export class PreviewManager { private _nodeMaterial; private _onBuildObserver; private _onPreviewCommandActivatedObserver; private _onAnimationCommandActivatedObserver; private _onUpdateRequiredObserver; private _onPreviewBackgroundChangedObserver; private _onBackFaceCullingChangedObserver; private _onDepthPrePassChangedObserver; private _onLightUpdatedObserver; private _engine; private _scene; private _meshes; private _camera; private _material; private _globalState; private _currentType; private _lightParent; constructor(targetCanvas: HTMLCanvasElement, globalState: GlobalState); private _handleAnimations; private _prepareLights; private _prepareMeshes; private _refreshPreviewMesh; private _forceCompilationAsync; private _updatePreview; dispose(): void; } } declare module "babylonjs-node-editor/nodeLocationInfo" { export interface INodeLocationInfo { blockId: number; x: number; y: number; } } declare module "babylonjs-node-editor/components/preview/previewMeshControlComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { PreviewMeshType } from "babylonjs-node-editor/components/preview/previewMeshType"; interface IPreviewMeshControlComponent { globalState: GlobalState; } export class PreviewMeshControlComponent extends React.Component { changeMeshType(newOne: PreviewMeshType): void; useCustomMesh(evt: any): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/trigonometry/trigonometryNodePropertyComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { TrigonometryNodeModel } from "babylonjs-node-editor/components/diagram/trigonometry/trigonometryNodeModel"; interface ITrigonometryTabComponentProps { globalState: GlobalState; trigonometryNode: TrigonometryNodeModel; } export class TrigonometryPropertyTabComponentProps extends React.Component { constructor(props: ITrigonometryTabComponentProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/trigonometry/trigonometryNodeModel" { import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { TrigonometryBlock } from 'babylonjs/Materials/Node/Blocks/trigonometryBlock'; /** * Generic node model which stores information about a node editor block */ export class TrigonometryNodeModel extends DefaultNodeModel { readonly trigonometryBlock: TrigonometryBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/trigonometry/trigonometryNodeWidget" { import * as React from "react"; import { TrigonometryNodeModel } from "babylonjs-node-editor/components/diagram/trigonometry/trigonometryNodeModel"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * GenericNodeWidgetProps */ export interface ITrigonometryNodeWidgetProps { node: Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class TrigonometryNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: ITrigonometryNodeWidgetProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/trigonometry/trigonometryNodeFactory" { import * as SRD from "storm-react-diagrams"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { TrigonometryNodeModel } from "babylonjs-node-editor/components/diagram/trigonometry/trigonometryNodeModel"; /** * Node factory which creates editor nodes */ export class TrigonometryNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a GenericNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: TrigonometryNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns input node model */ getNewInstance(): TrigonometryNodeModel; } } declare module "babylonjs-node-editor/components/diagram/clamp/clampNodePropertyComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { ClampNodeModel } from "babylonjs-node-editor/components/diagram/clamp/clampNodeModel"; interface IClampPropertyTabComponentProps { globalState: GlobalState; remapNode: ClampNodeModel; } export class ClampPropertyTabComponentProps extends React.Component { constructor(props: IClampPropertyTabComponentProps); forceRebuild(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/clamp/clampNodeModel" { import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { ClampBlock } from 'babylonjs/Materials/Node/Blocks/clampBlock'; export class ClampNodeModel extends DefaultNodeModel { readonly clampBlock: ClampBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/clamp/clampNodeWidget" { import * as React from "react"; import { ClampNodeModel } from "babylonjs-node-editor/components/diagram/clamp/clampNodeModel"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; export interface ClampNodeWidgetProps { node: Nullable; globalState: GlobalState; } export class ClampNodeWidget extends React.Component { constructor(props: ClampNodeWidgetProps); renderValue(value: string): JSX.Element | null; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/clamp/clampNodeFactory" { import * as SRD from "storm-react-diagrams"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { ClampNodeModel } from "babylonjs-node-editor/components/diagram/clamp/clampNodeModel"; export class ClampNodeFactory extends SRD.AbstractNodeFactory { private _globalState; constructor(globalState: GlobalState); generateReactWidget(diagramEngine: SRD.DiagramEngine, node: ClampNodeModel): JSX.Element; getNewInstance(): ClampNodeModel; } } declare module "babylonjs-node-editor/components/diagram/lightInformation/lightInformationPropertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { LightInformationNodeModel } from "babylonjs-node-editor/components/diagram/lightInformation/lightInformationNodeModel"; interface ILightPropertyTabComponentProps { globalState: GlobalState; node: LightInformationNodeModel; } export class LightInformationPropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/lightInformation/lightInformationNodeModel" { import { Nullable } from 'babylonjs/types'; import { Light } from 'babylonjs/Lights/light'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { NodeCreationOptions, GraphEditor } from "babylonjs-node-editor/graphEditor"; import { DiagramModel } from 'storm-react-diagrams/dist/@types/src/models/DiagramModel'; export class LightInformationNodeModel extends DefaultNodeModel { private _block; /** * Light for the node if it exists */ light: Nullable; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; } } declare module "babylonjs-node-editor/components/diagram/lightInformation/lightInformationNodeWidget" { import * as React from "react"; import { LightInformationNodeModel } from "babylonjs-node-editor/components/diagram/lightInformation/lightInformationNodeModel"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * GenericNodeWidgetProps */ export interface ILightInformationNodeWidgetProps { node: Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class LightInformationNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: ILightInformationNodeWidgetProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/lightInformation/lightInformationNodeFactory" { import * as SRD from "storm-react-diagrams"; import { LightInformationNodeModel } from "babylonjs-node-editor/components/diagram/lightInformation/lightInformationNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; /** * Node factory which creates editor nodes */ export class LightInformationNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a LightNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: LightInformationNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns light node model */ getNewInstance(): LightInformationNodeModel; } } declare module "babylonjs-node-editor/components/preview/previewAreaComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; interface IPreviewAreaComponentProps { globalState: GlobalState; width: number; } export class PreviewAreaComponent extends React.Component { constructor(props: IPreviewAreaComponentProps); changeAnimation(): void; changeBackground(value: string): void; changeBackFaceCulling(value: boolean): void; changeDepthPrePass(value: boolean): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/gradient/gradientStepComponent" { import * as React from 'react'; import { GlobalState } from "babylonjs-node-editor/globalState"; import { GradientBlockColorStep } from 'babylonjs/Materials/Node/Blocks/gradientBlock'; interface IGradientStepComponentProps { globalState: GlobalState; step: GradientBlockColorStep; lineIndex: number; onDelete: () => void; onUpdateStep: () => void; } export class GradientStepComponent extends React.Component { constructor(props: IGradientStepComponentProps); updateColor(color: string): void; updateStep(gradient: number): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/gradient/gradientNodePropertyComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { GradientNodeModel } from "babylonjs-node-editor/components/diagram/gradient/gradientNodeModel"; import { GradientBlockColorStep } from 'babylonjs/Materials/Node/Blocks/gradientBlock'; interface IGradientPropertyTabComponentProps { globalState: GlobalState; gradientNode: GradientNodeModel; } export class GradientPropertyTabComponentProps extends React.Component { constructor(props: IGradientPropertyTabComponentProps); forceRebuild(): void; deleteStep(step: GradientBlockColorStep): void; addNewStep(): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/gradient/gradientNodeModel" { import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { GradientBlock } from 'babylonjs/Materials/Node/Blocks/gradientBlock'; export class GradientNodeModel extends DefaultNodeModel { readonly gradientBlock: GradientBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/gradient/gradientNodeWidget" { import * as React from "react"; import { GradientNodeModel } from "babylonjs-node-editor/components/diagram/gradient/gradientNodeModel"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; export interface IGradientNodeWidgetProps { node: Nullable; globalState: GlobalState; } export class GradientNodeWidget extends React.Component { constructor(props: IGradientNodeWidgetProps); renderValue(value: string): JSX.Element | null; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/gradient/gradientNodeFactory" { import * as SRD from "storm-react-diagrams"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { GradientNodeModel } from "babylonjs-node-editor/components/diagram/gradient/gradientNodeModel"; export class GradientNodeFactory extends SRD.AbstractNodeFactory { private _globalState; constructor(globalState: GlobalState); generateReactWidget(diagramEngine: SRD.DiagramEngine, node: GradientNodeModel): JSX.Element; getNewInstance(): GradientNodeModel; } } declare module "babylonjs-node-editor/components/diagram/reflectionTexture/reflectionTextureNodeWidget" { import * as React from "react"; import { Nullable } from 'babylonjs/types'; import { GlobalState } from "babylonjs-node-editor/globalState"; import { ReflectionTextureNodeModel } from "babylonjs-node-editor/components/diagram/reflectionTexture/reflectionTextureNodeModel"; /** * GenericNodeWidgetProps */ export interface IReflectionTextureNodeWidgetProps { node: Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class ReflectionTextureNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: IReflectionTextureNodeWidgetProps); render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/reflectionTexture/reflectionTextureNodeFactory" { import * as SRD from "storm-react-diagrams"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { ReflectionTextureNodeModel } from "babylonjs-node-editor/components/diagram/reflectionTexture/reflectionTextureNodeModel"; /** * Node factory which creates editor nodes */ export class ReflectionTextureNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a TextureNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: ReflectionTextureNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns texture node model */ getNewInstance(): ReflectionTextureNodeModel; } } declare module "babylonjs-node-editor/graphEditor" { import { LinkModel } from "storm-react-diagrams"; import * as React from "react"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { NodeMaterialBlock } from 'babylonjs/Materials/Node/nodeMaterialBlock'; import { NodeMaterialConnectionPoint } from 'babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { DefaultPortModel } from "babylonjs-node-editor/components/diagram/port/defaultPortModel"; import { Nullable } from 'babylonjs/types'; import { INodeLocationInfo } from "babylonjs-node-editor/nodeLocationInfo"; interface IGraphEditorProps { globalState: GlobalState; } export class NodeCreationOptions { nodeMaterialBlock: NodeMaterialBlock; type?: string; connection?: NodeMaterialConnectionPoint; } export class GraphEditor extends React.Component { private readonly NodeWidth; private _engine; private _model; private _startX; private _moveInProgress; private _leftWidth; private _rightWidth; private _nodes; private _blocks; private _previewManager; private _copiedNodes; private _mouseLocationX; private _mouseLocationY; private _onWidgetKeyUpPointer; private _altKeyIsPressed; private _oldY; /** @hidden */ _toAdd: LinkModel[] | null; /** * Creates a node and recursivly creates its parent nodes from it's input * @param nodeMaterialBlock */ createNodeFromObject(options: NodeCreationOptions): DefaultNodeModel; addValueNode(type: string): DefaultNodeModel; onWidgetKeyUp(evt: any): void; componentDidMount(): void; componentWillUnmount(): void; constructor(props: IGraphEditorProps); zoomToFit(retry?: number): void; buildMaterial(): void; applyFragmentOutputConstraints(rootInput: DefaultPortModel): void; build(needToWait?: boolean): void; reOrganize(locations?: Nullable): void; onPointerDown(evt: React.PointerEvent): void; onPointerUp(evt: React.PointerEvent): void; resizeColumns(evt: React.PointerEvent, forLeft?: boolean): void; buildColumnLayout(): string; emitNewBlock(event: React.DragEvent): void; render(): JSX.Element; } } declare module "babylonjs-node-editor/components/diagram/defaultNodeModel" { import { NodeModel, DiagramModel } from "storm-react-diagrams"; import { Nullable } from 'babylonjs/types'; import { NodeMaterialBlock } from 'babylonjs/Materials/Node/nodeMaterialBlock'; import { GraphEditor, NodeCreationOptions } from "babylonjs-node-editor/graphEditor"; import { GlobalState } from "babylonjs-node-editor/globalState"; import { DefaultPortModel } from "babylonjs-node-editor/components/diagram/port/defaultPortModel"; /** * Generic node model which stores information about a node editor block */ export class DefaultNodeModel extends NodeModel { /** * The babylon block this node represents */ block: Nullable; ports: { [s: string]: DefaultPortModel; }; /** * Constructs the node model */ constructor(key: string); prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; renderProperties(globalState: GlobalState): JSX.Element | null; } } declare module "babylonjs-node-editor/globalState" { import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial"; import { Nullable } from "babylonjs/types"; import { Observable } from 'babylonjs/Misc/observable'; import { DefaultNodeModel } from "babylonjs-node-editor/components/diagram/defaultNodeModel"; import { LogEntry } from "babylonjs-node-editor/components/log/logComponent"; import { NodeModel } from 'storm-react-diagrams'; import { NodeMaterialBlock } from 'babylonjs/Materials/Node/nodeMaterialBlock'; import { PreviewMeshType } from "babylonjs-node-editor/components/preview/previewMeshType"; import { Color4 } from 'babylonjs/Maths/math.color'; export class GlobalState { nodeMaterial: NodeMaterial; hostElement: HTMLElement; hostDocument: HTMLDocument; onSelectionChangedObservable: Observable>; onRebuildRequiredObservable: Observable; onResetRequiredObservable: Observable; onUpdateRequiredObservable: Observable; onZoomToFitRequiredObservable: Observable; onReOrganizedRequiredObservable: Observable; onLogRequiredObservable: Observable; onErrorMessageDialogRequiredObservable: Observable; onIsLoadingChanged: Observable; onPreviewCommandActivated: Observable; onLightUpdated: Observable; onPreviewBackgroundChanged: Observable; onBackFaceCullingChanged: Observable; onDepthPrePassChanged: Observable; onAnimationCommandActivated: Observable; onGetNodeFromBlock: (block: NodeMaterialBlock) => NodeModel; previewMeshType: PreviewMeshType; previewMeshFile: File; rotatePreview: boolean; backgroundColor: Color4; backFaceCulling: boolean; depthPrePass: boolean; blockKeyboardEvents: boolean; hemisphericLight: boolean; directionalLight0: boolean; directionalLight1: boolean; controlCamera: boolean; customSave?: { label: string; action: (data: string) => Promise; }; constructor(); } } declare module "babylonjs-node-editor/sharedComponents/popup" { export class Popup { static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null; private static _CopyStyles; } } declare module "babylonjs-node-editor/nodeEditor" { import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial"; import { Observable } from 'babylonjs/Misc/observable'; /** * Interface used to specify creation options for the node editor */ export interface INodeEditorOptions { nodeMaterial: NodeMaterial; hostElement?: HTMLElement; customSave?: { label: string; action: (data: string) => Promise; }; customLoadObservable?: Observable; } /** * Class used to create a node editor */ export class NodeEditor { private static _CurrentState; /** * Show the node editor * @param options defines the options to use to configure the node editor */ static Show(options: INodeEditorOptions): void; } } declare module "babylonjs-node-editor/index" { export * from "babylonjs-node-editor/nodeEditor"; } declare module "babylonjs-node-editor/legacy/legacy" { export * from "babylonjs-node-editor/index"; } declare module "babylonjs-node-editor" { export * from "babylonjs-node-editor/legacy/legacy"; } /// declare module NODEEDITOR { export class BlockTools { static GetBlockFromString(data: string, scene: BABYLON.Scene, nodeMaterial: BABYLON.NodeMaterial): BABYLON.WorleyNoise3DBlock | BABYLON.SimplexPerlin3DBlock | BABYLON.BonesBlock | BABYLON.InstancesBlock | BABYLON.MorphTargetsBlock | BABYLON.DiscardBlock | BABYLON.ImageProcessingBlock | BABYLON.ColorMergerBlock | BABYLON.VectorMergerBlock | BABYLON.ColorSplitterBlock | BABYLON.VectorSplitterBlock | BABYLON.TextureBlock | BABYLON.ReflectionTextureBlock | BABYLON.LightBlock | BABYLON.FogBlock | BABYLON.VertexOutputBlock | BABYLON.FragmentOutputBlock | BABYLON.AddBlock | BABYLON.ClampBlock | BABYLON.ScaleBlock | BABYLON.CrossBlock | BABYLON.DotBlock | BABYLON.PowBlock | BABYLON.MultiplyBlock | BABYLON.TransformBlock | BABYLON.TrigonometryBlock | BABYLON.RemapBlock | BABYLON.NormalizeBlock | BABYLON.FresnelBlock | BABYLON.LerpBlock | BABYLON.NLerpBlock | BABYLON.DivideBlock | BABYLON.SubtractBlock | BABYLON.StepBlock | BABYLON.SmoothStepBlock | BABYLON.OneMinusBlock | BABYLON.ReciprocalBlock | BABYLON.ViewDirectionBlock | BABYLON.LightInformationBlock | BABYLON.MaxBlock | BABYLON.MinBlock | BABYLON.LengthBlock | BABYLON.DistanceBlock | BABYLON.NegateBlock | BABYLON.PerturbNormalBlock | BABYLON.RandomNumberBlock | BABYLON.ReplaceColorBlock | BABYLON.PosterizeBlock | BABYLON.ArcTan2Block | BABYLON.GradientBlock | BABYLON.FrontFacingBlock | BABYLON.WaveBlock | BABYLON.InputBlock | null; static GetColorFromConnectionNodeType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): string; static GetConnectionNodeTypeFromString(type: string): BABYLON.NodeMaterialBlockConnectionPointTypes.Float | BABYLON.NodeMaterialBlockConnectionPointTypes.Vector2 | BABYLON.NodeMaterialBlockConnectionPointTypes.Vector3 | BABYLON.NodeMaterialBlockConnectionPointTypes.Vector4 | BABYLON.NodeMaterialBlockConnectionPointTypes.Color3 | BABYLON.NodeMaterialBlockConnectionPointTypes.Color4 | BABYLON.NodeMaterialBlockConnectionPointTypes.Matrix | BABYLON.NodeMaterialBlockConnectionPointTypes.AutoDetect; static GetStringFromConnectionNodeType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): "Float" | "Vector2" | "Vector3" | "Vector4" | "Matrix" | "Color3" | "Color4" | ""; } } declare module NODEEDITOR { export class DataStorage { private static _InMemoryStorage; static ReadBoolean(key: string, defaultValue: boolean): boolean; static StoreBoolean(key: string, value: boolean): void; static ReadNumber(key: string, defaultValue: number): number; static StoreNumber(key: string, value: number): void; } } declare module NODEEDITOR { interface ITextLineComponentProps { label: string; value: string; color?: string; underline?: boolean; onLink?: () => void; } export class TextLineComponent extends React.Component { constructor(props: ITextLineComponentProps); onLink(): void; renderContent(): JSX.Element; render(): JSX.Element; } } declare module NODEEDITOR { interface ILineContainerComponentProps { title: string; children: any[] | any; closed?: boolean; } export class LineContainerComponent extends React.Component { constructor(props: ILineContainerComponentProps); switchExpandedState(): void; renderHeader(): JSX.Element; render(): JSX.Element; } } declare module NODEEDITOR { export class PropertyChangedEvent { object: any; property: string; value: any; initialValue: any; } } declare module NODEEDITOR { interface ITextInputLineComponentProps { label: string; globalState: GlobalState; target?: any; propertyName?: string; value?: string; onChange?: (value: string) => void; onPropertyChangedObservable?: BABYLON.Observable; } export class TextInputLineComponent extends React.Component { private _localChange; constructor(props: ITextInputLineComponentProps); shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: string, previousValue: string): void; updateValue(value: string, raisePropertyChanged: boolean): void; render(): JSX.Element; } } declare module NODEEDITOR { export interface ICheckBoxLineComponentProps { label: string; target?: any; propertyName?: string; isSelected?: () => boolean; onSelect?: (value: boolean) => void; onValueChanged?: () => void; onPropertyChangedObservable?: BABYLON.Observable; } export class CheckBoxLineComponent extends React.Component { private static _UniqueIdSeed; private _uniqueId; private _localChange; constructor(props: ICheckBoxLineComponentProps); shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: { isSelected: boolean; }): boolean; onChange(): void; render(): JSX.Element; } } declare module NODEEDITOR { /** * Generic node model which stores information about a node editor block */ export class GenericNodeModel extends DefaultNodeModel { /** * BABYLON.Vector2 for the node if it exists */ vector2: BABYLON.Nullable; /** * BABYLON.Vector3 for the node if it exists */ vector3: BABYLON.Nullable; /** * BABYLON.Vector4 for the node if it exists */ vector4: BABYLON.Nullable; /** * BABYLON.Matrix for the node if it exists */ matrix: BABYLON.Nullable; /** * Constructs the node model */ constructor(); prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; renderProperties(globalState: GlobalState): JSX.Element; } } declare module NODEEDITOR { export class AdvancedLinkModel extends DefaultLinkModel { constructor(); } } declare module NODEEDITOR { /** * Port model */ export class DefaultPortModel extends PortModel { /** * If the port is input or output */ position: string | "input" | "output"; /** * What the port is connected to */ connection: BABYLON.Nullable; defaultValue: any; static idCounter: number; constructor(name: string, type?: string); canLinkToPort(port: DefaultPortModel): boolean; syncWithNodeMaterialConnectionPoint(connection: BABYLON.NodeMaterialConnectionPoint): void; getNodeModel(): DefaultNodeModel; link(outPort: DefaultPortModel): LinkModel; createLinkModel(): LinkModel; static SortInputOutput(a: BABYLON.Nullable, b: BABYLON.Nullable): { input: DefaultPortModel; output: DefaultPortModel; } | null; } } declare module NODEEDITOR { export interface IDefaultPortWidgetProps extends BaseWidgetProps { name: string; node: NodeModel; style: any; } export class DefaultPortWidget extends BaseWidget { constructor(props: IDefaultPortWidgetProps); getClassName(): string; render(): JSX.Element; } } declare module NODEEDITOR { export class PortHelper { private static _GetPortTypeIndicator; static _GetPortStyle(type: BABYLON.NodeMaterialBlockConnectionPointTypes): { background: string; }; static GenerateOutputPorts(node: BABYLON.Nullable, ignoreLabel: boolean): JSX.Element[]; static GenerateInputPorts(node: BABYLON.Nullable, includeOnly?: string[], ignoreLabel?: boolean): JSX.Element[]; } } declare module NODEEDITOR { /** * GenericNodeWidgetProps */ export interface GenericNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } /** * GenericNodeWidgetState */ export interface GenericNodeWidgetState { } /** * Used to display a node block for the node editor */ export class GenericNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: GenericNodeWidgetProps); render(): JSX.Element; } } declare module NODEEDITOR { /** * Node factory which creates editor nodes */ export class GenericNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a GenericNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: GenericNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns generic node model */ getNewInstance(): GenericNodeModel; } } declare module NODEEDITOR { export interface IButtonLineComponentProps { data: string; } export class DraggableLineComponent extends React.Component { constructor(props: IButtonLineComponentProps); render(): JSX.Element; } } declare module NODEEDITOR { interface INodeListComponentProps { globalState: GlobalState; } export class NodeListComponent extends React.Component { constructor(props: INodeListComponentProps); filterContent(filter: string): void; render(): JSX.Element; } } declare module NODEEDITOR { export interface IButtonLineComponentProps { label: string; onClick: () => void; } export class ButtonLineComponent extends React.Component { constructor(props: IButtonLineComponentProps); render(): JSX.Element; } } declare module NODEEDITOR { export class StringTools { private static _SaveAs; private static _Click; /** * Gets the base math type of node material block connection point. * @param type Type to parse. */ static GetBaseType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): string; /** * Download a string into a file that will be saved locally by the browser * @param content defines the string to download locally as a file */ static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void; } } declare module NODEEDITOR { interface IFileButtonLineComponentProps { label: string; onClick: (file: File) => void; accept: string; } export class FileButtonLineComponent extends React.Component { constructor(props: IFileButtonLineComponentProps); onChange(evt: any): void; render(): JSX.Element; } } declare module NODEEDITOR { export class SerializationTools { static Serialize(material: BABYLON.NodeMaterial, globalState: GlobalState): string; static Deserialize(serializationObject: any, globalState: GlobalState): void; } } declare module NODEEDITOR { interface IPropertyTabComponentProps { globalState: GlobalState; } export class PropertyTabComponent extends React.Component; }> { constructor(props: IPropertyTabComponentProps); componentDidMount(): void; load(file: File): void; save(): void; customSave(): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IPortalProps { globalState: GlobalState; } export class Portal extends React.Component { render(): React.ReactPortal; } } declare module NODEEDITOR { interface ISliderLineComponentProps { label: string; target?: any; propertyName?: string; minimum: number; maximum: number; step: number; directValue?: number; useEuler?: boolean; onChange?: (value: number) => void; onInput?: (value: number) => void; onPropertyChangedObservable?: BABYLON.Observable; decimalCount?: number; } export class SliderLineComponent extends React.Component { private _localChange; constructor(props: ISliderLineComponentProps); shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: { value: number; }): boolean; onChange(newValueString: any): void; onInput(newValueString: any): void; prepareDataToRead(value: number): number; render(): JSX.Element; } } declare module NODEEDITOR { interface IFloatLineComponentProps { label: string; target: any; propertyName: string; onChange?: (newValue: number) => void; isInteger?: boolean; onPropertyChangedObservable?: BABYLON.Observable; additionalClass?: string; step?: string; digits?: number; } export class FloatLineComponent extends React.Component { private _localChange; private _store; constructor(props: IFloatLineComponentProps); shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; updateValue(valueString: string): void; render(): JSX.Element; } } declare module NODEEDITOR { /** * BABYLON.Texture node model which stores information about a node editor block */ export class ReflectionTextureNodeModel extends DefaultNodeModel { private _block; /** * BABYLON.Texture for the node if it exists */ texture: BABYLON.Nullable; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; } } declare module NODEEDITOR { class ListLineOption { label: string; value: number | string; } interface IOptionsLineComponentProps { label: string; target: any; className?: string; propertyName?: string; options: ListLineOption[]; noDirectUpdate?: boolean; onSelect?: (value: number | string) => void; onPropertyChangedObservable?: BABYLON.Observable; valuesAreStrings?: boolean; defaultIfNull?: number; getSelection?: (target: any) => number; } export class OptionsLineComponent extends React.Component { private _localChange; private _getValue; constructor(props: IOptionsLineComponentProps); shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: { value: number; }): boolean; raiseOnPropertyChanged(newValue: number | string, previousValue: number | string): void; updateValue(valueString: string): void; render(): JSX.Element; } } declare module NODEEDITOR { interface ITexturePropertyTabComponentProps { globalState: GlobalState; node: TextureNodeModel | ReflectionTextureNodeModel; } export class TexturePropertyTabComponent extends React.Component { constructor(props: ITexturePropertyTabComponentProps); UNSAFE_componentWillUpdate(nextProps: ITexturePropertyTabComponentProps, nextState: { isEmbedded: boolean; loadAsCubeTexture: boolean; }): void; private _generateRandomForCache; updateAfterTextureLoad(): void; removeTexture(): void; _prepareTexture(): void; /** * Replaces the texture of the node * @param file the file of the texture to use */ replaceTexture(file: File): void; replaceTextureWithUrl(url: string): void; render(): JSX.Element; } } declare module NODEEDITOR { /** * BABYLON.Texture node model which stores information about a node editor block */ export class TextureNodeModel extends DefaultNodeModel { private _block; /** * BABYLON.Texture for the node if it exists */ texture: BABYLON.Nullable; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; } } declare module NODEEDITOR { interface ITextureLineComponentProps { texture: BABYLON.BaseTexture; width: number; height: number; globalState?: any; hideChannelSelect?: boolean; } export class TextureLineComponent extends React.Component { constructor(props: ITextureLineComponentProps); shouldComponentUpdate(nextProps: ITextureLineComponentProps, nextState: { displayRed: boolean; displayGreen: boolean; displayBlue: boolean; displayAlpha: boolean; face: number; }): boolean; componentDidMount(): void; componentDidUpdate(): void; updatePreview(): void; render(): JSX.Element; } } declare module NODEEDITOR { /** * GenericNodeWidgetProps */ export interface ITextureNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class TextureNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: ITextureNodeWidgetProps); render(): JSX.Element; } } declare module NODEEDITOR { /** * Node factory which creates editor nodes */ export class TextureNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a TextureNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: TextureNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns texture node model */ getNewInstance(): TextureNodeModel; } } declare module NODEEDITOR { interface INumericInputComponentProps { label: string; value: number; step?: number; onChange: (value: number) => void; } export class NumericInputComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: INumericInputComponentProps); shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: { value: string; }): boolean; updateValue(evt: any): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IVector2LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: BABYLON.Vector2) => void; onPropertyChangedObservable?: BABYLON.Observable; } export class Vector2LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector2LineComponentProps); shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: { isExpanded: boolean; value: BABYLON.Vector2; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Vector2): void; updateStateX(value: number): void; updateStateY(value: number): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IVector2PropertyTabComponentProps { globalState: GlobalState; inputBlock: BABYLON.InputBlock; } export class Vector2PropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module NODEEDITOR { interface IVector3LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: BABYLON.Vector3) => void; onPropertyChangedObservable?: BABYLON.Observable; } export class Vector3LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector3LineComponentProps); shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: { isExpanded: boolean; value: BABYLON.Vector3; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void; updateVector3(): void; updateStateX(value: number): void; updateStateY(value: number): void; updateStateZ(value: number): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IVector3PropertyTabComponentProps { globalState: GlobalState; inputBlock: BABYLON.InputBlock; } export class Vector3PropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module NODEEDITOR { export interface IColor3LineComponentProps { label: string; target: any; propertyName: string; onPropertyChangedObservable?: BABYLON.Observable; onChange?: () => void; } export class Color3LineComponent extends React.Component { private _localChange; constructor(props: IColor3LineComponentProps); shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: { color: BABYLON.Color3; }): boolean; onChange(newValue: string): void; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Color3): void; updateStateR(value: number): void; updateStateG(value: number): void; updateStateB(value: number): void; copyToClipboard(): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IColor3PropertyTabComponentProps { globalState: GlobalState; inputBlock: BABYLON.InputBlock; } export class Color3PropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module NODEEDITOR { interface IFloatPropertyTabComponentProps { globalState: GlobalState; inputBlock: BABYLON.InputBlock; } export class FloatPropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module NODEEDITOR { interface IVector4LineComponentProps { label: string; target?: any; propertyName?: string; value?: BABYLON.Vector4; step?: number; onChange?: (newvalue: BABYLON.Vector4) => void; onPropertyChangedObservable?: BABYLON.Observable; } export class Vector4LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector4LineComponentProps); shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: { isExpanded: boolean; value: BABYLON.Vector4; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Vector4): void; updateVector4(): void; updateStateX(value: number): void; updateStateY(value: number): void; updateStateZ(value: number): void; updateStateW(value: number): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IVector4PropertyTabComponentProps { globalState: GlobalState; inputBlock: BABYLON.InputBlock; } export class Vector4PropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module NODEEDITOR { interface IMatrixLineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newValue: BABYLON.Matrix) => void; onModeChange?: (mode: number) => void; onPropertyChangedObservable?: BABYLON.Observable; mode?: number; } export class MatrixLineComponent extends React.Component { private _localChange; constructor(props: IMatrixLineComponentProps); shouldComponentUpdate(nextProps: IMatrixLineComponentProps, nextState: { value: BABYLON.Matrix; mode: number; angle: number; }): boolean; raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void; updateMatrix(): void; updateRow(value: BABYLON.Vector4, row: number): void; updateBasedOnMode(value: number): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IMatrixPropertyTabComponentProps { globalState: GlobalState; inputBlock: BABYLON.InputBlock; } export class MatrixPropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module NODEEDITOR { interface IInputPropertyTabComponentProps { globalState: GlobalState; inputNode: InputNodeModel; } export class InputPropertyTabComponentProps extends React.Component { constructor(props: IInputPropertyTabComponentProps); renderValue(globalState: GlobalState): JSX.Element | null; setDefaultValue(): void; render(): JSX.Element; } } declare module NODEEDITOR { /** * Generic node model which stores information about a node editor block */ export class InputNodeModel extends DefaultNodeModel { readonly inputBlock: BABYLON.InputBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module NODEEDITOR { /** * GenericNodeWidgetProps */ export interface IInputNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class InputNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: IInputNodeWidgetProps); renderValue(value: string): JSX.Element | null; render(): JSX.Element | null; } } declare module NODEEDITOR { /** * Node factory which creates editor nodes */ export class InputNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a GenericNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: InputNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns input node model */ getNewInstance(): InputNodeModel; } } declare module NODEEDITOR { interface ILogComponentProps { globalState: GlobalState; } export class LogEntry { message: string; isError: boolean; constructor(message: string, isError: boolean); } export class LogComponent extends React.Component { constructor(props: ILogComponentProps); componentDidMount(): void; componentDidUpdate(): void; render(): JSX.Element; } } declare module NODEEDITOR { interface ILightPropertyTabComponentProps { globalState: GlobalState; node: LightNodeModel; } export class LightPropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module NODEEDITOR { /** * BABYLON.Light node model which stores information about a node editor block */ export class LightNodeModel extends DefaultNodeModel { private _block; /** * BABYLON.Light for the node if it exists */ light: BABYLON.Nullable; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; } } declare module NODEEDITOR { /** * GenericNodeWidgetProps */ export interface ILightNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class LightNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: ILightNodeWidgetProps); render(): JSX.Element; } } declare module NODEEDITOR { /** * Node factory which creates editor nodes */ export class LightNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a LightNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: LightNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns light node model */ getNewInstance(): LightNodeModel; } } declare module NODEEDITOR { interface IMessageDialogComponentProps { globalState: GlobalState; } export class MessageDialogComponent extends React.Component { constructor(props: IMessageDialogComponentProps); render(): JSX.Element | null; } } declare module NODEEDITOR { export class AdvancedLinkFactory extends DefaultLinkFactory { constructor(); getNewInstance(initialConfig?: any): AdvancedLinkModel; generateLinkSegment(model: AdvancedLinkModel, widget: DefaultLinkWidget, selected: boolean, path: string): JSX.Element; } } declare module NODEEDITOR { interface IRemapPropertyTabComponentProps { globalState: GlobalState; remapNode: RemapNodeModel; } export class RemapPropertyTabComponentProps extends React.Component { constructor(props: IRemapPropertyTabComponentProps); forceRebuild(): void; render(): JSX.Element; } } declare module NODEEDITOR { /** * Generic node model which stores information about a node editor block */ export class RemapNodeModel extends DefaultNodeModel { readonly remapBlock: BABYLON.RemapBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module NODEEDITOR { /** * RemapNodeWidgetProps */ export interface RemapNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class RemapNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: RemapNodeWidgetProps); renderValue(value: string): JSX.Element | null; extractInputValue(connectionPoint: BABYLON.NodeMaterialConnectionPoint): any; render(): JSX.Element; } } declare module NODEEDITOR { /** * Node factory which creates editor nodes */ export class RemapNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a GenericNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: RemapNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns input node model */ getNewInstance(): RemapNodeModel; } } declare module NODEEDITOR { export class GraphHelper { static DistributeGraph(model: DiagramModel): dagre.Node[]; private static _MapElements; private static _MapEdges; } } declare module NODEEDITOR { export enum PreviewMeshType { Sphere = 0, Box = 1, Torus = 2, Cylinder = 3, Plane = 4, ShaderBall = 5, Custom = 6 } } declare module NODEEDITOR { export class PreviewManager { private _nodeMaterial; private _onBuildObserver; private _onPreviewCommandActivatedObserver; private _onAnimationCommandActivatedObserver; private _onUpdateRequiredObserver; private _onPreviewBackgroundChangedObserver; private _onBackFaceCullingChangedObserver; private _onDepthPrePassChangedObserver; private _onLightUpdatedObserver; private _engine; private _scene; private _meshes; private _camera; private _material; private _globalState; private _currentType; private _lightParent; constructor(targetCanvas: HTMLCanvasElement, globalState: GlobalState); private _handleAnimations; private _prepareLights; private _prepareMeshes; private _refreshPreviewMesh; private _forceCompilationAsync; private _updatePreview; dispose(): void; } } declare module NODEEDITOR { export interface INodeLocationInfo { blockId: number; x: number; y: number; } } declare module NODEEDITOR { interface IPreviewMeshControlComponent { globalState: GlobalState; } export class PreviewMeshControlComponent extends React.Component { changeMeshType(newOne: PreviewMeshType): void; useCustomMesh(evt: any): void; render(): JSX.Element; } } declare module NODEEDITOR { interface ITrigonometryTabComponentProps { globalState: GlobalState; trigonometryNode: TrigonometryNodeModel; } export class TrigonometryPropertyTabComponentProps extends React.Component { constructor(props: ITrigonometryTabComponentProps); render(): JSX.Element; } } declare module NODEEDITOR { /** * Generic node model which stores information about a node editor block */ export class TrigonometryNodeModel extends DefaultNodeModel { readonly trigonometryBlock: BABYLON.TrigonometryBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module NODEEDITOR { /** * GenericNodeWidgetProps */ export interface ITrigonometryNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class TrigonometryNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: ITrigonometryNodeWidgetProps); render(): JSX.Element; } } declare module NODEEDITOR { /** * Node factory which creates editor nodes */ export class TrigonometryNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a GenericNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: TrigonometryNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns input node model */ getNewInstance(): TrigonometryNodeModel; } } declare module NODEEDITOR { interface IClampPropertyTabComponentProps { globalState: GlobalState; remapNode: ClampNodeModel; } export class ClampPropertyTabComponentProps extends React.Component { constructor(props: IClampPropertyTabComponentProps); forceRebuild(): void; render(): JSX.Element; } } declare module NODEEDITOR { export class ClampNodeModel extends DefaultNodeModel { readonly clampBlock: BABYLON.ClampBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module NODEEDITOR { export interface ClampNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } export class ClampNodeWidget extends React.Component { constructor(props: ClampNodeWidgetProps); renderValue(value: string): JSX.Element | null; render(): JSX.Element; } } declare module NODEEDITOR { export class ClampNodeFactory extends SRD.AbstractNodeFactory { private _globalState; constructor(globalState: GlobalState); generateReactWidget(diagramEngine: SRD.DiagramEngine, node: ClampNodeModel): JSX.Element; getNewInstance(): ClampNodeModel; } } declare module NODEEDITOR { interface ILightPropertyTabComponentProps { globalState: GlobalState; node: LightInformationNodeModel; } export class LightInformationPropertyTabComponent extends React.Component { render(): JSX.Element; } } declare module NODEEDITOR { export class LightInformationNodeModel extends DefaultNodeModel { private _block; /** * BABYLON.Light for the node if it exists */ light: BABYLON.Nullable; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; } } declare module NODEEDITOR { /** * GenericNodeWidgetProps */ export interface ILightInformationNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class LightInformationNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: ILightInformationNodeWidgetProps); render(): JSX.Element; } } declare module NODEEDITOR { /** * Node factory which creates editor nodes */ export class LightInformationNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a LightNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: LightInformationNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns light node model */ getNewInstance(): LightInformationNodeModel; } } declare module NODEEDITOR { interface IPreviewAreaComponentProps { globalState: GlobalState; width: number; } export class PreviewAreaComponent extends React.Component { constructor(props: IPreviewAreaComponentProps); changeAnimation(): void; changeBackground(value: string): void; changeBackFaceCulling(value: boolean): void; changeDepthPrePass(value: boolean): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IGradientStepComponentProps { globalState: GlobalState; step: BABYLON.GradientBlockColorStep; lineIndex: number; onDelete: () => void; onUpdateStep: () => void; } export class GradientStepComponent extends React.Component { constructor(props: IGradientStepComponentProps); updateColor(color: string): void; updateStep(gradient: number): void; render(): JSX.Element; } } declare module NODEEDITOR { interface IGradientPropertyTabComponentProps { globalState: GlobalState; gradientNode: GradientNodeModel; } export class GradientPropertyTabComponentProps extends React.Component { constructor(props: IGradientPropertyTabComponentProps); forceRebuild(): void; deleteStep(step: BABYLON.GradientBlockColorStep): void; addNewStep(): void; render(): JSX.Element; } } declare module NODEEDITOR { export class GradientNodeModel extends DefaultNodeModel { readonly gradientBlock: BABYLON.GradientBlock; /** * Constructs the node model */ constructor(); renderProperties(globalState: GlobalState): JSX.Element; } } declare module NODEEDITOR { export interface IGradientNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } export class GradientNodeWidget extends React.Component { constructor(props: IGradientNodeWidgetProps); renderValue(value: string): JSX.Element | null; render(): JSX.Element; } } declare module NODEEDITOR { export class GradientNodeFactory extends SRD.AbstractNodeFactory { private _globalState; constructor(globalState: GlobalState); generateReactWidget(diagramEngine: SRD.DiagramEngine, node: GradientNodeModel): JSX.Element; getNewInstance(): GradientNodeModel; } } declare module NODEEDITOR { /** * GenericNodeWidgetProps */ export interface IReflectionTextureNodeWidgetProps { node: BABYLON.Nullable; globalState: GlobalState; } /** * Used to display a node block for the node editor */ export class ReflectionTextureNodeWidget extends React.Component { /** * Creates a GenericNodeWidget * @param props */ constructor(props: IReflectionTextureNodeWidgetProps); render(): JSX.Element; } } declare module NODEEDITOR { /** * Node factory which creates editor nodes */ export class ReflectionTextureNodeFactory extends SRD.AbstractNodeFactory { private _globalState; /** * Constructs a TextureNodeFactory */ constructor(globalState: GlobalState); /** * Generates a node widget * @param diagramEngine diagram engine * @param node node to generate * @returns node widget jsx */ generateReactWidget(diagramEngine: SRD.DiagramEngine, node: ReflectionTextureNodeModel): JSX.Element; /** * Gets a new instance of a node model * @returns texture node model */ getNewInstance(): ReflectionTextureNodeModel; } } declare module NODEEDITOR { interface IGraphEditorProps { globalState: GlobalState; } export class NodeCreationOptions { nodeMaterialBlock: BABYLON.NodeMaterialBlock; type?: string; connection?: BABYLON.NodeMaterialConnectionPoint; } export class GraphEditor extends React.Component { private readonly NodeWidth; private _engine; private _model; private _startX; private _moveInProgress; private _leftWidth; private _rightWidth; private _nodes; private _blocks; private _previewManager; private _copiedNodes; private _mouseLocationX; private _mouseLocationY; private _onWidgetKeyUpPointer; private _altKeyIsPressed; private _oldY; /** @hidden */ _toAdd: LinkModel[] | null; /** * Creates a node and recursivly creates its parent nodes from it's input * @param nodeMaterialBlock */ createNodeFromObject(options: NodeCreationOptions): DefaultNodeModel; addValueNode(type: string): DefaultNodeModel; onWidgetKeyUp(evt: any): void; componentDidMount(): void; componentWillUnmount(): void; constructor(props: IGraphEditorProps); zoomToFit(retry?: number): void; buildMaterial(): void; applyFragmentOutputConstraints(rootInput: DefaultPortModel): void; build(needToWait?: boolean): void; reOrganize(locations?: BABYLON.Nullable): void; onPointerDown(evt: React.PointerEvent): void; onPointerUp(evt: React.PointerEvent): void; resizeColumns(evt: React.PointerEvent, forLeft?: boolean): void; buildColumnLayout(): string; emitNewBlock(event: React.DragEvent): void; render(): JSX.Element; } } declare module NODEEDITOR { /** * Generic node model which stores information about a node editor block */ export class DefaultNodeModel extends NodeModel { /** * The babylon block this node represents */ block: BABYLON.Nullable; ports: { [s: string]: DefaultPortModel; }; /** * Constructs the node model */ constructor(key: string); prepare(options: NodeCreationOptions, nodes: Array, model: DiagramModel, graphEditor: GraphEditor): void; renderProperties(globalState: GlobalState): JSX.Element | null; } } declare module NODEEDITOR { export class GlobalState { nodeMaterial: BABYLON.NodeMaterial; hostElement: HTMLElement; hostDocument: HTMLDocument; onSelectionChangedObservable: BABYLON.Observable>; onRebuildRequiredObservable: BABYLON.Observable; onResetRequiredObservable: BABYLON.Observable; onUpdateRequiredObservable: BABYLON.Observable; onZoomToFitRequiredObservable: BABYLON.Observable; onReOrganizedRequiredObservable: BABYLON.Observable; onLogRequiredObservable: BABYLON.Observable; onErrorMessageDialogRequiredObservable: BABYLON.Observable; onIsLoadingChanged: BABYLON.Observable; onPreviewCommandActivated: BABYLON.Observable; onLightUpdated: BABYLON.Observable; onPreviewBackgroundChanged: BABYLON.Observable; onBackFaceCullingChanged: BABYLON.Observable; onDepthPrePassChanged: BABYLON.Observable; onAnimationCommandActivated: BABYLON.Observable; onGetNodeFromBlock: (block: BABYLON.NodeMaterialBlock) => NodeModel; previewMeshType: PreviewMeshType; previewMeshFile: File; rotatePreview: boolean; backgroundColor: BABYLON.Color4; backFaceCulling: boolean; depthPrePass: boolean; blockKeyboardEvents: boolean; hemisphericLight: boolean; directionalLight0: boolean; directionalLight1: boolean; controlCamera: boolean; customSave?: { label: string; action: (data: string) => Promise; }; constructor(); } } declare module NODEEDITOR { export class Popup { static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null; private static _CopyStyles; } } declare module NODEEDITOR { /** * Interface used to specify creation options for the node editor */ export interface INodeEditorOptions { nodeMaterial: BABYLON.NodeMaterial; hostElement?: HTMLElement; customSave?: { label: string; action: (data: string) => Promise; }; customLoadObservable?: BABYLON.Observable; } /** * Class used to create a node editor */ export class NodeEditor { private static _CurrentState; /** * Show the node editor * @param options defines the options to use to configure the node editor */ static Show(options: INodeEditorOptions): void; } }