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

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,20 +2269,25 @@ 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;
2280
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/inputArrowsComponent" {
2281
+ import * as React from "react";
2282
+ interface IInputArrowsComponentProps {
2283
+ incrementValue: (amount: number) => void;
2284
+ setDragging: (dragging: boolean) => void;
2285
+ }
2286
+ export class InputArrowsComponent extends React.Component<IInputArrowsComponentProps> {
2287
+ private _arrowsRef;
2288
+ private _drag;
2289
+ private _releaseListener;
2290
+ render(): JSX.Element;
2245
2291
  }
2246
2292
  }
2247
2293
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineComponent" {
@@ -2262,98 +2308,116 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineCom
2262
2308
  noUnderline?: boolean;
2263
2309
  numbersOnly?: boolean;
2264
2310
  delayInput?: boolean;
2311
+ unit?: string;
2312
+ onUnitClicked?: (unit: string) => void;
2313
+ unitLocked?: boolean;
2314
+ arrows?: boolean;
2315
+ arrowsIncrement?: (amount: number) => void;
2316
+ step?: number;
2265
2317
  }
2266
2318
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
2267
2319
  value: string;
2320
+ dragging: boolean;
2268
2321
  }> {
2269
2322
  private _localChange;
2270
2323
  constructor(props: ITextInputLineComponentProps);
2271
2324
  componentWillUnmount(): void;
2272
2325
  shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
2273
2326
  value: string;
2327
+ dragging: boolean;
2274
2328
  }): boolean;
2275
2329
  raiseOnPropertyChanged(newValue: string, previousValue: string): void;
2276
2330
  updateValue(value: string): void;
2331
+ incrementValue(amount: number): void;
2332
+ onKeyDown(event: React.KeyboardEvent): void;
2277
2333
  render(): JSX.Element;
2278
2334
  }
2279
2335
  }
2280
- declare module "@babylonjs/node-editor/sharedUiComponents/lines/color3LineComponent" {
2336
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/colorLineComponent" {
2281
2337
  import * as React from "react";
2282
2338
  import { Observable } from "@babylonjs/core/Misc/observable";
2339
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
2283
2340
  import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2284
- import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
2285
2341
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2286
- export interface IColor3LineComponentProps {
2342
+ export interface IColorLineComponentProps {
2287
2343
  label: string;
2288
- target: any;
2344
+ target?: any;
2289
2345
  propertyName: string;
2290
2346
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2347
+ onChange?: () => void;
2291
2348
  isLinear?: boolean;
2292
2349
  icon?: string;
2293
- lockObject?: LockObject;
2294
2350
  iconLabel?: string;
2295
- onValueChange?: (value: string) => void;
2351
+ lockObject?: LockObject;
2352
+ disableAlpha?: boolean;
2296
2353
  }
2297
- export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
2354
+ interface IColorLineComponentState {
2298
2355
  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;
2356
+ color: Color4;
2357
+ colorString: string;
2358
+ }
2359
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
2360
+ constructor(props: IColorLineComponentProps);
2361
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
2362
+ getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
2363
+ children?: React.ReactNode;
2364
+ }>): Color4;
2365
+ getValueAsString(props?: Readonly<IColorLineComponentProps> & Readonly<{
2366
+ children?: React.ReactNode;
2367
+ }>): string;
2368
+ setColorFromString(colorString: string): void;
2369
+ setColor(color: Color4): void;
2370
+ updateColor(newColor: Color4): void;
2311
2371
  switchExpandState(): void;
2312
- raiseOnPropertyChanged(previousValue: Color3 | Color4): void;
2313
2372
  updateStateR(value: number): void;
2314
2373
  updateStateG(value: number): void;
2315
2374
  updateStateB(value: number): void;
2375
+ updateStateA(value: number): void;
2316
2376
  copyToClipboard(): void;
2317
- convert(colorString: string): void;
2318
- private _colorStringSaved;
2319
- private _colorPickerOpen;
2320
- private _colorString;
2377
+ get colorString(): string;
2378
+ set colorString(_: string);
2379
+ private convertToColor;
2380
+ private toColor3;
2381
+ render(): JSX.Element;
2382
+ }
2383
+ }
2384
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/color3LineComponent" {
2385
+ import * as React from "react";
2386
+ import { Observable } from "@babylonjs/core/Misc/observable";
2387
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2388
+ import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2389
+ export interface IColor3LineComponentProps {
2390
+ label: string;
2391
+ target: any;
2392
+ propertyName: string;
2393
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2394
+ isLinear?: boolean;
2395
+ icon?: string;
2396
+ lockObject?: LockObject;
2397
+ iconLabel?: string;
2398
+ onValueChange?: (value: string) => void;
2399
+ }
2400
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
2321
2401
  render(): JSX.Element;
2322
2402
  }
2323
2403
  }
2324
2404
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/color4LineComponent" {
2325
2405
  import * as React from "react";
2326
2406
  import { Observable } from "@babylonjs/core/Misc/observable";
2327
- import { Color4 } from "@babylonjs/core/Maths/math.color";
2328
2407
  import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2408
+ import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2329
2409
  export interface IColor4LineComponentProps {
2330
2410
  label: string;
2331
- target: any;
2411
+ target?: any;
2332
2412
  propertyName: string;
2333
2413
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2334
2414
  onChange?: () => void;
2335
2415
  isLinear?: boolean;
2336
2416
  icon?: string;
2337
2417
  iconLabel?: string;
2418
+ lockObject?: LockObject;
2338
2419
  }
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;
2420
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
2357
2421
  render(): JSX.Element;
2358
2422
  }
2359
2423
  }
@@ -2465,6 +2529,9 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/floatLineCompone
2465
2529
  icon?: string;
2466
2530
  iconLabel?: string;
2467
2531
  defaultValue?: number;
2532
+ unit?: string;
2533
+ onUnitClicked?: () => void;
2534
+ unitLocked?: boolean;
2468
2535
  }
2469
2536
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
2470
2537
  value: string;
@@ -2473,6 +2540,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/floatLineCompone
2473
2540
  private _store;
2474
2541
  constructor(props: IFloatLineComponentProps);
2475
2542
  componentWillUnmount(): void;
2543
+ getValueString(value: any): string;
2476
2544
  shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
2477
2545
  value: string;
2478
2546
  }): boolean;
@@ -2828,14 +2896,15 @@ declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui
2828
2896
  import { Control } from "@babylonjs/gui/2D/controls/control";
2829
2897
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2830
2898
  interface ICommonControlPropertyGridComponentProps {
2831
- control: Control;
2899
+ controls?: Control[];
2900
+ control?: Control;
2832
2901
  lockObject: LockObject;
2833
2902
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2834
2903
  }
2835
2904
  export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
2836
2905
  constructor(props: ICommonControlPropertyGridComponentProps);
2837
- renderGridInformation(): JSX.Element | null;
2838
- render(): JSX.Element;
2906
+ renderGridInformation(control: Control): JSX.Element | null;
2907
+ render(): JSX.Element | undefined;
2839
2908
  }
2840
2909
  }
2841
2910
  declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
@@ -2992,7 +3061,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui
2992
3061
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2993
3062
  import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
2994
3063
  interface IRadioButtonPropertyGridComponentProps {
2995
- radioButton: RadioButton;
3064
+ radioButtons: RadioButton[];
2996
3065
  lockObject: LockObject;
2997
3066
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2998
3067
  }
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.12",
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.12",
15
15
  "tslib": "^2.3.1"
16
16
  },
17
17
  "files": [