@babylonjs/node-editor 5.0.0-beta.1 → 5.0.0-beta.10

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.
@@ -84,11 +84,13 @@ declare module "@babylonjs/node-editor/blockTools" {
84
84
  import { VoronoiNoiseBlock } from '@babylonjs/core/Materials/Node/Blocks/voronoiNoiseBlock';
85
85
  import { ScreenSpaceBlock } from '@babylonjs/core/Materials/Node/Blocks/Fragment/screenSpaceBlock';
86
86
  import { TwirlBlock } from '@babylonjs/core/Materials/Node/Blocks/Fragment/twirlBlock';
87
+ import { ElbowBlock } from '@babylonjs/core/Materials/Node/Blocks/elbowBlock';
88
+ import { ClipPlanesBlock } from '@babylonjs/core/Materials/Node/Blocks/Dual/clipPlanesBlock';
87
89
  export class BlockTools {
88
- static GetBlockFromString(data: string, scene: Scene, nodeMaterial: NodeMaterial): 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 | null;
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;
89
91
  static GetColorFromConnectionNodeType(type: NodeMaterialBlockConnectionPointTypes): string;
90
92
  static GetConnectionNodeTypeFromString(type: string): NodeMaterialBlockConnectionPointTypes.Float | NodeMaterialBlockConnectionPointTypes.Vector2 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4 | NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Color4 | NodeMaterialBlockConnectionPointTypes.Matrix | NodeMaterialBlockConnectionPointTypes.AutoDetect;
91
- static GetStringFromConnectionNodeType(type: NodeMaterialBlockConnectionPointTypes): "Float" | "Vector2" | "Vector3" | "Vector4" | "Matrix" | "Color3" | "Color4" | "";
93
+ static GetStringFromConnectionNodeType(type: NodeMaterialBlockConnectionPointTypes): "" | "Float" | "Vector2" | "Vector3" | "Vector4" | "Matrix" | "Color3" | "Color4";
92
94
  }
93
95
  }
94
96
  declare module "@babylonjs/node-editor/components/log/logComponent" {
@@ -1569,6 +1571,17 @@ declare module "@babylonjs/node-editor/diagram/display/imageSourceDisplayManager
1569
1571
  updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
1570
1572
  }
1571
1573
  }
1574
+ declare module "@babylonjs/node-editor/diagram/display/elbowDisplayManager" {
1575
+ import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
1576
+ import { NodeMaterialBlock } from '@babylonjs/core/Materials/Node/nodeMaterialBlock';
1577
+ export class ElbowDisplayManager implements IDisplayManager {
1578
+ getHeaderClass(block: NodeMaterialBlock): string;
1579
+ shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
1580
+ getHeaderText(block: NodeMaterialBlock): string;
1581
+ getBackgroundColor(block: NodeMaterialBlock): string;
1582
+ updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
1583
+ }
1584
+ }
1572
1585
  declare module "@babylonjs/node-editor/diagram/displayLedger" {
1573
1586
  export class DisplayLedger {
1574
1587
  static RegisteredControls: {
@@ -1924,6 +1937,7 @@ declare module "@babylonjs/node-editor/sharedComponents/messageDialog" {
1924
1937
  }
1925
1938
  declare module "@babylonjs/node-editor/components/preview/previewManager" {
1926
1939
  import { GlobalState } from "@babylonjs/node-editor/globalState";
1940
+ import "@babylonjs/core/Rendering/depthRendererSceneComponent";
1927
1941
  export class PreviewManager {
1928
1942
  private _nodeMaterial;
1929
1943
  private _onBuildObserver;
@@ -2145,6 +2159,20 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/buttonLineCompon
2145
2159
  render(): JSX.Element;
2146
2160
  }
2147
2161
  }
2162
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/targetsProxy" {
2163
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2164
+ import { Observable } from "@babylonjs/core/Misc/observable";
2165
+ export const conflictingValuesPlaceholder = "\u2014";
2166
+ /**
2167
+ *
2168
+ * @param propertyName the property that the input changes
2169
+ * @param targets a list of selected targets
2170
+ * @param defaultValue the value that should be returned when two targets have conflicting values
2171
+ * @param setter an optional setter function to override the default setter behavior
2172
+ * @returns a proxy object that can be passed as a target into the input
2173
+ */
2174
+ export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
2175
+ }
2148
2176
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/checkBoxLineComponent" {
2149
2177
  import * as React from "react";
2150
2178
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -2166,6 +2194,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/checkBoxLineComp
2166
2194
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
2167
2195
  isSelected: boolean;
2168
2196
  isDisabled?: boolean;
2197
+ isConflict: boolean;
2169
2198
  }> {
2170
2199
  private static _UniqueIdSeed;
2171
2200
  private _uniqueId;
@@ -2174,11 +2203,23 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/checkBoxLineComp
2174
2203
  shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
2175
2204
  isSelected: boolean;
2176
2205
  isDisabled: boolean;
2206
+ isConflict: boolean;
2177
2207
  }): boolean;
2178
2208
  onChange(): void;
2179
2209
  render(): JSX.Element;
2180
2210
  }
2181
2211
  }
2212
+ declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
2213
+ /**
2214
+ * Class used to provide lock mechanism
2215
+ */
2216
+ export class LockObject {
2217
+ /**
2218
+ * Gets or set if the lock is engaged
2219
+ */
2220
+ lock: boolean;
2221
+ }
2222
+ }
2182
2223
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/numericInputComponent" {
2183
2224
  import * as React from "react";
2184
2225
  interface INumericInputComponentProps {
@@ -2228,22 +2269,14 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/colorPickerCompo
2228
2269
  constructor(props: IColorPickerComponentProps);
2229
2270
  syncPositions(): void;
2230
2271
  shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
2272
+ getHexString(props?: Readonly<IColorPickerComponentProps> & Readonly<{
2273
+ children?: React.ReactNode;
2274
+ }>): string;
2231
2275
  componentDidUpdate(): void;
2232
2276
  componentDidMount(): void;
2233
2277
  render(): JSX.Element;
2234
2278
  }
2235
2279
  }
2236
- declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
2237
- /**
2238
- * Class used to provide lock mechanism
2239
- */
2240
- export class LockObject {
2241
- /**
2242
- * Gets or set if the lock is engaged
2243
- */
2244
- lock: boolean;
2245
- }
2246
- }
2247
2280
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineComponent" {
2248
2281
  import * as React from "react";
2249
2282
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -2262,6 +2295,9 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineCom
2262
2295
  noUnderline?: boolean;
2263
2296
  numbersOnly?: boolean;
2264
2297
  delayInput?: boolean;
2298
+ unit?: string;
2299
+ onUnitClicked?: (unit: string) => void;
2300
+ unitLocked?: boolean;
2265
2301
  }
2266
2302
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
2267
2303
  value: string;
@@ -2277,83 +2313,91 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineCom
2277
2313
  render(): JSX.Element;
2278
2314
  }
2279
2315
  }
2280
- declare module "@babylonjs/node-editor/sharedUiComponents/lines/color3LineComponent" {
2316
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/colorLineComponent" {
2281
2317
  import * as React from "react";
2282
2318
  import { Observable } from "@babylonjs/core/Misc/observable";
2319
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
2283
2320
  import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2284
- import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
2285
2321
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2286
- export interface IColor3LineComponentProps {
2322
+ export interface IColorLineComponentProps {
2287
2323
  label: string;
2288
- target: any;
2324
+ target?: any;
2289
2325
  propertyName: string;
2290
2326
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2327
+ onChange?: () => void;
2291
2328
  isLinear?: boolean;
2292
2329
  icon?: string;
2293
- lockObject?: LockObject;
2294
2330
  iconLabel?: string;
2295
- onValueChange?: (value: string) => void;
2331
+ lockObject?: LockObject;
2332
+ disableAlpha?: boolean;
2296
2333
  }
2297
- export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
2334
+ interface IColorLineComponentState {
2298
2335
  isExpanded: boolean;
2299
- color: Color3 | Color4;
2300
- colorText: string;
2301
- }> {
2302
- private _localChange;
2303
- constructor(props: IColor3LineComponentProps);
2304
- private convertToColor3;
2305
- shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
2306
- color: Color3 | Color4;
2307
- colorText: string;
2308
- }): boolean;
2309
- setPropertyValue(newColor: Color3 | Color4, newColorText: string): void;
2310
- onChange(newValue: string): void;
2336
+ color: Color4;
2337
+ colorString: string;
2338
+ }
2339
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
2340
+ constructor(props: IColorLineComponentProps);
2341
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
2342
+ getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
2343
+ children?: React.ReactNode;
2344
+ }>): Color4;
2345
+ getValueAsString(props?: Readonly<IColorLineComponentProps> & Readonly<{
2346
+ children?: React.ReactNode;
2347
+ }>): string;
2348
+ setColorFromString(colorString: string): void;
2349
+ setColor(color: Color4): void;
2350
+ updateColor(newColor: Color4): void;
2311
2351
  switchExpandState(): void;
2312
- raiseOnPropertyChanged(previousValue: Color3 | Color4): void;
2313
2352
  updateStateR(value: number): void;
2314
2353
  updateStateG(value: number): void;
2315
2354
  updateStateB(value: number): void;
2355
+ updateStateA(value: number): void;
2316
2356
  copyToClipboard(): void;
2317
- convert(colorString: string): void;
2318
- private _colorStringSaved;
2319
- private _colorPickerOpen;
2320
- private _colorString;
2357
+ get colorString(): string;
2358
+ set colorString(_: string);
2359
+ private convertToColor;
2360
+ private toColor3;
2361
+ render(): JSX.Element;
2362
+ }
2363
+ }
2364
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/color3LineComponent" {
2365
+ import * as React from "react";
2366
+ import { Observable } from "@babylonjs/core/Misc/observable";
2367
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2368
+ import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2369
+ export interface IColor3LineComponentProps {
2370
+ label: string;
2371
+ target: any;
2372
+ propertyName: string;
2373
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2374
+ isLinear?: boolean;
2375
+ icon?: string;
2376
+ lockObject?: LockObject;
2377
+ iconLabel?: string;
2378
+ onValueChange?: (value: string) => void;
2379
+ }
2380
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
2321
2381
  render(): JSX.Element;
2322
2382
  }
2323
2383
  }
2324
2384
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/color4LineComponent" {
2325
2385
  import * as React from "react";
2326
2386
  import { Observable } from "@babylonjs/core/Misc/observable";
2327
- import { Color4 } from "@babylonjs/core/Maths/math.color";
2328
2387
  import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2388
+ import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2329
2389
  export interface IColor4LineComponentProps {
2330
2390
  label: string;
2331
- target: any;
2391
+ target?: any;
2332
2392
  propertyName: string;
2333
2393
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2334
2394
  onChange?: () => void;
2335
2395
  isLinear?: boolean;
2336
2396
  icon?: string;
2337
2397
  iconLabel?: string;
2398
+ lockObject?: LockObject;
2338
2399
  }
2339
- export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
2340
- isExpanded: boolean;
2341
- color: Color4;
2342
- }> {
2343
- private _localChange;
2344
- constructor(props: IColor4LineComponentProps);
2345
- shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
2346
- color: Color4;
2347
- }): boolean;
2348
- setPropertyValue(newColor: Color4): void;
2349
- onChange(newValue: string): void;
2350
- switchExpandState(): void;
2351
- raiseOnPropertyChanged(previousValue: Color4): void;
2352
- updateStateR(value: number): void;
2353
- updateStateG(value: number): void;
2354
- updateStateB(value: number): void;
2355
- updateStateA(value: number): void;
2356
- copyToClipboard(): void;
2400
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
2357
2401
  render(): JSX.Element;
2358
2402
  }
2359
2403
  }
@@ -2465,6 +2509,9 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/floatLineCompone
2465
2509
  icon?: string;
2466
2510
  iconLabel?: string;
2467
2511
  defaultValue?: number;
2512
+ unit?: string;
2513
+ onUnitClicked?: () => void;
2514
+ unitLocked?: boolean;
2468
2515
  }
2469
2516
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
2470
2517
  value: string;
@@ -2473,6 +2520,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/floatLineCompone
2473
2520
  private _store;
2474
2521
  constructor(props: IFloatLineComponentProps);
2475
2522
  componentWillUnmount(): void;
2523
+ getValueString(value: any): string;
2476
2524
  shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
2477
2525
  value: string;
2478
2526
  }): boolean;
@@ -2828,14 +2876,15 @@ declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui
2828
2876
  import { Control } from "@babylonjs/gui/2D/controls/control";
2829
2877
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2830
2878
  interface ICommonControlPropertyGridComponentProps {
2831
- control: Control;
2879
+ controls?: Control[];
2880
+ control?: Control;
2832
2881
  lockObject: LockObject;
2833
2882
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2834
2883
  }
2835
2884
  export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
2836
2885
  constructor(props: ICommonControlPropertyGridComponentProps);
2837
- renderGridInformation(): JSX.Element | null;
2838
- render(): JSX.Element;
2886
+ renderGridInformation(control: Control): JSX.Element | null;
2887
+ render(): JSX.Element | undefined;
2839
2888
  }
2840
2889
  }
2841
2890
  declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
@@ -2992,7 +3041,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui
2992
3041
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2993
3042
  import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
2994
3043
  interface IRadioButtonPropertyGridComponentProps {
2995
- radioButton: RadioButton;
3044
+ radioButtons: RadioButton[];
2996
3045
  lockObject: LockObject;
2997
3046
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2998
3047
  }
package/package.json CHANGED
@@ -4,14 +4,14 @@
4
4
  },
5
5
  "name": "@babylonjs/node-editor",
6
6
  "description": "The Babylon.js node material editor.",
7
- "version": "5.0.0-beta.1",
7
+ "version": "5.0.0-beta.10",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/BabylonJS/Babylon.js.git"
11
11
  },
12
12
  "license": "Apache-2.0",
13
13
  "dependencies": {
14
- "@babylonjs/core": "5.0.0-beta.1",
14
+ "@babylonjs/core": "5.0.0-beta.10",
15
15
  "tslib": "^2.3.1"
16
16
  },
17
17
  "files": [