@babylonjs/node-editor 5.0.0-beta.4 → 5.0.0-beta.8

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: {
@@ -2145,6 +2158,20 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/buttonLineCompon
2145
2158
  render(): JSX.Element;
2146
2159
  }
2147
2160
  }
2161
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/targetsProxy" {
2162
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2163
+ import { Observable } from "@babylonjs/core/Misc/observable";
2164
+ export const conflictingValuesPlaceholder = "\u2014";
2165
+ /**
2166
+ *
2167
+ * @param propertyName the property that the input changes
2168
+ * @param targets a list of selected targets
2169
+ * @param defaultValue the value that should be returned when two targets have conflicting values
2170
+ * @param setter an optional setter function to override the default setter behavior
2171
+ * @returns a proxy object that can be passed as a target into the input
2172
+ */
2173
+ export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
2174
+ }
2148
2175
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/checkBoxLineComponent" {
2149
2176
  import * as React from "react";
2150
2177
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -2166,6 +2193,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/checkBoxLineComp
2166
2193
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
2167
2194
  isSelected: boolean;
2168
2195
  isDisabled?: boolean;
2196
+ isConflict: boolean;
2169
2197
  }> {
2170
2198
  private static _UniqueIdSeed;
2171
2199
  private _uniqueId;
@@ -2174,11 +2202,23 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/checkBoxLineComp
2174
2202
  shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
2175
2203
  isSelected: boolean;
2176
2204
  isDisabled: boolean;
2205
+ isConflict: boolean;
2177
2206
  }): boolean;
2178
2207
  onChange(): void;
2179
2208
  render(): JSX.Element;
2180
2209
  }
2181
2210
  }
2211
+ declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
2212
+ /**
2213
+ * Class used to provide lock mechanism
2214
+ */
2215
+ export class LockObject {
2216
+ /**
2217
+ * Gets or set if the lock is engaged
2218
+ */
2219
+ lock: boolean;
2220
+ }
2221
+ }
2182
2222
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/numericInputComponent" {
2183
2223
  import * as React from "react";
2184
2224
  interface INumericInputComponentProps {
@@ -2228,22 +2268,14 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/colorPickerCompo
2228
2268
  constructor(props: IColorPickerComponentProps);
2229
2269
  syncPositions(): void;
2230
2270
  shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
2271
+ getHexString(props?: Readonly<IColorPickerComponentProps> & Readonly<{
2272
+ children?: React.ReactNode;
2273
+ }>): string;
2231
2274
  componentDidUpdate(): void;
2232
2275
  componentDidMount(): void;
2233
2276
  render(): JSX.Element;
2234
2277
  }
2235
2278
  }
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
2279
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineComponent" {
2248
2280
  import * as React from "react";
2249
2281
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -2262,6 +2294,9 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineCom
2262
2294
  noUnderline?: boolean;
2263
2295
  numbersOnly?: boolean;
2264
2296
  delayInput?: boolean;
2297
+ unit?: string;
2298
+ onUnitClicked?: (unit: string) => void;
2299
+ unitLocked?: boolean;
2265
2300
  }
2266
2301
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
2267
2302
  value: string;
@@ -2277,83 +2312,91 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineCom
2277
2312
  render(): JSX.Element;
2278
2313
  }
2279
2314
  }
2280
- declare module "@babylonjs/node-editor/sharedUiComponents/lines/color3LineComponent" {
2315
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/colorLineComponent" {
2281
2316
  import * as React from "react";
2282
2317
  import { Observable } from "@babylonjs/core/Misc/observable";
2318
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
2283
2319
  import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2284
- import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
2285
2320
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2286
- export interface IColor3LineComponentProps {
2321
+ export interface IColorLineComponentProps {
2287
2322
  label: string;
2288
- target: any;
2323
+ target?: any;
2289
2324
  propertyName: string;
2290
2325
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2326
+ onChange?: () => void;
2291
2327
  isLinear?: boolean;
2292
2328
  icon?: string;
2293
- lockObject?: LockObject;
2294
2329
  iconLabel?: string;
2295
- onValueChange?: (value: string) => void;
2330
+ lockObject?: LockObject;
2331
+ disableAlpha?: boolean;
2296
2332
  }
2297
- export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
2333
+ interface IColorLineComponentState {
2298
2334
  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;
2335
+ color: Color4;
2336
+ colorString: string;
2337
+ }
2338
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
2339
+ constructor(props: IColorLineComponentProps);
2340
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
2341
+ getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
2342
+ children?: React.ReactNode;
2343
+ }>): Color4;
2344
+ getValueAsString(props?: Readonly<IColorLineComponentProps> & Readonly<{
2345
+ children?: React.ReactNode;
2346
+ }>): string;
2347
+ setColorFromString(colorString: string): void;
2348
+ setColor(color: Color4): void;
2349
+ updateColor(newColor: Color4): void;
2311
2350
  switchExpandState(): void;
2312
- raiseOnPropertyChanged(previousValue: Color3 | Color4): void;
2313
2351
  updateStateR(value: number): void;
2314
2352
  updateStateG(value: number): void;
2315
2353
  updateStateB(value: number): void;
2354
+ updateStateA(value: number): void;
2316
2355
  copyToClipboard(): void;
2317
- convert(colorString: string): void;
2318
- private _colorStringSaved;
2319
- private _colorPickerOpen;
2320
- private _colorString;
2356
+ get colorString(): string;
2357
+ set colorString(_: string);
2358
+ private convertToColor;
2359
+ private toColor3;
2360
+ render(): JSX.Element;
2361
+ }
2362
+ }
2363
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/color3LineComponent" {
2364
+ import * as React from "react";
2365
+ import { Observable } from "@babylonjs/core/Misc/observable";
2366
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2367
+ import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2368
+ export interface IColor3LineComponentProps {
2369
+ label: string;
2370
+ target: any;
2371
+ propertyName: string;
2372
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2373
+ isLinear?: boolean;
2374
+ icon?: string;
2375
+ lockObject?: LockObject;
2376
+ iconLabel?: string;
2377
+ onValueChange?: (value: string) => void;
2378
+ }
2379
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
2321
2380
  render(): JSX.Element;
2322
2381
  }
2323
2382
  }
2324
2383
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/color4LineComponent" {
2325
2384
  import * as React from "react";
2326
2385
  import { Observable } from "@babylonjs/core/Misc/observable";
2327
- import { Color4 } from "@babylonjs/core/Maths/math.color";
2328
2386
  import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2387
+ import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2329
2388
  export interface IColor4LineComponentProps {
2330
2389
  label: string;
2331
- target: any;
2390
+ target?: any;
2332
2391
  propertyName: string;
2333
2392
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2334
2393
  onChange?: () => void;
2335
2394
  isLinear?: boolean;
2336
2395
  icon?: string;
2337
2396
  iconLabel?: string;
2397
+ lockObject?: LockObject;
2338
2398
  }
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;
2399
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
2357
2400
  render(): JSX.Element;
2358
2401
  }
2359
2402
  }
@@ -2465,6 +2508,9 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/floatLineCompone
2465
2508
  icon?: string;
2466
2509
  iconLabel?: string;
2467
2510
  defaultValue?: number;
2511
+ unit?: string;
2512
+ onUnitClicked?: () => void;
2513
+ unitLocked?: boolean;
2468
2514
  }
2469
2515
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
2470
2516
  value: string;
@@ -2473,6 +2519,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/floatLineCompone
2473
2519
  private _store;
2474
2520
  constructor(props: IFloatLineComponentProps);
2475
2521
  componentWillUnmount(): void;
2522
+ getValueString(value: any): string;
2476
2523
  shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
2477
2524
  value: string;
2478
2525
  }): boolean;
@@ -2828,14 +2875,15 @@ declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui
2828
2875
  import { Control } from "@babylonjs/gui/2D/controls/control";
2829
2876
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2830
2877
  interface ICommonControlPropertyGridComponentProps {
2831
- control: Control;
2878
+ controls?: Control[];
2879
+ control?: Control;
2832
2880
  lockObject: LockObject;
2833
2881
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2834
2882
  }
2835
2883
  export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
2836
2884
  constructor(props: ICommonControlPropertyGridComponentProps);
2837
- renderGridInformation(): JSX.Element | null;
2838
- render(): JSX.Element;
2885
+ renderGridInformation(control: Control): JSX.Element | null;
2886
+ render(): JSX.Element | undefined;
2839
2887
  }
2840
2888
  }
2841
2889
  declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
@@ -2992,7 +3040,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/gui
2992
3040
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2993
3041
  import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
2994
3042
  interface IRadioButtonPropertyGridComponentProps {
2995
- radioButton: RadioButton;
3043
+ radioButtons: RadioButton[];
2996
3044
  lockObject: LockObject;
2997
3045
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2998
3046
  }
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.4",
7
+ "version": "5.0.0-beta.8",
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.4",
14
+ "@babylonjs/core": "5.0.0-beta.8",
15
15
  "tslib": "^2.3.1"
16
16
  },
17
17
  "files": [