babylonjs-node-editor 5.0.0-beta.6 → 5.0.0-beta.8-snapshot

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2339 @@
1
+
2
+ declare module "babylonjs-node-editor/blockTools" {
3
+ import { DiscardBlock } from "babylonjs/Materials/Node/Blocks/Fragment/discardBlock";
4
+ import { BonesBlock } from "babylonjs/Materials/Node/Blocks/Vertex/bonesBlock";
5
+ import { InstancesBlock } from "babylonjs/Materials/Node/Blocks/Vertex/instancesBlock";
6
+ import { MorphTargetsBlock } from "babylonjs/Materials/Node/Blocks/Vertex/morphTargetsBlock";
7
+ import { ImageProcessingBlock } from "babylonjs/Materials/Node/Blocks/Fragment/imageProcessingBlock";
8
+ import { ColorMergerBlock } from "babylonjs/Materials/Node/Blocks/colorMergerBlock";
9
+ import { VectorMergerBlock } from "babylonjs/Materials/Node/Blocks/vectorMergerBlock";
10
+ import { ColorSplitterBlock } from "babylonjs/Materials/Node/Blocks/colorSplitterBlock";
11
+ import { VectorSplitterBlock } from "babylonjs/Materials/Node/Blocks/vectorSplitterBlock";
12
+ import { RemapBlock } from "babylonjs/Materials/Node/Blocks/remapBlock";
13
+ import { TextureBlock } from "babylonjs/Materials/Node/Blocks/Dual/textureBlock";
14
+ import { ReflectionTextureBlock } from "babylonjs/Materials/Node/Blocks/Dual/reflectionTextureBlock";
15
+ import { LightBlock } from "babylonjs/Materials/Node/Blocks/Dual/lightBlock";
16
+ import { FogBlock } from "babylonjs/Materials/Node/Blocks/Dual/fogBlock";
17
+ import { VertexOutputBlock } from "babylonjs/Materials/Node/Blocks/Vertex/vertexOutputBlock";
18
+ import { FragmentOutputBlock } from "babylonjs/Materials/Node/Blocks/Fragment/fragmentOutputBlock";
19
+ import { NormalizeBlock } from "babylonjs/Materials/Node/Blocks/normalizeBlock";
20
+ import { AddBlock } from "babylonjs/Materials/Node/Blocks/addBlock";
21
+ import { ModBlock } from "babylonjs/Materials/Node/Blocks/modBlock";
22
+ import { ScaleBlock } from "babylonjs/Materials/Node/Blocks/scaleBlock";
23
+ import { TrigonometryBlock } from "babylonjs/Materials/Node/Blocks/trigonometryBlock";
24
+ import { ConditionalBlock } from "babylonjs/Materials/Node/Blocks/conditionalBlock";
25
+ import { ClampBlock } from "babylonjs/Materials/Node/Blocks/clampBlock";
26
+ import { CrossBlock } from "babylonjs/Materials/Node/Blocks/crossBlock";
27
+ import { DotBlock } from "babylonjs/Materials/Node/Blocks/dotBlock";
28
+ import { MultiplyBlock } from "babylonjs/Materials/Node/Blocks/multiplyBlock";
29
+ import { TransformBlock } from "babylonjs/Materials/Node/Blocks/transformBlock";
30
+ import { NodeMaterialBlockConnectionPointTypes } from "babylonjs/Materials/Node/Enums/nodeMaterialBlockConnectionPointTypes";
31
+ import { FresnelBlock } from "babylonjs/Materials/Node/Blocks/fresnelBlock";
32
+ import { LerpBlock } from "babylonjs/Materials/Node/Blocks/lerpBlock";
33
+ import { NLerpBlock } from "babylonjs/Materials/Node/Blocks/nLerpBlock";
34
+ import { DivideBlock } from "babylonjs/Materials/Node/Blocks/divideBlock";
35
+ import { SubtractBlock } from "babylonjs/Materials/Node/Blocks/subtractBlock";
36
+ import { StepBlock } from "babylonjs/Materials/Node/Blocks/stepBlock";
37
+ import { SmoothStepBlock } from "babylonjs/Materials/Node/Blocks/smoothStepBlock";
38
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
39
+ import { OneMinusBlock } from "babylonjs/Materials/Node/Blocks/oneMinusBlock";
40
+ import { ViewDirectionBlock } from "babylonjs/Materials/Node/Blocks/viewDirectionBlock";
41
+ import { LightInformationBlock } from "babylonjs/Materials/Node/Blocks/Vertex/lightInformationBlock";
42
+ import { MaxBlock } from "babylonjs/Materials/Node/Blocks/maxBlock";
43
+ import { MinBlock } from "babylonjs/Materials/Node/Blocks/minBlock";
44
+ import { PerturbNormalBlock } from "babylonjs/Materials/Node/Blocks/Fragment/perturbNormalBlock";
45
+ import { LengthBlock } from "babylonjs/Materials/Node/Blocks/lengthBlock";
46
+ import { DistanceBlock } from "babylonjs/Materials/Node/Blocks/distanceBlock";
47
+ import { FrontFacingBlock } from "babylonjs/Materials/Node/Blocks/Fragment/frontFacingBlock";
48
+ import { NegateBlock } from "babylonjs/Materials/Node/Blocks/negateBlock";
49
+ import { PowBlock } from "babylonjs/Materials/Node/Blocks/powBlock";
50
+ import { Scene } from "babylonjs/scene";
51
+ import { RandomNumberBlock } from "babylonjs/Materials/Node/Blocks/randomNumberBlock";
52
+ import { ReplaceColorBlock } from "babylonjs/Materials/Node/Blocks/replaceColorBlock";
53
+ import { PosterizeBlock } from "babylonjs/Materials/Node/Blocks/posterizeBlock";
54
+ import { ArcTan2Block } from "babylonjs/Materials/Node/Blocks/arcTan2Block";
55
+ import { ReciprocalBlock } from "babylonjs/Materials/Node/Blocks/reciprocalBlock";
56
+ import { GradientBlock } from "babylonjs/Materials/Node/Blocks/gradientBlock";
57
+ import { WaveBlock } from "babylonjs/Materials/Node/Blocks/waveBlock";
58
+ import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial";
59
+ import { WorleyNoise3DBlock } from "babylonjs/Materials/Node/Blocks/worleyNoise3DBlock";
60
+ import { SimplexPerlin3DBlock } from "babylonjs/Materials/Node/Blocks/simplexPerlin3DBlock";
61
+ import { NormalBlendBlock } from "babylonjs/Materials/Node/Blocks/normalBlendBlock";
62
+ import { Rotate2dBlock } from "babylonjs/Materials/Node/Blocks/rotate2dBlock";
63
+ import { DerivativeBlock } from "babylonjs/Materials/Node/Blocks/Fragment/derivativeBlock";
64
+ import { RefractBlock } from "babylonjs/Materials/Node/Blocks/refractBlock";
65
+ import { ReflectBlock } from "babylonjs/Materials/Node/Blocks/reflectBlock";
66
+ import { DesaturateBlock } from "babylonjs/Materials/Node/Blocks/desaturateBlock";
67
+ import { PBRMetallicRoughnessBlock } from "babylonjs/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock";
68
+ import { SheenBlock } from "babylonjs/Materials/Node/Blocks/PBR/sheenBlock";
69
+ import { AnisotropyBlock } from "babylonjs/Materials/Node/Blocks/PBR/anisotropyBlock";
70
+ import { ReflectionBlock } from "babylonjs/Materials/Node/Blocks/PBR/reflectionBlock";
71
+ import { ClearCoatBlock } from "babylonjs/Materials/Node/Blocks/PBR/clearCoatBlock";
72
+ import { RefractionBlock } from "babylonjs/Materials/Node/Blocks/PBR/refractionBlock";
73
+ import { SubSurfaceBlock } from "babylonjs/Materials/Node/Blocks/PBR/subSurfaceBlock";
74
+ import { CurrentScreenBlock } from "babylonjs/Materials/Node/Blocks/Dual/currentScreenBlock";
75
+ import { ParticleTextureBlock } from "babylonjs/Materials/Node/Blocks/Particle/particleTextureBlock";
76
+ import { ParticleRampGradientBlock } from "babylonjs/Materials/Node/Blocks/Particle/particleRampGradientBlock";
77
+ import { ParticleBlendMultiplyBlock } from "babylonjs/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock";
78
+ import { FragCoordBlock } from "babylonjs/Materials/Node/Blocks/Fragment/fragCoordBlock";
79
+ import { ScreenSizeBlock } from "babylonjs/Materials/Node/Blocks/Fragment/screenSizeBlock";
80
+ import { MatrixBuilderBlock } from "babylonjs/Materials/Node/Blocks/matrixBuilderBlock";
81
+ import { SceneDepthBlock } from "babylonjs/Materials/Node/Blocks/Dual/sceneDepthBlock";
82
+ import { ImageSourceBlock } from "babylonjs/Materials/Node/Blocks/Dual/imageSourceBlock";
83
+ import { CloudBlock } from "babylonjs/Materials/Node/Blocks/cloudBlock";
84
+ import { VoronoiNoiseBlock } from "babylonjs/Materials/Node/Blocks/voronoiNoiseBlock";
85
+ import { ScreenSpaceBlock } from "babylonjs/Materials/Node/Blocks/Fragment/screenSpaceBlock";
86
+ import { TwirlBlock } from "babylonjs/Materials/Node/Blocks/Fragment/twirlBlock";
87
+ import { ElbowBlock } from "babylonjs/Materials/Node/Blocks/elbowBlock";
88
+ import { ClipPlanesBlock } from "babylonjs/Materials/Node/Blocks/Dual/clipPlanesBlock";
89
+ export declare class BlockTools {
90
+ static GetBlockFromString(data: string, scene: Scene, nodeMaterial: NodeMaterial): ElbowBlock | TwirlBlock | VoronoiNoiseBlock | ScreenSpaceBlock | CloudBlock | MatrixBuilderBlock | DesaturateBlock | RefractBlock | ReflectBlock | DerivativeBlock | Rotate2dBlock | NormalBlendBlock | 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 | ModBlock | StepBlock | SmoothStepBlock | OneMinusBlock | ReciprocalBlock | ViewDirectionBlock | LightInformationBlock | MaxBlock | MinBlock | LengthBlock | DistanceBlock | NegateBlock | PerturbNormalBlock | RandomNumberBlock | ReplaceColorBlock | PosterizeBlock | ArcTan2Block | GradientBlock | FrontFacingBlock | WaveBlock | InputBlock | PBRMetallicRoughnessBlock | SheenBlock | AnisotropyBlock | ReflectionBlock | ClearCoatBlock | RefractionBlock | SubSurfaceBlock | CurrentScreenBlock | ParticleTextureBlock | ParticleRampGradientBlock | ParticleBlendMultiplyBlock | FragCoordBlock | ScreenSizeBlock | SceneDepthBlock | ConditionalBlock | ImageSourceBlock | ClipPlanesBlock | null;
91
+ static GetColorFromConnectionNodeType(type: NodeMaterialBlockConnectionPointTypes): string;
92
+ static GetConnectionNodeTypeFromString(type: string): NodeMaterialBlockConnectionPointTypes.Float | NodeMaterialBlockConnectionPointTypes.Vector2 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4 | NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Color4 | NodeMaterialBlockConnectionPointTypes.Matrix | NodeMaterialBlockConnectionPointTypes.AutoDetect;
93
+ static GetStringFromConnectionNodeType(type: NodeMaterialBlockConnectionPointTypes): "" | "Float" | "Vector2" | "Vector3" | "Vector4" | "Matrix" | "Color3" | "Color4";
94
+ }
95
+
96
+ }
97
+ declare module "babylonjs-node-editor/components/log/logComponent" {
98
+ import * as React from "react";
99
+ import { GlobalState } from "babylonjs-node-editor/globalState";
100
+ interface ILogComponentProps {
101
+ globalState: GlobalState;
102
+ }
103
+ export declare class LogEntry {
104
+ message: string;
105
+ isError: boolean;
106
+ constructor(message: string, isError: boolean);
107
+ }
108
+ export declare class LogComponent extends React.Component<ILogComponentProps, {
109
+ logs: LogEntry[];
110
+ }> {
111
+ constructor(props: ILogComponentProps);
112
+ componentDidMount(): void;
113
+ componentDidUpdate(): void;
114
+ render(): JSX.Element;
115
+ }
116
+ export {};
117
+
118
+ }
119
+ declare module "babylonjs-node-editor/components/nodeList/nodeListComponent" {
120
+ import * as React from "react";
121
+ import { GlobalState } from "babylonjs-node-editor/globalState";
122
+ interface INodeListComponentProps {
123
+ globalState: GlobalState;
124
+ }
125
+ export declare class NodeListComponent extends React.Component<INodeListComponentProps, {
126
+ filter: string;
127
+ }> {
128
+ private _onResetRequiredObserver;
129
+ private static _Tooltips;
130
+ private _customFrameList;
131
+ private _customBlockList;
132
+ constructor(props: INodeListComponentProps);
133
+ componentWillUnmount(): void;
134
+ filterContent(filter: string): void;
135
+ loadCustomFrame(file: File): void;
136
+ removeItem(value: string): void;
137
+ loadCustomBlock(file: File): void;
138
+ removeCustomBlock(value: string): void;
139
+ render(): JSX.Element;
140
+ }
141
+ export {};
142
+
143
+ }
144
+ declare module "babylonjs-node-editor/components/preview/previewAreaComponent" {
145
+ import * as React from "react";
146
+ import { GlobalState } from "babylonjs-node-editor/globalState";
147
+ interface IPreviewAreaComponentProps {
148
+ globalState: GlobalState;
149
+ width: number;
150
+ }
151
+ export declare class PreviewAreaComponent extends React.Component<IPreviewAreaComponentProps, {
152
+ isLoading: boolean;
153
+ }> {
154
+ private _onIsLoadingChangedObserver;
155
+ private _onResetRequiredObserver;
156
+ constructor(props: IPreviewAreaComponentProps);
157
+ componentWillUnmount(): void;
158
+ changeBackFaceCulling(value: boolean): void;
159
+ changeDepthPrePass(value: boolean): void;
160
+ changeParticleSystemBlendMode(newOne: number): void;
161
+ render(): JSX.Element;
162
+ }
163
+ export {};
164
+
165
+ }
166
+ declare module "babylonjs-node-editor/components/preview/previewManager" {
167
+ import { GlobalState } from "babylonjs-node-editor/globalState";
168
+ import "babylonjs/Rendering/depthRendererSceneComponent";
169
+ export declare class PreviewManager {
170
+ private _nodeMaterial;
171
+ private _onBuildObserver;
172
+ private _onPreviewCommandActivatedObserver;
173
+ private _onAnimationCommandActivatedObserver;
174
+ private _onUpdateRequiredObserver;
175
+ private _onPreviewBackgroundChangedObserver;
176
+ private _onBackFaceCullingChangedObserver;
177
+ private _onDepthPrePassChangedObserver;
178
+ private _onLightUpdatedObserver;
179
+ private _engine;
180
+ private _scene;
181
+ private _meshes;
182
+ private _camera;
183
+ private _material;
184
+ private _globalState;
185
+ private _currentType;
186
+ private _lightParent;
187
+ private _postprocess;
188
+ private _proceduralTexture;
189
+ private _particleSystem;
190
+ private _layer;
191
+ constructor(targetCanvas: HTMLCanvasElement, globalState: GlobalState);
192
+ private _handleAnimations;
193
+ private _prepareLights;
194
+ private _prepareScene;
195
+ private _refreshPreviewMesh;
196
+ private _loadParticleSystem;
197
+ private _forceCompilationAsync;
198
+ private _updatePreview;
199
+ dispose(): void;
200
+ }
201
+
202
+ }
203
+ declare module "babylonjs-node-editor/components/preview/previewMeshControlComponent" {
204
+ import * as React from "react";
205
+ import { GlobalState } from "babylonjs-node-editor/globalState";
206
+ import { PreviewType } from "babylonjs-node-editor/components/preview/previewType";
207
+ interface IPreviewMeshControlComponent {
208
+ globalState: GlobalState;
209
+ togglePreviewAreaComponent: () => void;
210
+ }
211
+ export declare class PreviewMeshControlComponent extends React.Component<IPreviewMeshControlComponent> {
212
+ private colorInputRef;
213
+ private filePickerRef;
214
+ private _onResetRequiredObserver;
215
+ constructor(props: IPreviewMeshControlComponent);
216
+ componentWillUnmount(): void;
217
+ changeMeshType(newOne: PreviewType): void;
218
+ useCustomMesh(evt: any): void;
219
+ onPopUp(): void;
220
+ changeAnimation(): void;
221
+ changeBackground(value: string): void;
222
+ changeBackgroundClick(): void;
223
+ render(): JSX.Element;
224
+ }
225
+ export {};
226
+
227
+ }
228
+ declare module "babylonjs-node-editor/components/preview/previewType" {
229
+ export declare enum PreviewType {
230
+ Sphere = 0,
231
+ Box = 1,
232
+ Torus = 2,
233
+ Cylinder = 3,
234
+ Plane = 4,
235
+ ShaderBall = 5,
236
+ DefaultParticleSystem = 6,
237
+ Bubbles = 7,
238
+ Smoke = 8,
239
+ Rain = 9,
240
+ Explosion = 10,
241
+ Fire = 11,
242
+ Custom = 12
243
+ }
244
+
245
+ }
246
+ declare module "babylonjs-node-editor/components/propertyTab/inputsPropertyTabComponent" {
247
+ import * as React from "react";
248
+ import { GlobalState } from "babylonjs-node-editor/globalState";
249
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
250
+ interface IInputsPropertyTabComponentProps {
251
+ globalState: GlobalState;
252
+ inputs: InputBlock[];
253
+ }
254
+ export declare class InputsPropertyTabComponent extends React.Component<IInputsPropertyTabComponentProps> {
255
+ constructor(props: IInputsPropertyTabComponentProps);
256
+ processInputBlockUpdate(ib: InputBlock): void;
257
+ renderInputBlock(block: InputBlock): JSX.Element | null;
258
+ render(): JSX.Element;
259
+ }
260
+ export {};
261
+
262
+ }
263
+ declare module "babylonjs-node-editor/components/propertyTab/properties/color3PropertyTabComponent" {
264
+ import * as React from "react";
265
+ import { GlobalState } from "babylonjs-node-editor/globalState";
266
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
267
+ interface IColor3PropertyTabComponentProps {
268
+ globalState: GlobalState;
269
+ inputBlock: InputBlock;
270
+ }
271
+ export declare class Color3PropertyTabComponent extends React.Component<IColor3PropertyTabComponentProps> {
272
+ render(): JSX.Element;
273
+ }
274
+ export {};
275
+
276
+ }
277
+ declare module "babylonjs-node-editor/components/propertyTab/properties/color4PropertyTabComponent" {
278
+ import * as React from "react";
279
+ import { GlobalState } from "babylonjs-node-editor/globalState";
280
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
281
+ interface IColor4PropertyTabComponentProps {
282
+ globalState: GlobalState;
283
+ inputBlock: InputBlock;
284
+ }
285
+ export declare class Color4PropertyTabComponent extends React.Component<IColor4PropertyTabComponentProps> {
286
+ render(): JSX.Element;
287
+ }
288
+ export {};
289
+
290
+ }
291
+ declare module "babylonjs-node-editor/components/propertyTab/properties/floatPropertyTabComponent" {
292
+ import * as React from "react";
293
+ import { GlobalState } from "babylonjs-node-editor/globalState";
294
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
295
+ interface IFloatPropertyTabComponentProps {
296
+ globalState: GlobalState;
297
+ inputBlock: InputBlock;
298
+ }
299
+ export declare class FloatPropertyTabComponent extends React.Component<IFloatPropertyTabComponentProps> {
300
+ render(): JSX.Element;
301
+ }
302
+ export {};
303
+
304
+ }
305
+ declare module "babylonjs-node-editor/components/propertyTab/properties/matrixPropertyTabComponent" {
306
+ import * as React from "react";
307
+ import { GlobalState } from "babylonjs-node-editor/globalState";
308
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
309
+ interface IMatrixPropertyTabComponentProps {
310
+ globalState: GlobalState;
311
+ inputBlock: InputBlock;
312
+ }
313
+ export declare class MatrixPropertyTabComponent extends React.Component<IMatrixPropertyTabComponentProps> {
314
+ render(): JSX.Element;
315
+ }
316
+ export {};
317
+
318
+ }
319
+ declare module "babylonjs-node-editor/components/propertyTab/properties/vector2PropertyTabComponent" {
320
+ import * as React from "react";
321
+ import { GlobalState } from "babylonjs-node-editor/globalState";
322
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
323
+ interface IVector2PropertyTabComponentProps {
324
+ globalState: GlobalState;
325
+ inputBlock: InputBlock;
326
+ }
327
+ export declare class Vector2PropertyTabComponent extends React.Component<IVector2PropertyTabComponentProps> {
328
+ render(): JSX.Element;
329
+ }
330
+ export {};
331
+
332
+ }
333
+ declare module "babylonjs-node-editor/components/propertyTab/properties/vector3PropertyTabComponent" {
334
+ import * as React from "react";
335
+ import { GlobalState } from "babylonjs-node-editor/globalState";
336
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
337
+ interface IVector3PropertyTabComponentProps {
338
+ globalState: GlobalState;
339
+ inputBlock: InputBlock;
340
+ }
341
+ export declare class Vector3PropertyTabComponent extends React.Component<IVector3PropertyTabComponentProps> {
342
+ render(): JSX.Element;
343
+ }
344
+ export {};
345
+
346
+ }
347
+ declare module "babylonjs-node-editor/components/propertyTab/properties/vector4PropertyTabComponent" {
348
+ import * as React from "react";
349
+ import { GlobalState } from "babylonjs-node-editor/globalState";
350
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
351
+ interface IVector4PropertyTabComponentProps {
352
+ globalState: GlobalState;
353
+ inputBlock: InputBlock;
354
+ }
355
+ export declare class Vector4PropertyTabComponent extends React.Component<IVector4PropertyTabComponentProps> {
356
+ render(): JSX.Element;
357
+ }
358
+ export {};
359
+
360
+ }
361
+ declare module "babylonjs-node-editor/components/propertyTab/propertyTabComponent" {
362
+ import * as React from "react";
363
+ import { GlobalState } from "babylonjs-node-editor/globalState";
364
+ import { Nullable } from "babylonjs/types";
365
+ import { GraphNode } from "babylonjs-node-editor/diagram/graphNode";
366
+ import { GraphFrame } from "babylonjs-node-editor/diagram/graphFrame";
367
+ import { InputBlock } from "babylonjs/Materials/Node/Blocks/Input/inputBlock";
368
+ import { FrameNodePort } from "babylonjs-node-editor/diagram/frameNodePort";
369
+ import { NodePort } from "babylonjs-node-editor/diagram/nodePort";
370
+ interface IPropertyTabComponentProps {
371
+ globalState: GlobalState;
372
+ }
373
+ interface IPropertyTabComponentState {
374
+ currentNode: Nullable<GraphNode>;
375
+ currentFrame: Nullable<GraphFrame>;
376
+ currentFrameNodePort: Nullable<FrameNodePort>;
377
+ currentNodePort: Nullable<NodePort>;
378
+ uploadInProgress: boolean;
379
+ }
380
+ export declare class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
381
+ private _onBuiltObserver;
382
+ private _modeSelect;
383
+ constructor(props: IPropertyTabComponentProps);
384
+ componentDidMount(): void;
385
+ componentWillUnmount(): void;
386
+ processInputBlockUpdate(ib: InputBlock): void;
387
+ renderInputBlock(block: InputBlock): JSX.Element | null;
388
+ load(file: File): void;
389
+ loadFrame(file: File): void;
390
+ save(): void;
391
+ customSave(): void;
392
+ saveToSnippetServer(): void;
393
+ loadFromSnippet(): void;
394
+ changeMode(value: any, force?: boolean, loadDefault?: boolean): boolean;
395
+ render(): JSX.Element;
396
+ }
397
+ export {};
398
+
399
+ }
400
+ declare module "babylonjs-node-editor/diagram/display/clampDisplayManager" {
401
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
402
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
403
+ export declare class ClampDisplayManager implements IDisplayManager {
404
+ getHeaderClass(block: NodeMaterialBlock): string;
405
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
406
+ getHeaderText(block: NodeMaterialBlock): string;
407
+ getBackgroundColor(block: NodeMaterialBlock): string;
408
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
409
+ }
410
+
411
+ }
412
+ declare module "babylonjs-node-editor/diagram/display/conditionalDisplayManager" {
413
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
414
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
415
+ export declare class ConditionalDisplayManager implements IDisplayManager {
416
+ getHeaderClass(block: NodeMaterialBlock): string;
417
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
418
+ getHeaderText(block: NodeMaterialBlock): string;
419
+ getBackgroundColor(block: NodeMaterialBlock): string;
420
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
421
+ }
422
+
423
+ }
424
+ declare module "babylonjs-node-editor/diagram/display/discardDisplayManager" {
425
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
426
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
427
+ export declare class DiscardDisplayManager implements IDisplayManager {
428
+ getHeaderClass(block: NodeMaterialBlock): string;
429
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
430
+ getHeaderText(block: NodeMaterialBlock): string;
431
+ getBackgroundColor(block: NodeMaterialBlock): string;
432
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
433
+ }
434
+
435
+ }
436
+ declare module "babylonjs-node-editor/diagram/display/displayManager" {
437
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
438
+ export interface IDisplayManager {
439
+ getHeaderClass(block: NodeMaterialBlock): string;
440
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
441
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
442
+ getBackgroundColor(block: NodeMaterialBlock): string;
443
+ getHeaderText(block: NodeMaterialBlock): string;
444
+ }
445
+
446
+ }
447
+ declare module "babylonjs-node-editor/diagram/display/elbowDisplayManager" {
448
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
449
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
450
+ export declare class ElbowDisplayManager implements IDisplayManager {
451
+ getHeaderClass(block: NodeMaterialBlock): string;
452
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
453
+ getHeaderText(block: NodeMaterialBlock): string;
454
+ getBackgroundColor(block: NodeMaterialBlock): string;
455
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
456
+ }
457
+
458
+ }
459
+ declare module "babylonjs-node-editor/diagram/display/gradientDisplayManager" {
460
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
461
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
462
+ export declare class GradientDisplayManager implements IDisplayManager {
463
+ getHeaderClass(block: NodeMaterialBlock): string;
464
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
465
+ getHeaderText(block: NodeMaterialBlock): string;
466
+ getBackgroundColor(block: NodeMaterialBlock): string;
467
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
468
+ }
469
+
470
+ }
471
+ declare module "babylonjs-node-editor/diagram/display/imageSourceDisplayManager" {
472
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
473
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
474
+ export declare class imageSourceDisplayManager implements IDisplayManager {
475
+ private _previewCanvas;
476
+ private _previewImage;
477
+ getHeaderClass(block: NodeMaterialBlock): string;
478
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
479
+ getHeaderText(block: NodeMaterialBlock): string;
480
+ getBackgroundColor(block: NodeMaterialBlock): string;
481
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
482
+ }
483
+
484
+ }
485
+ declare module "babylonjs-node-editor/diagram/display/inputDisplayManager" {
486
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
487
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
488
+ import { NodeMaterialBlockConnectionPointTypes } from "babylonjs/Materials/Node/Enums/nodeMaterialBlockConnectionPointTypes";
489
+ export declare class InputDisplayManager implements IDisplayManager {
490
+ getHeaderClass(block: NodeMaterialBlock): "" | "constant" | "inspector";
491
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
492
+ getHeaderText(block: NodeMaterialBlock): string;
493
+ static GetBaseType(type: NodeMaterialBlockConnectionPointTypes): string;
494
+ getBackgroundColor(block: NodeMaterialBlock): string;
495
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
496
+ }
497
+
498
+ }
499
+ declare module "babylonjs-node-editor/diagram/display/outputDisplayManager" {
500
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
501
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
502
+ export declare class OutputDisplayManager implements IDisplayManager {
503
+ getHeaderClass(block: NodeMaterialBlock): string;
504
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
505
+ getHeaderText(block: NodeMaterialBlock): string;
506
+ getBackgroundColor(block: NodeMaterialBlock): string;
507
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
508
+ }
509
+
510
+ }
511
+ declare module "babylonjs-node-editor/diagram/display/pbrDisplayManager" {
512
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
513
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
514
+ export declare class PBRDisplayManager implements IDisplayManager {
515
+ getHeaderClass(block: NodeMaterialBlock): string;
516
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
517
+ getHeaderText(block: NodeMaterialBlock): string;
518
+ getBackgroundColor(block: NodeMaterialBlock): string;
519
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
520
+ }
521
+
522
+ }
523
+ declare module "babylonjs-node-editor/diagram/display/remapDisplayManager" {
524
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
525
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
526
+ export declare class RemapDisplayManager implements IDisplayManager {
527
+ getHeaderClass(block: NodeMaterialBlock): string;
528
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
529
+ getHeaderText(block: NodeMaterialBlock): string;
530
+ getBackgroundColor(block: NodeMaterialBlock): string;
531
+ private _extractInputValue;
532
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
533
+ }
534
+
535
+ }
536
+ declare module "babylonjs-node-editor/diagram/display/textureDisplayManager" {
537
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
538
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
539
+ export declare class TextureDisplayManager implements IDisplayManager {
540
+ private _previewCanvas;
541
+ private _previewImage;
542
+ getHeaderClass(block: NodeMaterialBlock): string;
543
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
544
+ getHeaderText(block: NodeMaterialBlock): string;
545
+ getBackgroundColor(block: NodeMaterialBlock): string;
546
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
547
+ }
548
+
549
+ }
550
+ declare module "babylonjs-node-editor/diagram/display/trigonometryDisplayManager" {
551
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
552
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
553
+ export declare class TrigonometryDisplayManager implements IDisplayManager {
554
+ getHeaderClass(block: NodeMaterialBlock): string;
555
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
556
+ getHeaderText(block: NodeMaterialBlock): string;
557
+ getBackgroundColor(block: NodeMaterialBlock): string;
558
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
559
+ }
560
+
561
+ }
562
+ declare module "babylonjs-node-editor/diagram/displayLedger" {
563
+ export declare class DisplayLedger {
564
+ static RegisteredControls: {
565
+ [key: string]: any;
566
+ };
567
+ }
568
+
569
+ }
570
+ declare module "babylonjs-node-editor/diagram/frameNodePort" {
571
+ import { NodePort } from "babylonjs-node-editor/diagram/nodePort";
572
+ import { GraphNode } from "babylonjs-node-editor/diagram/graphNode";
573
+ import { FramePortPosition } from "babylonjs-node-editor/diagram/graphFrame";
574
+ import { GlobalState } from "babylonjs-node-editor/globalState";
575
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
576
+ import { Observable } from "babylonjs/Misc/observable";
577
+ import { Nullable } from "babylonjs/types";
578
+ import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
579
+ export declare class FrameNodePort extends NodePort {
580
+ connectionPoint: NodeMaterialConnectionPoint;
581
+ node: GraphNode;
582
+ private _parentFrameId;
583
+ private _isInput;
584
+ private _framePortPosition;
585
+ private _framePortId;
586
+ private _onFramePortPositionChangedObservable;
587
+ get parentFrameId(): number;
588
+ get onFramePortPositionChangedObservable(): Observable<FrameNodePort>;
589
+ get isInput(): boolean;
590
+ get framePortId(): number;
591
+ get framePortPosition(): FramePortPosition;
592
+ set framePortPosition(position: FramePortPosition);
593
+ constructor(portContainer: HTMLElement, connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number);
594
+ static CreateFrameNodePortElement(connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number): FrameNodePort;
595
+ }
596
+
597
+ }
598
+ declare module "babylonjs-node-editor/diagram/graphCanvas" {
599
+ import * as React from "react";
600
+ import { GlobalState } from "babylonjs-node-editor/globalState";
601
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
602
+ import { GraphNode } from "babylonjs-node-editor/diagram/graphNode";
603
+ import { Nullable } from "babylonjs/types";
604
+ import { NodeLink } from "babylonjs-node-editor/diagram/nodeLink";
605
+ import { NodePort } from "babylonjs-node-editor/diagram/nodePort";
606
+ import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
607
+ import { GraphFrame } from "babylonjs-node-editor/diagram/graphFrame";
608
+ import { IEditorData, IFrameData } from "babylonjs-node-editor/nodeLocationInfo";
609
+ import { FrameNodePort } from "babylonjs-node-editor/diagram/frameNodePort";
610
+ import "babylonjs-node-editor/diagram/graphCanvas.scss";
611
+ export interface IGraphCanvasComponentProps {
612
+ globalState: GlobalState;
613
+ onEmitNewBlock: (block: NodeMaterialBlock) => GraphNode;
614
+ }
615
+ export declare type FramePortData = {
616
+ frame: GraphFrame;
617
+ port: FrameNodePort;
618
+ };
619
+ export declare const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
620
+ export declare class GraphCanvasComponent extends React.Component<IGraphCanvasComponentProps> {
621
+ private readonly MinZoom;
622
+ private readonly MaxZoom;
623
+ private _hostCanvas;
624
+ private _graphCanvas;
625
+ private _selectionContainer;
626
+ private _frameContainer;
627
+ private _svgCanvas;
628
+ private _rootContainer;
629
+ private _nodes;
630
+ private _links;
631
+ private _mouseStartPointX;
632
+ private _mouseStartPointY;
633
+ private _dropPointX;
634
+ private _dropPointY;
635
+ private _selectionStartX;
636
+ private _selectionStartY;
637
+ private _candidateLinkedHasMoved;
638
+ private _x;
639
+ private _y;
640
+ private _zoom;
641
+ private _selectedNodes;
642
+ private _selectedLink;
643
+ private _selectedPort;
644
+ private _candidateLink;
645
+ private _candidatePort;
646
+ private _gridSize;
647
+ private _selectionBox;
648
+ private _selectedFrame;
649
+ private _frameCandidate;
650
+ private _frames;
651
+ private _altKeyIsPressed;
652
+ private _ctrlKeyIsPressed;
653
+ private _oldY;
654
+ _frameIsMoving: boolean;
655
+ _isLoading: boolean;
656
+ get gridSize(): number;
657
+ set gridSize(value: number);
658
+ get globalState(): GlobalState;
659
+ get nodes(): GraphNode[];
660
+ get links(): NodeLink[];
661
+ get frames(): GraphFrame[];
662
+ get zoom(): number;
663
+ set zoom(value: number);
664
+ get x(): number;
665
+ set x(value: number);
666
+ get y(): number;
667
+ set y(value: number);
668
+ get selectedNodes(): GraphNode[];
669
+ get selectedLink(): Nullable<NodeLink>;
670
+ get selectedFrame(): Nullable<GraphFrame>;
671
+ get selectedPort(): Nullable<NodePort>;
672
+ get canvasContainer(): HTMLDivElement;
673
+ get hostCanvas(): HTMLDivElement;
674
+ get svgCanvas(): HTMLElement;
675
+ get selectionContainer(): HTMLDivElement;
676
+ get frameContainer(): HTMLDivElement;
677
+ constructor(props: IGraphCanvasComponentProps);
678
+ static _RefreshNode: (node: GraphNode, visitedNodes?: Set<GraphNode> | undefined, visitedLinks?: Set<NodeLink> | undefined) => void;
679
+ getGridPosition(position: number, useCeil?: boolean): number;
680
+ getGridPositionCeil(position: number): number;
681
+ updateTransform(): void;
682
+ onKeyUp(): void;
683
+ findNodeFromBlock(block: NodeMaterialBlock): GraphNode;
684
+ reset(): void;
685
+ connectPorts(pointA: NodeMaterialConnectionPoint, pointB: NodeMaterialConnectionPoint): void;
686
+ removeLink(link: NodeLink): void;
687
+ appendBlock(block: NodeMaterialBlock): GraphNode;
688
+ distributeGraph(): void;
689
+ componentDidMount(): void;
690
+ onMove(evt: React.PointerEvent): void;
691
+ onDown(evt: React.PointerEvent<HTMLElement>): void;
692
+ onUp(evt: React.PointerEvent): void;
693
+ onWheel(evt: React.WheelEvent): void;
694
+ zoomToFit(): void;
695
+ processCandidatePort(): void;
696
+ processEditorData(editorData: IEditorData): void;
697
+ addFrame(frameData: IFrameData): void;
698
+ render(): JSX.Element;
699
+ }
700
+
701
+ }
702
+ declare module "babylonjs-node-editor/diagram/graphFrame" {
703
+ import { GraphNode } from "babylonjs-node-editor/diagram/graphNode";
704
+ import { GraphCanvasComponent } from "babylonjs-node-editor/diagram/graphCanvas";
705
+ import { Nullable } from "babylonjs/types";
706
+ import { Observable } from "babylonjs/Misc/observable";
707
+ import { IFrameData } from "babylonjs-node-editor/nodeLocationInfo";
708
+ import { Color3 } from "babylonjs/Maths/math.color";
709
+ import { FrameNodePort } from "babylonjs-node-editor/diagram/frameNodePort";
710
+ export declare enum FramePortPosition {
711
+ Top = 0,
712
+ Middle = 1,
713
+ Bottom = 2
714
+ }
715
+ export declare class GraphFrame {
716
+ private readonly CollapsedWidth;
717
+ private static _FrameCounter;
718
+ private static _FramePortCounter;
719
+ private _name;
720
+ private _color;
721
+ private _x;
722
+ private _y;
723
+ private _gridAlignedX;
724
+ private _gridAlignedY;
725
+ private _width;
726
+ private _height;
727
+ element: HTMLDivElement;
728
+ private _borderElement;
729
+ private _headerElement;
730
+ private _headerTextElement;
731
+ private _headerCollapseElement;
732
+ private _headerCloseElement;
733
+ private _commentsElement;
734
+ private _portContainer;
735
+ private _outputPortContainer;
736
+ private _inputPortContainer;
737
+ private _nodes;
738
+ private _ownerCanvas;
739
+ private _mouseStartPointX;
740
+ private _mouseStartPointY;
741
+ private _onSelectionChangedObserver;
742
+ private _onGraphNodeRemovalObserver;
743
+ private _onExposePortOnFrameObserver;
744
+ private _onNodeLinkDisposedObservers;
745
+ private _isCollapsed;
746
+ private _frameInPorts;
747
+ private _frameOutPorts;
748
+ private _controlledPorts;
749
+ private _exposedInPorts;
750
+ private _exposedOutPorts;
751
+ private _id;
752
+ private _comments;
753
+ private _frameIsResizing;
754
+ private _resizingDirection;
755
+ private _minFrameHeight;
756
+ private _minFrameWidth;
757
+ private mouseXLimit;
758
+ onExpandStateChanged: Observable<GraphFrame>;
759
+ private readonly CloseSVG;
760
+ private readonly ExpandSVG;
761
+ private readonly CollapseSVG;
762
+ get id(): number;
763
+ get isCollapsed(): boolean;
764
+ private _createInputPort;
765
+ private _markFramePortPositions;
766
+ private _createFramePorts;
767
+ private removePortFromExposedWithNode;
768
+ private removePortFromExposedWithLink;
769
+ private createInputPorts;
770
+ private createOutputPorts;
771
+ redrawFramePorts(): void;
772
+ set isCollapsed(value: boolean);
773
+ get nodes(): GraphNode[];
774
+ get ports(): FrameNodePort[];
775
+ get name(): string;
776
+ set name(value: string);
777
+ get color(): Color3;
778
+ set color(value: Color3);
779
+ get x(): number;
780
+ set x(value: number);
781
+ get y(): number;
782
+ set y(value: number);
783
+ get width(): number;
784
+ set width(value: number);
785
+ get height(): number;
786
+ set height(value: number);
787
+ get comments(): string;
788
+ set comments(comments: string);
789
+ constructor(candidate: Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
790
+ refresh(): void;
791
+ addNode(node: GraphNode): void;
792
+ removeNode(node: GraphNode): void;
793
+ syncNode(node: GraphNode): void;
794
+ cleanAccumulation(): void;
795
+ private _onDown;
796
+ move(newX: number, newY: number, align?: boolean): void;
797
+ private _onUp;
798
+ private _moveFrame;
799
+ private _onMove;
800
+ moveFramePortUp(nodePort: FrameNodePort): void;
801
+ private _movePortUp;
802
+ moveFramePortDown(nodePort: FrameNodePort): void;
803
+ private _movePortDown;
804
+ private initResizing;
805
+ private cleanUpResizing;
806
+ private updateMinHeightWithComments;
807
+ private _isResizingTop;
808
+ private _isResizingRight;
809
+ private _isResizingBottom;
810
+ private _isResizingLeft;
811
+ private _onRightHandlePointerDown;
812
+ private _onRightHandlePointerMove;
813
+ private _moveRightHandle;
814
+ private _onRightHandlePointerUp;
815
+ private _onBottomHandlePointerDown;
816
+ private _onBottomHandlePointerMove;
817
+ private _moveBottomHandle;
818
+ private _onBottomHandlePointerUp;
819
+ private _onLeftHandlePointerDown;
820
+ private _onLeftHandlePointerMove;
821
+ private _moveLeftHandle;
822
+ private _onLeftHandlePointerUp;
823
+ private _onTopHandlePointerDown;
824
+ private _onTopHandlePointerMove;
825
+ private _moveTopHandle;
826
+ private _onTopHandlePointerUp;
827
+ private _onTopRightHandlePointerDown;
828
+ private _onTopRightHandlePointerMove;
829
+ private _moveTopRightHandle;
830
+ private _onTopRightHandlePointerUp;
831
+ private _onBottomRightHandlePointerDown;
832
+ private _onBottomRightHandlePointerMove;
833
+ private _moveBottomRightHandle;
834
+ private _onBottomRightHandlePointerUp;
835
+ private _onBottomLeftHandlePointerDown;
836
+ private _onBottomLeftHandlePointerMove;
837
+ private _moveBottomLeftHandle;
838
+ private _onBottomLeftHandlePointerUp;
839
+ private _onTopLeftHandlePointerDown;
840
+ private _onTopLeftHandlePointerMove;
841
+ private _moveTopLeftHandle;
842
+ private _onTopLeftHandlePointerUp;
843
+ private _expandLeft;
844
+ private _expandTop;
845
+ private _expandRight;
846
+ private _expandBottom;
847
+ dispose(): void;
848
+ private serializePortData;
849
+ serialize(saveCollapsedState: boolean): IFrameData;
850
+ export(): void;
851
+ adjustPorts(): void;
852
+ static Parse(serializationData: IFrameData, canvas: GraphCanvasComponent, map?: {
853
+ [key: number]: number;
854
+ }): GraphFrame;
855
+ }
856
+
857
+ }
858
+ declare module "babylonjs-node-editor/diagram/graphNode" {
859
+ /// <reference types="react" />
860
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
861
+ import { GlobalState } from "babylonjs-node-editor/globalState";
862
+ import { Nullable } from "babylonjs/types";
863
+ import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
864
+ import { GraphCanvasComponent } from "babylonjs-node-editor/diagram/graphCanvas";
865
+ import { NodeLink } from "babylonjs-node-editor/diagram/nodeLink";
866
+ import { NodePort } from "babylonjs-node-editor/diagram/nodePort";
867
+ import { GraphFrame } from "babylonjs-node-editor/diagram/graphFrame";
868
+ export declare class GraphNode {
869
+ block: NodeMaterialBlock;
870
+ private _visual;
871
+ private _headerContainer;
872
+ private _promotionWarning;
873
+ private _header;
874
+ private _connections;
875
+ private _inputsContainer;
876
+ private _outputsContainer;
877
+ private _content;
878
+ private _comments;
879
+ private _inputPorts;
880
+ private _outputPorts;
881
+ private _links;
882
+ private _x;
883
+ private _y;
884
+ private _gridAlignedX;
885
+ private _gridAlignedY;
886
+ private _mouseStartPointX;
887
+ private _mouseStartPointY;
888
+ private _globalState;
889
+ private _onSelectionChangedObserver;
890
+ private _onSelectionBoxMovedObserver;
891
+ private _onFrameCreatedObserver;
892
+ private _onUpdateRequiredObserver;
893
+ private _ownerCanvas;
894
+ private _isSelected;
895
+ private _displayManager;
896
+ private _isVisible;
897
+ private _enclosingFrameId;
898
+ get isVisible(): boolean;
899
+ set isVisible(value: boolean);
900
+ private _upateNodePortNames;
901
+ get outputPorts(): NodePort[];
902
+ get inputPorts(): NodePort[];
903
+ get links(): NodeLink[];
904
+ get gridAlignedX(): number;
905
+ get gridAlignedY(): number;
906
+ get x(): number;
907
+ set x(value: number);
908
+ get y(): number;
909
+ set y(value: number);
910
+ get width(): number;
911
+ get height(): number;
912
+ get id(): number;
913
+ get name(): string;
914
+ get isSelected(): boolean;
915
+ get enclosingFrameId(): number;
916
+ set enclosingFrameId(value: number);
917
+ set isSelected(value: boolean);
918
+ constructor(block: NodeMaterialBlock, globalState: GlobalState);
919
+ isOverlappingFrame(frame: GraphFrame): boolean;
920
+ getPortForConnectionPoint(point: NodeMaterialConnectionPoint): NodePort | null;
921
+ getLinksForConnectionPoint(point: NodeMaterialConnectionPoint): NodeLink[];
922
+ private _refreshFrames;
923
+ _refreshLinks(): void;
924
+ refresh(): void;
925
+ private _onDown;
926
+ cleanAccumulation(useCeil?: boolean): void;
927
+ private _onUp;
928
+ private _onMove;
929
+ renderProperties(): Nullable<JSX.Element>;
930
+ appendVisual(root: HTMLDivElement, owner: GraphCanvasComponent): void;
931
+ dispose(): void;
932
+ }
933
+
934
+ }
935
+ declare module "babylonjs-node-editor/diagram/nodeLink" {
936
+ import { GraphCanvasComponent } from "babylonjs-node-editor/diagram/graphCanvas";
937
+ import { GraphNode } from "babylonjs-node-editor/diagram/graphNode";
938
+ import { NodePort } from "babylonjs-node-editor/diagram/nodePort";
939
+ import { Observable } from "babylonjs/Misc/observable";
940
+ import { FrameNodePort } from "babylonjs-node-editor/diagram/frameNodePort";
941
+ export declare class NodeLink {
942
+ private _graphCanvas;
943
+ private _portA;
944
+ private _portB?;
945
+ private _nodeA;
946
+ private _nodeB?;
947
+ private _path;
948
+ private _selectionPath;
949
+ private _onSelectionChangedObserver;
950
+ private _isVisible;
951
+ onDisposedObservable: Observable<NodeLink>;
952
+ get isVisible(): boolean;
953
+ set isVisible(value: boolean);
954
+ get portA(): NodePort | FrameNodePort;
955
+ get portB(): NodePort | FrameNodePort | undefined;
956
+ get nodeA(): GraphNode;
957
+ get nodeB(): GraphNode | undefined;
958
+ update(endX?: number, endY?: number, straight?: boolean): void;
959
+ constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
960
+ onClick(): void;
961
+ dispose(notify?: boolean): void;
962
+ }
963
+
964
+ }
965
+ declare module "babylonjs-node-editor/diagram/nodePort" {
966
+ import { NodeMaterialConnectionPoint } from "babylonjs/Materials/Node/nodeMaterialBlockConnectionPoint";
967
+ import { GlobalState } from "babylonjs-node-editor/globalState";
968
+ import { Nullable } from "babylonjs/types";
969
+ import { Observer } from "babylonjs/Misc/observable";
970
+ import { Vector2 } from "babylonjs/Maths/math.vector";
971
+ import { IDisplayManager } from "babylonjs-node-editor/diagram/display/displayManager";
972
+ import { GraphNode } from "babylonjs-node-editor/diagram/graphNode";
973
+ import { NodeLink } from "babylonjs-node-editor/diagram/nodeLink";
974
+ import { GraphFrame } from "babylonjs-node-editor/diagram/graphFrame";
975
+ import { FrameNodePort } from "babylonjs-node-editor/diagram/frameNodePort";
976
+ import { FramePortData } from "babylonjs-node-editor/diagram/graphCanvas";
977
+ export declare class NodePort {
978
+ connectionPoint: NodeMaterialConnectionPoint;
979
+ node: GraphNode;
980
+ protected _element: HTMLDivElement;
981
+ protected _img: HTMLImageElement;
982
+ protected _globalState: GlobalState;
983
+ protected _portLabelElement: Element;
984
+ protected _onCandidateLinkMovedObserver: Nullable<Observer<Nullable<Vector2>>>;
985
+ protected _onSelectionChangedObserver: Nullable<Observer<Nullable<GraphFrame | GraphNode | NodeLink | NodePort | FramePortData>>>;
986
+ protected _exposedOnFrame: boolean;
987
+ delegatedPort: Nullable<FrameNodePort>;
988
+ get element(): HTMLDivElement;
989
+ get portName(): string;
990
+ set portName(newName: string);
991
+ get disabled(): boolean;
992
+ hasLabel(): boolean;
993
+ get exposedOnFrame(): boolean;
994
+ set exposedOnFrame(value: boolean);
995
+ get exposedPortPosition(): number;
996
+ set exposedPortPosition(value: number);
997
+ private _isConnectedToNodeOutsideOfFrame;
998
+ refresh(): void;
999
+ constructor(portContainer: HTMLElement, connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState);
1000
+ dispose(): void;
1001
+ static CreatePortElement(connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, globalState: GlobalState): NodePort;
1002
+ }
1003
+
1004
+ }
1005
+ declare module "babylonjs-node-editor/diagram/properties/colorMergerPropertyComponent" {
1006
+ import * as React from "react";
1007
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1008
+ export declare class ColorMergerPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1009
+ constructor(props: IPropertyComponentProps);
1010
+ render(): JSX.Element;
1011
+ }
1012
+
1013
+ }
1014
+ declare module "babylonjs-node-editor/diagram/properties/conditionalNodePropertyComponent" {
1015
+ import * as React from "react";
1016
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1017
+ export declare class ConditionalPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1018
+ constructor(props: IPropertyComponentProps);
1019
+ render(): JSX.Element;
1020
+ }
1021
+
1022
+ }
1023
+ declare module "babylonjs-node-editor/diagram/properties/frameNodePortPropertyComponent" {
1024
+ import * as React from "react";
1025
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1026
+ import { GraphFrame } from "babylonjs-node-editor/diagram/graphFrame";
1027
+ import { FrameNodePort } from "babylonjs-node-editor/diagram/frameNodePort";
1028
+ export interface IFrameNodePortPropertyTabComponentProps {
1029
+ globalState: GlobalState;
1030
+ frameNodePort: FrameNodePort;
1031
+ frame: GraphFrame;
1032
+ }
1033
+ export declare class FrameNodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps, {
1034
+ port: FrameNodePort;
1035
+ }> {
1036
+ private _onFramePortPositionChangedObserver;
1037
+ private _onSelectionChangedObserver;
1038
+ constructor(props: IFrameNodePortPropertyTabComponentProps);
1039
+ componentWillUnmount(): void;
1040
+ render(): JSX.Element;
1041
+ }
1042
+
1043
+ }
1044
+ declare module "babylonjs-node-editor/diagram/properties/framePropertyComponent" {
1045
+ import * as React from "react";
1046
+ import { GraphFrame } from "babylonjs-node-editor/diagram/graphFrame";
1047
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1048
+ export interface IFramePropertyTabComponentProps {
1049
+ globalState: GlobalState;
1050
+ frame: GraphFrame;
1051
+ }
1052
+ export declare class FramePropertyTabComponent extends React.Component<IFramePropertyTabComponentProps> {
1053
+ private onFrameExpandStateChangedObserver;
1054
+ constructor(props: IFramePropertyTabComponentProps);
1055
+ componentDidMount(): void;
1056
+ componentWillUnmount(): void;
1057
+ render(): JSX.Element;
1058
+ }
1059
+
1060
+ }
1061
+ declare module "babylonjs-node-editor/diagram/properties/genericNodePropertyComponent" {
1062
+ import * as React from "react";
1063
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1064
+ import { Scene } from "babylonjs/scene";
1065
+ export declare class GenericPropertyComponent extends React.Component<IPropertyComponentProps> {
1066
+ constructor(props: IPropertyComponentProps);
1067
+ render(): JSX.Element;
1068
+ }
1069
+ export declare class GeneralPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1070
+ constructor(props: IPropertyComponentProps);
1071
+ render(): JSX.Element;
1072
+ }
1073
+ export declare class GenericPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1074
+ constructor(props: IPropertyComponentProps);
1075
+ forceRebuild(notifiers?: {
1076
+ rebuild?: boolean;
1077
+ update?: boolean;
1078
+ activatePreviewCommand?: boolean;
1079
+ callback?: (scene: Scene) => void;
1080
+ }): void;
1081
+ render(): JSX.Element;
1082
+ }
1083
+
1084
+ }
1085
+ declare module "babylonjs-node-editor/diagram/properties/gradientNodePropertyComponent" {
1086
+ import * as React from "react";
1087
+ import { GradientBlockColorStep } from "babylonjs/Materials/Node/Blocks/gradientBlock";
1088
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1089
+ export declare class GradientPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1090
+ private onValueChangedObserver;
1091
+ constructor(props: IPropertyComponentProps);
1092
+ componentDidMount(): void;
1093
+ componentWillUnmount(): void;
1094
+ forceRebuild(): void;
1095
+ deleteStep(step: GradientBlockColorStep): void;
1096
+ copyStep(step: GradientBlockColorStep): void;
1097
+ addNewStep(): void;
1098
+ checkForReOrder(): void;
1099
+ render(): JSX.Element;
1100
+ }
1101
+
1102
+ }
1103
+ declare module "babylonjs-node-editor/diagram/properties/gradientStepComponent" {
1104
+ import * as React from "react";
1105
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1106
+ import { GradientBlockColorStep } from "babylonjs/Materials/Node/Blocks/gradientBlock";
1107
+ interface IGradientStepComponentProps {
1108
+ globalState: GlobalState;
1109
+ step: GradientBlockColorStep;
1110
+ lineIndex: number;
1111
+ onDelete: () => void;
1112
+ onUpdateStep: () => void;
1113
+ onCheckForReOrder: () => void;
1114
+ onCopy?: () => void;
1115
+ }
1116
+ export declare class GradientStepComponent extends React.Component<IGradientStepComponentProps, {
1117
+ gradient: number;
1118
+ }> {
1119
+ constructor(props: IGradientStepComponentProps);
1120
+ updateColor(color: string): void;
1121
+ updateStep(gradient: number): void;
1122
+ onPointerUp(): void;
1123
+ render(): JSX.Element;
1124
+ }
1125
+ export {};
1126
+
1127
+ }
1128
+ declare module "babylonjs-node-editor/diagram/properties/imageSourcePropertyTabComponent" {
1129
+ import * as React from "react";
1130
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1131
+ import { ImageSourceBlock } from "babylonjs/Materials/Node/Blocks/Dual/imageSourceBlock";
1132
+ export declare class ImageSourcePropertyTabComponent extends React.Component<IPropertyComponentProps, {
1133
+ isEmbedded: boolean;
1134
+ }> {
1135
+ get imageSourceBlock(): ImageSourceBlock;
1136
+ constructor(props: IPropertyComponentProps);
1137
+ UNSAFE_componentWillUpdate(nextProps: IPropertyComponentProps, nextState: {
1138
+ isEmbedded: boolean;
1139
+ loadAsCubeTexture: boolean;
1140
+ }): void;
1141
+ private _generateRandomForCache;
1142
+ updateAfterTextureLoad(): void;
1143
+ removeTexture(): void;
1144
+ _prepareTexture(): void;
1145
+ /**
1146
+ * Replaces the texture of the node
1147
+ * @param file the file of the texture to use
1148
+ */
1149
+ replaceTexture(file: File): void;
1150
+ replaceTextureWithUrl(url: string): void;
1151
+ render(): JSX.Element;
1152
+ }
1153
+
1154
+ }
1155
+ declare module "babylonjs-node-editor/diagram/properties/inputNodePropertyComponent" {
1156
+ import * as React from "react";
1157
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1158
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1159
+ export declare class InputPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1160
+ private onValueChangedObserver;
1161
+ constructor(props: IPropertyComponentProps);
1162
+ componentDidMount(): void;
1163
+ componentWillUnmount(): void;
1164
+ renderValue(globalState: GlobalState): JSX.Element | null;
1165
+ setDefaultValue(): void;
1166
+ render(): JSX.Element;
1167
+ }
1168
+
1169
+ }
1170
+ declare module "babylonjs-node-editor/diagram/properties/lightInformationPropertyTabComponent" {
1171
+ import * as React from "react";
1172
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1173
+ export declare class LightInformationPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1174
+ render(): JSX.Element;
1175
+ }
1176
+
1177
+ }
1178
+ declare module "babylonjs-node-editor/diagram/properties/lightPropertyTabComponent" {
1179
+ import * as React from "react";
1180
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1181
+ export declare class LightPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1182
+ render(): JSX.Element;
1183
+ }
1184
+
1185
+ }
1186
+ declare module "babylonjs-node-editor/diagram/properties/nodePortPropertyComponent" {
1187
+ import * as React from "react";
1188
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1189
+ import { NodePort } from "babylonjs-node-editor/diagram/nodePort";
1190
+ export interface IFrameNodePortPropertyTabComponentProps {
1191
+ globalState: GlobalState;
1192
+ nodePort: NodePort;
1193
+ }
1194
+ export declare class NodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps> {
1195
+ private _onSelectionChangedObserver;
1196
+ constructor(props: IFrameNodePortPropertyTabComponentProps);
1197
+ componentWillUnmount(): void;
1198
+ toggleExposeOnFrame(value: boolean): void;
1199
+ render(): JSX.Element;
1200
+ }
1201
+
1202
+ }
1203
+ declare module "babylonjs-node-editor/diagram/properties/propertyComponentProps" {
1204
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1205
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
1206
+ export interface IPropertyComponentProps {
1207
+ globalState: GlobalState;
1208
+ block: NodeMaterialBlock;
1209
+ }
1210
+
1211
+ }
1212
+ declare module "babylonjs-node-editor/diagram/properties/texturePropertyTabComponent" {
1213
+ import * as React from "react";
1214
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1215
+ import { ReflectionTextureBlock } from "babylonjs/Materials/Node/Blocks/Dual/reflectionTextureBlock";
1216
+ import { ReflectionBlock } from "babylonjs/Materials/Node/Blocks/PBR/reflectionBlock";
1217
+ import { RefractionBlock } from "babylonjs/Materials/Node/Blocks/PBR/refractionBlock";
1218
+ import { TextureBlock } from "babylonjs/Materials/Node/Blocks/Dual/textureBlock";
1219
+ import { CurrentScreenBlock } from "babylonjs/Materials/Node/Blocks/Dual/currentScreenBlock";
1220
+ import { ParticleTextureBlock } from "babylonjs/Materials/Node/Blocks/Particle/particleTextureBlock";
1221
+ declare type ReflectionTexture = ReflectionTextureBlock | ReflectionBlock | RefractionBlock;
1222
+ declare type AnyTexture = TextureBlock | ReflectionTexture | CurrentScreenBlock | ParticleTextureBlock;
1223
+ export declare class TexturePropertyTabComponent extends React.Component<IPropertyComponentProps, {
1224
+ isEmbedded: boolean;
1225
+ loadAsCubeTexture: boolean;
1226
+ textureIsPrefiltered: boolean;
1227
+ }> {
1228
+ get textureBlock(): AnyTexture;
1229
+ constructor(props: IPropertyComponentProps);
1230
+ UNSAFE_componentWillUpdate(nextProps: IPropertyComponentProps, nextState: {
1231
+ isEmbedded: boolean;
1232
+ loadAsCubeTexture: boolean;
1233
+ }): void;
1234
+ private _generateRandomForCache;
1235
+ updateAfterTextureLoad(): void;
1236
+ removeTexture(): void;
1237
+ _prepareTexture(): void;
1238
+ /**
1239
+ * Replaces the texture of the node
1240
+ * @param file the file of the texture to use
1241
+ */
1242
+ replaceTexture(file: File): void;
1243
+ replaceTextureWithUrl(url: string): void;
1244
+ render(): JSX.Element;
1245
+ }
1246
+ export {};
1247
+
1248
+ }
1249
+ declare module "babylonjs-node-editor/diagram/properties/transformNodePropertyComponent" {
1250
+ import * as React from "react";
1251
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1252
+ export declare class TransformPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1253
+ constructor(props: IPropertyComponentProps);
1254
+ render(): JSX.Element;
1255
+ }
1256
+
1257
+ }
1258
+ declare module "babylonjs-node-editor/diagram/properties/trigonometryNodePropertyComponent" {
1259
+ import * as React from "react";
1260
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1261
+ export declare class TrigonometryPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1262
+ constructor(props: IPropertyComponentProps);
1263
+ render(): JSX.Element;
1264
+ }
1265
+
1266
+ }
1267
+ declare module "babylonjs-node-editor/diagram/properties/vectorMergerPropertyComponent" {
1268
+ import * as React from "react";
1269
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1270
+ export declare class VectorMergerPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1271
+ constructor(props: IPropertyComponentProps);
1272
+ render(): JSX.Element;
1273
+ }
1274
+
1275
+ }
1276
+ declare module "babylonjs-node-editor/diagram/propertyLedger" {
1277
+ import { ComponentClass } from "react";
1278
+ import { IPropertyComponentProps } from "babylonjs-node-editor/diagram/properties/propertyComponentProps";
1279
+ export declare class PropertyLedger {
1280
+ static RegisteredControls: {
1281
+ [key: string]: ComponentClass<IPropertyComponentProps>;
1282
+ };
1283
+ }
1284
+
1285
+ }
1286
+ declare module "babylonjs-node-editor/globalState" {
1287
+ import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial";
1288
+ import { Nullable } from "babylonjs/types";
1289
+ import { Observable } from "babylonjs/Misc/observable";
1290
+ import { LogEntry } from "babylonjs-node-editor/components/log/logComponent";
1291
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
1292
+ import { PreviewType } from "babylonjs-node-editor/components/preview/previewType";
1293
+ import { Color4 } from "babylonjs/Maths/math.color";
1294
+ import { GraphNode } from "babylonjs-node-editor/diagram/graphNode";
1295
+ import { Vector2 } from "babylonjs/Maths/math.vector";
1296
+ import { NodePort } from "babylonjs-node-editor/diagram/nodePort";
1297
+ import { NodeLink } from "babylonjs-node-editor/diagram/nodeLink";
1298
+ import { GraphFrame } from "babylonjs-node-editor/diagram/graphFrame";
1299
+ import { FrameNodePort } from "babylonjs-node-editor/diagram/frameNodePort";
1300
+ import { FramePortData } from "babylonjs-node-editor/diagram/graphCanvas";
1301
+ import { NodeMaterialModes } from "babylonjs/Materials/Node/Enums/nodeMaterialModes";
1302
+ export declare class GlobalState {
1303
+ nodeMaterial: NodeMaterial;
1304
+ hostElement: HTMLElement;
1305
+ hostDocument: HTMLDocument;
1306
+ hostWindow: Window;
1307
+ onSelectionChangedObservable: Observable<Nullable<GraphFrame | GraphNode | NodePort | NodeLink | FramePortData>>;
1308
+ onRebuildRequiredObservable: Observable<boolean>;
1309
+ onBuiltObservable: Observable<void>;
1310
+ onResetRequiredObservable: Observable<void>;
1311
+ onUpdateRequiredObservable: Observable<Nullable<NodeMaterialBlock>>;
1312
+ onZoomToFitRequiredObservable: Observable<void>;
1313
+ onReOrganizedRequiredObservable: Observable<void>;
1314
+ onLogRequiredObservable: Observable<LogEntry>;
1315
+ onErrorMessageDialogRequiredObservable: Observable<string>;
1316
+ onIsLoadingChanged: Observable<boolean>;
1317
+ onPreviewCommandActivated: Observable<boolean>;
1318
+ onLightUpdated: Observable<void>;
1319
+ onPreviewBackgroundChanged: Observable<void>;
1320
+ onBackFaceCullingChanged: Observable<void>;
1321
+ onDepthPrePassChanged: Observable<void>;
1322
+ onAnimationCommandActivated: Observable<void>;
1323
+ onCandidateLinkMoved: Observable<Nullable<Vector2>>;
1324
+ onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
1325
+ onFrameCreatedObservable: Observable<GraphFrame>;
1326
+ onCandidatePortSelectedObservable: Observable<Nullable<NodePort | FrameNodePort>>;
1327
+ onImportFrameObservable: Observable<any>;
1328
+ onGraphNodeRemovalObservable: Observable<GraphNode>;
1329
+ onPopupClosedObservable: Observable<void>;
1330
+ onGetNodeFromBlock: (block: NodeMaterialBlock) => GraphNode;
1331
+ onGridSizeChanged: Observable<void>;
1332
+ onExposePortOnFrameObservable: Observable<GraphNode>;
1333
+ previewType: PreviewType;
1334
+ previewFile: File;
1335
+ particleSystemBlendMode: number;
1336
+ listOfCustomPreviewFiles: File[];
1337
+ rotatePreview: boolean;
1338
+ backgroundColor: Color4;
1339
+ backFaceCulling: boolean;
1340
+ depthPrePass: boolean;
1341
+ blockKeyboardEvents: boolean;
1342
+ hemisphericLight: boolean;
1343
+ directionalLight0: boolean;
1344
+ directionalLight1: boolean;
1345
+ controlCamera: boolean;
1346
+ storeEditorData: (serializationObject: any, frame?: Nullable<GraphFrame>) => void;
1347
+ _mode: NodeMaterialModes;
1348
+ /** Gets the mode */
1349
+ get mode(): NodeMaterialModes;
1350
+ /** Sets the mode */
1351
+ set mode(m: NodeMaterialModes);
1352
+ customSave?: {
1353
+ label: string;
1354
+ action: (data: string) => Promise<void>;
1355
+ };
1356
+ constructor();
1357
+ }
1358
+
1359
+ }
1360
+ declare module "babylonjs-node-editor/graphEditor" {
1361
+ import * as React from "react";
1362
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1363
+ import { NodeMaterialBlock } from "babylonjs/Materials/Node/nodeMaterialBlock";
1364
+ import { Nullable } from "babylonjs/types";
1365
+ import { IEditorData } from "babylonjs-node-editor/nodeLocationInfo";
1366
+ import { GraphNode } from "babylonjs-node-editor/diagram/graphNode";
1367
+ import { IInspectorOptions } from "babylonjs/Debug/debugLayer";
1368
+ interface IGraphEditorProps {
1369
+ globalState: GlobalState;
1370
+ }
1371
+ interface IGraphEditorState {
1372
+ showPreviewPopUp: boolean;
1373
+ }
1374
+ interface IInternalPreviewAreaOptions extends IInspectorOptions {
1375
+ popup: boolean;
1376
+ original: boolean;
1377
+ explorerWidth?: string;
1378
+ inspectorWidth?: string;
1379
+ embedHostWidth?: string;
1380
+ }
1381
+ export declare class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
1382
+ private readonly NodeWidth;
1383
+ private _graphCanvas;
1384
+ private _startX;
1385
+ private _moveInProgress;
1386
+ private _leftWidth;
1387
+ private _rightWidth;
1388
+ private _blocks;
1389
+ private _previewManager;
1390
+ private _copiedNodes;
1391
+ private _copiedFrame;
1392
+ private _mouseLocationX;
1393
+ private _mouseLocationY;
1394
+ private _onWidgetKeyUpPointer;
1395
+ private _previewHost;
1396
+ private _popUpWindow;
1397
+ /**
1398
+ * Creates a node and recursivly creates its parent nodes from it's input
1399
+ * @param nodeMaterialBlock
1400
+ */
1401
+ createNodeFromObject(block: NodeMaterialBlock, recursion?: boolean): GraphNode;
1402
+ addValueNode(type: string): GraphNode;
1403
+ componentDidMount(): void;
1404
+ componentWillUnmount(): void;
1405
+ constructor(props: IGraphEditorProps);
1406
+ reconnectNewNodes(nodeIndex: number, newNodes: GraphNode[], sourceNodes: GraphNode[], done: boolean[]): void;
1407
+ pasteSelection(copiedNodes: GraphNode[], currentX: number, currentY: number, selectNew?: boolean): GraphNode[] | undefined;
1408
+ zoomToFit(): void;
1409
+ buildMaterial(autoConfigure?: boolean): void;
1410
+ build(): void;
1411
+ loadGraph(): void;
1412
+ showWaitScreen(): void;
1413
+ hideWaitScreen(): void;
1414
+ reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
1415
+ onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1416
+ onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1417
+ resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
1418
+ buildColumnLayout(): string;
1419
+ emitNewBlock(event: React.DragEvent<HTMLDivElement>): void;
1420
+ handlePopUp: () => void;
1421
+ handleClosingPopUp: () => void;
1422
+ initiatePreviewArea: (canvas?: HTMLCanvasElement) => void;
1423
+ createPopUp: () => void;
1424
+ createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
1425
+ createPreviewMeshControlHost: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => void;
1426
+ createPreviewHost: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => void;
1427
+ fixPopUpStyles: (document: Document) => void;
1428
+ render(): JSX.Element;
1429
+ }
1430
+ export {};
1431
+
1432
+ }
1433
+ declare module "babylonjs-node-editor/index" {
1434
+ export * from "babylonjs-node-editor/nodeEditor";
1435
+
1436
+ }
1437
+ declare module "babylonjs-node-editor/legacy/legacy" {
1438
+ export * from "babylonjs-node-editor/index";
1439
+
1440
+ }
1441
+ declare module "babylonjs-node-editor/nodeEditor" {
1442
+ import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial";
1443
+ import { Observable } from "babylonjs/Misc/observable";
1444
+ /**
1445
+ * Interface used to specify creation options for the node editor
1446
+ */
1447
+ export interface INodeEditorOptions {
1448
+ nodeMaterial: NodeMaterial;
1449
+ hostElement?: HTMLElement;
1450
+ customSave?: {
1451
+ label: string;
1452
+ action: (data: string) => Promise<void>;
1453
+ };
1454
+ customLoadObservable?: Observable<any>;
1455
+ }
1456
+ /**
1457
+ * Class used to create a node editor
1458
+ */
1459
+ export declare class NodeEditor {
1460
+ private static _CurrentState;
1461
+ /**
1462
+ * Show the node editor
1463
+ * @param options defines the options to use to configure the node editor
1464
+ */
1465
+ static Show(options: INodeEditorOptions): void;
1466
+ }
1467
+
1468
+ }
1469
+ declare module "babylonjs-node-editor/nodeLocationInfo" {
1470
+ export interface INodeLocationInfo {
1471
+ blockId: number;
1472
+ x: number;
1473
+ y: number;
1474
+ }
1475
+ export interface IFrameData {
1476
+ x: number;
1477
+ y: number;
1478
+ width: number;
1479
+ height: number;
1480
+ color: number[];
1481
+ name: string;
1482
+ isCollapsed: boolean;
1483
+ blocks: number[];
1484
+ comments: string;
1485
+ }
1486
+ export interface IEditorData {
1487
+ locations: INodeLocationInfo[];
1488
+ x: number;
1489
+ y: number;
1490
+ zoom: number;
1491
+ frames?: IFrameData[];
1492
+ map?: {
1493
+ [key: number]: number;
1494
+ };
1495
+ }
1496
+
1497
+ }
1498
+ declare module "babylonjs-node-editor/portal" {
1499
+ import * as React from "react";
1500
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1501
+ interface IPortalProps {
1502
+ globalState: GlobalState;
1503
+ }
1504
+ export declare class Portal extends React.Component<IPortalProps> {
1505
+ render(): React.ReactPortal;
1506
+ }
1507
+ export {};
1508
+
1509
+ }
1510
+ declare module "babylonjs-node-editor/serializationTools" {
1511
+ import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial";
1512
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1513
+ import { Nullable } from "babylonjs/types";
1514
+ import { GraphFrame } from "babylonjs-node-editor/diagram/graphFrame";
1515
+ export declare class SerializationTools {
1516
+ static UpdateLocations(material: NodeMaterial, globalState: GlobalState, frame?: Nullable<GraphFrame>): void;
1517
+ static Serialize(material: NodeMaterial, globalState: GlobalState, frame?: Nullable<GraphFrame>): string;
1518
+ static Deserialize(serializationObject: any, globalState: GlobalState): void;
1519
+ static AddFrameToMaterial(serializationObject: any, globalState: GlobalState, currentMaterial: NodeMaterial): void;
1520
+ }
1521
+
1522
+ }
1523
+ declare module "babylonjs-node-editor/sharedComponents/buttonLineComponent" {
1524
+ import * as React from "react";
1525
+ export interface IButtonLineComponentProps {
1526
+ label: string;
1527
+ onClick: () => void;
1528
+ isDisabled?: boolean;
1529
+ }
1530
+ export declare class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
1531
+ constructor(props: IButtonLineComponentProps);
1532
+ render(): JSX.Element;
1533
+ }
1534
+
1535
+ }
1536
+ declare module "babylonjs-node-editor/sharedComponents/checkBoxLineComponent" {
1537
+ import * as React from "react";
1538
+ import { Observable } from "babylonjs/Misc/observable";
1539
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
1540
+ export interface ICheckBoxLineComponentProps {
1541
+ label: string;
1542
+ target?: any;
1543
+ propertyName?: string;
1544
+ isSelected?: () => boolean;
1545
+ onSelect?: (value: boolean) => void;
1546
+ onValueChanged?: () => void;
1547
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1548
+ disabled?: boolean;
1549
+ }
1550
+ export declare class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
1551
+ isSelected: boolean;
1552
+ isDisabled?: boolean;
1553
+ }> {
1554
+ private static _UniqueIdSeed;
1555
+ private _uniqueId;
1556
+ private _localChange;
1557
+ constructor(props: ICheckBoxLineComponentProps);
1558
+ shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
1559
+ isSelected: boolean;
1560
+ isDisabled: boolean;
1561
+ }): boolean;
1562
+ onChange(): void;
1563
+ render(): JSX.Element;
1564
+ }
1565
+
1566
+ }
1567
+ declare module "babylonjs-node-editor/sharedComponents/color3LineComponent" {
1568
+ import * as React from "react";
1569
+ import { Observable } from "babylonjs/Misc/observable";
1570
+ import { Color3, Color4 } from "babylonjs/Maths/math.color";
1571
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
1572
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1573
+ export interface IColor3LineComponentProps {
1574
+ label: string;
1575
+ target: any;
1576
+ propertyName: string;
1577
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1578
+ onChange?: () => void;
1579
+ globalState: GlobalState;
1580
+ }
1581
+ export declare class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
1582
+ isExpanded: boolean;
1583
+ color: Color3 | Color4;
1584
+ }> {
1585
+ private _localChange;
1586
+ constructor(props: IColor3LineComponentProps);
1587
+ shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
1588
+ color: Color3 | Color4;
1589
+ }): boolean;
1590
+ onChange(newValue: string): void;
1591
+ switchExpandState(): void;
1592
+ raiseOnPropertyChanged(previousValue: Color3 | Color4): void;
1593
+ updateStateR(value: number): void;
1594
+ updateStateG(value: number): void;
1595
+ updateStateB(value: number): void;
1596
+ copyToClipboard(): void;
1597
+ render(): JSX.Element;
1598
+ }
1599
+
1600
+ }
1601
+ declare module "babylonjs-node-editor/sharedComponents/color4LineComponent" {
1602
+ import * as React from "react";
1603
+ import { Observable } from "babylonjs/Misc/observable";
1604
+ import { Color4 } from "babylonjs/Maths/math.color";
1605
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
1606
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1607
+ export interface IColor4LineComponentProps {
1608
+ label: string;
1609
+ target: any;
1610
+ propertyName: string;
1611
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1612
+ onChange?: () => void;
1613
+ globalState: GlobalState;
1614
+ }
1615
+ export declare class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
1616
+ isExpanded: boolean;
1617
+ color: Color4;
1618
+ }> {
1619
+ private _localChange;
1620
+ constructor(props: IColor4LineComponentProps);
1621
+ shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
1622
+ color: Color4;
1623
+ }): boolean;
1624
+ onChange(newValue: string): void;
1625
+ switchExpandState(): void;
1626
+ raiseOnPropertyChanged(previousValue: Color4): void;
1627
+ updateStateR(value: number): void;
1628
+ updateStateG(value: number): void;
1629
+ updateStateB(value: number): void;
1630
+ updateStateA(value: number): void;
1631
+ copyToClipboard(): void;
1632
+ render(): JSX.Element;
1633
+ }
1634
+
1635
+ }
1636
+ declare module "babylonjs-node-editor/sharedComponents/colorPickerComponent" {
1637
+ import * as React from "react";
1638
+ import { Color4, Color3 } from "babylonjs/Maths/math.color";
1639
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1640
+ export interface IColorPickerComponentProps {
1641
+ value: Color4 | Color3;
1642
+ onColorChanged: (newOne: string) => void;
1643
+ globalState: GlobalState;
1644
+ }
1645
+ interface IColorPickerComponentState {
1646
+ pickerEnabled: boolean;
1647
+ color: Color3 | Color4;
1648
+ hex: string;
1649
+ }
1650
+ export declare class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
1651
+ private _floatRef;
1652
+ private _floatHostRef;
1653
+ constructor(props: IColorPickerComponentProps);
1654
+ syncPositions(): void;
1655
+ shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
1656
+ componentDidUpdate(): void;
1657
+ componentDidMount(): void;
1658
+ setPickerState(enabled: boolean): void;
1659
+ render(): JSX.Element;
1660
+ }
1661
+ export {};
1662
+
1663
+ }
1664
+ declare module "babylonjs-node-editor/sharedComponents/draggableLineComponent" {
1665
+ import * as React from "react";
1666
+ export interface IButtonLineComponentProps {
1667
+ data: string;
1668
+ tooltip: string;
1669
+ }
1670
+ export declare class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
1671
+ constructor(props: IButtonLineComponentProps);
1672
+ render(): JSX.Element;
1673
+ }
1674
+
1675
+ }
1676
+ declare module "babylonjs-node-editor/sharedComponents/draggableLineWithButtonComponent" {
1677
+ import * as React from "react";
1678
+ export interface IDraggableLineWithButtonComponent {
1679
+ data: string;
1680
+ tooltip: string;
1681
+ iconImage: any;
1682
+ onIconClick: (value: string) => void;
1683
+ iconTitle: string;
1684
+ lenSuffixToRemove?: number;
1685
+ }
1686
+ export declare class DraggableLineWithButtonComponent extends React.Component<IDraggableLineWithButtonComponent> {
1687
+ constructor(props: IDraggableLineWithButtonComponent);
1688
+ render(): JSX.Element;
1689
+ }
1690
+
1691
+ }
1692
+ declare module "babylonjs-node-editor/sharedComponents/fileButtonLineComponent" {
1693
+ import * as React from "react";
1694
+ interface IFileButtonLineComponentProps {
1695
+ label: string;
1696
+ onClick: (file: File) => void;
1697
+ accept: string;
1698
+ uploadName?: string;
1699
+ }
1700
+ export declare class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
1701
+ private uploadRef;
1702
+ constructor(props: IFileButtonLineComponentProps);
1703
+ onChange(evt: any): void;
1704
+ render(): JSX.Element;
1705
+ }
1706
+ export {};
1707
+
1708
+ }
1709
+ declare module "babylonjs-node-editor/sharedComponents/floatLineComponent" {
1710
+ import * as React from "react";
1711
+ import { Observable } from "babylonjs/Misc/observable";
1712
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
1713
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1714
+ interface IFloatLineComponentProps {
1715
+ label: string;
1716
+ target: any;
1717
+ propertyName: string;
1718
+ onChange?: (newValue: number) => void;
1719
+ isInteger?: boolean;
1720
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1721
+ additionalClass?: string;
1722
+ step?: string;
1723
+ digits?: number;
1724
+ globalState: GlobalState;
1725
+ min?: number;
1726
+ max?: number;
1727
+ smallUI?: boolean;
1728
+ onEnter?: (newValue: number) => void;
1729
+ }
1730
+ export declare class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
1731
+ value: string;
1732
+ }> {
1733
+ private _localChange;
1734
+ private _store;
1735
+ private _regExp;
1736
+ private _onFocus;
1737
+ constructor(props: IFloatLineComponentProps);
1738
+ shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
1739
+ value: string;
1740
+ }): boolean;
1741
+ componentWillUnmount(): void;
1742
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1743
+ updateValue(valueString: string): void;
1744
+ render(): JSX.Element;
1745
+ }
1746
+ export {};
1747
+
1748
+ }
1749
+ declare module "babylonjs-node-editor/sharedComponents/lineContainerComponent" {
1750
+ import * as React from "react";
1751
+ interface ILineContainerComponentProps {
1752
+ title: string;
1753
+ children: any[] | any;
1754
+ closed?: boolean;
1755
+ }
1756
+ export declare class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
1757
+ isExpanded: boolean;
1758
+ }> {
1759
+ constructor(props: ILineContainerComponentProps);
1760
+ switchExpandedState(): void;
1761
+ renderHeader(): JSX.Element;
1762
+ render(): JSX.Element;
1763
+ }
1764
+ export {};
1765
+
1766
+ }
1767
+ declare module "babylonjs-node-editor/sharedComponents/lineWithFileButtonComponent" {
1768
+ import * as React from "react";
1769
+ interface ILineWithFileButtonComponentProps {
1770
+ title: string;
1771
+ closed?: boolean;
1772
+ label: string;
1773
+ iconImage: any;
1774
+ onIconClick: (file: File) => void;
1775
+ accept: string;
1776
+ uploadName?: string;
1777
+ }
1778
+ export declare class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, {
1779
+ isExpanded: boolean;
1780
+ }> {
1781
+ private uploadRef;
1782
+ constructor(props: ILineWithFileButtonComponentProps);
1783
+ onChange(evt: any): void;
1784
+ switchExpandedState(): void;
1785
+ render(): JSX.Element;
1786
+ }
1787
+ export {};
1788
+
1789
+ }
1790
+ declare module "babylonjs-node-editor/sharedComponents/matrixLineComponent" {
1791
+ import * as React from "react";
1792
+ import { Vector3, Matrix, Vector4 } from "babylonjs/Maths/math.vector";
1793
+ import { Observable } from "babylonjs/Misc/observable";
1794
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
1795
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1796
+ interface IMatrixLineComponentProps {
1797
+ label: string;
1798
+ target: any;
1799
+ propertyName: string;
1800
+ step?: number;
1801
+ onChange?: (newValue: Matrix) => void;
1802
+ onModeChange?: (mode: number) => void;
1803
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1804
+ mode?: number;
1805
+ globalState: GlobalState;
1806
+ }
1807
+ export declare class MatrixLineComponent extends React.Component<IMatrixLineComponentProps, {
1808
+ value: Matrix;
1809
+ mode: number;
1810
+ angle: number;
1811
+ }> {
1812
+ private _localChange;
1813
+ constructor(props: IMatrixLineComponentProps);
1814
+ shouldComponentUpdate(nextProps: IMatrixLineComponentProps, nextState: {
1815
+ value: Matrix;
1816
+ mode: number;
1817
+ angle: number;
1818
+ }): boolean;
1819
+ raiseOnPropertyChanged(previousValue: Vector3): void;
1820
+ updateMatrix(): void;
1821
+ updateRow(value: Vector4, row: number): void;
1822
+ updateBasedOnMode(value: number): void;
1823
+ render(): JSX.Element;
1824
+ }
1825
+ export {};
1826
+
1827
+ }
1828
+ declare module "babylonjs-node-editor/sharedComponents/messageDialog" {
1829
+ import * as React from "react";
1830
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1831
+ interface IMessageDialogComponentProps {
1832
+ globalState: GlobalState;
1833
+ }
1834
+ export declare class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
1835
+ message: string;
1836
+ isError: boolean;
1837
+ }> {
1838
+ constructor(props: IMessageDialogComponentProps);
1839
+ render(): JSX.Element | null;
1840
+ }
1841
+ export {};
1842
+
1843
+ }
1844
+ declare module "babylonjs-node-editor/sharedComponents/numericInputComponent" {
1845
+ import * as React from "react";
1846
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1847
+ interface INumericInputComponentProps {
1848
+ label: string;
1849
+ value: number;
1850
+ step?: number;
1851
+ onChange: (value: number) => void;
1852
+ globalState: GlobalState;
1853
+ }
1854
+ export declare class NumericInputComponent extends React.Component<INumericInputComponentProps, {
1855
+ value: string;
1856
+ }> {
1857
+ static defaultProps: {
1858
+ step: number;
1859
+ };
1860
+ private _localChange;
1861
+ constructor(props: INumericInputComponentProps);
1862
+ shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
1863
+ value: string;
1864
+ }): boolean;
1865
+ updateValue(evt: any): void;
1866
+ render(): JSX.Element;
1867
+ }
1868
+ export {};
1869
+
1870
+ }
1871
+ declare module "babylonjs-node-editor/sharedComponents/optionsLineComponent" {
1872
+ import * as React from "react";
1873
+ import { Observable } from "babylonjs/Misc/observable";
1874
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
1875
+ import { IInspectableOptions } from "babylonjs/Misc/iInspectable";
1876
+ interface IOptionsLineComponentProps {
1877
+ label: string;
1878
+ target: any;
1879
+ className?: string;
1880
+ propertyName?: string;
1881
+ options: IInspectableOptions[];
1882
+ noDirectUpdate?: boolean;
1883
+ onSelect?: (value: number | string) => void;
1884
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1885
+ valuesAreStrings?: boolean;
1886
+ defaultIfNull?: number;
1887
+ getSelection?: (target: any) => number;
1888
+ }
1889
+ export declare class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
1890
+ value: number | string;
1891
+ }> {
1892
+ private _localChange;
1893
+ private _getValue;
1894
+ constructor(props: IOptionsLineComponentProps);
1895
+ setValue(value: string | number): void;
1896
+ shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
1897
+ value: number;
1898
+ }): boolean;
1899
+ raiseOnPropertyChanged(newValue: number | string, previousValue: number | string): void;
1900
+ updateValue(valueString: string): void;
1901
+ render(): JSX.Element;
1902
+ }
1903
+ export {};
1904
+
1905
+ }
1906
+ declare module "babylonjs-node-editor/sharedComponents/popup" {
1907
+ export declare class Popup {
1908
+ static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
1909
+ static _CopyStyles(sourceDoc: HTMLDocument, targetDoc: HTMLDocument): void;
1910
+ }
1911
+
1912
+ }
1913
+ declare module "babylonjs-node-editor/sharedComponents/propertyChangedEvent" {
1914
+ export declare class PropertyChangedEvent {
1915
+ object: any;
1916
+ property: string;
1917
+ value: any;
1918
+ initialValue: any;
1919
+ }
1920
+
1921
+ }
1922
+ declare module "babylonjs-node-editor/sharedComponents/sliderLineComponent" {
1923
+ import * as React from "react";
1924
+ import { Observable } from "babylonjs/Misc/observable";
1925
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
1926
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1927
+ interface ISliderLineComponentProps {
1928
+ label: string;
1929
+ target?: any;
1930
+ propertyName?: string;
1931
+ minimum: number;
1932
+ maximum: number;
1933
+ step: number;
1934
+ directValue?: number;
1935
+ useEuler?: boolean;
1936
+ onChange?: (value: number) => void;
1937
+ onInput?: (value: number) => void;
1938
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1939
+ decimalCount?: number;
1940
+ globalState: GlobalState;
1941
+ }
1942
+ export declare class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
1943
+ value: number;
1944
+ }> {
1945
+ private _localChange;
1946
+ constructor(props: ISliderLineComponentProps);
1947
+ shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
1948
+ value: number;
1949
+ }): boolean;
1950
+ onChange(newValueString: any): void;
1951
+ onInput(newValueString: any): void;
1952
+ prepareDataToRead(value: number): number;
1953
+ render(): JSX.Element;
1954
+ }
1955
+ export {};
1956
+
1957
+ }
1958
+ declare module "babylonjs-node-editor/sharedComponents/textInputLineComponent" {
1959
+ import * as React from "react";
1960
+ import { Observable } from "babylonjs/Misc/observable";
1961
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
1962
+ import { GlobalState } from "babylonjs-node-editor/globalState";
1963
+ interface ITextInputLineComponentProps {
1964
+ label: string;
1965
+ globalState: GlobalState;
1966
+ target?: any;
1967
+ propertyName?: string;
1968
+ value?: string;
1969
+ multilines?: boolean;
1970
+ onChange?: (value: string) => void;
1971
+ validator?: (value: string) => boolean;
1972
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1973
+ }
1974
+ export declare class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
1975
+ value: string;
1976
+ }> {
1977
+ private _localChange;
1978
+ private _onFocus;
1979
+ constructor(props: ITextInputLineComponentProps);
1980
+ shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
1981
+ value: string;
1982
+ }): boolean;
1983
+ componentWillUnmount(): void;
1984
+ raiseOnPropertyChanged(newValue: string, previousValue: string): void;
1985
+ updateValue(value: string, raisePropertyChanged: boolean): void;
1986
+ render(): JSX.Element;
1987
+ }
1988
+ export {};
1989
+
1990
+ }
1991
+ declare module "babylonjs-node-editor/sharedComponents/textLineComponent" {
1992
+ import * as React from "react";
1993
+ interface ITextLineComponentProps {
1994
+ label: string;
1995
+ value: string;
1996
+ color?: string;
1997
+ underline?: boolean;
1998
+ onLink?: () => void;
1999
+ }
2000
+ export declare class TextLineComponent extends React.Component<ITextLineComponentProps> {
2001
+ constructor(props: ITextLineComponentProps);
2002
+ onLink(): void;
2003
+ renderContent(): JSX.Element;
2004
+ render(): JSX.Element;
2005
+ }
2006
+ export {};
2007
+
2008
+ }
2009
+ declare module "babylonjs-node-editor/sharedComponents/textureLineComponent" {
2010
+ import * as React from "react";
2011
+ import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
2012
+ interface ITextureLineComponentProps {
2013
+ texture: BaseTexture;
2014
+ width: number;
2015
+ height: number;
2016
+ globalState?: any;
2017
+ hideChannelSelect?: boolean;
2018
+ }
2019
+ export interface ITextureLineComponentState {
2020
+ displayRed: boolean;
2021
+ displayGreen: boolean;
2022
+ displayBlue: boolean;
2023
+ displayAlpha: boolean;
2024
+ face: number;
2025
+ }
2026
+ export declare class TextureLineComponent extends React.Component<ITextureLineComponentProps, ITextureLineComponentState> {
2027
+ private canvasRef;
2028
+ constructor(props: ITextureLineComponentProps);
2029
+ shouldComponentUpdate(nextProps: ITextureLineComponentProps, nextState: {
2030
+ displayRed: boolean;
2031
+ displayGreen: boolean;
2032
+ displayBlue: boolean;
2033
+ displayAlpha: boolean;
2034
+ face: number;
2035
+ }): boolean;
2036
+ componentDidMount(): void;
2037
+ componentDidUpdate(): void;
2038
+ updatePreview(): void;
2039
+ static UpdatePreview(previewCanvas: HTMLCanvasElement, texture: BaseTexture, width: number, options: ITextureLineComponentState, onReady?: () => void, globalState?: any): Promise<void>;
2040
+ render(): JSX.Element;
2041
+ }
2042
+ export {};
2043
+
2044
+ }
2045
+ declare module "babylonjs-node-editor/sharedComponents/vector2LineComponent" {
2046
+ import * as React from "react";
2047
+ import { Vector2 } from "babylonjs/Maths/math.vector";
2048
+ import { Observable } from "babylonjs/Misc/observable";
2049
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
2050
+ import { GlobalState } from "babylonjs-node-editor/globalState";
2051
+ interface IVector2LineComponentProps {
2052
+ label: string;
2053
+ target: any;
2054
+ propertyName: string;
2055
+ step?: number;
2056
+ onChange?: (newvalue: Vector2) => void;
2057
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2058
+ globalState: GlobalState;
2059
+ }
2060
+ export declare class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
2061
+ isExpanded: boolean;
2062
+ value: Vector2;
2063
+ }> {
2064
+ static defaultProps: {
2065
+ step: number;
2066
+ };
2067
+ private _localChange;
2068
+ constructor(props: IVector2LineComponentProps);
2069
+ shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
2070
+ isExpanded: boolean;
2071
+ value: Vector2;
2072
+ }): boolean;
2073
+ switchExpandState(): void;
2074
+ raiseOnPropertyChanged(previousValue: Vector2): void;
2075
+ updateStateX(value: number): void;
2076
+ updateStateY(value: number): void;
2077
+ render(): JSX.Element;
2078
+ }
2079
+ export {};
2080
+
2081
+ }
2082
+ declare module "babylonjs-node-editor/sharedComponents/vector3LineComponent" {
2083
+ import * as React from "react";
2084
+ import { Vector3 } from "babylonjs/Maths/math.vector";
2085
+ import { Observable } from "babylonjs/Misc/observable";
2086
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
2087
+ import { GlobalState } from "babylonjs-node-editor/globalState";
2088
+ interface IVector3LineComponentProps {
2089
+ label: string;
2090
+ target: any;
2091
+ propertyName: string;
2092
+ step?: number;
2093
+ onChange?: (newvalue: Vector3) => void;
2094
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2095
+ globalState: GlobalState;
2096
+ }
2097
+ export declare class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
2098
+ isExpanded: boolean;
2099
+ value: Vector3;
2100
+ }> {
2101
+ static defaultProps: {
2102
+ step: number;
2103
+ };
2104
+ private _localChange;
2105
+ constructor(props: IVector3LineComponentProps);
2106
+ shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
2107
+ isExpanded: boolean;
2108
+ value: Vector3;
2109
+ }): boolean;
2110
+ switchExpandState(): void;
2111
+ raiseOnPropertyChanged(previousValue: Vector3): void;
2112
+ updateVector3(): void;
2113
+ updateStateX(value: number): void;
2114
+ updateStateY(value: number): void;
2115
+ updateStateZ(value: number): void;
2116
+ render(): JSX.Element;
2117
+ }
2118
+ export {};
2119
+
2120
+ }
2121
+ declare module "babylonjs-node-editor/sharedComponents/vector4LineComponent" {
2122
+ import * as React from "react";
2123
+ import { Vector4 } from "babylonjs/Maths/math.vector";
2124
+ import { Observable } from "babylonjs/Misc/observable";
2125
+ import { PropertyChangedEvent } from "babylonjs-node-editor/sharedComponents/propertyChangedEvent";
2126
+ import { GlobalState } from "babylonjs-node-editor/globalState";
2127
+ interface IVector4LineComponentProps {
2128
+ label: string;
2129
+ target?: any;
2130
+ propertyName?: string;
2131
+ value?: Vector4;
2132
+ step?: number;
2133
+ onChange?: (newvalue: Vector4) => void;
2134
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2135
+ globalState: GlobalState;
2136
+ }
2137
+ export declare class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
2138
+ isExpanded: boolean;
2139
+ value: Vector4;
2140
+ }> {
2141
+ static defaultProps: {
2142
+ step: number;
2143
+ };
2144
+ private _localChange;
2145
+ constructor(props: IVector4LineComponentProps);
2146
+ shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
2147
+ isExpanded: boolean;
2148
+ value: Vector4;
2149
+ }): boolean;
2150
+ switchExpandState(): void;
2151
+ raiseOnPropertyChanged(previousValue: Vector4): void;
2152
+ updateVector4(): void;
2153
+ updateStateX(value: number): void;
2154
+ updateStateY(value: number): void;
2155
+ updateStateZ(value: number): void;
2156
+ updateStateW(value: number): void;
2157
+ render(): JSX.Element;
2158
+ }
2159
+ export {};
2160
+
2161
+ }
2162
+
2163
+ declare module "babylonjs-node-editor" {
2164
+ export * from "babylonjs-node-editor/legacy/legacy";
2165
+ }
2166
+
2167
+ declare module BABYLON.NodeEditor {
2168
+ export class BlockTools {
2169
  static GetBlockFromString(data: string, scene: BABYLON.Scene, nodeMaterial: BABYLON.NodeMaterial): BABYLON.ElbowBlock | BABYLON.TwirlBlock | BABYLON.VoronoiNoiseBlock | BABYLON.ScreenSpaceBlock | BABYLON.CloudBlock | BABYLON.MatrixBuilderBlock | BABYLON.DesaturateBlock | BABYLON.RefractBlock | BABYLON.ReflectBlock | BABYLON.DerivativeBlock | BABYLON.Rotate2dBlock | BABYLON.NormalBlendBlock | 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.ModBlock | 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 | BABYLON.PBRMetallicRoughnessBlock | BABYLON.SheenBlock | BABYLON.AnisotropyBlock | BABYLON.ReflectionBlock | BABYLON.ClearCoatBlock | BABYLON.RefractionBlock | BABYLON.SubSurfaceBlock | BABYLON.CurrentScreenBlock | BABYLON.ParticleTextureBlock | BABYLON.ParticleRampGradientBlock | BABYLON.ParticleBlendMultiplyBlock | BABYLON.FragCoordBlock | BABYLON.ScreenSizeBlock | BABYLON.SceneDepthBlock | BABYLON.ConditionalBlock | BABYLON.ImageSourceBlock | BABYLON.ClipPlanesBlock | null;
1
2170
  static GetColorFromConnectionNodeType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): string;
2
2171
  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;
3
2172
  static GetStringFromConnectionNodeType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): "" | "Float" | "Vector2" | "Vector3" | "Vector4" | "Matrix" | "Color3" | "Color4";
4
2173
  }
2174
+
2175
+ interface ILogComponentProps {
5
2176
  globalState: GlobalState;
6
2177
  }
7
2178
  export class LogEntry {
8
2179
  message: string;
9
2180
  isError: boolean;
10
2181
  constructor(message: string, isError: boolean);
11
2182
  }
12
2183
  export class LogComponent extends React.Component<ILogComponentProps, {
13
2184
  logs: LogEntry[];
14
2185
  }> {
15
2186
  constructor(props: ILogComponentProps);
16
2187
  componentDidMount(): void;
17
2188
  componentDidUpdate(): void;
18
2189
  render(): JSX.Element;
19
2190
  }
2191
+
2192
+ interface INodeListComponentProps {
20
2193
  globalState: GlobalState;
21
2194
  }
22
2195
  export class NodeListComponent extends React.Component<INodeListComponentProps, {
23
2196
  filter: string;
24
2197
  }> {
25
2198
  private _onResetRequiredObserver;
26
2199
  private static _Tooltips;
27
2200
  private _customFrameList;
28
2201
  private _customBlockList;
29
2202
  constructor(props: INodeListComponentProps);
30
2203
  componentWillUnmount(): void;
31
2204
  filterContent(filter: string): void;
32
2205
  loadCustomFrame(file: File): void;
33
2206
  removeItem(value: string): void;
34
2207
  loadCustomBlock(file: File): void;
35
2208
  removeCustomBlock(value: string): void;
36
2209
  render(): JSX.Element;
37
2210
  }
2211
+
2212
+ interface IPreviewAreaComponentProps {
38
2213
  globalState: GlobalState;
39
2214
  width: number;
40
2215
  }
41
2216
  export class PreviewAreaComponent extends React.Component<IPreviewAreaComponentProps, {
42
2217
  isLoading: boolean;
43
2218
  }> {
44
2219
  private _onIsLoadingChangedObserver;
45
2220
  private _onResetRequiredObserver;
46
2221
  constructor(props: IPreviewAreaComponentProps);
47
2222
  componentWillUnmount(): void;
48
2223
  changeBackFaceCulling(value: boolean): void;
49
2224
  changeDepthPrePass(value: boolean): void;
50
2225
  changeParticleSystemBlendMode(newOne: number): void;
51
2226
  render(): JSX.Element;
52
2227
  }
2228
+
2229
+ export class PreviewManager {
53
2230
  private _nodeMaterial;
54
2231
  private _onBuildObserver;
55
2232
  private _onPreviewCommandActivatedObserver;
56
2233
  private _onAnimationCommandActivatedObserver;
57
2234
  private _onUpdateRequiredObserver;
58
2235
  private _onPreviewBackgroundChangedObserver;
59
2236
  private _onBackFaceCullingChangedObserver;
60
2237
  private _onDepthPrePassChangedObserver;
61
2238
  private _onLightUpdatedObserver;
62
2239
  private _engine;
63
2240
  private _scene;
64
2241
  private _meshes;
65
2242
  private _camera;
66
2243
  private _material;
67
2244
  private _globalState;
68
2245
  private _currentType;
69
2246
  private _lightParent;
70
2247
  private _postprocess;
71
2248
  private _proceduralTexture;
72
2249
  private _particleSystem;
73
2250
  private _layer;
74
2251
  constructor(targetCanvas: HTMLCanvasElement, globalState: GlobalState);
75
2252
  private _handleAnimations;
76
2253
  private _prepareLights;
77
2254
  private _prepareScene;
78
2255
  private _refreshPreviewMesh;
79
2256
  private _loadParticleSystem;
80
2257
  private _forceCompilationAsync;
81
2258
  private _updatePreview;
82
2259
  dispose(): void;
83
2260
  }
2261
+
2262
+ interface IPreviewMeshControlComponent {
84
2263
  globalState: GlobalState;
85
2264
  togglePreviewAreaComponent: () => void;
86
2265
  }
87
2266
  export class PreviewMeshControlComponent extends React.Component<IPreviewMeshControlComponent> {
88
2267
  private colorInputRef;
89
2268
  private filePickerRef;
90
2269
  private _onResetRequiredObserver;
91
2270
  constructor(props: IPreviewMeshControlComponent);
92
2271
  componentWillUnmount(): void;
93
2272
  changeMeshType(newOne: PreviewType): void;
94
2273
  useCustomMesh(evt: any): void;
95
2274
  onPopUp(): void;
96
2275
  changeAnimation(): void;
97
2276
  changeBackground(value: string): void;
98
2277
  changeBackgroundClick(): void;
99
2278
  render(): JSX.Element;
100
2279
  }
2280
+
2281
+ export enum PreviewType {
101
2282
  Sphere = 0,
102
2283
  Box = 1,
103
2284
  Torus = 2,
104
2285
  Cylinder = 3,
105
2286
  Plane = 4,
106
2287
  ShaderBall = 5,
107
2288
  DefaultParticleSystem = 6,
108
2289
  Bubbles = 7,
109
2290
  Smoke = 8,
110
2291
  Rain = 9,
111
2292
  Explosion = 10,
112
2293
  Fire = 11,
113
2294
  Custom = 12
114
2295
  }
2296
+
2297
+ interface IInputsPropertyTabComponentProps {
115
2298
  globalState: GlobalState;
116
2299
  inputs: BABYLON.InputBlock[];
117
2300
  }
118
2301
  export class InputsPropertyTabComponent extends React.Component<IInputsPropertyTabComponentProps> {
119
2302
  constructor(props: IInputsPropertyTabComponentProps);
120
2303
  processInputBlockUpdate(ib: BABYLON.InputBlock): void;
121
2304
  renderInputBlock(block: BABYLON.InputBlock): JSX.Element | null;
122
2305
  render(): JSX.Element;
123
2306
  }
2307
+
2308
+ interface IColor3PropertyTabComponentProps {
124
2309
  globalState: GlobalState;
125
2310
  inputBlock: BABYLON.InputBlock;
126
2311
  }
127
2312
  export class Color3PropertyTabComponent extends React.Component<IColor3PropertyTabComponentProps> {
128
2313
  render(): JSX.Element;
129
2314
  }
2315
+
2316
+ interface IColor4PropertyTabComponentProps {
130
2317
  globalState: GlobalState;
131
2318
  inputBlock: BABYLON.InputBlock;
132
2319
  }
133
2320
  export class Color4PropertyTabComponent extends React.Component<IColor4PropertyTabComponentProps> {
134
2321
  render(): JSX.Element;
135
2322
  }
2323
+
2324
+ interface IFloatPropertyTabComponentProps {
136
2325
  globalState: GlobalState;
137
2326
  inputBlock: BABYLON.InputBlock;
138
2327
  }
139
2328
  export class FloatPropertyTabComponent extends React.Component<IFloatPropertyTabComponentProps> {
140
2329
  render(): JSX.Element;
141
2330
  }
2331
+
2332
+ interface IMatrixPropertyTabComponentProps {
142
2333
  globalState: GlobalState;
143
2334
  inputBlock: BABYLON.InputBlock;
144
2335
  }
145
2336
  export class MatrixPropertyTabComponent extends React.Component<IMatrixPropertyTabComponentProps> {
146
2337
  render(): JSX.Element;
147
2338
  }
2339
+
2340
+ interface IVector2PropertyTabComponentProps {
148
2341
  globalState: GlobalState;
149
2342
  inputBlock: BABYLON.InputBlock;
150
2343
  }
151
2344
  export class Vector2PropertyTabComponent extends React.Component<IVector2PropertyTabComponentProps> {
152
2345
  render(): JSX.Element;
153
2346
  }
2347
+
2348
+ interface IVector3PropertyTabComponentProps {
154
2349
  globalState: GlobalState;
155
2350
  inputBlock: BABYLON.InputBlock;
156
2351
  }
157
2352
  export class Vector3PropertyTabComponent extends React.Component<IVector3PropertyTabComponentProps> {
158
2353
  render(): JSX.Element;
159
2354
  }
2355
+
2356
+ interface IVector4PropertyTabComponentProps {
160
2357
  globalState: GlobalState;
161
2358
  inputBlock: BABYLON.InputBlock;
162
2359
  }
163
2360
  export class Vector4PropertyTabComponent extends React.Component<IVector4PropertyTabComponentProps> {
164
2361
  render(): JSX.Element;
165
2362
  }
2363
+
2364
+ interface IPropertyTabComponentProps {
166
2365
  globalState: GlobalState;
167
2366
  }
168
2367
  interface IPropertyTabComponentState {
169
2368
  currentNode: BABYLON.Nullable<GraphNode>;
170
2369
  currentFrame: BABYLON.Nullable<GraphFrame>;
171
2370
  currentFrameNodePort: BABYLON.Nullable<FrameNodePort>;
172
2371
  currentNodePort: BABYLON.Nullable<NodePort>;
173
2372
  uploadInProgress: boolean;
174
2373
  }
175
2374
  export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
176
2375
  private _onBuiltObserver;
177
2376
  private _modeSelect;
178
2377
  constructor(props: IPropertyTabComponentProps);
179
2378
  componentDidMount(): void;
180
2379
  componentWillUnmount(): void;
181
2380
  processInputBlockUpdate(ib: BABYLON.InputBlock): void;
182
2381
  renderInputBlock(block: BABYLON.InputBlock): JSX.Element | null;
183
2382
  load(file: File): void;
184
2383
  loadFrame(file: File): void;
185
2384
  save(): void;
186
2385
  customSave(): void;
187
2386
  saveToSnippetServer(): void;
188
2387
  loadFromSnippet(): void;
189
2388
  changeMode(value: any, force?: boolean, loadDefault?: boolean): boolean;
190
2389
  render(): JSX.Element;
191
2390
  }
2391
+
2392
+ export class ClampDisplayManager implements IDisplayManager {
192
2393
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
193
2394
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
194
2395
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
195
2396
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
196
2397
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
197
2398
  }
2399
+
2400
+ export class ConditionalDisplayManager implements IDisplayManager {
198
2401
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
199
2402
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
200
2403
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
201
2404
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
202
2405
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
203
2406
  }
2407
+
2408
+ export class DiscardDisplayManager implements IDisplayManager {
204
2409
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
205
2410
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
206
2411
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
207
2412
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
208
2413
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
209
2414
  }
2415
+
2416
+ export interface IDisplayManager {
210
2417
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
211
2418
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
212
2419
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
213
2420
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
214
2421
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
215
2422
  }
2423
+
2424
+ export class ElbowDisplayManager implements IDisplayManager {
216
2425
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
217
2426
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
218
2427
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
219
2428
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
220
2429
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
221
2430
  }
2431
+
2432
+ export class GradientDisplayManager implements IDisplayManager {
222
2433
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
223
2434
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
224
2435
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
225
2436
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
226
2437
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
227
2438
  }
2439
+
2440
+ export class imageSourceDisplayManager implements IDisplayManager {
228
2441
  private _previewCanvas;
229
2442
  private _previewImage;
230
2443
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
231
2444
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
232
2445
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
233
2446
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
234
2447
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
235
2448
  }
2449
+
2450
+ export class InputDisplayManager implements IDisplayManager {
236
2451
  getHeaderClass(block: BABYLON.NodeMaterialBlock): "" | "constant" | "inspector";
237
2452
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
238
2453
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
239
2454
  static GetBaseType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): string;
240
2455
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
241
2456
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
242
2457
  }
2458
+
2459
+ export class OutputDisplayManager implements IDisplayManager {
243
2460
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
244
2461
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
245
2462
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
246
2463
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
247
2464
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
248
2465
  }
2466
+
2467
+ export class PBRDisplayManager implements IDisplayManager {
249
2468
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
250
2469
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
251
2470
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
252
2471
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
253
2472
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
254
2473
  }
2474
+
2475
+ export class RemapDisplayManager implements IDisplayManager {
255
2476
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
256
2477
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
257
2478
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
258
2479
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
259
2480
  private _extractInputValue;
260
2481
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
261
2482
  }
2483
+
2484
+ export class TextureDisplayManager implements IDisplayManager {
262
2485
  private _previewCanvas;
263
2486
  private _previewImage;
264
2487
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
265
2488
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
266
2489
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
267
2490
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
268
2491
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
269
2492
  }
2493
+
2494
+ export class TrigonometryDisplayManager implements IDisplayManager {
270
2495
  getHeaderClass(block: BABYLON.NodeMaterialBlock): string;
271
2496
  shouldDisplayPortLabels(block: BABYLON.NodeMaterialBlock): boolean;
272
2497
  getHeaderText(block: BABYLON.NodeMaterialBlock): string;
273
2498
  getBackgroundColor(block: BABYLON.NodeMaterialBlock): string;
274
2499
  updatePreviewContent(block: BABYLON.NodeMaterialBlock, contentArea: HTMLDivElement): void;
275
2500
  }
2501
+
2502
+ export class DisplayLedger {
276
2503
  static RegisteredControls: {
277
2504
  [key: string]: any;
278
2505
  };
279
2506
  }
2507
+
2508
+ export class FrameNodePort extends NodePort {
280
2509
  connectionPoint: BABYLON.NodeMaterialConnectionPoint;
281
2510
  node: GraphNode;
282
2511
  private _parentFrameId;
283
2512
  private _isInput;
284
2513
  private _framePortPosition;
285
2514
  private _framePortId;
286
2515
  private _onFramePortPositionChangedObservable;
287
2516
  get parentFrameId(): number;
288
2517
  get onFramePortPositionChangedObservable(): BABYLON.Observable<FrameNodePort>;
289
2518
  get isInput(): boolean;
290
2519
  get framePortId(): number;
291
2520
  get framePortPosition(): FramePortPosition;
292
2521
  set framePortPosition(position: FramePortPosition);
293
2522
  constructor(portContainer: HTMLElement, connectionPoint: BABYLON.NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number);
294
2523
  static CreateFrameNodePortElement(connectionPoint: BABYLON.NodeMaterialConnectionPoint, node: GraphNode, root: HTMLElement, displayManager: BABYLON.Nullable<IDisplayManager>, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number): FrameNodePort;
295
2524
  }
2525
+
2526
+ export interface IGraphCanvasComponentProps {
296
2527
  globalState: GlobalState;
297
2528
  onEmitNewBlock: (block: BABYLON.NodeMaterialBlock) => GraphNode;
298
2529
  }
299
2530
  export type FramePortData = {
300
2531
  frame: GraphFrame;
301
2532
  port: FrameNodePort;
302
2533
  };
303
2534
  export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
304
2535
  export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentProps> {
305
2536
  private readonly MinZoom;
306
2537
  private readonly MaxZoom;
307
2538
  private _hostCanvas;
308
2539
  private _graphCanvas;
309
2540
  private _selectionContainer;
310
2541
  private _frameContainer;
311
2542
  private _svgCanvas;
312
2543
  private _rootContainer;
313
2544
  private _nodes;
314
2545
  private _links;
315
2546
  private _mouseStartPointX;
316
2547
  private _mouseStartPointY;
317
2548
  private _dropPointX;
318
2549
  private _dropPointY;
319
2550
  private _selectionStartX;
320
2551
  private _selectionStartY;
321
2552
  private _candidateLinkedHasMoved;
322
2553
  private _x;
323
2554
  private _y;
324
2555
  private _zoom;
325
2556
  private _selectedNodes;
326
2557
  private _selectedLink;
327
2558
  private _selectedPort;
328
2559
  private _candidateLink;
329
2560
  private _candidatePort;
330
2561
  private _gridSize;
331
2562
  private _selectionBox;
332
2563
  private _selectedFrame;
333
2564
  private _frameCandidate;
334
2565
  private _frames;
335
2566
  private _altKeyIsPressed;
336
2567
  private _ctrlKeyIsPressed;
337
2568
  private _oldY;
338
2569
  _frameIsMoving: boolean;
339
2570
  _isLoading: boolean;
340
2571
  get gridSize(): number;
341
2572
  set gridSize(value: number);
342
2573
  get globalState(): GlobalState;
343
2574
  get nodes(): GraphNode[];
344
2575
  get links(): NodeLink[];
345
2576
  get frames(): GraphFrame[];
346
2577
  get zoom(): number;
347
2578
  set zoom(value: number);
348
2579
  get x(): number;
349
2580
  set x(value: number);
350
2581
  get y(): number;
351
2582
  set y(value: number);
352
2583
  get selectedNodes(): GraphNode[];
353
2584
  get selectedLink(): BABYLON.Nullable<NodeLink>;
354
2585
  get selectedFrame(): BABYLON.Nullable<GraphFrame>;
355
2586
  get selectedPort(): BABYLON.Nullable<NodePort>;
356
2587
  get canvasContainer(): HTMLDivElement;
357
2588
  get hostCanvas(): HTMLDivElement;
358
2589
  get svgCanvas(): HTMLElement;
359
2590
  get selectionContainer(): HTMLDivElement;
360
2591
  get frameContainer(): HTMLDivElement;
361
2592
  constructor(props: IGraphCanvasComponentProps);
362
2593
  static _RefreshNode: (node: GraphNode, visitedNodes?: Set<GraphNode> | undefined, visitedLinks?: Set<NodeLink> | undefined) => void;
363
2594
  getGridPosition(position: number, useCeil?: boolean): number;
364
2595
  getGridPositionCeil(position: number): number;
365
2596
  updateTransform(): void;
366
2597
  onKeyUp(): void;
367
2598
  findNodeFromBlock(block: BABYLON.NodeMaterialBlock): GraphNode;
368
2599
  reset(): void;
369
2600
  connectPorts(pointA: BABYLON.NodeMaterialConnectionPoint, pointB: BABYLON.NodeMaterialConnectionPoint): void;
370
2601
  removeLink(link: NodeLink): void;
371
2602
  appendBlock(block: BABYLON.NodeMaterialBlock): GraphNode;
372
2603
  distributeGraph(): void;
373
2604
  componentDidMount(): void;
374
2605
  onMove(evt: React.PointerEvent): void;
375
2606
  onDown(evt: React.PointerEvent<HTMLElement>): void;
376
2607
  onUp(evt: React.PointerEvent): void;
377
2608
  onWheel(evt: React.WheelEvent): void;
378
2609
  zoomToFit(): void;
379
2610
  processCandidatePort(): void;
380
2611
  processEditorData(editorData: IEditorData): void;
381
2612
  addFrame(frameData: IFrameData): void;
382
2613
  render(): JSX.Element;
383
2614
  }
2615
+
2616
+ export enum FramePortPosition {
384
2617
  Top = 0,
385
2618
  Middle = 1,
386
2619
  Bottom = 2
387
2620
  }
388
2621
  export class GraphFrame {
389
2622
  private readonly CollapsedWidth;
390
2623
  private static _FrameCounter;
391
2624
  private static _FramePortCounter;
392
2625
  private _name;
393
2626
  private _color;
394
2627
  private _x;
395
2628
  private _y;
396
2629
  private _gridAlignedX;
397
2630
  private _gridAlignedY;
398
2631
  private _width;
399
2632
  private _height;
400
2633
  element: HTMLDivElement;
401
2634
  private _borderElement;
402
2635
  private _headerElement;
403
2636
  private _headerTextElement;
404
2637
  private _headerCollapseElement;
405
2638
  private _headerCloseElement;
406
2639
  private _commentsElement;
407
2640
  private _portContainer;
408
2641
  private _outputPortContainer;
409
2642
  private _inputPortContainer;
410
2643
  private _nodes;
411
2644
  private _ownerCanvas;
412
2645
  private _mouseStartPointX;
413
2646
  private _mouseStartPointY;
414
2647
  private _onSelectionChangedObserver;
415
2648
  private _onGraphNodeRemovalObserver;
416
2649
  private _onExposePortOnFrameObserver;
417
2650
  private _onNodeLinkDisposedObservers;
418
2651
  private _isCollapsed;
419
2652
  private _frameInPorts;
420
2653
  private _frameOutPorts;
421
2654
  private _controlledPorts;
422
2655
  private _exposedInPorts;
423
2656
  private _exposedOutPorts;
424
2657
  private _id;
425
2658
  private _comments;
426
2659
  private _frameIsResizing;
427
2660
  private _resizingDirection;
428
2661
  private _minFrameHeight;
429
2662
  private _minFrameWidth;
430
2663
  private mouseXLimit;
431
2664
  onExpandStateChanged: BABYLON.Observable<GraphFrame>;
432
2665
  private readonly CloseSVG;
433
2666
  private readonly ExpandSVG;
434
2667
  private readonly CollapseSVG;
435
2668
  get id(): number;
436
2669
  get isCollapsed(): boolean;
437
2670
  private _createInputPort;
438
2671
  private _markFramePortPositions;
439
2672
  private _createFramePorts;
440
2673
  private removePortFromExposedWithNode;
441
2674
  private removePortFromExposedWithLink;
442
2675
  private createInputPorts;
443
2676
  private createOutputPorts;
444
2677
  redrawFramePorts(): void;
445
2678
  set isCollapsed(value: boolean);
446
2679
  get nodes(): GraphNode[];
447
2680
  get ports(): FrameNodePort[];
448
2681
  get name(): string;
449
2682
  set name(value: string);
450
2683
  get color(): BABYLON.Color3;
451
2684
  set color(value: BABYLON.Color3);
452
2685
  get x(): number;
453
2686
  set x(value: number);
454
2687
  get y(): number;
455
2688
  set y(value: number);
456
2689
  get width(): number;
457
2690
  set width(value: number);
458
2691
  get height(): number;
459
2692
  set height(value: number);
460
2693
  get comments(): string;
461
2694
  set comments(comments: string);
462
2695
  constructor(candidate: BABYLON.Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
463
2696
  refresh(): void;
464
2697
  addNode(node: GraphNode): void;
465
2698
  removeNode(node: GraphNode): void;
466
2699
  syncNode(node: GraphNode): void;
467
2700
  cleanAccumulation(): void;
468
2701
  private _onDown;
469
2702
  move(newX: number, newY: number, align?: boolean): void;
470
2703
  private _onUp;
471
2704
  private _moveFrame;
472
2705
  private _onMove;
473
2706
  moveFramePortUp(nodePort: FrameNodePort): void;
474
2707
  private _movePortUp;
475
2708
  moveFramePortDown(nodePort: FrameNodePort): void;
476
2709
  private _movePortDown;
477
2710
  private initResizing;
478
2711
  private cleanUpResizing;
479
2712
  private updateMinHeightWithComments;
480
2713
  private _isResizingTop;
481
2714
  private _isResizingRight;
482
2715
  private _isResizingBottom;
483
2716
  private _isResizingLeft;
484
2717
  private _onRightHandlePointerDown;
485
2718
  private _onRightHandlePointerMove;
486
2719
  private _moveRightHandle;
487
2720
  private _onRightHandlePointerUp;
488
2721
  private _onBottomHandlePointerDown;
489
2722
  private _onBottomHandlePointerMove;
490
2723
  private _moveBottomHandle;
491
2724
  private _onBottomHandlePointerUp;
492
2725
  private _onLeftHandlePointerDown;
493
2726
  private _onLeftHandlePointerMove;
494
2727
  private _moveLeftHandle;
495
2728
  private _onLeftHandlePointerUp;
496
2729
  private _onTopHandlePointerDown;
497
2730
  private _onTopHandlePointerMove;
498
2731
  private _moveTopHandle;
499
2732
  private _onTopHandlePointerUp;
500
2733
  private _onTopRightHandlePointerDown;
501
2734
  private _onTopRightHandlePointerMove;
502
2735
  private _moveTopRightHandle;
503
2736
  private _onTopRightHandlePointerUp;
504
2737
  private _onBottomRightHandlePointerDown;
505
2738
  private _onBottomRightHandlePointerMove;
506
2739
  private _moveBottomRightHandle;
507
2740
  private _onBottomRightHandlePointerUp;
508
2741
  private _onBottomLeftHandlePointerDown;
509
2742
  private _onBottomLeftHandlePointerMove;
510
2743
  private _moveBottomLeftHandle;
511
2744
  private _onBottomLeftHandlePointerUp;
512
2745
  private _onTopLeftHandlePointerDown;
513
2746
  private _onTopLeftHandlePointerMove;
514
2747
  private _moveTopLeftHandle;
515
2748
  private _onTopLeftHandlePointerUp;
516
2749
  private _expandLeft;
517
2750
  private _expandTop;
518
2751
  private _expandRight;
519
2752
  private _expandBottom;
520
2753
  dispose(): void;
521
2754
  private serializePortData;
522
2755
  serialize(saveCollapsedState: boolean): IFrameData;
523
2756
  export(): void;
524
2757
  adjustPorts(): void;
525
2758
  static Parse(serializationData: IFrameData, canvas: GraphCanvasComponent, map?: {
526
2759
  [key: number]: number;
527
2760
  }): GraphFrame;
528
2761
  }
2762
+
2763
+ /// <reference types="react" />
529
2764
  export class GraphNode {
530
2765
  block: BABYLON.NodeMaterialBlock;
531
2766
  private _visual;
532
2767
  private _headerContainer;
533
2768
  private _promotionWarning;
534
2769
  private _header;
535
2770
  private _connections;
536
2771
  private _inputsContainer;
537
2772
  private _outputsContainer;
538
2773
  private _content;
539
2774
  private _comments;
540
2775
  private _inputPorts;
541
2776
  private _outputPorts;
542
2777
  private _links;
543
2778
  private _x;
544
2779
  private _y;
545
2780
  private _gridAlignedX;
546
2781
  private _gridAlignedY;
547
2782
  private _mouseStartPointX;
548
2783
  private _mouseStartPointY;
549
2784
  private _globalState;
550
2785
  private _onSelectionChangedObserver;
551
2786
  private _onSelectionBoxMovedObserver;
552
2787
  private _onFrameCreatedObserver;
553
2788
  private _onUpdateRequiredObserver;
554
2789
  private _ownerCanvas;
555
2790
  private _isSelected;
556
2791
  private _displayManager;
557
2792
  private _isVisible;
558
2793
  private _enclosingFrameId;
559
2794
  get isVisible(): boolean;
560
2795
  set isVisible(value: boolean);
561
2796
  private _upateNodePortNames;
562
2797
  get outputPorts(): NodePort[];
563
2798
  get inputPorts(): NodePort[];
564
2799
  get links(): NodeLink[];
565
2800
  get gridAlignedX(): number;
566
2801
  get gridAlignedY(): number;
567
2802
  get x(): number;
568
2803
  set x(value: number);
569
2804
  get y(): number;
570
2805
  set y(value: number);
571
2806
  get width(): number;
572
2807
  get height(): number;
573
2808
  get id(): number;
574
2809
  get name(): string;
575
2810
  get isSelected(): boolean;
576
2811
  get enclosingFrameId(): number;
577
2812
  set enclosingFrameId(value: number);
578
2813
  set isSelected(value: boolean);
579
2814
  constructor(block: BABYLON.NodeMaterialBlock, globalState: GlobalState);
580
2815
  isOverlappingFrame(frame: GraphFrame): boolean;
581
2816
  getPortForConnectionPoint(point: BABYLON.NodeMaterialConnectionPoint): NodePort | null;
582
2817
  getLinksForConnectionPoint(point: BABYLON.NodeMaterialConnectionPoint): NodeLink[];
583
2818
  private _refreshFrames;
584
2819
  _refreshLinks(): void;
585
2820
  refresh(): void;
586
2821
  private _onDown;
587
2822
  cleanAccumulation(useCeil?: boolean): void;
588
2823
  private _onUp;
589
2824
  private _onMove;
590
2825
  renderProperties(): BABYLON.Nullable<JSX.Element>;
591
2826
  appendVisual(root: HTMLDivElement, owner: GraphCanvasComponent): void;
592
2827
  dispose(): void;
593
2828
  }
2829
+
2830
+ export class NodeLink {
594
2831
  private _graphCanvas;
595
2832
  private _portA;
596
2833
  private _portB?;
597
2834
  private _nodeA;
598
2835
  private _nodeB?;
599
2836
  private _path;
600
2837
  private _selectionPath;
601
2838
  private _onSelectionChangedObserver;
602
2839
  private _isVisible;
603
2840
  onDisposedObservable: BABYLON.Observable<NodeLink>;
604
2841
  get isVisible(): boolean;
605
2842
  set isVisible(value: boolean);
606
2843
  get portA(): NodePort | FrameNodePort;
607
2844
  get portB(): NodePort | FrameNodePort | undefined;
608
2845
  get nodeA(): GraphNode;
609
2846
  get nodeB(): GraphNode | undefined;
610
2847
  update(endX?: number, endY?: number, straight?: boolean): void;
611
2848
  constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
612
2849
  onClick(): void;
613
2850
  dispose(notify?: boolean): void;
614
2851
  }
2852
+
2853
+ export class NodePort {
615
2854
  connectionPoint: BABYLON.NodeMaterialConnectionPoint;
616
2855
  node: GraphNode;
617
2856
  protected _element: HTMLDivElement;
618
2857
  protected _img: HTMLImageElement;
619
2858
  protected _globalState: GlobalState;
620
2859
  protected _portLabelElement: Element;
621
2860
  protected _onCandidateLinkMovedObserver: BABYLON.Nullable<BABYLON.Observer<BABYLON.Nullable<BABYLON.Vector2>>>;
622
2861
  protected _onSelectionChangedObserver: BABYLON.Nullable<BABYLON.Observer<BABYLON.Nullable<GraphFrame | GraphNode | NodeLink | NodePort | FramePortData>>>;
623
2862
  protected _exposedOnFrame: boolean;
624
2863
  delegatedPort: BABYLON.Nullable<FrameNodePort>;
625
2864
  get element(): HTMLDivElement;
626
2865
  get portName(): string;
627
2866
  set portName(newName: string);
628
2867
  get disabled(): boolean;
629
2868
  hasLabel(): boolean;
630
2869
  get exposedOnFrame(): boolean;
631
2870
  set exposedOnFrame(value: boolean);
632
2871
  get exposedPortPosition(): number;
633
2872
  set exposedPortPosition(value: number);
634
2873
  private _isConnectedToNodeOutsideOfFrame;
635
2874
  refresh(): void;
636
2875
  constructor(portContainer: HTMLElement, connectionPoint: BABYLON.NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState);
637
2876
  dispose(): void;
638
2877
  static CreatePortElement(connectionPoint: BABYLON.NodeMaterialConnectionPoint, node: GraphNode, root: HTMLElement, displayManager: BABYLON.Nullable<IDisplayManager>, globalState: GlobalState): NodePort;
639
2878
  }
2879
+
2880
+ export class ColorMergerPropertyTabComponent extends React.Component<IPropertyComponentProps> {
640
2881
  constructor(props: IPropertyComponentProps);
641
2882
  render(): JSX.Element;
642
2883
  }
2884
+
2885
+ export class ConditionalPropertyTabComponent extends React.Component<IPropertyComponentProps> {
643
2886
  constructor(props: IPropertyComponentProps);
644
2887
  render(): JSX.Element;
645
2888
  }
2889
+
2890
+ export interface IFrameNodePortPropertyTabComponentProps {
646
2891
  globalState: GlobalState;
647
2892
  frameNodePort: FrameNodePort;
648
2893
  frame: GraphFrame;
649
2894
  }
650
2895
  export class FrameNodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps, {
651
2896
  port: FrameNodePort;
652
2897
  }> {
653
2898
  private _onFramePortPositionChangedObserver;
654
2899
  private _onSelectionChangedObserver;
655
2900
  constructor(props: IFrameNodePortPropertyTabComponentProps);
656
2901
  componentWillUnmount(): void;
657
2902
  render(): JSX.Element;
658
2903
  }
2904
+
2905
+ export interface IFramePropertyTabComponentProps {
659
2906
  globalState: GlobalState;
660
2907
  frame: GraphFrame;
661
2908
  }
662
2909
  export class FramePropertyTabComponent extends React.Component<IFramePropertyTabComponentProps> {
663
2910
  private onFrameExpandStateChangedObserver;
664
2911
  constructor(props: IFramePropertyTabComponentProps);
665
2912
  componentDidMount(): void;
666
2913
  componentWillUnmount(): void;
667
2914
  render(): JSX.Element;
668
2915
  }
2916
+
2917
+ export class GenericPropertyComponent extends React.Component<IPropertyComponentProps> {
669
2918
  constructor(props: IPropertyComponentProps);
670
2919
  render(): JSX.Element;
671
2920
  }
672
2921
  export class GeneralPropertyTabComponent extends React.Component<IPropertyComponentProps> {
673
2922
  constructor(props: IPropertyComponentProps);
674
2923
  render(): JSX.Element;
675
2924
  }
676
2925
  export class GenericPropertyTabComponent extends React.Component<IPropertyComponentProps> {
677
2926
  constructor(props: IPropertyComponentProps);
678
2927
  forceRebuild(notifiers?: {
679
2928
  rebuild?: boolean;
680
2929
  update?: boolean;
681
2930
  activatePreviewCommand?: boolean;
682
2931
  callback?: (scene: BABYLON.Scene) => void;
683
2932
  }): void;
684
2933
  render(): JSX.Element;
685
2934
  }
2935
+
2936
+ export class GradientPropertyTabComponent extends React.Component<IPropertyComponentProps> {
686
2937
  private onValueChangedObserver;
687
2938
  constructor(props: IPropertyComponentProps);
688
2939
  componentDidMount(): void;
689
2940
  componentWillUnmount(): void;
690
2941
  forceRebuild(): void;
691
2942
  deleteStep(step: BABYLON.GradientBlockColorStep): void;
692
2943
  copyStep(step: BABYLON.GradientBlockColorStep): void;
693
2944
  addNewStep(): void;
694
2945
  checkForReOrder(): void;
695
2946
  render(): JSX.Element;
696
2947
  }
2948
+
2949
+ interface IGradientStepComponentProps {
697
2950
  globalState: GlobalState;
698
2951
  step: BABYLON.GradientBlockColorStep;
699
2952
  lineIndex: number;
700
2953
  onDelete: () => void;
701
2954
  onUpdateStep: () => void;
702
2955
  onCheckForReOrder: () => void;
703
2956
  onCopy?: () => void;
704
2957
  }
705
2958
  export class GradientStepComponent extends React.Component<IGradientStepComponentProps, {
706
2959
  gradient: number;
707
2960
  }> {
708
2961
  constructor(props: IGradientStepComponentProps);
709
2962
  updateColor(color: string): void;
710
2963
  updateStep(gradient: number): void;
711
2964
  onPointerUp(): void;
712
2965
  render(): JSX.Element;
713
2966
  }
2967
+
2968
+ export class ImageSourcePropertyTabComponent extends React.Component<IPropertyComponentProps, {
714
2969
  isEmbedded: boolean;
715
2970
  }> {
716
2971
  get imageSourceBlock(): BABYLON.ImageSourceBlock;
717
2972
  constructor(props: IPropertyComponentProps);
718
2973
  UNSAFE_componentWillUpdate(nextProps: IPropertyComponentProps, nextState: {
719
2974
  isEmbedded: boolean;
720
2975
  loadAsCubeTexture: boolean;
721
2976
  }): void;
722
2977
  private _generateRandomForCache;
723
2978
  updateAfterTextureLoad(): void;
724
2979
  removeTexture(): void;
725
2980
  _prepareTexture(): void;
726
2981
  /**
727
2982
  * Replaces the texture of the node
728
2983
  * @param file the file of the texture to use
729
2984
  */
730
2985
  replaceTexture(file: File): void;
731
2986
  replaceTextureWithUrl(url: string): void;
732
2987
  render(): JSX.Element;
733
2988
  }
2989
+
2990
+ export class InputPropertyTabComponent extends React.Component<IPropertyComponentProps> {
734
2991
  private onValueChangedObserver;
735
2992
  constructor(props: IPropertyComponentProps);
736
2993
  componentDidMount(): void;
737
2994
  componentWillUnmount(): void;
738
2995
  renderValue(globalState: GlobalState): JSX.Element | null;
739
2996
  setDefaultValue(): void;
740
2997
  render(): JSX.Element;
741
2998
  }
2999
+
3000
+ export class LightInformationPropertyTabComponent extends React.Component<IPropertyComponentProps> {
742
3001
  render(): JSX.Element;
743
3002
  }
3003
+
3004
+ export class LightPropertyTabComponent extends React.Component<IPropertyComponentProps> {
744
3005
  render(): JSX.Element;
745
3006
  }
3007
+
3008
+ export interface IFrameNodePortPropertyTabComponentProps {
746
3009
  globalState: GlobalState;
747
3010
  nodePort: NodePort;
748
3011
  }
749
3012
  export class NodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps> {
750
3013
  private _onSelectionChangedObserver;
751
3014
  constructor(props: IFrameNodePortPropertyTabComponentProps);
752
3015
  componentWillUnmount(): void;
753
3016
  toggleExposeOnFrame(value: boolean): void;
754
3017
  render(): JSX.Element;
755
3018
  }
3019
+
3020
+ export interface IPropertyComponentProps {
756
3021
  globalState: GlobalState;
757
3022
  block: BABYLON.NodeMaterialBlock;
758
3023
  }
3024
+
3025
+ type ReflectionTexture = BABYLON.ReflectionTextureBlock | BABYLON.ReflectionBlock | BABYLON.RefractionBlock;
759
3026
  type AnyTexture = BABYLON.TextureBlock | ReflectionTexture | BABYLON.CurrentScreenBlock | BABYLON.ParticleTextureBlock;
760
3027
  export class TexturePropertyTabComponent extends React.Component<IPropertyComponentProps, {
761
3028
  isEmbedded: boolean;
762
3029
  loadAsCubeTexture: boolean;
763
3030
  textureIsPrefiltered: boolean;
764
3031
  }> {
765
3032
  get textureBlock(): AnyTexture;
766
3033
  constructor(props: IPropertyComponentProps);
767
3034
  UNSAFE_componentWillUpdate(nextProps: IPropertyComponentProps, nextState: {
768
3035
  isEmbedded: boolean;
769
3036
  loadAsCubeTexture: boolean;
770
3037
  }): void;
771
3038
  private _generateRandomForCache;
772
3039
  updateAfterTextureLoad(): void;
773
3040
  removeTexture(): void;
774
3041
  _prepareTexture(): void;
775
3042
  /**
776
3043
  * Replaces the texture of the node
777
3044
  * @param file the file of the texture to use
778
3045
  */
779
3046
  replaceTexture(file: File): void;
780
3047
  replaceTextureWithUrl(url: string): void;
781
3048
  render(): JSX.Element;
782
3049
  }
3050
+
3051
+ export class TransformPropertyTabComponent extends React.Component<IPropertyComponentProps> {
783
3052
  constructor(props: IPropertyComponentProps);
784
3053
  render(): JSX.Element;
785
3054
  }
3055
+
3056
+ export class TrigonometryPropertyTabComponent extends React.Component<IPropertyComponentProps> {
786
3057
  constructor(props: IPropertyComponentProps);
787
3058
  render(): JSX.Element;
788
3059
  }
3060
+
3061
+ export class VectorMergerPropertyTabComponent extends React.Component<IPropertyComponentProps> {
789
3062
  constructor(props: IPropertyComponentProps);
790
3063
  render(): JSX.Element;
791
3064
  }
3065
+
3066
+ export class PropertyLedger {
792
3067
  static RegisteredControls: {
793
3068
  [key: string]: ComponentClass<IPropertyComponentProps>;
794
3069
  };
795
3070
  }
3071
+
3072
+ export class GlobalState {
796
3073
  nodeMaterial: BABYLON.NodeMaterial;
797
3074
  hostElement: HTMLElement;
798
3075
  hostDocument: HTMLDocument;
799
3076
  hostWindow: Window;
800
3077
  onSelectionChangedObservable: BABYLON.Observable<BABYLON.Nullable<GraphFrame | GraphNode | NodePort | NodeLink | FramePortData>>;
801
3078
  onRebuildRequiredObservable: BABYLON.Observable<boolean>;
802
3079
  onBuiltObservable: BABYLON.Observable<void>;
803
3080
  onResetRequiredObservable: BABYLON.Observable<void>;
804
3081
  onUpdateRequiredObservable: BABYLON.Observable<BABYLON.Nullable<BABYLON.NodeMaterialBlock>>;
805
3082
  onZoomToFitRequiredObservable: BABYLON.Observable<void>;
806
3083
  onReOrganizedRequiredObservable: BABYLON.Observable<void>;
807
3084
  onLogRequiredObservable: BABYLON.Observable<LogEntry>;
808
3085
  onErrorMessageDialogRequiredObservable: BABYLON.Observable<string>;
809
3086
  onIsLoadingChanged: BABYLON.Observable<boolean>;
810
3087
  onPreviewCommandActivated: BABYLON.Observable<boolean>;
811
3088
  onLightUpdated: BABYLON.Observable<void>;
812
3089
  onPreviewBackgroundChanged: BABYLON.Observable<void>;
813
3090
  onBackFaceCullingChanged: BABYLON.Observable<void>;
814
3091
  onDepthPrePassChanged: BABYLON.Observable<void>;
815
3092
  onAnimationCommandActivated: BABYLON.Observable<void>;
816
3093
  onCandidateLinkMoved: BABYLON.Observable<BABYLON.Nullable<BABYLON.Vector2>>;
817
3094
  onSelectionBoxMoved: BABYLON.Observable<ClientRect | DOMRect>;
818
3095
  onFrameCreatedObservable: BABYLON.Observable<GraphFrame>;
819
3096
  onCandidatePortSelectedObservable: BABYLON.Observable<BABYLON.Nullable<NodePort | FrameNodePort>>;
820
3097
  onImportFrameObservable: BABYLON.Observable<any>;
821
3098
  onGraphNodeRemovalObservable: BABYLON.Observable<GraphNode>;
822
3099
  onPopupClosedObservable: BABYLON.Observable<void>;
823
3100
  onGetNodeFromBlock: (block: BABYLON.NodeMaterialBlock) => GraphNode;
824
3101
  onGridSizeChanged: BABYLON.Observable<void>;
825
3102
  onExposePortOnFrameObservable: BABYLON.Observable<GraphNode>;
826
3103
  previewType: PreviewType;
827
3104
  previewFile: File;
828
3105
  particleSystemBlendMode: number;
829
3106
  listOfCustomPreviewFiles: File[];
830
3107
  rotatePreview: boolean;
831
3108
  backgroundColor: BABYLON.Color4;
832
3109
  backFaceCulling: boolean;
833
3110
  depthPrePass: boolean;
834
3111
  blockKeyboardEvents: boolean;
835
3112
  hemisphericLight: boolean;
836
3113
  directionalLight0: boolean;
837
3114
  directionalLight1: boolean;
838
3115
  controlCamera: boolean;
839
3116
  storeEditorData: (serializationObject: any, frame?: BABYLON.Nullable<GraphFrame>) => void;
840
3117
  _mode: BABYLON.NodeMaterialModes;
841
3118
  /** Gets the mode */
842
3119
  get mode(): BABYLON.NodeMaterialModes;
843
3120
  /** Sets the mode */
844
3121
  set mode(m: BABYLON.NodeMaterialModes);
845
3122
  customSave?: {
846
3123
  label: string;
847
3124
  action: (data: string) => Promise<void>;
848
3125
  };
849
3126
  constructor();
850
3127
  }
3128
+
3129
+ interface IGraphEditorProps {
851
3130
  globalState: GlobalState;
852
3131
  }
853
3132
  interface IGraphEditorState {
854
3133
  showPreviewPopUp: boolean;
855
3134
  }
856
3135
  interface IInternalPreviewAreaOptions extends BABYLON.IInspectorOptions {
857
3136
  popup: boolean;
858
3137
  original: boolean;
859
3138
  explorerWidth?: string;
860
3139
  inspectorWidth?: string;
861
3140
  embedHostWidth?: string;
862
3141
  }
863
3142
  export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
864
3143
  private readonly NodeWidth;
865
3144
  private _graphCanvas;
866
3145
  private _startX;
867
3146
  private _moveInProgress;
868
3147
  private _leftWidth;
869
3148
  private _rightWidth;
870
3149
  private _blocks;
871
3150
  private _previewManager;
872
3151
  private _copiedNodes;
873
3152
  private _copiedFrame;
874
3153
  private _mouseLocationX;
875
3154
  private _mouseLocationY;
876
3155
  private _onWidgetKeyUpPointer;
877
3156
  private _previewHost;
878
3157
  private _popUpWindow;
879
3158
  /**
880
3159
  * Creates a node and recursivly creates its parent nodes from it's input
881
3160
  * @param nodeMaterialBlock
882
3161
  */
883
3162
  createNodeFromObject(block: BABYLON.NodeMaterialBlock, recursion?: boolean): GraphNode;
884
3163
  addValueNode(type: string): GraphNode;
885
3164
  componentDidMount(): void;
886
3165
  componentWillUnmount(): void;
887
3166
  constructor(props: IGraphEditorProps);
888
3167
  reconnectNewNodes(nodeIndex: number, newNodes: GraphNode[], sourceNodes: GraphNode[], done: boolean[]): void;
889
3168
  pasteSelection(copiedNodes: GraphNode[], currentX: number, currentY: number, selectNew?: boolean): GraphNode[] | undefined;
890
3169
  zoomToFit(): void;
891
3170
  buildMaterial(autoConfigure?: boolean): void;
892
3171
  build(): void;
893
3172
  loadGraph(): void;
894
3173
  showWaitScreen(): void;
895
3174
  hideWaitScreen(): void;
896
3175
  reOrganize(editorData?: BABYLON.Nullable<IEditorData>, isImportingAFrame?: boolean): void;
897
3176
  onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
898
3177
  onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
899
3178
  resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
900
3179
  buildColumnLayout(): string;
901
3180
  emitNewBlock(event: React.DragEvent<HTMLDivElement>): void;
902
3181
  handlePopUp: () => void;
903
3182
  handleClosingPopUp: () => void;
904
3183
  initiatePreviewArea: (canvas?: HTMLCanvasElement) => void;
905
3184
  createPopUp: () => void;
906
3185
  createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
907
3186
  createPreviewMeshControlHost: (options: IInternalPreviewAreaOptions, parentControl: BABYLON.Nullable<HTMLElement>) => void;
908
3187
  createPreviewHost: (options: IInternalPreviewAreaOptions, parentControl: BABYLON.Nullable<HTMLElement>) => void;
909
3188
  fixPopUpStyles: (document: Document) => void;
910
3189
  render(): JSX.Element;
911
3190
  }
3191
+
3192
+
3193
+
3194
+ /**
912
3195
  * Interface used to specify creation options for the node editor
913
3196
  */
914
3197
  export interface INodeEditorOptions {
915
3198
  nodeMaterial: BABYLON.NodeMaterial;
916
3199
  hostElement?: HTMLElement;
917
3200
  customSave?: {
918
3201
  label: string;
919
3202
  action: (data: string) => Promise<void>;
920
3203
  };
921
3204
  customLoadObservable?: BABYLON.Observable<any>;
922
3205
  }
923
3206
  /**
924
3207
  * Class used to create a node editor
925
3208
  */
926
3209
  export class NodeEditor {
927
3210
  private static _CurrentState;
928
3211
  /**
929
3212
  * Show the node editor
930
3213
  * @param options defines the options to use to configure the node editor
931
3214
  */
932
3215
  static Show(options: INodeEditorOptions): void;
933
3216
  }
3217
+
3218
+ export interface INodeLocationInfo {
934
3219
  blockId: number;
935
3220
  x: number;
936
3221
  y: number;
937
3222
  }
938
3223
  export interface IFrameData {
939
3224
  x: number;
940
3225
  y: number;
941
3226
  width: number;
942
3227
  height: number;
943
3228
  color: number[];
944
3229
  name: string;
945
3230
  isCollapsed: boolean;
946
3231
  blocks: number[];
947
3232
  comments: string;
948
3233
  }
949
3234
  export interface IEditorData {
950
3235
  locations: INodeLocationInfo[];
951
3236
  x: number;
952
3237
  y: number;
953
3238
  zoom: number;
954
3239
  frames?: IFrameData[];
955
3240
  map?: {
956
3241
  [key: number]: number;
957
3242
  };
958
3243
  }
3244
+
3245
+ interface IPortalProps {
959
3246
  globalState: GlobalState;
960
3247
  }
961
3248
  export class Portal extends React.Component<IPortalProps> {
962
3249
  render(): React.ReactPortal;
963
3250
  }
3251
+
3252
+ export class SerializationTools {
964
3253
  static UpdateLocations(material: BABYLON.NodeMaterial, globalState: GlobalState, frame?: BABYLON.Nullable<GraphFrame>): void;
965
3254
  static Serialize(material: BABYLON.NodeMaterial, globalState: GlobalState, frame?: BABYLON.Nullable<GraphFrame>): string;
966
3255
  static Deserialize(serializationObject: any, globalState: GlobalState): void;
967
3256
  static AddFrameToMaterial(serializationObject: any, globalState: GlobalState, currentMaterial: BABYLON.NodeMaterial): void;
968
3257
  }
3258
+
3259
+ export interface IButtonLineComponentProps {
969
3260
  label: string;
970
3261
  onClick: () => void;
971
3262
  isDisabled?: boolean;
972
3263
  }
973
3264
  export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
974
3265
  constructor(props: IButtonLineComponentProps);
975
3266
  render(): JSX.Element;
976
3267
  }
3268
+
3269
+ export interface ICheckBoxLineComponentProps {
977
3270
  label: string;
978
3271
  target?: any;
979
3272
  propertyName?: string;
980
3273
  isSelected?: () => boolean;
981
3274
  onSelect?: (value: boolean) => void;
982
3275
  onValueChanged?: () => void;
983
3276
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
984
3277
  disabled?: boolean;
985
3278
  }
986
3279
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
987
3280
  isSelected: boolean;
988
3281
  isDisabled?: boolean;
989
3282
  }> {
990
3283
  private static _UniqueIdSeed;
991
3284
  private _uniqueId;
992
3285
  private _localChange;
993
3286
  constructor(props: ICheckBoxLineComponentProps);
994
3287
  shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
995
3288
  isSelected: boolean;
996
3289
  isDisabled: boolean;
997
3290
  }): boolean;
998
3291
  onChange(): void;
999
3292
  render(): JSX.Element;
1000
3293
  }
3294
+
3295
+ export interface IColor3LineComponentProps {
1001
3296
  label: string;
1002
3297
  target: any;
1003
3298
  propertyName: string;
1004
3299
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1005
3300
  onChange?: () => void;
1006
3301
  globalState: GlobalState;
1007
3302
  }
1008
3303
  export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
1009
3304
  isExpanded: boolean;
1010
3305
  color: BABYLON.Color3 | BABYLON.Color4;
1011
3306
  }> {
1012
3307
  private _localChange;
1013
3308
  constructor(props: IColor3LineComponentProps);
1014
3309
  shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
1015
3310
  color: BABYLON.Color3 | BABYLON.Color4;
1016
3311
  }): boolean;
1017
3312
  onChange(newValue: string): void;
1018
3313
  switchExpandState(): void;
1019
3314
  raiseOnPropertyChanged(previousValue: BABYLON.Color3 | BABYLON.Color4): void;
1020
3315
  updateStateR(value: number): void;
1021
3316
  updateStateG(value: number): void;
1022
3317
  updateStateB(value: number): void;
1023
3318
  copyToClipboard(): void;
1024
3319
  render(): JSX.Element;
1025
3320
  }
3321
+
3322
+ export interface IColor4LineComponentProps {
1026
3323
  label: string;
1027
3324
  target: any;
1028
3325
  propertyName: string;
1029
3326
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1030
3327
  onChange?: () => void;
1031
3328
  globalState: GlobalState;
1032
3329
  }
1033
3330
  export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
1034
3331
  isExpanded: boolean;
1035
3332
  color: BABYLON.Color4;
1036
3333
  }> {
1037
3334
  private _localChange;
1038
3335
  constructor(props: IColor4LineComponentProps);
1039
3336
  shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
1040
3337
  color: BABYLON.Color4;
1041
3338
  }): boolean;
1042
3339
  onChange(newValue: string): void;
1043
3340
  switchExpandState(): void;
1044
3341
  raiseOnPropertyChanged(previousValue: BABYLON.Color4): void;
1045
3342
  updateStateR(value: number): void;
1046
3343
  updateStateG(value: number): void;
1047
3344
  updateStateB(value: number): void;
1048
3345
  updateStateA(value: number): void;
1049
3346
  copyToClipboard(): void;
1050
3347
  render(): JSX.Element;
1051
3348
  }
3349
+
3350
+ export interface IColorPickerComponentProps {
1052
3351
  value: BABYLON.Color4 | BABYLON.Color3;
1053
3352
  onColorChanged: (newOne: string) => void;
1054
3353
  globalState: GlobalState;
1055
3354
  }
1056
3355
  interface IColorPickerComponentState {
1057
3356
  pickerEnabled: boolean;
1058
3357
  color: BABYLON.Color3 | BABYLON.Color4;
1059
3358
  hex: string;
1060
3359
  }
1061
3360
  export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
1062
3361
  private _floatRef;
1063
3362
  private _floatHostRef;
1064
3363
  constructor(props: IColorPickerComponentProps);
1065
3364
  syncPositions(): void;
1066
3365
  shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
1067
3366
  componentDidUpdate(): void;
1068
3367
  componentDidMount(): void;
1069
3368
  setPickerState(enabled: boolean): void;
1070
3369
  render(): JSX.Element;
1071
3370
  }
3371
+
3372
+ export interface IButtonLineComponentProps {
1072
3373
  data: string;
1073
3374
  tooltip: string;
1074
3375
  }
1075
3376
  export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
1076
3377
  constructor(props: IButtonLineComponentProps);
1077
3378
  render(): JSX.Element;
1078
3379
  }
3380
+
3381
+ export interface IDraggableLineWithButtonComponent {
1079
3382
  data: string;
1080
3383
  tooltip: string;
1081
3384
  iconImage: any;
1082
3385
  onIconClick: (value: string) => void;
1083
3386
  iconTitle: string;
1084
3387
  lenSuffixToRemove?: number;
1085
3388
  }
1086
3389
  export class DraggableLineWithButtonComponent extends React.Component<IDraggableLineWithButtonComponent> {
1087
3390
  constructor(props: IDraggableLineWithButtonComponent);
1088
3391
  render(): JSX.Element;
1089
3392
  }
3393
+
3394
+ interface IFileButtonLineComponentProps {
1090
3395
  label: string;
1091
3396
  onClick: (file: File) => void;
1092
3397
  accept: string;
1093
3398
  uploadName?: string;
1094
3399
  }
1095
3400
  export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
1096
3401
  private uploadRef;
1097
3402
  constructor(props: IFileButtonLineComponentProps);
1098
3403
  onChange(evt: any): void;
1099
3404
  render(): JSX.Element;
1100
3405
  }
3406
+
3407
+ interface IFloatLineComponentProps {
1101
3408
  label: string;
1102
3409
  target: any;
1103
3410
  propertyName: string;
1104
3411
  onChange?: (newValue: number) => void;
1105
3412
  isInteger?: boolean;
1106
3413
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1107
3414
  additionalClass?: string;
1108
3415
  step?: string;
1109
3416
  digits?: number;
1110
3417
  globalState: GlobalState;
1111
3418
  min?: number;
1112
3419
  max?: number;
1113
3420
  smallUI?: boolean;
1114
3421
  onEnter?: (newValue: number) => void;
1115
3422
  }
1116
3423
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
1117
3424
  value: string;
1118
3425
  }> {
1119
3426
  private _localChange;
1120
3427
  private _store;
1121
3428
  private _regExp;
1122
3429
  private _onFocus;
1123
3430
  constructor(props: IFloatLineComponentProps);
1124
3431
  shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
1125
3432
  value: string;
1126
3433
  }): boolean;
1127
3434
  componentWillUnmount(): void;
1128
3435
  raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1129
3436
  updateValue(valueString: string): void;
1130
3437
  render(): JSX.Element;
1131
3438
  }
3439
+
3440
+ interface ILineContainerComponentProps {
1132
3441
  title: string;
1133
3442
  children: any[] | any;
1134
3443
  closed?: boolean;
1135
3444
  }
1136
3445
  export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
1137
3446
  isExpanded: boolean;
1138
3447
  }> {
1139
3448
  constructor(props: ILineContainerComponentProps);
1140
3449
  switchExpandedState(): void;
1141
3450
  renderHeader(): JSX.Element;
1142
3451
  render(): JSX.Element;
1143
3452
  }
3453
+
3454
+ interface ILineWithFileButtonComponentProps {
1144
3455
  title: string;
1145
3456
  closed?: boolean;
1146
3457
  label: string;
1147
3458
  iconImage: any;
1148
3459
  onIconClick: (file: File) => void;
1149
3460
  accept: string;
1150
3461
  uploadName?: string;
1151
3462
  }
1152
3463
  export class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, {
1153
3464
  isExpanded: boolean;
1154
3465
  }> {
1155
3466
  private uploadRef;
1156
3467
  constructor(props: ILineWithFileButtonComponentProps);
1157
3468
  onChange(evt: any): void;
1158
3469
  switchExpandedState(): void;
1159
3470
  render(): JSX.Element;
1160
3471
  }
3472
+
3473
+ interface IMatrixLineComponentProps {
1161
3474
  label: string;
1162
3475
  target: any;
1163
3476
  propertyName: string;
1164
3477
  step?: number;
1165
3478
  onChange?: (newValue: BABYLON.Matrix) => void;
1166
3479
  onModeChange?: (mode: number) => void;
1167
3480
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1168
3481
  mode?: number;
1169
3482
  globalState: GlobalState;
1170
3483
  }
1171
3484
  export class MatrixLineComponent extends React.Component<IMatrixLineComponentProps, {
1172
3485
  value: BABYLON.Matrix;
1173
3486
  mode: number;
1174
3487
  angle: number;
1175
3488
  }> {
1176
3489
  private _localChange;
1177
3490
  constructor(props: IMatrixLineComponentProps);
1178
3491
  shouldComponentUpdate(nextProps: IMatrixLineComponentProps, nextState: {
1179
3492
  value: BABYLON.Matrix;
1180
3493
  mode: number;
1181
3494
  angle: number;
1182
3495
  }): boolean;
1183
3496
  raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void;
1184
3497
  updateMatrix(): void;
1185
3498
  updateRow(value: BABYLON.Vector4, row: number): void;
1186
3499
  updateBasedOnMode(value: number): void;
1187
3500
  render(): JSX.Element;
1188
3501
  }
3502
+
3503
+ interface IMessageDialogComponentProps {
1189
3504
  globalState: GlobalState;
1190
3505
  }
1191
3506
  export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
1192
3507
  message: string;
1193
3508
  isError: boolean;
1194
3509
  }> {
1195
3510
  constructor(props: IMessageDialogComponentProps);
1196
3511
  render(): JSX.Element | null;
1197
3512
  }
3513
+
3514
+ interface INumericInputComponentProps {
1198
3515
  label: string;
1199
3516
  value: number;
1200
3517
  step?: number;
1201
3518
  onChange: (value: number) => void;
1202
3519
  globalState: GlobalState;
1203
3520
  }
1204
3521
  export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
1205
3522
  value: string;
1206
3523
  }> {
1207
3524
  static defaultProps: {
1208
3525
  step: number;
1209
3526
  };
1210
3527
  private _localChange;
1211
3528
  constructor(props: INumericInputComponentProps);
1212
3529
  shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
1213
3530
  value: string;
1214
3531
  }): boolean;
1215
3532
  updateValue(evt: any): void;
1216
3533
  render(): JSX.Element;
1217
3534
  }
3535
+
3536
+ interface IOptionsLineComponentProps {
1218
3537
  label: string;
1219
3538
  target: any;
1220
3539
  className?: string;
1221
3540
  propertyName?: string;
1222
3541
  options: BABYLON.IInspectableOptions[];
1223
3542
  noDirectUpdate?: boolean;
1224
3543
  onSelect?: (value: number | string) => void;
1225
3544
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1226
3545
  valuesAreStrings?: boolean;
1227
3546
  defaultIfNull?: number;
1228
3547
  getSelection?: (target: any) => number;
1229
3548
  }
1230
3549
  export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
1231
3550
  value: number | string;
1232
3551
  }> {
1233
3552
  private _localChange;
1234
3553
  private _getValue;
1235
3554
  constructor(props: IOptionsLineComponentProps);
1236
3555
  setValue(value: string | number): void;
1237
3556
  shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
1238
3557
  value: number;
1239
3558
  }): boolean;
1240
3559
  raiseOnPropertyChanged(newValue: number | string, previousValue: number | string): void;
1241
3560
  updateValue(valueString: string): void;
1242
3561
  render(): JSX.Element;
1243
3562
  }
3563
+
3564
+ export class Popup {
1244
3565
  static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
1245
3566
  static _CopyStyles(sourceDoc: HTMLDocument, targetDoc: HTMLDocument): void;
1246
3567
  }
3568
+
3569
+ export class PropertyChangedEvent {
1247
3570
  object: any;
1248
3571
  property: string;
1249
3572
  value: any;
1250
3573
  initialValue: any;
1251
3574
  }
3575
+
3576
+ interface ISliderLineComponentProps {
1252
3577
  label: string;
1253
3578
  target?: any;
1254
3579
  propertyName?: string;
1255
3580
  minimum: number;
1256
3581
  maximum: number;
1257
3582
  step: number;
1258
3583
  directValue?: number;
1259
3584
  useEuler?: boolean;
1260
3585
  onChange?: (value: number) => void;
1261
3586
  onInput?: (value: number) => void;
1262
3587
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1263
3588
  decimalCount?: number;
1264
3589
  globalState: GlobalState;
1265
3590
  }
1266
3591
  export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
1267
3592
  value: number;
1268
3593
  }> {
1269
3594
  private _localChange;
1270
3595
  constructor(props: ISliderLineComponentProps);
1271
3596
  shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
1272
3597
  value: number;
1273
3598
  }): boolean;
1274
3599
  onChange(newValueString: any): void;
1275
3600
  onInput(newValueString: any): void;
1276
3601
  prepareDataToRead(value: number): number;
1277
3602
  render(): JSX.Element;
1278
3603
  }
3604
+
3605
+ interface ITextInputLineComponentProps {
1279
3606
  label: string;
1280
3607
  globalState: GlobalState;
1281
3608
  target?: any;
1282
3609
  propertyName?: string;
1283
3610
  value?: string;
1284
3611
  multilines?: boolean;
1285
3612
  onChange?: (value: string) => void;
1286
3613
  validator?: (value: string) => boolean;
1287
3614
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1288
3615
  }
1289
3616
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
1290
3617
  value: string;
1291
3618
  }> {
1292
3619
  private _localChange;
1293
3620
  private _onFocus;
1294
3621
  constructor(props: ITextInputLineComponentProps);
1295
3622
  shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
1296
3623
  value: string;
1297
3624
  }): boolean;
1298
3625
  componentWillUnmount(): void;
1299
3626
  raiseOnPropertyChanged(newValue: string, previousValue: string): void;
1300
3627
  updateValue(value: string, raisePropertyChanged: boolean): void;
1301
3628
  render(): JSX.Element;
1302
3629
  }
3630
+
3631
+ interface ITextLineComponentProps {
1303
3632
  label: string;
1304
3633
  value: string;
1305
3634
  color?: string;
1306
3635
  underline?: boolean;
1307
3636
  onLink?: () => void;
1308
3637
  }
1309
3638
  export class TextLineComponent extends React.Component<ITextLineComponentProps> {
1310
3639
  constructor(props: ITextLineComponentProps);
1311
3640
  onLink(): void;
1312
3641
  renderContent(): JSX.Element;
1313
3642
  render(): JSX.Element;
1314
3643
  }
3644
+
3645
+ interface ITextureLineComponentProps {
1315
3646
  texture: BABYLON.BaseTexture;
1316
3647
  width: number;
1317
3648
  height: number;
1318
3649
  globalState?: any;
1319
3650
  hideChannelSelect?: boolean;
1320
3651
  }
1321
3652
  export interface ITextureLineComponentState {
1322
3653
  displayRed: boolean;
1323
3654
  displayGreen: boolean;
1324
3655
  displayBlue: boolean;
1325
3656
  displayAlpha: boolean;
1326
3657
  face: number;
1327
3658
  }
1328
3659
  export class TextureLineComponent extends React.Component<ITextureLineComponentProps, ITextureLineComponentState> {
1329
3660
  private canvasRef;
1330
3661
  constructor(props: ITextureLineComponentProps);
1331
3662
  shouldComponentUpdate(nextProps: ITextureLineComponentProps, nextState: {
1332
3663
  displayRed: boolean;
1333
3664
  displayGreen: boolean;
1334
3665
  displayBlue: boolean;
1335
3666
  displayAlpha: boolean;
1336
3667
  face: number;
1337
3668
  }): boolean;
1338
3669
  componentDidMount(): void;
1339
3670
  componentDidUpdate(): void;
1340
3671
  updatePreview(): void;
1341
3672
  static UpdatePreview(previewCanvas: HTMLCanvasElement, texture: BABYLON.BaseTexture, width: number, options: ITextureLineComponentState, onReady?: () => void, globalState?: any): Promise<void>;
1342
3673
  render(): JSX.Element;
1343
3674
  }
3675
+
3676
+ interface IVector2LineComponentProps {
1344
3677
  label: string;
1345
3678
  target: any;
1346
3679
  propertyName: string;
1347
3680
  step?: number;
1348
3681
  onChange?: (newvalue: BABYLON.Vector2) => void;
1349
3682
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1350
3683
  globalState: GlobalState;
1351
3684
  }
1352
3685
  export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
1353
3686
  isExpanded: boolean;
1354
3687
  value: BABYLON.Vector2;
1355
3688
  }> {
1356
3689
  static defaultProps: {
1357
3690
  step: number;
1358
3691
  };
1359
3692
  private _localChange;
1360
3693
  constructor(props: IVector2LineComponentProps);
1361
3694
  shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
1362
3695
  isExpanded: boolean;
1363
3696
  value: BABYLON.Vector2;
1364
3697
  }): boolean;
1365
3698
  switchExpandState(): void;
1366
3699
  raiseOnPropertyChanged(previousValue: BABYLON.Vector2): void;
1367
3700
  updateStateX(value: number): void;
1368
3701
  updateStateY(value: number): void;
1369
3702
  render(): JSX.Element;
1370
3703
  }
3704
+
3705
+ interface IVector3LineComponentProps {
1371
3706
  label: string;
1372
3707
  target: any;
1373
3708
  propertyName: string;
1374
3709
  step?: number;
1375
3710
  onChange?: (newvalue: BABYLON.Vector3) => void;
1376
3711
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1377
3712
  globalState: GlobalState;
1378
3713
  }
1379
3714
  export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
1380
3715
  isExpanded: boolean;
1381
3716
  value: BABYLON.Vector3;
1382
3717
  }> {
1383
3718
  static defaultProps: {
1384
3719
  step: number;
1385
3720
  };
1386
3721
  private _localChange;
1387
3722
  constructor(props: IVector3LineComponentProps);
1388
3723
  shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
1389
3724
  isExpanded: boolean;
1390
3725
  value: BABYLON.Vector3;
1391
3726
  }): boolean;
1392
3727
  switchExpandState(): void;
1393
3728
  raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void;
1394
3729
  updateVector3(): void;
1395
3730
  updateStateX(value: number): void;
1396
3731
  updateStateY(value: number): void;
1397
3732
  updateStateZ(value: number): void;
1398
3733
  render(): JSX.Element;
1399
3734
  }
3735
+
3736
+ interface IVector4LineComponentProps {
1400
3737
  label: string;
1401
3738
  target?: any;
1402
3739
  propertyName?: string;
1403
3740
  value?: BABYLON.Vector4;
1404
3741
  step?: number;
1405
3742
  onChange?: (newvalue: BABYLON.Vector4) => void;
1406
3743
  onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1407
3744
  globalState: GlobalState;
1408
3745
  }
1409
3746
  export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
1410
3747
  isExpanded: boolean;
1411
3748
  value: BABYLON.Vector4;
1412
3749
  }> {
1413
3750
  static defaultProps: {
1414
3751
  step: number;
1415
3752
  };
1416
3753
  private _localChange;
1417
3754
  constructor(props: IVector4LineComponentProps);
1418
3755
  shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
1419
3756
  isExpanded: boolean;
1420
3757
  value: BABYLON.Vector4;
1421
3758
  }): boolean;
1422
3759
  switchExpandState(): void;
1423
3760
  raiseOnPropertyChanged(previousValue: BABYLON.Vector4): void;
1424
3761
  updateVector4(): void;
1425
3762
  updateStateX(value: number): void;
1426
3763
  updateStateY(value: number): void;
1427
3764
  updateStateZ(value: number): void;
1428
3765
  updateStateW(value: number): void;
1429
3766
  render(): JSX.Element;
1430
3767
  }
3768
+
3769
+
3770
+ }