@babylonjs/node-particle-editor 8.11.1 → 8.12.1
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.
- package/dist/babylon.nodeParticleEditor.js +3 -0
- package/dist/babylon.nodeParticleEditor.js.LICENSE.txt +60 -0
- package/dist/babylon.nodeParticleEditor.js.map +1 -0
- package/dist/babylon.nodeParticleEditor.max.js +3 -0
- package/dist/babylon.nodeParticleEditor.module.d.ts +4893 -0
- package/package.json +6 -6
|
@@ -0,0 +1,4893 @@
|
|
|
1
|
+
|
|
2
|
+
declare module "@babylonjs/node-particle-editor/serializationTools" {
|
|
3
|
+
import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
|
|
4
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
5
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
6
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
7
|
+
export class SerializationTools {
|
|
8
|
+
static UpdateLocations(particleSet: NodeParticleSystemSet, globalState: GlobalState, frame?: Nullable<GraphFrame>): void;
|
|
9
|
+
static Serialize(particleSet: NodeParticleSystemSet, globalState: GlobalState, frame?: Nullable<GraphFrame>): string;
|
|
10
|
+
static Deserialize(serializationObject: any, globalState: GlobalState): void;
|
|
11
|
+
static AddFrameToParticleSystemSet(serializationObject: any, globalState: GlobalState, currentSystemSet: NodeParticleSystemSet): void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
}
|
|
15
|
+
declare module "@babylonjs/node-particle-editor/portal" {
|
|
16
|
+
import * as React from "react";
|
|
17
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
18
|
+
import { PropsWithChildren } from "react";
|
|
19
|
+
interface IPortalProps {
|
|
20
|
+
globalState: GlobalState;
|
|
21
|
+
}
|
|
22
|
+
export class Portal extends React.Component<PropsWithChildren<IPortalProps>> {
|
|
23
|
+
render(): React.ReactPortal;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
|
|
27
|
+
}
|
|
28
|
+
declare module "@babylonjs/node-particle-editor/nodeParticleEditor" {
|
|
29
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
30
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color";
|
|
31
|
+
import { Scene } from "@babylonjs/core/scene";
|
|
32
|
+
import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
|
|
33
|
+
/**
|
|
34
|
+
* Interface used to specify creation options for the node editor
|
|
35
|
+
*/
|
|
36
|
+
export interface INodeEditorOptions {
|
|
37
|
+
nodeParticleSet: NodeParticleSystemSet;
|
|
38
|
+
hostScene: Scene;
|
|
39
|
+
hostElement?: HTMLElement;
|
|
40
|
+
customSave?: {
|
|
41
|
+
label: string;
|
|
42
|
+
action: (data: string) => Promise<void>;
|
|
43
|
+
};
|
|
44
|
+
customLoadObservable?: Observable<any>;
|
|
45
|
+
backgroundColor?: Color4;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Class used to create a node editor
|
|
49
|
+
*/
|
|
50
|
+
export class NodeParticleEditor {
|
|
51
|
+
private static _CurrentState;
|
|
52
|
+
private static _PopupWindow;
|
|
53
|
+
/**
|
|
54
|
+
* Show the node editor
|
|
55
|
+
* @param options defines the options to use to configure the node editor
|
|
56
|
+
*/
|
|
57
|
+
static Show(options: INodeEditorOptions): void;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
}
|
|
61
|
+
declare module "@babylonjs/node-particle-editor/index" {
|
|
62
|
+
export * from "@babylonjs/node-particle-editor/nodeParticleEditor";
|
|
63
|
+
|
|
64
|
+
}
|
|
65
|
+
declare module "@babylonjs/node-particle-editor/graphEditor" {
|
|
66
|
+
import * as React from "react";
|
|
67
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
68
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
69
|
+
import { IInspectorOptions } from "@babylonjs/core/Debug/debugLayer";
|
|
70
|
+
import "@babylonjs/node-particle-editor/main.scss";
|
|
71
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
72
|
+
import { IEditorData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
|
|
73
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
74
|
+
import { NodeParticleBlock } from "@babylonjs/core/Particles/Node/nodeParticleBlock";
|
|
75
|
+
interface IGraphEditorProps {
|
|
76
|
+
globalState: GlobalState;
|
|
77
|
+
}
|
|
78
|
+
interface IGraphEditorState {
|
|
79
|
+
showPreviewPopUp: boolean;
|
|
80
|
+
message: string;
|
|
81
|
+
isError: boolean;
|
|
82
|
+
}
|
|
83
|
+
interface IInternalPreviewAreaOptions extends IInspectorOptions {
|
|
84
|
+
popup: boolean;
|
|
85
|
+
original: boolean;
|
|
86
|
+
explorerWidth?: string;
|
|
87
|
+
inspectorWidth?: string;
|
|
88
|
+
embedHostWidth?: string;
|
|
89
|
+
}
|
|
90
|
+
export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
|
|
91
|
+
private _graphCanvasRef;
|
|
92
|
+
private _diagramContainerRef;
|
|
93
|
+
private _graphCanvas;
|
|
94
|
+
private _historyStack;
|
|
95
|
+
private _previewManager;
|
|
96
|
+
private _mouseLocationX;
|
|
97
|
+
private _mouseLocationY;
|
|
98
|
+
private _onWidgetKeyUpPointer;
|
|
99
|
+
private _previewHost;
|
|
100
|
+
private _popUpWindow;
|
|
101
|
+
appendBlock(dataToAppend: NodeParticleBlock | INodeData, recursion?: boolean): GraphNode;
|
|
102
|
+
addValueNode(type: string): GraphNode;
|
|
103
|
+
prepareHistoryStack(): void;
|
|
104
|
+
componentDidMount(): void;
|
|
105
|
+
componentWillUnmount(): void;
|
|
106
|
+
constructor(props: IGraphEditorProps);
|
|
107
|
+
zoomToFit(): void;
|
|
108
|
+
buildParticleSystemSet(): void;
|
|
109
|
+
build(ignoreEditorData?: boolean): void;
|
|
110
|
+
loadGraph(): void;
|
|
111
|
+
showWaitScreen(): void;
|
|
112
|
+
hideWaitScreen(): void;
|
|
113
|
+
reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
|
|
114
|
+
onWheel: (evt: WheelEvent) => void;
|
|
115
|
+
emitNewBlock(blockType: string, targetX: number, targetY: number): GraphNode | undefined;
|
|
116
|
+
dropNewBlock(event: React.DragEvent<HTMLDivElement>): void;
|
|
117
|
+
handlePopUp: () => void;
|
|
118
|
+
handleClosingPopUp: () => void;
|
|
119
|
+
initiatePreviewArea: (canvas?: HTMLCanvasElement) => void;
|
|
120
|
+
createPopUp: () => void;
|
|
121
|
+
createPreviewMeshControlHostAsync: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => Promise<unknown>;
|
|
122
|
+
createPreviewHostAsync: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => Promise<unknown>;
|
|
123
|
+
fixPopUpStyles: (document: Document) => void;
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
export {};
|
|
127
|
+
|
|
128
|
+
}
|
|
129
|
+
declare module "@babylonjs/node-particle-editor/globalState" {
|
|
130
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
131
|
+
import { LogEntry } from "@babylonjs/node-particle-editor/components/log/logComponent";
|
|
132
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color";
|
|
133
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
134
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
135
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
136
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
137
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
138
|
+
import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
|
|
139
|
+
import { NodeParticleBlock } from "@babylonjs/core/Particles/Node/nodeParticleBlock";
|
|
140
|
+
import { Scene } from "@babylonjs/core/scene";
|
|
141
|
+
export class GlobalState {
|
|
142
|
+
nodeParticleSet: NodeParticleSystemSet;
|
|
143
|
+
hostScene: Scene;
|
|
144
|
+
hostElement: HTMLElement;
|
|
145
|
+
hostDocument: Document;
|
|
146
|
+
hostWindow: Window;
|
|
147
|
+
stateManager: StateManager;
|
|
148
|
+
onBuildRequiredObservable: Observable<void>;
|
|
149
|
+
onResetRequiredObservable: Observable<boolean>;
|
|
150
|
+
onClearUndoStack: Observable<void>;
|
|
151
|
+
onZoomToFitRequiredObservable: Observable<void>;
|
|
152
|
+
onReOrganizedRequiredObservable: Observable<void>;
|
|
153
|
+
onLogRequiredObservable: Observable<LogEntry>;
|
|
154
|
+
onIsLoadingChanged: Observable<boolean>;
|
|
155
|
+
onPreviewBackgroundChanged: Observable<void>;
|
|
156
|
+
onImportFrameObservable: Observable<any>;
|
|
157
|
+
onPopupClosedObservable: Observable<void>;
|
|
158
|
+
onGetNodeFromBlock: (block: NodeParticleBlock) => GraphNode;
|
|
159
|
+
listOfCustomPreviewFiles: File[];
|
|
160
|
+
rotatePreview: boolean;
|
|
161
|
+
backgroundColor: Color4;
|
|
162
|
+
lockObject: LockObject;
|
|
163
|
+
pointerOverCanvas: boolean;
|
|
164
|
+
onRefreshPreviewMeshControlComponentRequiredObservable: Observable<void>;
|
|
165
|
+
onExportToGLBRequired: Observable<void>;
|
|
166
|
+
updateState: (left: string, right: string) => void;
|
|
167
|
+
customSave?: {
|
|
168
|
+
label: string;
|
|
169
|
+
action: (data: string) => Promise<void>;
|
|
170
|
+
};
|
|
171
|
+
constructor();
|
|
172
|
+
storeEditorData(serializationObject: any, frame?: Nullable<GraphFrame>): void;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
}
|
|
176
|
+
declare module "@babylonjs/node-particle-editor/blockTools" {
|
|
177
|
+
import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
|
|
178
|
+
import { ParticleTextureSourceBlock } from "@babylonjs/core/Particles/Node/Blocks/particleSourceTextureBlock";
|
|
179
|
+
import { RandomRangeBlock } from "@babylonjs/core/Particles/Node/Blocks/randomRangeBlock";
|
|
180
|
+
import { UpdateDirectionBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateDirectionBlock";
|
|
181
|
+
import { UpdatePositionBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updatePositionBlock";
|
|
182
|
+
import { SystemBlock } from "@babylonjs/core/Particles/Node/Blocks/systemBlock";
|
|
183
|
+
import { NodeParticleBlockConnectionPointTypes } from "@babylonjs/core/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes";
|
|
184
|
+
import { ParticleMathBlock } from "@babylonjs/core/Particles/Node/Blocks/particleMathBlock";
|
|
185
|
+
import { UpdateColorBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateColorBlock";
|
|
186
|
+
import { ParticleLerpBlock } from "@babylonjs/core/Particles/Node/Blocks/particleLerpBlock";
|
|
187
|
+
import { UpdateScaleBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateScaleBlock";
|
|
188
|
+
import { ParticleGradientValueBlock } from "@babylonjs/core/Particles/Node/Blocks/particleGradientValueBlock";
|
|
189
|
+
import { ParticleGradientBlock } from "@babylonjs/core/Particles/Node/Blocks/particleGradientBlock";
|
|
190
|
+
import { ParticleConverterBlock } from "@babylonjs/core/Particles/Node/Blocks/particleConverterBlock";
|
|
191
|
+
import { ParticleTrigonometryBlock } from "@babylonjs/core/Particles/Node/Blocks/particleTrigonometryBlock";
|
|
192
|
+
import { ParticleRandomBlock } from "@babylonjs/core/Particles/Node/Blocks/particleRandomBlock";
|
|
193
|
+
import { ParticleDebugBlock } from "@babylonjs/core/Particles/Node/Blocks/particleDebugBlock";
|
|
194
|
+
import { ParticleElbowBlock } from "@babylonjs/core/Particles/Node/Blocks/particleElbowBlock";
|
|
195
|
+
import { ParticleTeleportInBlock } from "@babylonjs/core/Particles/Node/Blocks/Teleport/particleTeleportInBlock";
|
|
196
|
+
import { ParticleTeleportOutBlock } from "@babylonjs/core/Particles/Node/Blocks/Teleport/particleTeleportOutBlock";
|
|
197
|
+
import { UpdateAngleBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateAngleBlock";
|
|
198
|
+
import { BasicPositionUpdateBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/basicPositionUpdateBlock";
|
|
199
|
+
import { ParticleTriggerBlock } from "@babylonjs/core/Particles/Node/Blocks/Triggers/particleTriggerBlock";
|
|
200
|
+
import { SetupSpriteSheetBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock";
|
|
201
|
+
import { BasicSpriteUpdateBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/basicSpriteUpdateBlock";
|
|
202
|
+
import { UpdateSpriteCellIndexBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock";
|
|
203
|
+
import { UpdateFlowMapBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateFlowMapBlock";
|
|
204
|
+
import { ParticleConditionBlock } from "@babylonjs/core/Particles/Node/Blocks/Conditions/particleConditionBlock";
|
|
205
|
+
import { CreateParticleBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/createParticleBlock";
|
|
206
|
+
import { BoxShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/boxShapeBlock";
|
|
207
|
+
import { SphereShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/sphereShapeBlock";
|
|
208
|
+
import { PointShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/pointShapeBlock";
|
|
209
|
+
import { CustomShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/customShapeBlock";
|
|
210
|
+
import { CylinderShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/cylinderShapeBlock";
|
|
211
|
+
/**
|
|
212
|
+
* Static class for BlockTools
|
|
213
|
+
*/
|
|
214
|
+
export class BlockTools {
|
|
215
|
+
static GetBlockFromString(data: string): CreateParticleBlock | ParticleConditionBlock | UpdateSpriteCellIndexBlock | BasicSpriteUpdateBlock | SetupSpriteSheetBlock | ParticleTriggerBlock | BasicPositionUpdateBlock | ParticleTeleportInBlock | ParticleTeleportOutBlock | ParticleElbowBlock | ParticleDebugBlock | ParticleConverterBlock | ParticleGradientBlock | ParticleGradientValueBlock | ParticleLerpBlock | UpdatePositionBlock | UpdateDirectionBlock | UpdateColorBlock | UpdateScaleBlock | UpdateAngleBlock | UpdateFlowMapBlock | SystemBlock | ParticleTextureSourceBlock | BoxShapeBlock | SphereShapeBlock | PointShapeBlock | CustomShapeBlock | CylinderShapeBlock | RandomRangeBlock | ParticleInputBlock | ParticleMathBlock | ParticleTrigonometryBlock | ParticleRandomBlock | null;
|
|
216
|
+
static GetColorFromConnectionNodeType(type: NodeParticleBlockConnectionPointTypes): string;
|
|
217
|
+
static GetConnectionNodeTypeFromString(type: string): NodeParticleBlockConnectionPointTypes.Int | NodeParticleBlockConnectionPointTypes.Float | NodeParticleBlockConnectionPointTypes.Vector2 | NodeParticleBlockConnectionPointTypes.Vector3 | NodeParticleBlockConnectionPointTypes.Matrix | NodeParticleBlockConnectionPointTypes.Color4 | NodeParticleBlockConnectionPointTypes.AutoDetect;
|
|
218
|
+
static GetStringFromConnectionNodeType(type: NodeParticleBlockConnectionPointTypes): "" | "Int" | "Float" | "Vector2" | "Vector3" | "Color4" | "Matrix";
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
}
|
|
222
|
+
declare module "@babylonjs/node-particle-editor/sharedComponents/textureLineComponent" {
|
|
223
|
+
import * as React from "react";
|
|
224
|
+
import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
|
|
225
|
+
interface ITextureLineComponentProps {
|
|
226
|
+
texture: BaseTexture;
|
|
227
|
+
width: number;
|
|
228
|
+
height: number;
|
|
229
|
+
globalState?: any;
|
|
230
|
+
hideChannelSelect?: boolean;
|
|
231
|
+
}
|
|
232
|
+
export interface ITextureLineComponentState {
|
|
233
|
+
displayRed: boolean;
|
|
234
|
+
displayGreen: boolean;
|
|
235
|
+
displayBlue: boolean;
|
|
236
|
+
displayAlpha: boolean;
|
|
237
|
+
face: number;
|
|
238
|
+
}
|
|
239
|
+
export class TextureLineComponent extends React.Component<ITextureLineComponentProps, ITextureLineComponentState> {
|
|
240
|
+
private _canvasRef;
|
|
241
|
+
constructor(props: ITextureLineComponentProps);
|
|
242
|
+
shouldComponentUpdate(): boolean;
|
|
243
|
+
componentDidMount(): void;
|
|
244
|
+
componentDidUpdate(): void;
|
|
245
|
+
updatePreview(): void;
|
|
246
|
+
static UpdatePreview(previewCanvas: HTMLCanvasElement, texture: BaseTexture, width: number, options: ITextureLineComponentState, onReady?: () => void, globalState?: any): Promise<void>;
|
|
247
|
+
|
|
248
|
+
}
|
|
249
|
+
export {};
|
|
250
|
+
|
|
251
|
+
}
|
|
252
|
+
declare module "@babylonjs/node-particle-editor/sharedComponents/checkBoxLineComponent" {
|
|
253
|
+
import * as React from "react";
|
|
254
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
255
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
256
|
+
export interface ICheckBoxLineComponentProps {
|
|
257
|
+
label: string;
|
|
258
|
+
target?: any;
|
|
259
|
+
propertyName?: string;
|
|
260
|
+
isSelected?: () => boolean;
|
|
261
|
+
onSelect?: (value: boolean) => void;
|
|
262
|
+
onValueChanged?: () => void;
|
|
263
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
264
|
+
disabled?: boolean;
|
|
265
|
+
}
|
|
266
|
+
export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
|
|
267
|
+
isSelected: boolean;
|
|
268
|
+
isDisabled?: boolean;
|
|
269
|
+
}> {
|
|
270
|
+
private static _UniqueIdSeed;
|
|
271
|
+
private _uniqueId;
|
|
272
|
+
private _localChange;
|
|
273
|
+
constructor(props: ICheckBoxLineComponentProps);
|
|
274
|
+
shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
|
|
275
|
+
isSelected: boolean;
|
|
276
|
+
isDisabled: boolean;
|
|
277
|
+
}): boolean;
|
|
278
|
+
onChange(): void;
|
|
279
|
+
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
}
|
|
283
|
+
declare module "@babylonjs/node-particle-editor/legacy/legacy" {
|
|
284
|
+
export * from "@babylonjs/node-particle-editor/index";
|
|
285
|
+
|
|
286
|
+
}
|
|
287
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/registerToTypeLedger" {
|
|
288
|
+
export const RegisterTypeLedger: () => void;
|
|
289
|
+
|
|
290
|
+
}
|
|
291
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/registerToPropertyLedger" {
|
|
292
|
+
export const RegisterToPropertyTabManagers: () => void;
|
|
293
|
+
|
|
294
|
+
}
|
|
295
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/registerToDisplayLedger" {
|
|
296
|
+
export const RegisterToDisplayManagers: () => void;
|
|
297
|
+
|
|
298
|
+
}
|
|
299
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/registerNodePortDesign" {
|
|
300
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
301
|
+
export const RegisterNodePortDesign: (stateManager: StateManager) => void;
|
|
302
|
+
|
|
303
|
+
}
|
|
304
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/registerExportData" {
|
|
305
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
306
|
+
export const RegisterExportData: (stateManager: StateManager) => void;
|
|
307
|
+
|
|
308
|
+
}
|
|
309
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/registerElbowSupport" {
|
|
310
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
311
|
+
export const RegisterElbowSupport: (stateManager: StateManager) => void;
|
|
312
|
+
|
|
313
|
+
}
|
|
314
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/registerDefaultInput" {
|
|
315
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
316
|
+
export const RegisterDefaultInput: (stateManager: StateManager) => void;
|
|
317
|
+
|
|
318
|
+
}
|
|
319
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/registerDebugSupport" {
|
|
320
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
321
|
+
export const RegisterDebugSupport: (stateManager: StateManager) => void;
|
|
322
|
+
|
|
323
|
+
}
|
|
324
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/connectionPointPortData" {
|
|
325
|
+
import { NodeParticleBlock } from "@babylonjs/core/Particles/Node/nodeParticleBlock";
|
|
326
|
+
import { NodeParticleConnectionPointCompatibilityStates, type NodeParticleConnectionPoint } from "@babylonjs/core/Particles/Node/nodeParticleBlockConnectionPoint";
|
|
327
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
328
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
329
|
+
import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
|
|
330
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
331
|
+
import { PortDataDirection, PortDirectValueTypes } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
332
|
+
export class ConnectionPointPortData implements IPortData {
|
|
333
|
+
private _connectedPort;
|
|
334
|
+
private _nodeContainer;
|
|
335
|
+
data: NodeParticleConnectionPoint;
|
|
336
|
+
get name(): string;
|
|
337
|
+
get internalName(): string;
|
|
338
|
+
get isExposedOnFrame(): boolean;
|
|
339
|
+
set isExposedOnFrame(value: boolean);
|
|
340
|
+
get exposedPortPosition(): number;
|
|
341
|
+
set exposedPortPosition(value: number);
|
|
342
|
+
get isConnected(): boolean;
|
|
343
|
+
get connectedPort(): Nullable<IPortData>;
|
|
344
|
+
set connectedPort(value: Nullable<IPortData>);
|
|
345
|
+
get directValueDefinition(): {
|
|
346
|
+
source: NodeParticleConnectionPoint;
|
|
347
|
+
propertyName: string;
|
|
348
|
+
valueMin: any;
|
|
349
|
+
valueMax: any;
|
|
350
|
+
valueType: PortDirectValueTypes;
|
|
351
|
+
} | undefined;
|
|
352
|
+
get direction(): PortDataDirection;
|
|
353
|
+
get ownerData(): NodeParticleBlock;
|
|
354
|
+
get needDualDirectionValidation(): boolean;
|
|
355
|
+
get hasEndpoints(): boolean;
|
|
356
|
+
get endpoints(): IPortData[];
|
|
357
|
+
constructor(connectionPoint: NodeParticleConnectionPoint, nodeContainer: INodeContainer);
|
|
358
|
+
updateDisplayName(newName: string): void;
|
|
359
|
+
connectTo(port: IPortData): void;
|
|
360
|
+
canConnectTo(port: IPortData): boolean;
|
|
361
|
+
disconnectFrom(port: IPortData): void;
|
|
362
|
+
checkCompatibilityState(port: IPortData): 0 | NodeParticleConnectionPointCompatibilityStates.TypeIncompatible | NodeParticleConnectionPointCompatibilityStates.HierarchyIssue;
|
|
363
|
+
getCompatibilityIssueMessage(issue: number, targetNode: GraphNode, targetPort: IPortData): string;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
}
|
|
367
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/blockNodeData" {
|
|
368
|
+
import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
|
|
369
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
370
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
371
|
+
import { NodeParticleBlock } from "@babylonjs/core/Particles/Node/nodeParticleBlock";
|
|
372
|
+
import { ParticleTeleportOutBlock } from "@babylonjs/core/Particles/Node/Blocks/Teleport/particleTeleportOutBlock";
|
|
373
|
+
export class BlockNodeData implements INodeData {
|
|
374
|
+
data: NodeParticleBlock;
|
|
375
|
+
private _inputs;
|
|
376
|
+
private _outputs;
|
|
377
|
+
private _onBuildObserver;
|
|
378
|
+
private _onInputChangeObserver;
|
|
379
|
+
/**
|
|
380
|
+
* Gets or sets a callback used to call node visual refresh
|
|
381
|
+
*/
|
|
382
|
+
refreshCallback?: () => void;
|
|
383
|
+
onInputCountChanged?: () => void;
|
|
384
|
+
get uniqueId(): number;
|
|
385
|
+
get name(): string;
|
|
386
|
+
getClassName(): string;
|
|
387
|
+
get isInput(): boolean;
|
|
388
|
+
get inputs(): IPortData[];
|
|
389
|
+
get outputs(): IPortData[];
|
|
390
|
+
get comments(): string;
|
|
391
|
+
set comments(value: string);
|
|
392
|
+
get executionTime(): number;
|
|
393
|
+
getPortByName(name: string): IPortData | null;
|
|
394
|
+
isConnectedToOutput(): boolean;
|
|
395
|
+
dispose(): void;
|
|
396
|
+
prepareHeaderIcon(iconDiv: HTMLDivElement, img: HTMLImageElement): void;
|
|
397
|
+
get invisibleEndpoints(): ParticleTeleportOutBlock[] | null;
|
|
398
|
+
constructor(data: NodeParticleBlock, nodeContainer: INodeContainer);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
}
|
|
402
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/properties/textureSourceNodePropertyComponent" {
|
|
403
|
+
import * as React from "react";
|
|
404
|
+
import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
|
|
405
|
+
export class TextureSourcePropertyTabComponent extends React.Component<IPropertyComponentProps> {
|
|
406
|
+
constructor(props: IPropertyComponentProps);
|
|
407
|
+
_prepareImgToLoadAsync(url: string): Promise<string>;
|
|
408
|
+
loadTextureFromFileAsync(imageFile: File): Promise<string>;
|
|
409
|
+
loadTextureData(file: File): Promise<void>;
|
|
410
|
+
removeData(): void;
|
|
411
|
+
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
}
|
|
415
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/properties/teleportOutNodePropertyComponent" {
|
|
416
|
+
import * as React from "react";
|
|
417
|
+
import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
|
|
418
|
+
export class TeleportOutPropertyTabComponent extends React.Component<IPropertyComponentProps> {
|
|
419
|
+
private _onUpdateRequiredObserver;
|
|
420
|
+
constructor(props: IPropertyComponentProps);
|
|
421
|
+
componentDidMount(): void;
|
|
422
|
+
componentWillUnmount(): void;
|
|
423
|
+
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
}
|
|
427
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/properties/nodePortPropertyComponent" {
|
|
428
|
+
import * as React from "react";
|
|
429
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
430
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
431
|
+
export interface IFrameNodePortPropertyTabComponentProps {
|
|
432
|
+
stateManager: StateManager;
|
|
433
|
+
nodePort: NodePort;
|
|
434
|
+
}
|
|
435
|
+
export class NodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps> {
|
|
436
|
+
constructor(props: IFrameNodePortPropertyTabComponentProps);
|
|
437
|
+
toggleExposeOnFrame(value: boolean): void;
|
|
438
|
+
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
}
|
|
442
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/properties/inputNodePropertyComponent" {
|
|
443
|
+
import * as React from "react";
|
|
444
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
445
|
+
import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
|
|
446
|
+
export class InputPropertyTabComponent extends React.Component<IPropertyComponentProps> {
|
|
447
|
+
private _onValueChangedObserver;
|
|
448
|
+
constructor(props: IPropertyComponentProps);
|
|
449
|
+
componentDidMount(): void;
|
|
450
|
+
componentWillUnmount(): void;
|
|
451
|
+
|
|
452
|
+
setDefaultValue(): void;
|
|
453
|
+
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
}
|
|
457
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/properties/genericNodePropertyComponent" {
|
|
458
|
+
import * as React from "react";
|
|
459
|
+
import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
|
|
460
|
+
import { NodeGeometryConnectionPoint } from "@babylonjs/core/Meshes/Node/nodeGeometryBlockConnectionPoint";
|
|
461
|
+
export class GenericPropertyComponent extends React.Component<IPropertyComponentProps> {
|
|
462
|
+
constructor(props: IPropertyComponentProps);
|
|
463
|
+
|
|
464
|
+
}
|
|
465
|
+
export class GeneralPropertyTabComponent extends React.Component<IPropertyComponentProps> {
|
|
466
|
+
constructor(props: IPropertyComponentProps);
|
|
467
|
+
processUpdate(): void;
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
}
|
|
471
|
+
export class GenericPropertyTabComponent extends React.Component<IPropertyComponentProps> {
|
|
472
|
+
constructor(props: IPropertyComponentProps);
|
|
473
|
+
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
}
|
|
477
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/properties/framePropertyComponent" {
|
|
478
|
+
import * as React from "react";
|
|
479
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
480
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
481
|
+
export interface IFramePropertyTabComponentProps {
|
|
482
|
+
globalState: GlobalState;
|
|
483
|
+
frame: GraphFrame;
|
|
484
|
+
}
|
|
485
|
+
export class FramePropertyTabComponent extends React.Component<IFramePropertyTabComponentProps> {
|
|
486
|
+
private _onFrameExpandStateChangedObserver;
|
|
487
|
+
constructor(props: IFramePropertyTabComponentProps);
|
|
488
|
+
componentDidMount(): void;
|
|
489
|
+
componentWillUnmount(): void;
|
|
490
|
+
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
}
|
|
494
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/properties/frameNodePortPropertyComponent" {
|
|
495
|
+
import * as React from "react";
|
|
496
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
497
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
498
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
499
|
+
import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
|
|
500
|
+
export interface IFrameNodePortPropertyTabComponentProps {
|
|
501
|
+
stateManager: StateManager;
|
|
502
|
+
globalState: GlobalState;
|
|
503
|
+
frameNodePort: FrameNodePort;
|
|
504
|
+
frame: GraphFrame;
|
|
505
|
+
}
|
|
506
|
+
export class FrameNodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps, {
|
|
507
|
+
port: FrameNodePort;
|
|
508
|
+
}> {
|
|
509
|
+
private _onFramePortPositionChangedObserver;
|
|
510
|
+
private _onSelectionChangedObserver;
|
|
511
|
+
constructor(props: IFrameNodePortPropertyTabComponentProps);
|
|
512
|
+
componentWillUnmount(): void;
|
|
513
|
+
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
}
|
|
517
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/properties/debugNodePropertyComponent" {
|
|
518
|
+
import * as React from "react";
|
|
519
|
+
import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
|
|
520
|
+
export class DebugPropertyTabComponent extends React.Component<IPropertyComponentProps> {
|
|
521
|
+
private _onUpdateRequiredObserver;
|
|
522
|
+
private _dataCollectedObserver;
|
|
523
|
+
constructor(props: IPropertyComponentProps);
|
|
524
|
+
componentDidMount(): void;
|
|
525
|
+
componentWillUnmount(): void;
|
|
526
|
+
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
}
|
|
530
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/updateDisplayManager" {
|
|
531
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
532
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
533
|
+
export class UpdateDisplayManager implements IDisplayManager {
|
|
534
|
+
getHeaderClass(): string;
|
|
535
|
+
shouldDisplayPortLabels(): boolean;
|
|
536
|
+
getHeaderText(nodeData: INodeData): string;
|
|
537
|
+
getBackgroundColor(): string;
|
|
538
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
}
|
|
542
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/triggerDisplayManager" {
|
|
543
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
544
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
545
|
+
export class TriggerDisplayManager implements IDisplayManager {
|
|
546
|
+
getHeaderClass(): string;
|
|
547
|
+
shouldDisplayPortLabels(): boolean;
|
|
548
|
+
getHeaderText(nodeData: INodeData): string;
|
|
549
|
+
getBackgroundColor(): string;
|
|
550
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
}
|
|
554
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/textureDisplayManager" {
|
|
555
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
556
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
557
|
+
export class TextureDisplayManager implements IDisplayManager {
|
|
558
|
+
private _previewImage;
|
|
559
|
+
getHeaderClass(): string;
|
|
560
|
+
shouldDisplayPortLabels(): boolean;
|
|
561
|
+
getHeaderText(nodeData: INodeData): string;
|
|
562
|
+
getBackgroundColor(nodeData: INodeData): string;
|
|
563
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
}
|
|
567
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/teleportOutDisplayManager" {
|
|
568
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
569
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
570
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
571
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
572
|
+
export class TeleportOutDisplayManager implements IDisplayManager {
|
|
573
|
+
private _hasHighlights;
|
|
574
|
+
getHeaderClass(): string;
|
|
575
|
+
shouldDisplayPortLabels(): boolean;
|
|
576
|
+
getHeaderText(nodeData: INodeData): string;
|
|
577
|
+
getBackgroundColor(nodeData: INodeData): string;
|
|
578
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
579
|
+
onSelectionChanged(nodeData: INodeData, selectedData: Nullable<INodeData>, manager: StateManager): void;
|
|
580
|
+
onDispose(nodeData: INodeData, manager: StateManager): void;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
}
|
|
584
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/teleportInDisplayManager" {
|
|
585
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
586
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
587
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
588
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
589
|
+
export class TeleportInDisplayManager implements IDisplayManager {
|
|
590
|
+
private _hasHighlights;
|
|
591
|
+
getHeaderClass(): string;
|
|
592
|
+
shouldDisplayPortLabels(): boolean;
|
|
593
|
+
getHeaderText(nodeData: INodeData): string;
|
|
594
|
+
getBackgroundColor(nodeData: INodeData): string;
|
|
595
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
596
|
+
onSelectionChanged(nodeData: INodeData, selectedData: Nullable<INodeData>, manager: StateManager): void;
|
|
597
|
+
onDispose(nodeData: INodeData, manager: StateManager): void;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
}
|
|
601
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/systemDisplayManager" {
|
|
602
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
603
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
604
|
+
export class SystemDisplayManager implements IDisplayManager {
|
|
605
|
+
getHeaderClass(): string;
|
|
606
|
+
shouldDisplayPortLabels(): boolean;
|
|
607
|
+
getHeaderText(nodeData: INodeData): string;
|
|
608
|
+
getBackgroundColor(): string;
|
|
609
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
}
|
|
613
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/inputDisplayManager" {
|
|
614
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
615
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
616
|
+
import { NodeParticleBlockConnectionPointTypes } from "@babylonjs/core/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes";
|
|
617
|
+
export class InputDisplayManager implements IDisplayManager {
|
|
618
|
+
getHeaderClass(nodeData: INodeData): string;
|
|
619
|
+
getHeaderText(nodeData: INodeData): string;
|
|
620
|
+
shouldDisplayPortLabels(): boolean;
|
|
621
|
+
static GetBaseType(type: NodeParticleBlockConnectionPointTypes): string;
|
|
622
|
+
getBackgroundColor(nodeData: INodeData): string;
|
|
623
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
}
|
|
627
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/emitterDisplayManager" {
|
|
628
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
629
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
630
|
+
export class EmitterDisplayManager implements IDisplayManager {
|
|
631
|
+
getHeaderClass(): string;
|
|
632
|
+
shouldDisplayPortLabels(): boolean;
|
|
633
|
+
getHeaderText(nodeData: INodeData): string;
|
|
634
|
+
getBackgroundColor(): string;
|
|
635
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
}
|
|
639
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/elbowDisplayManager" {
|
|
640
|
+
import { IDisplayManager, VisualContentDescription } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
641
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
642
|
+
export class ElbowDisplayManager implements IDisplayManager {
|
|
643
|
+
getHeaderClass(): string;
|
|
644
|
+
shouldDisplayPortLabels(): boolean;
|
|
645
|
+
getHeaderText(nodeData: INodeData): string;
|
|
646
|
+
getBackgroundColor(nodeData: INodeData): string;
|
|
647
|
+
updatePreviewContent(_nodeData: INodeData, _contentArea: HTMLDivElement): void;
|
|
648
|
+
updateFullVisualContent(data: INodeData, visualContent: VisualContentDescription): void;
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
}
|
|
652
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/debugDisplayManager" {
|
|
653
|
+
import { IDisplayManager, VisualContentDescription } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
654
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
655
|
+
export class DebugDisplayManager implements IDisplayManager {
|
|
656
|
+
getHeaderClass(): string;
|
|
657
|
+
shouldDisplayPortLabels(): boolean;
|
|
658
|
+
getHeaderText(nodeData: INodeData): string;
|
|
659
|
+
getBackgroundColor(nodeData: INodeData): string;
|
|
660
|
+
updatePreviewContent(_nodeData: INodeData, _contentArea: HTMLDivElement): void;
|
|
661
|
+
updateFullVisualContent(data: INodeData, visualContent: VisualContentDescription): void;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
}
|
|
665
|
+
declare module "@babylonjs/node-particle-editor/graphSystem/display/conditionDisplayManager" {
|
|
666
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
667
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
668
|
+
export class ConditionDisplayManager implements IDisplayManager {
|
|
669
|
+
getHeaderClass(): string;
|
|
670
|
+
shouldDisplayPortLabels(): boolean;
|
|
671
|
+
getHeaderText(nodeData: INodeData): string;
|
|
672
|
+
getBackgroundColor(): string;
|
|
673
|
+
updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
}
|
|
677
|
+
declare module "@babylonjs/node-particle-editor/components/propertyTab/propertyTabComponent" {
|
|
678
|
+
import * as React from "react";
|
|
679
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
680
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
681
|
+
import "@babylonjs/node-particle-editor/components/propertyTab/propertyTab.scss";
|
|
682
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
683
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
684
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
685
|
+
import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
|
|
686
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
687
|
+
interface IPropertyTabComponentProps {
|
|
688
|
+
globalState: GlobalState;
|
|
689
|
+
lockObject: LockObject;
|
|
690
|
+
}
|
|
691
|
+
interface IPropertyTabComponentState {
|
|
692
|
+
currentNode: Nullable<GraphNode>;
|
|
693
|
+
currentFrame: Nullable<GraphFrame>;
|
|
694
|
+
currentFrameNodePort: Nullable<FrameNodePort>;
|
|
695
|
+
currentNodePort: Nullable<NodePort>;
|
|
696
|
+
uploadInProgress: boolean;
|
|
697
|
+
}
|
|
698
|
+
export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
|
|
699
|
+
private _onBuiltObserver;
|
|
700
|
+
constructor(props: IPropertyTabComponentProps);
|
|
701
|
+
componentDidMount(): void;
|
|
702
|
+
componentWillUnmount(): void;
|
|
703
|
+
processInputBlockUpdate(): void;
|
|
704
|
+
load(file: File): void;
|
|
705
|
+
loadFrame(file: File): void;
|
|
706
|
+
save(): void;
|
|
707
|
+
customSave(): void;
|
|
708
|
+
saveToSnippetServer(): void;
|
|
709
|
+
loadFromSnippet(): void;
|
|
710
|
+
|
|
711
|
+
}
|
|
712
|
+
export {};
|
|
713
|
+
|
|
714
|
+
}
|
|
715
|
+
declare module "@babylonjs/node-particle-editor/components/propertyTab/inputsPropertyTabComponent" {
|
|
716
|
+
import * as React from "react";
|
|
717
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
718
|
+
import "@babylonjs/node-particle-editor/components/propertyTab/propertyTab.scss";
|
|
719
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
720
|
+
import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
|
|
721
|
+
interface IInputsPropertyTabComponentProps {
|
|
722
|
+
globalState: GlobalState;
|
|
723
|
+
inputs: ParticleInputBlock[];
|
|
724
|
+
lockObject: LockObject;
|
|
725
|
+
}
|
|
726
|
+
export class InputsPropertyTabComponent extends React.Component<IInputsPropertyTabComponentProps> {
|
|
727
|
+
constructor(props: IInputsPropertyTabComponentProps);
|
|
728
|
+
processInputBlockUpdate(): void;
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
}
|
|
732
|
+
export {};
|
|
733
|
+
|
|
734
|
+
}
|
|
735
|
+
declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/vector4PropertyTabComponent" {
|
|
736
|
+
import * as React from "react";
|
|
737
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
738
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
739
|
+
import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
|
|
740
|
+
interface IVector4PropertyTabComponentProps {
|
|
741
|
+
globalState: GlobalState;
|
|
742
|
+
inputBlock: ParticleInputBlock;
|
|
743
|
+
lockObject: LockObject;
|
|
744
|
+
}
|
|
745
|
+
export class Vector4PropertyTabComponent extends React.Component<IVector4PropertyTabComponentProps> {
|
|
746
|
+
|
|
747
|
+
}
|
|
748
|
+
export {};
|
|
749
|
+
|
|
750
|
+
}
|
|
751
|
+
declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/vector3PropertyTabComponent" {
|
|
752
|
+
import * as React from "react";
|
|
753
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
754
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
755
|
+
import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
|
|
756
|
+
interface IVector3PropertyTabComponentProps {
|
|
757
|
+
globalState: GlobalState;
|
|
758
|
+
inputBlock: ParticleInputBlock;
|
|
759
|
+
lockObject: LockObject;
|
|
760
|
+
}
|
|
761
|
+
export class Vector3PropertyTabComponent extends React.Component<IVector3PropertyTabComponentProps> {
|
|
762
|
+
|
|
763
|
+
}
|
|
764
|
+
export {};
|
|
765
|
+
|
|
766
|
+
}
|
|
767
|
+
declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/vector2PropertyTabComponent" {
|
|
768
|
+
import * as React from "react";
|
|
769
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
770
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
771
|
+
import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
|
|
772
|
+
interface IVector2PropertyTabComponentProps {
|
|
773
|
+
globalState: GlobalState;
|
|
774
|
+
inputBlock: ParticleInputBlock;
|
|
775
|
+
lockObject: LockObject;
|
|
776
|
+
}
|
|
777
|
+
export class Vector2PropertyTabComponent extends React.Component<IVector2PropertyTabComponentProps> {
|
|
778
|
+
|
|
779
|
+
}
|
|
780
|
+
export {};
|
|
781
|
+
|
|
782
|
+
}
|
|
783
|
+
declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/floatPropertyTabComponent" {
|
|
784
|
+
import * as React from "react";
|
|
785
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
786
|
+
import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
|
|
787
|
+
interface IFloatPropertyTabComponentProps {
|
|
788
|
+
globalState: GlobalState;
|
|
789
|
+
inputBlock: ParticleInputBlock;
|
|
790
|
+
}
|
|
791
|
+
export class FloatPropertyTabComponent extends React.Component<IFloatPropertyTabComponentProps> {
|
|
792
|
+
|
|
793
|
+
}
|
|
794
|
+
export {};
|
|
795
|
+
|
|
796
|
+
}
|
|
797
|
+
declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/color4PropertyTabComponent" {
|
|
798
|
+
import * as React from "react";
|
|
799
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
800
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
801
|
+
import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
|
|
802
|
+
interface IColor4PropertyTabComponentProps {
|
|
803
|
+
globalState: GlobalState;
|
|
804
|
+
inputBlock: ParticleInputBlock;
|
|
805
|
+
lockObject: LockObject;
|
|
806
|
+
}
|
|
807
|
+
export class Color4PropertyTabComponent extends React.Component<IColor4PropertyTabComponentProps> {
|
|
808
|
+
|
|
809
|
+
}
|
|
810
|
+
export {};
|
|
811
|
+
|
|
812
|
+
}
|
|
813
|
+
declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/color3PropertyTabComponent" {
|
|
814
|
+
import * as React from "react";
|
|
815
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
816
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
817
|
+
import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
|
|
818
|
+
interface IColor3PropertyTabComponentProps {
|
|
819
|
+
globalState: GlobalState;
|
|
820
|
+
inputBlock: ParticleInputBlock;
|
|
821
|
+
lockObject: LockObject;
|
|
822
|
+
}
|
|
823
|
+
export class Color3PropertyTabComponent extends React.Component<IColor3PropertyTabComponentProps> {
|
|
824
|
+
|
|
825
|
+
}
|
|
826
|
+
export {};
|
|
827
|
+
|
|
828
|
+
}
|
|
829
|
+
declare module "@babylonjs/node-particle-editor/components/preview/previewMeshControlComponent" {
|
|
830
|
+
import * as React from "react";
|
|
831
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
832
|
+
interface IPreviewMeshControlComponent {
|
|
833
|
+
globalState: GlobalState;
|
|
834
|
+
togglePreviewAreaComponent: () => void;
|
|
835
|
+
onMounted?: () => void;
|
|
836
|
+
}
|
|
837
|
+
interface IPreviewMeshControlComponentState {
|
|
838
|
+
center: boolean;
|
|
839
|
+
}
|
|
840
|
+
export class PreviewMeshControlComponent extends React.Component<IPreviewMeshControlComponent, IPreviewMeshControlComponentState> {
|
|
841
|
+
private _colorInputRef;
|
|
842
|
+
private _onResetRequiredObserver;
|
|
843
|
+
private _onRefreshPreviewMeshControlComponentRequiredObserver;
|
|
844
|
+
constructor(props: IPreviewMeshControlComponent);
|
|
845
|
+
componentWillUnmount(): void;
|
|
846
|
+
componentDidMount(): void;
|
|
847
|
+
onPopUp(): void;
|
|
848
|
+
changeBackground(value: string): void;
|
|
849
|
+
changeBackgroundClick(): void;
|
|
850
|
+
|
|
851
|
+
}
|
|
852
|
+
export {};
|
|
853
|
+
|
|
854
|
+
}
|
|
855
|
+
declare module "@babylonjs/node-particle-editor/components/preview/previewManager" {
|
|
856
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
857
|
+
export class PreviewManager {
|
|
858
|
+
private _nodeParticleSystemSet;
|
|
859
|
+
private _onBuildObserver;
|
|
860
|
+
private _onPreviewBackgroundChangedObserver;
|
|
861
|
+
private _engine;
|
|
862
|
+
private _scene;
|
|
863
|
+
private _camera;
|
|
864
|
+
private _globalState;
|
|
865
|
+
private _particleSystemSet;
|
|
866
|
+
private _callId;
|
|
867
|
+
constructor(targetCanvas: HTMLCanvasElement, globalState: GlobalState);
|
|
868
|
+
private _refreshPreview;
|
|
869
|
+
private _updatePreviewAsync;
|
|
870
|
+
dispose(): void;
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
}
|
|
874
|
+
declare module "@babylonjs/node-particle-editor/components/preview/previewAreaComponent" {
|
|
875
|
+
import * as React from "react";
|
|
876
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
877
|
+
interface IPreviewAreaComponentProps {
|
|
878
|
+
globalState: GlobalState;
|
|
879
|
+
onMounted?: () => void;
|
|
880
|
+
}
|
|
881
|
+
export class PreviewAreaComponent extends React.Component<IPreviewAreaComponentProps, {
|
|
882
|
+
isLoading: boolean;
|
|
883
|
+
}> {
|
|
884
|
+
private _onIsLoadingChangedObserver;
|
|
885
|
+
private _onResetRequiredObserver;
|
|
886
|
+
private _leftRef;
|
|
887
|
+
private _rightRef;
|
|
888
|
+
constructor(props: IPreviewAreaComponentProps);
|
|
889
|
+
componentWillUnmount(): void;
|
|
890
|
+
componentDidMount(): void;
|
|
891
|
+
_onPointerOverCanvas: () => void;
|
|
892
|
+
_onPointerOutCanvas: () => void;
|
|
893
|
+
|
|
894
|
+
}
|
|
895
|
+
export {};
|
|
896
|
+
|
|
897
|
+
}
|
|
898
|
+
declare module "@babylonjs/node-particle-editor/components/nodeList/nodeListComponent" {
|
|
899
|
+
import * as React from "react";
|
|
900
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
901
|
+
import "@babylonjs/node-particle-editor/components/nodeList/nodeList.scss";
|
|
902
|
+
interface INodeListComponentProps {
|
|
903
|
+
globalState: GlobalState;
|
|
904
|
+
}
|
|
905
|
+
export class NodeListComponent extends React.Component<INodeListComponentProps, {
|
|
906
|
+
filter: string;
|
|
907
|
+
}> {
|
|
908
|
+
private _onResetRequiredObserver;
|
|
909
|
+
private static _Tooltips;
|
|
910
|
+
private _customFrameList;
|
|
911
|
+
constructor(props: INodeListComponentProps);
|
|
912
|
+
componentWillUnmount(): void;
|
|
913
|
+
filterContent(filter: string): void;
|
|
914
|
+
loadCustomFrame(file: File): void;
|
|
915
|
+
removeItem(value: string): void;
|
|
916
|
+
|
|
917
|
+
}
|
|
918
|
+
export {};
|
|
919
|
+
|
|
920
|
+
}
|
|
921
|
+
declare module "@babylonjs/node-particle-editor/components/log/logComponent" {
|
|
922
|
+
import * as React from "react";
|
|
923
|
+
import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
|
|
924
|
+
import "@babylonjs/node-particle-editor/components/log/log.scss";
|
|
925
|
+
interface ILogComponentProps {
|
|
926
|
+
globalState: GlobalState;
|
|
927
|
+
}
|
|
928
|
+
export class LogEntry {
|
|
929
|
+
message: string;
|
|
930
|
+
isError: boolean;
|
|
931
|
+
time: Date;
|
|
932
|
+
constructor(message: string, isError: boolean);
|
|
933
|
+
}
|
|
934
|
+
export class LogComponent extends React.Component<ILogComponentProps, {
|
|
935
|
+
logs: LogEntry[];
|
|
936
|
+
}> {
|
|
937
|
+
private _logConsoleRef;
|
|
938
|
+
constructor(props: ILogComponentProps);
|
|
939
|
+
componentDidMount(): void;
|
|
940
|
+
componentDidUpdate(): void;
|
|
941
|
+
|
|
942
|
+
}
|
|
943
|
+
export {};
|
|
944
|
+
|
|
945
|
+
}
|
|
946
|
+
declare module "@babylonjs/node-particle-editor/styleHelper" {
|
|
947
|
+
/**
|
|
948
|
+
* Copy all styles from a document to another document or shadow root
|
|
949
|
+
* @param source document to copy styles from
|
|
950
|
+
* @param target document or shadow root to copy styles to
|
|
951
|
+
*/
|
|
952
|
+
export function CopyStyles(source: Document, target: DocumentOrShadowRoot): void;
|
|
953
|
+
/**
|
|
954
|
+
* Merges classNames by array of strings or conditions
|
|
955
|
+
* @param classNames Array of className strings or truthy conditions
|
|
956
|
+
* @returns A concatenated string, suitable for the className attribute
|
|
957
|
+
*/
|
|
958
|
+
export function MergeClassNames(classNames: ClassNameCondition[]): string;
|
|
959
|
+
/**
|
|
960
|
+
* className (replicating React type) or a tuple with the second member being any truthy value ["className", true]
|
|
961
|
+
*/
|
|
962
|
+
type ClassNameCondition = string | undefined | [string, any];
|
|
963
|
+
export {};
|
|
964
|
+
|
|
965
|
+
}
|
|
966
|
+
declare module "@babylonjs/node-particle-editor/stringTools" {
|
|
967
|
+
export class StringTools {
|
|
968
|
+
private static _SaveAs;
|
|
969
|
+
private static _Click;
|
|
970
|
+
/**
|
|
971
|
+
* Download a string into a file that will be saved locally by the browser
|
|
972
|
+
* @param document
|
|
973
|
+
* @param content defines the string to download locally as a file
|
|
974
|
+
* @param filename
|
|
975
|
+
*/
|
|
976
|
+
static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
}
|
|
980
|
+
declare module "@babylonjs/node-particle-editor/propertyChangedEvent" {
|
|
981
|
+
export class PropertyChangedEvent {
|
|
982
|
+
object: any;
|
|
983
|
+
property: string;
|
|
984
|
+
value: any;
|
|
985
|
+
initialValue: any;
|
|
986
|
+
allowNullValue?: boolean;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
}
|
|
990
|
+
declare module "@babylonjs/node-particle-editor/popupHelper" {
|
|
991
|
+
/**
|
|
992
|
+
* Create a popup window
|
|
993
|
+
* @param title default title for the popup
|
|
994
|
+
* @param options options for the popup
|
|
995
|
+
* @returns the parent control of the popup
|
|
996
|
+
*/
|
|
997
|
+
export function CreatePopup(title: string, options: Partial<{
|
|
998
|
+
onParentControlCreateCallback?: (parentControl: HTMLDivElement) => void;
|
|
999
|
+
onWindowCreateCallback?: (newWindow: Window) => void;
|
|
1000
|
+
width?: number;
|
|
1001
|
+
height?: number;
|
|
1002
|
+
}>): HTMLDivElement | null;
|
|
1003
|
+
|
|
1004
|
+
}
|
|
1005
|
+
declare module "@babylonjs/node-particle-editor/historyStack" {
|
|
1006
|
+
import { IDisposable } from "@babylonjs/core/scene";
|
|
1007
|
+
/**
|
|
1008
|
+
* Class handling undo / redo operations
|
|
1009
|
+
*/
|
|
1010
|
+
export class HistoryStack implements IDisposable {
|
|
1011
|
+
private _historyStack;
|
|
1012
|
+
private _redoStack;
|
|
1013
|
+
private _activeData;
|
|
1014
|
+
private readonly _maxHistoryLength;
|
|
1015
|
+
private _locked;
|
|
1016
|
+
private _dataProvider;
|
|
1017
|
+
private _applyUpdate;
|
|
1018
|
+
/**
|
|
1019
|
+
* Gets or sets a boolean indicating if the stack is enabled
|
|
1020
|
+
*/
|
|
1021
|
+
isEnabled: boolean;
|
|
1022
|
+
/**
|
|
1023
|
+
* Constructor
|
|
1024
|
+
* @param dataProvider defines the data provider function
|
|
1025
|
+
* @param applyUpdate defines the code to execute when undo/redo operation is required
|
|
1026
|
+
*/
|
|
1027
|
+
constructor(dataProvider: () => any, applyUpdate: (data: any) => void);
|
|
1028
|
+
/**
|
|
1029
|
+
* Process key event to handle undo / redo
|
|
1030
|
+
* @param evt defines the keyboard event to process
|
|
1031
|
+
* @returns true if the event was processed
|
|
1032
|
+
*/
|
|
1033
|
+
processKeyEvent(evt: KeyboardEvent): boolean;
|
|
1034
|
+
/**
|
|
1035
|
+
* Resets the stack
|
|
1036
|
+
*/
|
|
1037
|
+
reset(): void;
|
|
1038
|
+
/**
|
|
1039
|
+
* Remove the n-1 element of the stack
|
|
1040
|
+
*/
|
|
1041
|
+
collapseLastTwo(): void;
|
|
1042
|
+
private _generateJSONDiff;
|
|
1043
|
+
private _applyJSONDiff;
|
|
1044
|
+
private _copy;
|
|
1045
|
+
/**
|
|
1046
|
+
* Stores the current state
|
|
1047
|
+
*/
|
|
1048
|
+
store(): void;
|
|
1049
|
+
/**
|
|
1050
|
+
* Undo the latest operation
|
|
1051
|
+
*/
|
|
1052
|
+
undo(): void;
|
|
1053
|
+
/**
|
|
1054
|
+
* Redo the latest undo operation
|
|
1055
|
+
*/
|
|
1056
|
+
redo(): void;
|
|
1057
|
+
/**
|
|
1058
|
+
* Disposes the stack
|
|
1059
|
+
*/
|
|
1060
|
+
dispose(): void;
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
}
|
|
1064
|
+
declare module "@babylonjs/node-particle-editor/copyCommandToClipboard" {
|
|
1065
|
+
export function copyCommandToClipboard(strCommand: string): void;
|
|
1066
|
+
export function getClassNameWithNamespace(obj: any): {
|
|
1067
|
+
className: string;
|
|
1068
|
+
babylonNamespace: string;
|
|
1069
|
+
};
|
|
1070
|
+
|
|
1071
|
+
}
|
|
1072
|
+
declare module "@babylonjs/node-particle-editor/constToOptionsMaps" {
|
|
1073
|
+
/**
|
|
1074
|
+
* Used by both particleSystem and alphaBlendModes
|
|
1075
|
+
*/
|
|
1076
|
+
export const CommonBlendModes: {
|
|
1077
|
+
label: string;
|
|
1078
|
+
value: number;
|
|
1079
|
+
}[];
|
|
1080
|
+
/**
|
|
1081
|
+
* Used to populated the blendMode dropdown in our various tools (Node Editor, Inspector, etc.)
|
|
1082
|
+
* The below ParticleSystem consts were defined before new Engine alpha blend modes were added, so we have to reference
|
|
1083
|
+
* the ParticleSystem.FOO consts explicitly (as the underlying const values are different - they get mapped to engine consts within baseParticleSystem.ts)
|
|
1084
|
+
*/
|
|
1085
|
+
export const BlendModeOptions: {
|
|
1086
|
+
label: string;
|
|
1087
|
+
value: number;
|
|
1088
|
+
}[];
|
|
1089
|
+
/**
|
|
1090
|
+
* Used to populated the alphaMode dropdown in our various tools (Node Editor, Inspector, etc.)
|
|
1091
|
+
*/
|
|
1092
|
+
export const AlphaModeOptions: {
|
|
1093
|
+
label: string;
|
|
1094
|
+
value: number;
|
|
1095
|
+
}[];
|
|
1096
|
+
|
|
1097
|
+
}
|
|
1098
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject" {
|
|
1099
|
+
/**
|
|
1100
|
+
* Class used to provide lock mechanism
|
|
1101
|
+
*/
|
|
1102
|
+
export class LockObject {
|
|
1103
|
+
/**
|
|
1104
|
+
* Gets or set if the lock is engaged
|
|
1105
|
+
*/
|
|
1106
|
+
lock: boolean;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
}
|
|
1110
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/textBlockPropertyGridComponent" {
|
|
1111
|
+
import * as React from "react";
|
|
1112
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1113
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1114
|
+
import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
|
|
1115
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1116
|
+
interface ITextBlockPropertyGridComponentProps {
|
|
1117
|
+
textBlock: TextBlock;
|
|
1118
|
+
lockObject: LockObject;
|
|
1119
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1120
|
+
}
|
|
1121
|
+
export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
|
|
1122
|
+
constructor(props: ITextBlockPropertyGridComponentProps);
|
|
1123
|
+
|
|
1124
|
+
}
|
|
1125
|
+
export {};
|
|
1126
|
+
|
|
1127
|
+
}
|
|
1128
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/stackPanelPropertyGridComponent" {
|
|
1129
|
+
import * as React from "react";
|
|
1130
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1131
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1132
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1133
|
+
import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
|
|
1134
|
+
interface IStackPanelPropertyGridComponentProps {
|
|
1135
|
+
stackPanel: StackPanel;
|
|
1136
|
+
lockObject: LockObject;
|
|
1137
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1138
|
+
}
|
|
1139
|
+
export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
|
|
1140
|
+
constructor(props: IStackPanelPropertyGridComponentProps);
|
|
1141
|
+
|
|
1142
|
+
}
|
|
1143
|
+
export {};
|
|
1144
|
+
|
|
1145
|
+
}
|
|
1146
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/sliderPropertyGridComponent" {
|
|
1147
|
+
import * as React from "react";
|
|
1148
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1149
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1150
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1151
|
+
import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
|
|
1152
|
+
interface ISliderPropertyGridComponentProps {
|
|
1153
|
+
slider: Slider;
|
|
1154
|
+
lockObject: LockObject;
|
|
1155
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1156
|
+
}
|
|
1157
|
+
export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
|
|
1158
|
+
constructor(props: ISliderPropertyGridComponentProps);
|
|
1159
|
+
|
|
1160
|
+
}
|
|
1161
|
+
export {};
|
|
1162
|
+
|
|
1163
|
+
}
|
|
1164
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent" {
|
|
1165
|
+
import * as React from "react";
|
|
1166
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1167
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1168
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1169
|
+
import { ScrollViewer } from "@babylonjs/gui/2D/controls/scrollViewers/scrollViewer";
|
|
1170
|
+
interface IScrollViewerPropertyGridComponentProps {
|
|
1171
|
+
scrollViewer: ScrollViewer;
|
|
1172
|
+
lockObject: LockObject;
|
|
1173
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1174
|
+
}
|
|
1175
|
+
export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
|
|
1176
|
+
constructor(props: IScrollViewerPropertyGridComponentProps);
|
|
1177
|
+
|
|
1178
|
+
}
|
|
1179
|
+
export {};
|
|
1180
|
+
|
|
1181
|
+
}
|
|
1182
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/rectanglePropertyGridComponent" {
|
|
1183
|
+
import * as React from "react";
|
|
1184
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1185
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1186
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1187
|
+
import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
|
|
1188
|
+
interface IRectanglePropertyGridComponentProps {
|
|
1189
|
+
rectangle: Rectangle;
|
|
1190
|
+
lockObject: LockObject;
|
|
1191
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1192
|
+
}
|
|
1193
|
+
export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
|
|
1194
|
+
constructor(props: IRectanglePropertyGridComponentProps);
|
|
1195
|
+
|
|
1196
|
+
}
|
|
1197
|
+
export {};
|
|
1198
|
+
|
|
1199
|
+
}
|
|
1200
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/radioButtonPropertyGridComponent" {
|
|
1201
|
+
import * as React from "react";
|
|
1202
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1203
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1204
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1205
|
+
import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
|
|
1206
|
+
interface IRadioButtonPropertyGridComponentProps {
|
|
1207
|
+
radioButtons: RadioButton[];
|
|
1208
|
+
lockObject: LockObject;
|
|
1209
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1210
|
+
}
|
|
1211
|
+
export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
|
|
1212
|
+
constructor(props: IRadioButtonPropertyGridComponentProps);
|
|
1213
|
+
|
|
1214
|
+
}
|
|
1215
|
+
export {};
|
|
1216
|
+
|
|
1217
|
+
}
|
|
1218
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/linePropertyGridComponent" {
|
|
1219
|
+
import * as React from "react";
|
|
1220
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1221
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1222
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1223
|
+
import { Line } from "@babylonjs/gui/2D/controls/line";
|
|
1224
|
+
interface ILinePropertyGridComponentProps {
|
|
1225
|
+
line: Line;
|
|
1226
|
+
lockObject: LockObject;
|
|
1227
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1228
|
+
}
|
|
1229
|
+
export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
|
|
1230
|
+
constructor(props: ILinePropertyGridComponentProps);
|
|
1231
|
+
onDashChange(value: string): void;
|
|
1232
|
+
|
|
1233
|
+
}
|
|
1234
|
+
export {};
|
|
1235
|
+
|
|
1236
|
+
}
|
|
1237
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/inputTextPropertyGridComponent" {
|
|
1238
|
+
import * as React from "react";
|
|
1239
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1240
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1241
|
+
import { InputText } from "@babylonjs/gui/2D/controls/inputText";
|
|
1242
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1243
|
+
interface IInputTextPropertyGridComponentProps {
|
|
1244
|
+
inputText: InputText;
|
|
1245
|
+
lockObject: LockObject;
|
|
1246
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1247
|
+
}
|
|
1248
|
+
export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
|
|
1249
|
+
constructor(props: IInputTextPropertyGridComponentProps);
|
|
1250
|
+
|
|
1251
|
+
}
|
|
1252
|
+
export {};
|
|
1253
|
+
|
|
1254
|
+
}
|
|
1255
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/imagePropertyGridComponent" {
|
|
1256
|
+
import * as React from "react";
|
|
1257
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1258
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1259
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1260
|
+
import { Image } from "@babylonjs/gui/2D/controls/image";
|
|
1261
|
+
interface IImagePropertyGridComponentProps {
|
|
1262
|
+
image: Image;
|
|
1263
|
+
lockObject: LockObject;
|
|
1264
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1265
|
+
}
|
|
1266
|
+
export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
|
|
1267
|
+
constructor(props: IImagePropertyGridComponentProps);
|
|
1268
|
+
|
|
1269
|
+
}
|
|
1270
|
+
export {};
|
|
1271
|
+
|
|
1272
|
+
}
|
|
1273
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
|
|
1274
|
+
import * as React from "react";
|
|
1275
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1276
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1277
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1278
|
+
import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
|
|
1279
|
+
interface IImageBasedSliderPropertyGridComponentProps {
|
|
1280
|
+
imageBasedSlider: ImageBasedSlider;
|
|
1281
|
+
lockObject: LockObject;
|
|
1282
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1283
|
+
}
|
|
1284
|
+
export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
|
|
1285
|
+
constructor(props: IImageBasedSliderPropertyGridComponentProps);
|
|
1286
|
+
|
|
1287
|
+
}
|
|
1288
|
+
export {};
|
|
1289
|
+
|
|
1290
|
+
}
|
|
1291
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/gridPropertyGridComponent" {
|
|
1292
|
+
import * as React from "react";
|
|
1293
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1294
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1295
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1296
|
+
import { Grid } from "@babylonjs/gui/2D/controls/grid";
|
|
1297
|
+
interface IGridPropertyGridComponentProps {
|
|
1298
|
+
grid: Grid;
|
|
1299
|
+
lockObject: LockObject;
|
|
1300
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1301
|
+
}
|
|
1302
|
+
export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
|
|
1303
|
+
constructor(props: IGridPropertyGridComponentProps);
|
|
1304
|
+
|
|
1305
|
+
|
|
1306
|
+
|
|
1307
|
+
}
|
|
1308
|
+
export {};
|
|
1309
|
+
|
|
1310
|
+
}
|
|
1311
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/ellipsePropertyGridComponent" {
|
|
1312
|
+
import * as React from "react";
|
|
1313
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1314
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1315
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1316
|
+
import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
|
|
1317
|
+
interface IEllipsePropertyGridComponentProps {
|
|
1318
|
+
ellipse: Ellipse;
|
|
1319
|
+
lockObject: LockObject;
|
|
1320
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1321
|
+
}
|
|
1322
|
+
export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
|
|
1323
|
+
constructor(props: IEllipsePropertyGridComponentProps);
|
|
1324
|
+
|
|
1325
|
+
}
|
|
1326
|
+
export {};
|
|
1327
|
+
|
|
1328
|
+
}
|
|
1329
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/controlPropertyGridComponent" {
|
|
1330
|
+
import * as React from "react";
|
|
1331
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1332
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1333
|
+
import { Control } from "@babylonjs/gui/2D/controls/control";
|
|
1334
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1335
|
+
interface IControlPropertyGridComponentProps {
|
|
1336
|
+
control: Control;
|
|
1337
|
+
lockObject: LockObject;
|
|
1338
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1339
|
+
}
|
|
1340
|
+
export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
|
|
1341
|
+
constructor(props: IControlPropertyGridComponentProps);
|
|
1342
|
+
|
|
1343
|
+
}
|
|
1344
|
+
export {};
|
|
1345
|
+
|
|
1346
|
+
}
|
|
1347
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/commonControlPropertyGridComponent" {
|
|
1348
|
+
import * as React from "react";
|
|
1349
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1350
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1351
|
+
import { Control } from "@babylonjs/gui/2D/controls/control";
|
|
1352
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1353
|
+
interface ICommonControlPropertyGridComponentProps {
|
|
1354
|
+
controls?: Control[];
|
|
1355
|
+
control?: Control;
|
|
1356
|
+
lockObject: LockObject;
|
|
1357
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1358
|
+
}
|
|
1359
|
+
export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
|
|
1360
|
+
constructor(props: ICommonControlPropertyGridComponentProps);
|
|
1361
|
+
|
|
1362
|
+
|
|
1363
|
+
}
|
|
1364
|
+
export {};
|
|
1365
|
+
|
|
1366
|
+
}
|
|
1367
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/colorPickerPropertyGridComponent" {
|
|
1368
|
+
import * as React from "react";
|
|
1369
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1370
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1371
|
+
import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
|
|
1372
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1373
|
+
interface IColorPickerPropertyGridComponentProps {
|
|
1374
|
+
colorPicker: ColorPicker;
|
|
1375
|
+
lockObject: LockObject;
|
|
1376
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1377
|
+
}
|
|
1378
|
+
export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
|
|
1379
|
+
constructor(props: IColorPickerPropertyGridComponentProps);
|
|
1380
|
+
|
|
1381
|
+
}
|
|
1382
|
+
export {};
|
|
1383
|
+
|
|
1384
|
+
}
|
|
1385
|
+
declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
|
|
1386
|
+
import * as React from "react";
|
|
1387
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1388
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
1389
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
1390
|
+
import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
|
|
1391
|
+
interface ICheckboxPropertyGridComponentProps {
|
|
1392
|
+
checkbox: Checkbox;
|
|
1393
|
+
lockObject: LockObject;
|
|
1394
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
1395
|
+
}
|
|
1396
|
+
export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
|
|
1397
|
+
constructor(props: ICheckboxPropertyGridComponentProps);
|
|
1398
|
+
|
|
1399
|
+
}
|
|
1400
|
+
export {};
|
|
1401
|
+
|
|
1402
|
+
}
|
|
1403
|
+
declare module "@babylonjs/node-particle-editor/split/splitter" {
|
|
1404
|
+
import { ControlledSize } from "@babylonjs/node-particle-editor/split/splitContext";
|
|
1405
|
+
/**
|
|
1406
|
+
* Splitter component properties
|
|
1407
|
+
*/
|
|
1408
|
+
export interface ISplitterProps {
|
|
1409
|
+
/**
|
|
1410
|
+
* Unique identifier
|
|
1411
|
+
*/
|
|
1412
|
+
id?: string;
|
|
1413
|
+
/**
|
|
1414
|
+
* Splitter size
|
|
1415
|
+
*/
|
|
1416
|
+
size: number;
|
|
1417
|
+
/**
|
|
1418
|
+
* Minimum size for the controlled element
|
|
1419
|
+
*/
|
|
1420
|
+
minSize?: number;
|
|
1421
|
+
/**
|
|
1422
|
+
* Maximum size for the controlled element
|
|
1423
|
+
*/
|
|
1424
|
+
maxSize?: number;
|
|
1425
|
+
/**
|
|
1426
|
+
* Initial size for the controlled element
|
|
1427
|
+
*/
|
|
1428
|
+
initialSize?: number;
|
|
1429
|
+
/**
|
|
1430
|
+
* Defines the controlled side
|
|
1431
|
+
*/
|
|
1432
|
+
controlledSide: ControlledSize;
|
|
1433
|
+
/**
|
|
1434
|
+
* refObject to the splitter element
|
|
1435
|
+
*/
|
|
1436
|
+
refObject?: React.RefObject<HTMLDivElement>;
|
|
1437
|
+
}
|
|
1438
|
+
/**
|
|
1439
|
+
* Creates a splitter component
|
|
1440
|
+
* @param props defines the splitter properties
|
|
1441
|
+
* @returns the splitter component
|
|
1442
|
+
*/
|
|
1443
|
+
export const Splitter: React.FC<ISplitterProps>;
|
|
1444
|
+
|
|
1445
|
+
}
|
|
1446
|
+
declare module "@babylonjs/node-particle-editor/split/splitContext" {
|
|
1447
|
+
export enum ControlledSize {
|
|
1448
|
+
First = 0,
|
|
1449
|
+
Second = 1
|
|
1450
|
+
}
|
|
1451
|
+
export enum SplitDirection {
|
|
1452
|
+
Horizontal = 0,
|
|
1453
|
+
Vertical = 1
|
|
1454
|
+
}
|
|
1455
|
+
/**
|
|
1456
|
+
* Context used to share data with splitters
|
|
1457
|
+
*/
|
|
1458
|
+
export interface ISplitContext {
|
|
1459
|
+
/**
|
|
1460
|
+
* Split direction
|
|
1461
|
+
*/
|
|
1462
|
+
direction: SplitDirection;
|
|
1463
|
+
/**
|
|
1464
|
+
* Function called by splitters to update the offset
|
|
1465
|
+
* @param offset new offet
|
|
1466
|
+
* @param source source element
|
|
1467
|
+
* @param controlledSide defined controlled element
|
|
1468
|
+
*/
|
|
1469
|
+
drag: (offset: number, source: HTMLElement, controlledSide: ControlledSize) => void;
|
|
1470
|
+
/**
|
|
1471
|
+
* Function called by splitters to begin dragging
|
|
1472
|
+
*/
|
|
1473
|
+
beginDrag: () => void;
|
|
1474
|
+
/**
|
|
1475
|
+
* Function called by splitters to end dragging
|
|
1476
|
+
*/
|
|
1477
|
+
endDrag: () => void;
|
|
1478
|
+
/**
|
|
1479
|
+
* Sync sizes for the elements
|
|
1480
|
+
* @param source source element
|
|
1481
|
+
* @param controlledSide defined controlled element
|
|
1482
|
+
* @param size size of the controlled element
|
|
1483
|
+
* @param minSize minimum size for the controlled element
|
|
1484
|
+
* @param maxSize maximum size for the controlled element
|
|
1485
|
+
*/
|
|
1486
|
+
sync: (source: HTMLElement, controlledSide: ControlledSize, size?: number, minSize?: number, maxSize?: number) => void;
|
|
1487
|
+
}
|
|
1488
|
+
export const SplitContext: import("react").Context<ISplitContext>;
|
|
1489
|
+
|
|
1490
|
+
}
|
|
1491
|
+
declare module "@babylonjs/node-particle-editor/split/splitContainer" {
|
|
1492
|
+
import { PropsWithChildren } from "react";
|
|
1493
|
+
import { SplitDirection } from "@babylonjs/node-particle-editor/split/splitContext";
|
|
1494
|
+
/**
|
|
1495
|
+
* Split container properties
|
|
1496
|
+
*/
|
|
1497
|
+
export interface ISplitContainerProps {
|
|
1498
|
+
/**
|
|
1499
|
+
* Unique identifier
|
|
1500
|
+
*/
|
|
1501
|
+
id?: string;
|
|
1502
|
+
/**
|
|
1503
|
+
* Split direction
|
|
1504
|
+
*/
|
|
1505
|
+
direction: SplitDirection;
|
|
1506
|
+
/**
|
|
1507
|
+
* Minimum size for the floating elements
|
|
1508
|
+
*/
|
|
1509
|
+
floatingMinSize?: number;
|
|
1510
|
+
/**
|
|
1511
|
+
* RefObject to the root div element
|
|
1512
|
+
*/
|
|
1513
|
+
containerRef?: React.RefObject<HTMLDivElement>;
|
|
1514
|
+
/**
|
|
1515
|
+
* Optional class name
|
|
1516
|
+
*/
|
|
1517
|
+
className?: string;
|
|
1518
|
+
/**
|
|
1519
|
+
* Pointer down
|
|
1520
|
+
* @param event pointer events
|
|
1521
|
+
*/
|
|
1522
|
+
onPointerDown?: (event: React.PointerEvent) => void;
|
|
1523
|
+
/**
|
|
1524
|
+
* Pointer move
|
|
1525
|
+
* @param event pointer events
|
|
1526
|
+
*/
|
|
1527
|
+
onPointerMove?: (event: React.PointerEvent) => void;
|
|
1528
|
+
/**
|
|
1529
|
+
* Pointer up
|
|
1530
|
+
* @param event pointer events
|
|
1531
|
+
*/
|
|
1532
|
+
onPointerUp?: (event: React.PointerEvent) => void;
|
|
1533
|
+
/**
|
|
1534
|
+
* Drop
|
|
1535
|
+
* @param event drag events
|
|
1536
|
+
*/
|
|
1537
|
+
onDrop?: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
1538
|
+
/**
|
|
1539
|
+
* Drag over
|
|
1540
|
+
* @param event drag events
|
|
1541
|
+
*/
|
|
1542
|
+
onDragOver?: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
1543
|
+
}
|
|
1544
|
+
/**
|
|
1545
|
+
* Creates a split container component
|
|
1546
|
+
* @param props defines the split container properties
|
|
1547
|
+
* @returns the split container component
|
|
1548
|
+
*/
|
|
1549
|
+
export const SplitContainer: React.FC<PropsWithChildren<ISplitContainerProps>>;
|
|
1550
|
+
|
|
1551
|
+
}
|
|
1552
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/typeLedger" {
|
|
1553
|
+
import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
|
|
1554
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
1555
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
1556
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
1557
|
+
export class TypeLedger {
|
|
1558
|
+
static PortDataBuilder: (port: NodePort, nodeContainer: INodeContainer) => IPortData;
|
|
1559
|
+
static NodeDataBuilder: (data: any, nodeContainer: INodeContainer) => INodeData;
|
|
1560
|
+
}
|
|
1561
|
+
|
|
1562
|
+
}
|
|
1563
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/tools" {
|
|
1564
|
+
import { GraphCanvasComponent } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas";
|
|
1565
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
1566
|
+
import { NodeLink } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink";
|
|
1567
|
+
import { FramePortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/types/framePortData";
|
|
1568
|
+
export const IsFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
|
|
1569
|
+
export const RefreshNode: (node: GraphNode, visitedNodes?: Set<GraphNode>, visitedLinks?: Set<NodeLink>, canvas?: GraphCanvasComponent) => void;
|
|
1570
|
+
export const BuildFloatUI: (container: HTMLDivElement, document: Document, displayName: string, isInteger: boolean, source: any, propertyName: string, onChange: () => void, min?: number, max?: number, visualPropertiesRefresh?: Array<() => void>, additionalClassName?: string) => void;
|
|
1571
|
+
export function GetListOfAcceptedTypes<T extends Record<string, string | number>>(types: T, allValue: number, autoDetectValue: number, port: {
|
|
1572
|
+
acceptedConnectionPointTypes: number[];
|
|
1573
|
+
excludedConnectionPointTypes: number[];
|
|
1574
|
+
type: number;
|
|
1575
|
+
}, skips?: number[]): string[];
|
|
1576
|
+
export function GetConnectionErrorMessage<T extends Record<string, string | number>>(sourceType: number, types: T, allValue: number, autoDetectValue: number, port: {
|
|
1577
|
+
acceptedConnectionPointTypes: number[];
|
|
1578
|
+
excludedConnectionPointTypes: number[];
|
|
1579
|
+
type: number;
|
|
1580
|
+
}, skips?: number[]): string;
|
|
1581
|
+
|
|
1582
|
+
}
|
|
1583
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager" {
|
|
1584
|
+
import { Vector2 } from "@babylonjs/core/Maths/math.vector";
|
|
1585
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1586
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
1587
|
+
import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
|
|
1588
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
1589
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
1590
|
+
import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
|
|
1591
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
1592
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
1593
|
+
import { ISelectionChangedOptions } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/selectionChangedOptions";
|
|
1594
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
1595
|
+
import { HistoryStack } from "@babylonjs/node-particle-editor/historyStack";
|
|
1596
|
+
import { Scene } from "@babylonjs/core/scene";
|
|
1597
|
+
export class StateManager {
|
|
1598
|
+
data: any;
|
|
1599
|
+
hostDocument: Document;
|
|
1600
|
+
lockObject: any;
|
|
1601
|
+
modalIsDisplayed: boolean;
|
|
1602
|
+
historyStack: HistoryStack;
|
|
1603
|
+
onSearchBoxRequiredObservable: Observable<{
|
|
1604
|
+
x: number;
|
|
1605
|
+
y: number;
|
|
1606
|
+
}>;
|
|
1607
|
+
onSelectionChangedObservable: Observable<Nullable<ISelectionChangedOptions>>;
|
|
1608
|
+
onFrameCreatedObservable: Observable<GraphFrame>;
|
|
1609
|
+
onUpdateRequiredObservable: Observable<any>;
|
|
1610
|
+
onGraphNodeRemovalObservable: Observable<GraphNode>;
|
|
1611
|
+
onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
|
|
1612
|
+
onCandidateLinkMoved: Observable<Nullable<Vector2>>;
|
|
1613
|
+
onCandidatePortSelectedObservable: Observable<Nullable<FrameNodePort | NodePort>>;
|
|
1614
|
+
onNewNodeCreatedObservable: Observable<GraphNode>;
|
|
1615
|
+
onRebuildRequiredObservable: Observable<void>;
|
|
1616
|
+
onNodeMovedObservable: Observable<GraphNode>;
|
|
1617
|
+
onErrorMessageDialogRequiredObservable: Observable<string>;
|
|
1618
|
+
onExposePortOnFrameObservable: Observable<GraphNode>;
|
|
1619
|
+
onGridSizeChanged: Observable<void>;
|
|
1620
|
+
onNewBlockRequiredObservable: Observable<{
|
|
1621
|
+
type: string;
|
|
1622
|
+
targetX: number;
|
|
1623
|
+
targetY: number;
|
|
1624
|
+
needRepositioning?: boolean;
|
|
1625
|
+
smartAdd?: boolean;
|
|
1626
|
+
}>;
|
|
1627
|
+
onHighlightNodeObservable: Observable<{
|
|
1628
|
+
data: any;
|
|
1629
|
+
active: boolean;
|
|
1630
|
+
}>;
|
|
1631
|
+
onPreviewCommandActivated: Observable<boolean>;
|
|
1632
|
+
exportData: (data: any, frame?: Nullable<GraphFrame>) => string;
|
|
1633
|
+
isElbowConnectionAllowed: (nodeA: FrameNodePort | NodePort, nodeB: FrameNodePort | NodePort) => boolean;
|
|
1634
|
+
isDebugConnectionAllowed: (nodeA: FrameNodePort | NodePort, nodeB: FrameNodePort | NodePort) => boolean;
|
|
1635
|
+
applyNodePortDesign: (data: IPortData, element: HTMLElement, imgHost: HTMLImageElement, pip: HTMLDivElement) => boolean;
|
|
1636
|
+
getPortColor: (portData: IPortData) => string;
|
|
1637
|
+
storeEditorData: (serializationObject: any, frame?: Nullable<GraphFrame>) => void;
|
|
1638
|
+
getEditorDataMap: () => {
|
|
1639
|
+
[key: number]: number;
|
|
1640
|
+
};
|
|
1641
|
+
getScene?: () => Scene;
|
|
1642
|
+
createDefaultInputData: (rootData: any, portData: IPortData, nodeContainer: INodeContainer) => Nullable<{
|
|
1643
|
+
data: INodeData;
|
|
1644
|
+
name: string;
|
|
1645
|
+
}>;
|
|
1646
|
+
private _isRebuildQueued;
|
|
1647
|
+
queueRebuildCommand(): void;
|
|
1648
|
+
}
|
|
1649
|
+
|
|
1650
|
+
}
|
|
1651
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/searchBox" {
|
|
1652
|
+
import * as React from "react";
|
|
1653
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
1654
|
+
import "@babylonjs/node-particle-editor/nodeGraphSystem/searchBox.scss";
|
|
1655
|
+
export interface ISearchBoxComponentProps {
|
|
1656
|
+
stateManager: StateManager;
|
|
1657
|
+
}
|
|
1658
|
+
/**
|
|
1659
|
+
* The search box component.
|
|
1660
|
+
*/
|
|
1661
|
+
export class SearchBoxComponent extends React.Component<ISearchBoxComponentProps, {
|
|
1662
|
+
isVisible: boolean;
|
|
1663
|
+
filter: string;
|
|
1664
|
+
selectedIndex: number;
|
|
1665
|
+
}> {
|
|
1666
|
+
private _handleEscKey;
|
|
1667
|
+
private _targetX;
|
|
1668
|
+
private _targetY;
|
|
1669
|
+
private _nodes;
|
|
1670
|
+
constructor(props: ISearchBoxComponentProps);
|
|
1671
|
+
hide(): void;
|
|
1672
|
+
onFilterChange(evt: React.ChangeEvent<HTMLInputElement>): void;
|
|
1673
|
+
onNewNodeRequested(name: string): void;
|
|
1674
|
+
onKeyDown(evt: React.KeyboardEvent): void;
|
|
1675
|
+
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
}
|
|
1679
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/propertyLedger" {
|
|
1680
|
+
import { ComponentClass } from "react";
|
|
1681
|
+
import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
|
|
1682
|
+
export class PropertyLedger {
|
|
1683
|
+
static DefaultControl: ComponentClass<IPropertyComponentProps>;
|
|
1684
|
+
static RegisteredControls: {
|
|
1685
|
+
[key: string]: ComponentClass<IPropertyComponentProps>;
|
|
1686
|
+
};
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
}
|
|
1690
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort" {
|
|
1691
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
1692
|
+
import { Observer } from "@babylonjs/core/Misc/observable";
|
|
1693
|
+
import { Vector2 } from "@babylonjs/core/Maths/math.vector";
|
|
1694
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
1695
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
1696
|
+
import { ISelectionChangedOptions } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/selectionChangedOptions";
|
|
1697
|
+
import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
|
|
1698
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
1699
|
+
import { type IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
1700
|
+
export class NodePort {
|
|
1701
|
+
portData: IPortData;
|
|
1702
|
+
node: GraphNode;
|
|
1703
|
+
protected _element: HTMLDivElement;
|
|
1704
|
+
protected _portContainer: HTMLElement;
|
|
1705
|
+
protected _imgHost: HTMLImageElement;
|
|
1706
|
+
protected _pip: HTMLDivElement;
|
|
1707
|
+
protected _stateManager: StateManager;
|
|
1708
|
+
protected _portLabelElement: Element;
|
|
1709
|
+
protected _onCandidateLinkMovedObserver: Nullable<Observer<Nullable<Vector2>>>;
|
|
1710
|
+
protected _onSelectionChangedObserver: Nullable<Observer<Nullable<ISelectionChangedOptions>>>;
|
|
1711
|
+
protected _exposedOnFrame: boolean;
|
|
1712
|
+
protected _portUIcontainer?: HTMLDivElement;
|
|
1713
|
+
delegatedPort: Nullable<FrameNodePort>;
|
|
1714
|
+
get element(): HTMLDivElement;
|
|
1715
|
+
get container(): HTMLElement;
|
|
1716
|
+
get portName(): string;
|
|
1717
|
+
set portName(newName: string);
|
|
1718
|
+
get disabled(): boolean;
|
|
1719
|
+
hasLabel(): boolean;
|
|
1720
|
+
get exposedOnFrame(): boolean;
|
|
1721
|
+
set exposedOnFrame(value: boolean);
|
|
1722
|
+
get exposedPortPosition(): number;
|
|
1723
|
+
set exposedPortPosition(value: number);
|
|
1724
|
+
private _isConnectedToNodeOutsideOfFrame;
|
|
1725
|
+
refresh(): void;
|
|
1726
|
+
constructor(portContainer: HTMLElement, portData: IPortData, node: GraphNode, stateManager: StateManager, portUIcontainer?: HTMLDivElement);
|
|
1727
|
+
dispose(): void;
|
|
1728
|
+
static CreatePortElement(portData: IPortData, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, stateManager: StateManager): NodePort;
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
}
|
|
1732
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink" {
|
|
1733
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1734
|
+
import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
|
|
1735
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
1736
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
1737
|
+
import { GraphCanvasComponent } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas";
|
|
1738
|
+
export class NodeLink {
|
|
1739
|
+
private _graphCanvas;
|
|
1740
|
+
private _portA;
|
|
1741
|
+
private _portB?;
|
|
1742
|
+
private _nodeA;
|
|
1743
|
+
private _nodeB?;
|
|
1744
|
+
private _path;
|
|
1745
|
+
private _selectionPath;
|
|
1746
|
+
private _onSelectionChangedObserver;
|
|
1747
|
+
private _isVisible;
|
|
1748
|
+
private _isTargetCandidate;
|
|
1749
|
+
private _gradient;
|
|
1750
|
+
onDisposedObservable: Observable<NodeLink>;
|
|
1751
|
+
get isTargetCandidate(): boolean;
|
|
1752
|
+
set isTargetCandidate(value: boolean);
|
|
1753
|
+
get isVisible(): boolean;
|
|
1754
|
+
set isVisible(value: boolean);
|
|
1755
|
+
get portA(): FrameNodePort | NodePort;
|
|
1756
|
+
get portB(): FrameNodePort | NodePort | undefined;
|
|
1757
|
+
get nodeA(): GraphNode;
|
|
1758
|
+
get nodeB(): GraphNode | undefined;
|
|
1759
|
+
intersectsWith(rect: DOMRect): boolean;
|
|
1760
|
+
update(endX?: number, endY?: number, straight?: boolean): void;
|
|
1761
|
+
get path(): SVGPathElement;
|
|
1762
|
+
get selectionPath(): SVGPathElement;
|
|
1763
|
+
constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
|
|
1764
|
+
onClick(evt: MouseEvent): void;
|
|
1765
|
+
dispose(notify?: boolean): void;
|
|
1766
|
+
}
|
|
1767
|
+
|
|
1768
|
+
}
|
|
1769
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLedger" {
|
|
1770
|
+
export class NodeLedger {
|
|
1771
|
+
static RegisteredNodeNames: string[];
|
|
1772
|
+
static NameFormatter: (name: string) => string;
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
}
|
|
1776
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode" {
|
|
1777
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
1778
|
+
import { GraphCanvasComponent } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas";
|
|
1779
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
1780
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
1781
|
+
import { NodeLink } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink";
|
|
1782
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
1783
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
1784
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
1785
|
+
import { IEditablePropertyOption } from "@babylonjs/core/Decorators/nodeDecorator";
|
|
1786
|
+
export class GraphNode {
|
|
1787
|
+
content: INodeData;
|
|
1788
|
+
private static _IdGenerator;
|
|
1789
|
+
private _visual;
|
|
1790
|
+
private _headerContainer;
|
|
1791
|
+
private _headerIcon;
|
|
1792
|
+
private _headerIconImg;
|
|
1793
|
+
private _headerCollapseImg;
|
|
1794
|
+
private _header;
|
|
1795
|
+
private _headerCollapse;
|
|
1796
|
+
private _connections;
|
|
1797
|
+
private _optionsContainer;
|
|
1798
|
+
private _inputsContainer;
|
|
1799
|
+
private _outputsContainer;
|
|
1800
|
+
private _content;
|
|
1801
|
+
private _comments;
|
|
1802
|
+
private _executionTime;
|
|
1803
|
+
private _selectionBorder;
|
|
1804
|
+
private _inputPorts;
|
|
1805
|
+
private _outputPorts;
|
|
1806
|
+
private _links;
|
|
1807
|
+
private _x;
|
|
1808
|
+
private _y;
|
|
1809
|
+
private _gridAlignedX;
|
|
1810
|
+
private _gridAlignedY;
|
|
1811
|
+
private _mouseStartPointX;
|
|
1812
|
+
private _mouseStartPointY;
|
|
1813
|
+
private _stateManager;
|
|
1814
|
+
private _onSelectionChangedObserver;
|
|
1815
|
+
private _onSelectionBoxMovedObserver;
|
|
1816
|
+
private _onFrameCreatedObserver;
|
|
1817
|
+
private _onUpdateRequiredObserver;
|
|
1818
|
+
private _onHighlightNodeObserver;
|
|
1819
|
+
private _ownerCanvas;
|
|
1820
|
+
private _displayManager;
|
|
1821
|
+
private _isVisible;
|
|
1822
|
+
private _enclosingFrameId;
|
|
1823
|
+
private _visualPropertiesRefresh;
|
|
1824
|
+
private _lastClick;
|
|
1825
|
+
addClassToVisual(className: string): void;
|
|
1826
|
+
removeClassFromVisual(className: string): void;
|
|
1827
|
+
get isCollapsed(): boolean;
|
|
1828
|
+
get isVisible(): boolean;
|
|
1829
|
+
set isVisible(value: boolean);
|
|
1830
|
+
private _upateNodePortNames;
|
|
1831
|
+
get outputPorts(): NodePort[];
|
|
1832
|
+
get inputPorts(): NodePort[];
|
|
1833
|
+
get links(): NodeLink[];
|
|
1834
|
+
get gridAlignedX(): number;
|
|
1835
|
+
get gridAlignedY(): number;
|
|
1836
|
+
get x(): number;
|
|
1837
|
+
set x(value: number);
|
|
1838
|
+
get y(): number;
|
|
1839
|
+
set y(value: number);
|
|
1840
|
+
get width(): number;
|
|
1841
|
+
get height(): number;
|
|
1842
|
+
get id(): number;
|
|
1843
|
+
get name(): string;
|
|
1844
|
+
get enclosingFrameId(): number;
|
|
1845
|
+
set enclosingFrameId(value: number);
|
|
1846
|
+
setIsSelected(value: boolean, marqueeSelection: boolean): void;
|
|
1847
|
+
get rootElement(): HTMLDivElement;
|
|
1848
|
+
constructor(content: INodeData, stateManager: StateManager);
|
|
1849
|
+
isOverlappingFrame(frame: GraphFrame): boolean;
|
|
1850
|
+
getPortForPortData(portData: IPortData): NodePort | null;
|
|
1851
|
+
getPortDataForPortDataContent(data: any): IPortData | null;
|
|
1852
|
+
getLinksForPortDataContent(data: any): NodeLink[];
|
|
1853
|
+
getLinksForPortData(portData: IPortData): NodeLink[];
|
|
1854
|
+
private _refreshFrames;
|
|
1855
|
+
_refreshLinks(): void;
|
|
1856
|
+
refresh(): void;
|
|
1857
|
+
private _expand;
|
|
1858
|
+
private _searchMiddle;
|
|
1859
|
+
private _onDown;
|
|
1860
|
+
cleanAccumulation(useCeil?: boolean): void;
|
|
1861
|
+
private _onUp;
|
|
1862
|
+
private _onMove;
|
|
1863
|
+
renderProperties(): Nullable<JSX.Element>;
|
|
1864
|
+
_forceRebuild(source: any, propertyName: string, notifiers?: IEditablePropertyOption["notifiers"]): void;
|
|
1865
|
+
private _isCollapsed;
|
|
1866
|
+
/**
|
|
1867
|
+
* Collapse the node
|
|
1868
|
+
*/
|
|
1869
|
+
collapse(): void;
|
|
1870
|
+
/**
|
|
1871
|
+
* Expand the node
|
|
1872
|
+
*/
|
|
1873
|
+
expand(): void;
|
|
1874
|
+
private _portUICount;
|
|
1875
|
+
private _buildInputPorts;
|
|
1876
|
+
appendVisual(root: HTMLDivElement, owner: GraphCanvasComponent): void;
|
|
1877
|
+
dispose(): void;
|
|
1878
|
+
}
|
|
1879
|
+
|
|
1880
|
+
}
|
|
1881
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame" {
|
|
1882
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
1883
|
+
import { GraphCanvasComponent } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas";
|
|
1884
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
1885
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
1886
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color";
|
|
1887
|
+
import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
|
|
1888
|
+
import { IFrameData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
|
|
1889
|
+
export enum FramePortPosition {
|
|
1890
|
+
Top = 0,
|
|
1891
|
+
Middle = 1,
|
|
1892
|
+
Bottom = 2
|
|
1893
|
+
}
|
|
1894
|
+
export class GraphFrame {
|
|
1895
|
+
private readonly _collapsedWidth;
|
|
1896
|
+
private static _FrameCounter;
|
|
1897
|
+
private static _FramePortCounter;
|
|
1898
|
+
private _name;
|
|
1899
|
+
private _color;
|
|
1900
|
+
private _x;
|
|
1901
|
+
private _y;
|
|
1902
|
+
private _gridAlignedX;
|
|
1903
|
+
private _gridAlignedY;
|
|
1904
|
+
private _width;
|
|
1905
|
+
private _height;
|
|
1906
|
+
element: HTMLDivElement;
|
|
1907
|
+
private _borderElement;
|
|
1908
|
+
private _headerElement;
|
|
1909
|
+
private _headerTextElement;
|
|
1910
|
+
private _headerCollapseElement;
|
|
1911
|
+
private _headerCloseElement;
|
|
1912
|
+
private _headerFocusElement;
|
|
1913
|
+
private _commentsElement;
|
|
1914
|
+
private _portContainer;
|
|
1915
|
+
private _outputPortContainer;
|
|
1916
|
+
private _inputPortContainer;
|
|
1917
|
+
private _nodes;
|
|
1918
|
+
private _ownerCanvas;
|
|
1919
|
+
private _mouseStartPointX;
|
|
1920
|
+
private _mouseStartPointY;
|
|
1921
|
+
private _onSelectionChangedObserver;
|
|
1922
|
+
private _onGraphNodeRemovalObserver;
|
|
1923
|
+
private _onExposePortOnFrameObserver;
|
|
1924
|
+
private _onNodeLinkDisposedObservers;
|
|
1925
|
+
private _isCollapsed;
|
|
1926
|
+
private _frameInPorts;
|
|
1927
|
+
private _frameOutPorts;
|
|
1928
|
+
private _controlledPorts;
|
|
1929
|
+
private _exposedInPorts;
|
|
1930
|
+
private _exposedOutPorts;
|
|
1931
|
+
private _id;
|
|
1932
|
+
private _comments;
|
|
1933
|
+
private _frameIsResizing;
|
|
1934
|
+
private _resizingDirection;
|
|
1935
|
+
private _minFrameHeight;
|
|
1936
|
+
private _minFrameWidth;
|
|
1937
|
+
private _mouseXLimit;
|
|
1938
|
+
onExpandStateChanged: Observable<GraphFrame>;
|
|
1939
|
+
private readonly _closeSVG;
|
|
1940
|
+
private readonly _expandSVG;
|
|
1941
|
+
private readonly _collapseSVG;
|
|
1942
|
+
private readonly _focusSVG;
|
|
1943
|
+
get id(): number;
|
|
1944
|
+
get isCollapsed(): boolean;
|
|
1945
|
+
private _createInputPort;
|
|
1946
|
+
private _markFramePortPositions;
|
|
1947
|
+
private _createFramePorts;
|
|
1948
|
+
private _removePortFromExposedWithNode;
|
|
1949
|
+
private _removePortFromExposedWithLink;
|
|
1950
|
+
private _createInputPorts;
|
|
1951
|
+
private _createOutputPorts;
|
|
1952
|
+
redrawFramePorts(): void;
|
|
1953
|
+
set isCollapsed(value: boolean);
|
|
1954
|
+
get nodes(): GraphNode[];
|
|
1955
|
+
get ports(): FrameNodePort[];
|
|
1956
|
+
get name(): string;
|
|
1957
|
+
set name(value: string);
|
|
1958
|
+
get color(): Color3;
|
|
1959
|
+
set color(value: Color3);
|
|
1960
|
+
get x(): number;
|
|
1961
|
+
set x(value: number);
|
|
1962
|
+
get y(): number;
|
|
1963
|
+
set y(value: number);
|
|
1964
|
+
get width(): number;
|
|
1965
|
+
set width(value: number);
|
|
1966
|
+
get height(): number;
|
|
1967
|
+
set height(value: number);
|
|
1968
|
+
get comments(): string;
|
|
1969
|
+
set comments(comments: string);
|
|
1970
|
+
constructor(candidate: Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
|
|
1971
|
+
private _isFocused;
|
|
1972
|
+
/**
|
|
1973
|
+
* Enter/leave focus mode
|
|
1974
|
+
*/
|
|
1975
|
+
switchFocusMode(): void;
|
|
1976
|
+
refresh(): void;
|
|
1977
|
+
addNode(node: GraphNode): void;
|
|
1978
|
+
removeNode(node: GraphNode): void;
|
|
1979
|
+
syncNode(node: GraphNode): void;
|
|
1980
|
+
cleanAccumulation(): void;
|
|
1981
|
+
private _onDown;
|
|
1982
|
+
move(newX: number, newY: number, align?: boolean): void;
|
|
1983
|
+
private _onUp;
|
|
1984
|
+
_moveFrame(offsetX: number, offsetY: number): void;
|
|
1985
|
+
private _onMove;
|
|
1986
|
+
moveFramePortUp(nodePort: FrameNodePort): void;
|
|
1987
|
+
private _movePortUp;
|
|
1988
|
+
moveFramePortDown(nodePort: FrameNodePort): void;
|
|
1989
|
+
private _movePortDown;
|
|
1990
|
+
private _initResizing;
|
|
1991
|
+
private _cleanUpResizing;
|
|
1992
|
+
private _updateMinHeightWithComments;
|
|
1993
|
+
private _isResizingTop;
|
|
1994
|
+
private _isResizingRight;
|
|
1995
|
+
private _isResizingBottom;
|
|
1996
|
+
private _isResizingLeft;
|
|
1997
|
+
private _onRightHandlePointerDown;
|
|
1998
|
+
private _onRightHandlePointerMove;
|
|
1999
|
+
private _moveRightHandle;
|
|
2000
|
+
private _onRightHandlePointerUp;
|
|
2001
|
+
private _onBottomHandlePointerDown;
|
|
2002
|
+
private _onBottomHandlePointerMove;
|
|
2003
|
+
private _moveBottomHandle;
|
|
2004
|
+
private _onBottomHandlePointerUp;
|
|
2005
|
+
private _onLeftHandlePointerDown;
|
|
2006
|
+
private _onLeftHandlePointerMove;
|
|
2007
|
+
private _moveLeftHandle;
|
|
2008
|
+
private _onLeftHandlePointerUp;
|
|
2009
|
+
private _onTopHandlePointerDown;
|
|
2010
|
+
private _onTopHandlePointerMove;
|
|
2011
|
+
private _moveTopHandle;
|
|
2012
|
+
private _onTopHandlePointerUp;
|
|
2013
|
+
private _onTopRightHandlePointerDown;
|
|
2014
|
+
private _onTopRightHandlePointerMove;
|
|
2015
|
+
private _moveTopRightHandle;
|
|
2016
|
+
private _onTopRightHandlePointerUp;
|
|
2017
|
+
private _onBottomRightHandlePointerDown;
|
|
2018
|
+
private _onBottomRightHandlePointerMove;
|
|
2019
|
+
private _moveBottomRightHandle;
|
|
2020
|
+
private _onBottomRightHandlePointerUp;
|
|
2021
|
+
private _onBottomLeftHandlePointerDown;
|
|
2022
|
+
private _onBottomLeftHandlePointerMove;
|
|
2023
|
+
private _moveBottomLeftHandle;
|
|
2024
|
+
private _onBottomLeftHandlePointerUp;
|
|
2025
|
+
private _onTopLeftHandlePointerDown;
|
|
2026
|
+
private _onTopLeftHandlePointerMove;
|
|
2027
|
+
private _moveTopLeftHandle;
|
|
2028
|
+
private _onTopLeftHandlePointerUp;
|
|
2029
|
+
private _expandLeft;
|
|
2030
|
+
private _expandTop;
|
|
2031
|
+
private _expandRight;
|
|
2032
|
+
private _expandBottom;
|
|
2033
|
+
dispose(): void;
|
|
2034
|
+
private _serializePortData;
|
|
2035
|
+
serialize(saveCollapsedState: boolean): IFrameData;
|
|
2036
|
+
export(): void;
|
|
2037
|
+
adjustPorts(): void;
|
|
2038
|
+
static Parse(serializationData: IFrameData, canvas: GraphCanvasComponent, map?: {
|
|
2039
|
+
[key: number]: number;
|
|
2040
|
+
}): GraphFrame;
|
|
2041
|
+
}
|
|
2042
|
+
|
|
2043
|
+
}
|
|
2044
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas" {
|
|
2045
|
+
import * as React from "react";
|
|
2046
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
2047
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
2048
|
+
import { NodeLink } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink";
|
|
2049
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
2050
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
2051
|
+
import { IEditorData, IFrameData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
|
|
2052
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
2053
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
2054
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
2055
|
+
import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
|
|
2056
|
+
export interface IGraphCanvasComponentProps {
|
|
2057
|
+
stateManager: StateManager;
|
|
2058
|
+
onEmitNewNode: (nodeData: INodeData) => GraphNode;
|
|
2059
|
+
}
|
|
2060
|
+
export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentProps> implements INodeContainer {
|
|
2061
|
+
static readonly NodeWidth: number;
|
|
2062
|
+
private readonly _minZoom;
|
|
2063
|
+
private readonly _maxZoom;
|
|
2064
|
+
private _hostCanvasRef;
|
|
2065
|
+
private _hostCanvas;
|
|
2066
|
+
private _graphCanvasRef;
|
|
2067
|
+
private _graphCanvas;
|
|
2068
|
+
private _selectionContainerRef;
|
|
2069
|
+
private _selectionContainer;
|
|
2070
|
+
private _frameContainerRef;
|
|
2071
|
+
private _frameContainer;
|
|
2072
|
+
private _svgCanvasRef;
|
|
2073
|
+
private _svgCanvas;
|
|
2074
|
+
private _rootContainerRef;
|
|
2075
|
+
private _rootContainer;
|
|
2076
|
+
private _nodes;
|
|
2077
|
+
private _links;
|
|
2078
|
+
private _mouseStartPointX;
|
|
2079
|
+
private _mouseStartPointY;
|
|
2080
|
+
private _dropPointX;
|
|
2081
|
+
private _dropPointY;
|
|
2082
|
+
private _selectionStartX;
|
|
2083
|
+
private _selectionStartY;
|
|
2084
|
+
private _candidateLinkedHasMoved;
|
|
2085
|
+
private _x;
|
|
2086
|
+
private _y;
|
|
2087
|
+
private _lastx;
|
|
2088
|
+
private _lasty;
|
|
2089
|
+
private _zoom;
|
|
2090
|
+
private _selectedNodes;
|
|
2091
|
+
private _selectedLink;
|
|
2092
|
+
private _selectedPort;
|
|
2093
|
+
private _candidateLink;
|
|
2094
|
+
private _candidatePort;
|
|
2095
|
+
private _gridSize;
|
|
2096
|
+
private _selectionBox;
|
|
2097
|
+
private _selectedFrames;
|
|
2098
|
+
private _frameCandidate;
|
|
2099
|
+
private _frames;
|
|
2100
|
+
private _nodeDataContentList;
|
|
2101
|
+
private _altKeyIsPressed;
|
|
2102
|
+
private _shiftKeyIsPressed;
|
|
2103
|
+
private _multiKeyIsPressed;
|
|
2104
|
+
private _oldY;
|
|
2105
|
+
_frameIsMoving: boolean;
|
|
2106
|
+
_isLoading: boolean;
|
|
2107
|
+
_targetLinkCandidate: Nullable<NodeLink>;
|
|
2108
|
+
private _copiedNodes;
|
|
2109
|
+
private _copiedFrames;
|
|
2110
|
+
get gridSize(): number;
|
|
2111
|
+
set gridSize(value: number);
|
|
2112
|
+
get stateManager(): StateManager;
|
|
2113
|
+
get nodes(): GraphNode[];
|
|
2114
|
+
get links(): NodeLink[];
|
|
2115
|
+
get frames(): GraphFrame[];
|
|
2116
|
+
get zoom(): number;
|
|
2117
|
+
set zoom(value: number);
|
|
2118
|
+
get x(): number;
|
|
2119
|
+
set x(value: number);
|
|
2120
|
+
get y(): number;
|
|
2121
|
+
set y(value: number);
|
|
2122
|
+
get selectedNodes(): GraphNode[];
|
|
2123
|
+
get selectedLink(): Nullable<NodeLink>;
|
|
2124
|
+
get selectedFrames(): GraphFrame[];
|
|
2125
|
+
get selectedPort(): Nullable<NodePort>;
|
|
2126
|
+
get canvasContainer(): HTMLDivElement;
|
|
2127
|
+
get hostCanvas(): HTMLDivElement;
|
|
2128
|
+
get svgCanvas(): HTMLElement;
|
|
2129
|
+
get selectionContainer(): HTMLDivElement;
|
|
2130
|
+
get frameContainer(): HTMLDivElement;
|
|
2131
|
+
private _selectedFrameAndNodesConflict;
|
|
2132
|
+
constructor(props: IGraphCanvasComponentProps);
|
|
2133
|
+
populateConnectedEntriesBeforeRemoval(item: GraphNode, items: GraphNode[], inputs: Nullable<IPortData>[], outputs: Nullable<IPortData>[]): void;
|
|
2134
|
+
automaticRewire(inputs: Nullable<IPortData>[], outputs: Nullable<IPortData>[], firstOnly?: boolean): void;
|
|
2135
|
+
smartAddOverLink(node: GraphNode, link: NodeLink): void;
|
|
2136
|
+
smartAddOverNode(node: GraphNode, source: GraphNode): void;
|
|
2137
|
+
deleteSelection(onRemove: (nodeData: INodeData) => void, autoReconnect?: boolean): void;
|
|
2138
|
+
handleKeyDown(evt: KeyboardEvent, onRemove: (nodeData: INodeData) => void, mouseLocationX: number, mouseLocationY: number, dataGenerator: (nodeData: INodeData) => any, rootElement: HTMLDivElement): void;
|
|
2139
|
+
pasteSelection(copiedNodes: GraphNode[], currentX: number, currentY: number, dataGenerator: (nodeData: INodeData) => any, selectNew?: boolean): GraphNode[];
|
|
2140
|
+
reconnectNewNodes(nodeIndex: number, newNodes: GraphNode[], sourceNodes: GraphNode[], done: boolean[]): void;
|
|
2141
|
+
getCachedData(): any[];
|
|
2142
|
+
removeDataFromCache(data: any): void;
|
|
2143
|
+
createNodeFromObject(nodeData: INodeData, onNodeCreated: (data: any) => void, recursion?: boolean): GraphNode;
|
|
2144
|
+
getGridPosition(position: number, useCeil?: boolean): number;
|
|
2145
|
+
getGridPositionCeil(position: number): number;
|
|
2146
|
+
updateTransform(): void;
|
|
2147
|
+
onKeyUp(): void;
|
|
2148
|
+
findNodeFromData(data: any): GraphNode;
|
|
2149
|
+
reset(): void;
|
|
2150
|
+
connectPorts(pointA: IPortData, pointB: IPortData): void;
|
|
2151
|
+
removeLink(link: NodeLink): void;
|
|
2152
|
+
appendNode(nodeData: INodeData): GraphNode;
|
|
2153
|
+
distributeGraph(): void;
|
|
2154
|
+
componentDidMount(): void;
|
|
2155
|
+
onMove(evt: React.PointerEvent): void;
|
|
2156
|
+
onDown(evt: React.PointerEvent<HTMLElement>): void;
|
|
2157
|
+
onUp(evt: React.PointerEvent): void;
|
|
2158
|
+
onWheel(evt: React.WheelEvent): void;
|
|
2159
|
+
zoomToFit(): void;
|
|
2160
|
+
processCandidatePort(): void;
|
|
2161
|
+
connectNodes(nodeA: GraphNode, pointA: IPortData, nodeB: GraphNode, pointB: IPortData): void;
|
|
2162
|
+
drop(newNode: GraphNode, targetX: number, targetY: number, offsetX: number, offsetY: number): void;
|
|
2163
|
+
processEditorData(editorData: IEditorData): void;
|
|
2164
|
+
reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
|
|
2165
|
+
addFrame(frameData: IFrameData): void;
|
|
2166
|
+
|
|
2167
|
+
}
|
|
2168
|
+
|
|
2169
|
+
}
|
|
2170
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort" {
|
|
2171
|
+
import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
|
|
2172
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2173
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
2174
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
2175
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
2176
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
2177
|
+
import { FramePortPosition } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
2178
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
2179
|
+
export class FrameNodePort extends NodePort {
|
|
2180
|
+
portData: IPortData;
|
|
2181
|
+
node: GraphNode;
|
|
2182
|
+
private _parentFrameId;
|
|
2183
|
+
private _isInput;
|
|
2184
|
+
private _framePortPosition;
|
|
2185
|
+
private _framePortId;
|
|
2186
|
+
private _onFramePortPositionChangedObservable;
|
|
2187
|
+
get parentFrameId(): number;
|
|
2188
|
+
get onFramePortPositionChangedObservable(): Observable<FrameNodePort>;
|
|
2189
|
+
get isInput(): boolean;
|
|
2190
|
+
get framePortId(): number;
|
|
2191
|
+
get framePortPosition(): FramePortPosition;
|
|
2192
|
+
set framePortPosition(position: FramePortPosition);
|
|
2193
|
+
constructor(portContainer: HTMLElement, portData: IPortData, node: GraphNode, stateManager: StateManager, isInput: boolean, framePortId: number, parentFrameId: number);
|
|
2194
|
+
static CreateFrameNodePortElement(portData: IPortData, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, stateManager: StateManager, isInput: boolean, framePortId: number, parentFrameId: number): FrameNodePort;
|
|
2195
|
+
}
|
|
2196
|
+
|
|
2197
|
+
}
|
|
2198
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/displayLedger" {
|
|
2199
|
+
export class DisplayLedger {
|
|
2200
|
+
static RegisteredControls: {
|
|
2201
|
+
[key: string]: any;
|
|
2202
|
+
};
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
}
|
|
2206
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/automaticProperties" {
|
|
2207
|
+
import { IEditablePropertyOption } from "@babylonjs/core/Decorators/nodeDecorator";
|
|
2208
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
2209
|
+
/**
|
|
2210
|
+
* Function used to force a rebuild of the node system
|
|
2211
|
+
* @param source source object
|
|
2212
|
+
* @param stateManager defines the state manager to use
|
|
2213
|
+
* @param propertyName name of the property that has been changed
|
|
2214
|
+
* @param notifiers list of notifiers to use
|
|
2215
|
+
*/
|
|
2216
|
+
export function ForceRebuild(source: any, stateManager: StateManager, propertyName: string, notifiers?: IEditablePropertyOption["notifiers"]): void;
|
|
2217
|
+
|
|
2218
|
+
}
|
|
2219
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/types/framePortData" {
|
|
2220
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
2221
|
+
import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
|
|
2222
|
+
export type FramePortData = {
|
|
2223
|
+
frame: GraphFrame;
|
|
2224
|
+
port: FrameNodePort;
|
|
2225
|
+
};
|
|
2226
|
+
|
|
2227
|
+
}
|
|
2228
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/selectionChangedOptions" {
|
|
2229
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
2230
|
+
import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
|
|
2231
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
2232
|
+
import { NodeLink } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink";
|
|
2233
|
+
import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
|
|
2234
|
+
import { FramePortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/types/framePortData";
|
|
2235
|
+
export interface ISelectionChangedOptions {
|
|
2236
|
+
selection: Nullable<GraphNode | NodeLink | GraphFrame | NodePort | FramePortData>;
|
|
2237
|
+
forceKeepSelection?: boolean;
|
|
2238
|
+
marqueeSelection?: boolean;
|
|
2239
|
+
}
|
|
2240
|
+
|
|
2241
|
+
}
|
|
2242
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps" {
|
|
2243
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
2244
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
2245
|
+
export interface IPropertyComponentProps {
|
|
2246
|
+
stateManager: StateManager;
|
|
2247
|
+
nodeData: INodeData;
|
|
2248
|
+
}
|
|
2249
|
+
|
|
2250
|
+
}
|
|
2251
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData" {
|
|
2252
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
2253
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
2254
|
+
export enum PortDataDirection {
|
|
2255
|
+
/** Input */
|
|
2256
|
+
Input = 0,
|
|
2257
|
+
/** Output */
|
|
2258
|
+
Output = 1
|
|
2259
|
+
}
|
|
2260
|
+
export enum PortDirectValueTypes {
|
|
2261
|
+
Float = 0,
|
|
2262
|
+
Int = 1
|
|
2263
|
+
}
|
|
2264
|
+
export interface IPortDirectValueDefinition {
|
|
2265
|
+
/**
|
|
2266
|
+
* Gets the source object
|
|
2267
|
+
*/
|
|
2268
|
+
source: any;
|
|
2269
|
+
/**
|
|
2270
|
+
* Gets the property name used to store the value
|
|
2271
|
+
*/
|
|
2272
|
+
propertyName: string;
|
|
2273
|
+
/**
|
|
2274
|
+
* Gets or sets the min value accepted for this point if nothing is connected
|
|
2275
|
+
*/
|
|
2276
|
+
valueMin: Nullable<any>;
|
|
2277
|
+
/**
|
|
2278
|
+
* Gets or sets the max value accepted for this point if nothing is connected
|
|
2279
|
+
*/
|
|
2280
|
+
valueMax: Nullable<any>;
|
|
2281
|
+
/**
|
|
2282
|
+
* Gets or sets the type of the value
|
|
2283
|
+
*/
|
|
2284
|
+
valueType: PortDirectValueTypes;
|
|
2285
|
+
}
|
|
2286
|
+
export interface IPortData {
|
|
2287
|
+
data: any;
|
|
2288
|
+
name: string;
|
|
2289
|
+
internalName: string;
|
|
2290
|
+
isExposedOnFrame: boolean;
|
|
2291
|
+
exposedPortPosition: number;
|
|
2292
|
+
isConnected: boolean;
|
|
2293
|
+
direction: PortDataDirection;
|
|
2294
|
+
ownerData: any;
|
|
2295
|
+
connectedPort: Nullable<IPortData>;
|
|
2296
|
+
needDualDirectionValidation: boolean;
|
|
2297
|
+
hasEndpoints: boolean;
|
|
2298
|
+
endpoints: Nullable<IPortData[]>;
|
|
2299
|
+
directValueDefinition?: IPortDirectValueDefinition;
|
|
2300
|
+
updateDisplayName: (newName: string) => void;
|
|
2301
|
+
canConnectTo: (port: IPortData) => boolean;
|
|
2302
|
+
connectTo: (port: IPortData) => void;
|
|
2303
|
+
disconnectFrom: (port: IPortData) => void;
|
|
2304
|
+
checkCompatibilityState(port: IPortData): number;
|
|
2305
|
+
getCompatibilityIssueMessage(issue: number, targetNode: GraphNode, targetPort: IPortData): string;
|
|
2306
|
+
}
|
|
2307
|
+
|
|
2308
|
+
}
|
|
2309
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeLocationInfo" {
|
|
2310
|
+
export interface INodeLocationInfo {
|
|
2311
|
+
blockId: number;
|
|
2312
|
+
x: number;
|
|
2313
|
+
y: number;
|
|
2314
|
+
isCollapsed: boolean;
|
|
2315
|
+
}
|
|
2316
|
+
export interface IFrameData {
|
|
2317
|
+
x: number;
|
|
2318
|
+
y: number;
|
|
2319
|
+
width: number;
|
|
2320
|
+
height: number;
|
|
2321
|
+
color: number[];
|
|
2322
|
+
name: string;
|
|
2323
|
+
isCollapsed: boolean;
|
|
2324
|
+
blocks: number[];
|
|
2325
|
+
comments: string;
|
|
2326
|
+
}
|
|
2327
|
+
export interface IEditorData {
|
|
2328
|
+
locations: INodeLocationInfo[];
|
|
2329
|
+
x: number;
|
|
2330
|
+
y: number;
|
|
2331
|
+
zoom: number;
|
|
2332
|
+
frames?: IFrameData[];
|
|
2333
|
+
map?: {
|
|
2334
|
+
[key: number]: number;
|
|
2335
|
+
};
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
}
|
|
2339
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData" {
|
|
2340
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
2341
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
2342
|
+
export interface INodeData {
|
|
2343
|
+
data: any;
|
|
2344
|
+
name: string;
|
|
2345
|
+
uniqueId: number;
|
|
2346
|
+
isInput: boolean;
|
|
2347
|
+
comments: string;
|
|
2348
|
+
executionTime?: number;
|
|
2349
|
+
refreshCallback?: () => void;
|
|
2350
|
+
prepareHeaderIcon: (iconDiv: HTMLDivElement, img: HTMLImageElement) => void;
|
|
2351
|
+
getClassName: () => string;
|
|
2352
|
+
dispose: () => void;
|
|
2353
|
+
getPortByName: (name: string) => Nullable<IPortData>;
|
|
2354
|
+
inputs: IPortData[];
|
|
2355
|
+
outputs: IPortData[];
|
|
2356
|
+
invisibleEndpoints?: Nullable<any[]>;
|
|
2357
|
+
isConnectedToOutput?: () => boolean;
|
|
2358
|
+
isActive?: boolean;
|
|
2359
|
+
setIsActive?: (value: boolean) => void;
|
|
2360
|
+
canBeActivated?: boolean;
|
|
2361
|
+
onInputCountChanged?: () => void;
|
|
2362
|
+
}
|
|
2363
|
+
|
|
2364
|
+
}
|
|
2365
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer" {
|
|
2366
|
+
import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
|
|
2367
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
2368
|
+
export interface INodeContainer {
|
|
2369
|
+
nodes: GraphNode[];
|
|
2370
|
+
appendNode(data: INodeData): GraphNode;
|
|
2371
|
+
}
|
|
2372
|
+
|
|
2373
|
+
}
|
|
2374
|
+
declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager" {
|
|
2375
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
2376
|
+
import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
|
|
2377
|
+
import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
|
|
2378
|
+
import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
|
|
2379
|
+
export interface VisualContentDescription {
|
|
2380
|
+
[key: string]: HTMLElement;
|
|
2381
|
+
}
|
|
2382
|
+
export interface IDisplayManager {
|
|
2383
|
+
getHeaderClass(data: INodeData): string;
|
|
2384
|
+
shouldDisplayPortLabels(data: IPortData): boolean;
|
|
2385
|
+
updatePreviewContent(data: INodeData, contentArea: HTMLDivElement): void;
|
|
2386
|
+
updateFullVisualContent?(data: INodeData, visualContent: VisualContentDescription): void;
|
|
2387
|
+
getBackgroundColor(data: INodeData): string;
|
|
2388
|
+
getHeaderText(data: INodeData): string;
|
|
2389
|
+
onSelectionChanged?(data: INodeData, selectedData: Nullable<INodeData>, manager: StateManager): void;
|
|
2390
|
+
onDispose?(nodeData: INodeData, manager: StateManager): void;
|
|
2391
|
+
}
|
|
2392
|
+
|
|
2393
|
+
}
|
|
2394
|
+
declare module "@babylonjs/node-particle-editor/lines/vector4LineComponent" {
|
|
2395
|
+
import * as React from "react";
|
|
2396
|
+
import { Vector4 } from "@babylonjs/core/Maths/math.vector";
|
|
2397
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2398
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
2399
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
2400
|
+
interface IVector4LineComponentProps {
|
|
2401
|
+
label: string;
|
|
2402
|
+
target?: any;
|
|
2403
|
+
propertyName?: string;
|
|
2404
|
+
step?: number;
|
|
2405
|
+
onChange?: (newvalue: Vector4) => void;
|
|
2406
|
+
useEuler?: boolean;
|
|
2407
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
2408
|
+
icon?: string;
|
|
2409
|
+
iconLabel?: string;
|
|
2410
|
+
value?: Vector4;
|
|
2411
|
+
lockObject: LockObject;
|
|
2412
|
+
}
|
|
2413
|
+
export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
|
|
2414
|
+
isExpanded: boolean;
|
|
2415
|
+
value: Vector4;
|
|
2416
|
+
}> {
|
|
2417
|
+
static defaultProps: {
|
|
2418
|
+
step: number;
|
|
2419
|
+
};
|
|
2420
|
+
private _localChange;
|
|
2421
|
+
constructor(props: IVector4LineComponentProps);
|
|
2422
|
+
getCurrentValue(): any;
|
|
2423
|
+
shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
|
|
2424
|
+
isExpanded: boolean;
|
|
2425
|
+
value: Vector4;
|
|
2426
|
+
}): boolean;
|
|
2427
|
+
switchExpandState(): void;
|
|
2428
|
+
raiseOnPropertyChanged(previousValue: Vector4): void;
|
|
2429
|
+
updateVector4(): void;
|
|
2430
|
+
updateStateX(value: number): void;
|
|
2431
|
+
updateStateY(value: number): void;
|
|
2432
|
+
updateStateZ(value: number): void;
|
|
2433
|
+
updateStateW(value: number): void;
|
|
2434
|
+
|
|
2435
|
+
}
|
|
2436
|
+
export {};
|
|
2437
|
+
|
|
2438
|
+
}
|
|
2439
|
+
declare module "@babylonjs/node-particle-editor/lines/vector3LineComponent" {
|
|
2440
|
+
import * as React from "react";
|
|
2441
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
|
|
2442
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2443
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
2444
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
2445
|
+
interface IVector3LineComponentProps {
|
|
2446
|
+
label: string;
|
|
2447
|
+
target?: any;
|
|
2448
|
+
propertyName?: string;
|
|
2449
|
+
step?: number;
|
|
2450
|
+
onChange?: (newvalue: Vector3) => void;
|
|
2451
|
+
useEuler?: boolean;
|
|
2452
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
2453
|
+
noSlider?: boolean;
|
|
2454
|
+
icon?: string;
|
|
2455
|
+
iconLabel?: string;
|
|
2456
|
+
lockObject: LockObject;
|
|
2457
|
+
directValue?: Vector3;
|
|
2458
|
+
additionalCommands?: JSX.Element[];
|
|
2459
|
+
}
|
|
2460
|
+
export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
|
|
2461
|
+
isExpanded: boolean;
|
|
2462
|
+
value: Vector3;
|
|
2463
|
+
}> {
|
|
2464
|
+
static defaultProps: {
|
|
2465
|
+
step: number;
|
|
2466
|
+
};
|
|
2467
|
+
private _localChange;
|
|
2468
|
+
constructor(props: IVector3LineComponentProps);
|
|
2469
|
+
getCurrentValue(): any;
|
|
2470
|
+
shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
|
|
2471
|
+
isExpanded: boolean;
|
|
2472
|
+
value: Vector3;
|
|
2473
|
+
}): boolean;
|
|
2474
|
+
switchExpandState(): void;
|
|
2475
|
+
raiseOnPropertyChanged(previousValue: Vector3): void;
|
|
2476
|
+
updateVector3(): void;
|
|
2477
|
+
updateStateX(value: number): void;
|
|
2478
|
+
updateStateY(value: number): void;
|
|
2479
|
+
updateStateZ(value: number): void;
|
|
2480
|
+
onCopyClick(): string;
|
|
2481
|
+
|
|
2482
|
+
|
|
2483
|
+
|
|
2484
|
+
}
|
|
2485
|
+
export {};
|
|
2486
|
+
|
|
2487
|
+
}
|
|
2488
|
+
declare module "@babylonjs/node-particle-editor/lines/vector2LineComponent" {
|
|
2489
|
+
import * as React from "react";
|
|
2490
|
+
import { Vector2 } from "@babylonjs/core/Maths/math.vector";
|
|
2491
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2492
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
2493
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
2494
|
+
interface IVector2LineComponentProps {
|
|
2495
|
+
label: string;
|
|
2496
|
+
target: any;
|
|
2497
|
+
propertyName: string;
|
|
2498
|
+
step?: number;
|
|
2499
|
+
onChange?: (newvalue: Vector2) => void;
|
|
2500
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
2501
|
+
icon?: string;
|
|
2502
|
+
iconLabel?: string;
|
|
2503
|
+
lockObject: LockObject;
|
|
2504
|
+
}
|
|
2505
|
+
export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
|
|
2506
|
+
isExpanded: boolean;
|
|
2507
|
+
value: Vector2;
|
|
2508
|
+
}> {
|
|
2509
|
+
static defaultProps: {
|
|
2510
|
+
step: number;
|
|
2511
|
+
};
|
|
2512
|
+
private _localChange;
|
|
2513
|
+
constructor(props: IVector2LineComponentProps);
|
|
2514
|
+
shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
|
|
2515
|
+
isExpanded: boolean;
|
|
2516
|
+
value: Vector2;
|
|
2517
|
+
}): boolean;
|
|
2518
|
+
switchExpandState(): void;
|
|
2519
|
+
raiseOnPropertyChanged(previousValue: Vector2): void;
|
|
2520
|
+
updateStateX(value: number): void;
|
|
2521
|
+
updateStateY(value: number): void;
|
|
2522
|
+
|
|
2523
|
+
}
|
|
2524
|
+
export {};
|
|
2525
|
+
|
|
2526
|
+
}
|
|
2527
|
+
declare module "@babylonjs/node-particle-editor/lines/valueLineComponent" {
|
|
2528
|
+
import * as React from "react";
|
|
2529
|
+
interface IValueLineComponentProps {
|
|
2530
|
+
label: string;
|
|
2531
|
+
value: number;
|
|
2532
|
+
color?: string;
|
|
2533
|
+
fractionDigits?: number;
|
|
2534
|
+
units?: string;
|
|
2535
|
+
icon?: string;
|
|
2536
|
+
iconLabel?: string;
|
|
2537
|
+
}
|
|
2538
|
+
export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
|
|
2539
|
+
constructor(props: IValueLineComponentProps);
|
|
2540
|
+
|
|
2541
|
+
}
|
|
2542
|
+
export {};
|
|
2543
|
+
|
|
2544
|
+
}
|
|
2545
|
+
declare module "@babylonjs/node-particle-editor/lines/unitButton" {
|
|
2546
|
+
interface IUnitButtonProps {
|
|
2547
|
+
unit: string;
|
|
2548
|
+
locked?: boolean;
|
|
2549
|
+
onClick?: (unit: string) => void;
|
|
2550
|
+
}
|
|
2551
|
+
|
|
2552
|
+
export {};
|
|
2553
|
+
|
|
2554
|
+
}
|
|
2555
|
+
declare module "@babylonjs/node-particle-editor/lines/textureButtonLineComponent" {
|
|
2556
|
+
import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
|
|
2557
|
+
import { Scene } from "@babylonjs/core/scene";
|
|
2558
|
+
import * as React from "react";
|
|
2559
|
+
interface ITextureButtonLineProps {
|
|
2560
|
+
label: string;
|
|
2561
|
+
scene: Scene;
|
|
2562
|
+
onClick: (file: File) => void;
|
|
2563
|
+
onLink: (texture: BaseTexture) => void;
|
|
2564
|
+
accept: string;
|
|
2565
|
+
}
|
|
2566
|
+
interface ITextureButtonLineState {
|
|
2567
|
+
isOpen: boolean;
|
|
2568
|
+
}
|
|
2569
|
+
export class TextureButtonLine extends React.Component<ITextureButtonLineProps, ITextureButtonLineState> {
|
|
2570
|
+
private static _IdGenerator;
|
|
2571
|
+
private _id;
|
|
2572
|
+
private _uploadInputRef;
|
|
2573
|
+
constructor(props: ITextureButtonLineProps);
|
|
2574
|
+
onChange(evt: any): void;
|
|
2575
|
+
|
|
2576
|
+
}
|
|
2577
|
+
export {};
|
|
2578
|
+
|
|
2579
|
+
}
|
|
2580
|
+
declare module "@babylonjs/node-particle-editor/lines/textLineComponent" {
|
|
2581
|
+
import * as React from "react";
|
|
2582
|
+
interface ITextLineComponentProps {
|
|
2583
|
+
label?: string;
|
|
2584
|
+
value?: string;
|
|
2585
|
+
color?: string;
|
|
2586
|
+
underline?: boolean;
|
|
2587
|
+
onLink?: () => void;
|
|
2588
|
+
url?: string;
|
|
2589
|
+
ignoreValue?: boolean;
|
|
2590
|
+
additionalClass?: string;
|
|
2591
|
+
icon?: string;
|
|
2592
|
+
iconLabel?: string;
|
|
2593
|
+
tooltip?: string;
|
|
2594
|
+
onCopy?: true | (() => string);
|
|
2595
|
+
}
|
|
2596
|
+
export class TextLineComponent extends React.Component<ITextLineComponentProps> {
|
|
2597
|
+
constructor(props: ITextLineComponentProps);
|
|
2598
|
+
onLink(): void;
|
|
2599
|
+
copyFn(): (() => string) | undefined;
|
|
2600
|
+
|
|
2601
|
+
|
|
2602
|
+
|
|
2603
|
+
|
|
2604
|
+
}
|
|
2605
|
+
export {};
|
|
2606
|
+
|
|
2607
|
+
}
|
|
2608
|
+
declare module "@babylonjs/node-particle-editor/lines/textInputLineComponent" {
|
|
2609
|
+
import { ReactNode, KeyboardEvent } from "react";
|
|
2610
|
+
import { Component } from "react";
|
|
2611
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2612
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
2613
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
2614
|
+
export interface ITextInputLineComponentProps {
|
|
2615
|
+
label?: string;
|
|
2616
|
+
lockObject?: LockObject;
|
|
2617
|
+
target?: any;
|
|
2618
|
+
propertyName?: string;
|
|
2619
|
+
value?: string;
|
|
2620
|
+
onChange?: (value: string) => void;
|
|
2621
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
2622
|
+
icon?: string;
|
|
2623
|
+
iconLabel?: string;
|
|
2624
|
+
noUnderline?: boolean;
|
|
2625
|
+
numbersOnly?: boolean;
|
|
2626
|
+
delayInput?: boolean;
|
|
2627
|
+
arrows?: boolean;
|
|
2628
|
+
arrowsIncrement?: (amount: number) => void;
|
|
2629
|
+
step?: number;
|
|
2630
|
+
numeric?: boolean;
|
|
2631
|
+
roundValues?: boolean;
|
|
2632
|
+
min?: number;
|
|
2633
|
+
max?: number;
|
|
2634
|
+
placeholder?: string;
|
|
2635
|
+
unit?: ReactNode;
|
|
2636
|
+
validator?: (value: string) => boolean;
|
|
2637
|
+
multilines?: boolean;
|
|
2638
|
+
throttlePropertyChangedNotification?: boolean;
|
|
2639
|
+
throttlePropertyChangedNotificationDelay?: number;
|
|
2640
|
+
disabled?: boolean;
|
|
2641
|
+
}
|
|
2642
|
+
export class TextInputLineComponent extends Component<ITextInputLineComponentProps, {
|
|
2643
|
+
value: string;
|
|
2644
|
+
dragging: boolean;
|
|
2645
|
+
}> {
|
|
2646
|
+
private _localChange;
|
|
2647
|
+
constructor(props: ITextInputLineComponentProps);
|
|
2648
|
+
componentWillUnmount(): void;
|
|
2649
|
+
shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
|
|
2650
|
+
value: string;
|
|
2651
|
+
dragging: boolean;
|
|
2652
|
+
}): boolean;
|
|
2653
|
+
raiseOnPropertyChanged(newValue: string, previousValue: string): void;
|
|
2654
|
+
getCurrentNumericValue(value: string): number;
|
|
2655
|
+
updateValue(value: string, valueToValidate?: string): void;
|
|
2656
|
+
incrementValue(amount: number): void;
|
|
2657
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
2658
|
+
|
|
2659
|
+
|
|
2660
|
+
|
|
2661
|
+
}
|
|
2662
|
+
|
|
2663
|
+
}
|
|
2664
|
+
declare module "@babylonjs/node-particle-editor/lines/targetsProxy" {
|
|
2665
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
2666
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2667
|
+
export const conflictingValuesPlaceholder = "\u2014";
|
|
2668
|
+
/**
|
|
2669
|
+
*
|
|
2670
|
+
* @param targets a list of selected targets
|
|
2671
|
+
* @param onPropertyChangedObservable
|
|
2672
|
+
* @param getProperty
|
|
2673
|
+
* @returns a proxy object that can be passed as a target into the input
|
|
2674
|
+
*/
|
|
2675
|
+
export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
|
|
2676
|
+
|
|
2677
|
+
}
|
|
2678
|
+
declare module "@babylonjs/node-particle-editor/lines/sliderLineComponent" {
|
|
2679
|
+
import * as React from "react";
|
|
2680
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2681
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
2682
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
2683
|
+
interface ISliderLineComponentProps {
|
|
2684
|
+
label: string;
|
|
2685
|
+
target?: any;
|
|
2686
|
+
propertyName?: string;
|
|
2687
|
+
minimum: number;
|
|
2688
|
+
maximum: number;
|
|
2689
|
+
step: number;
|
|
2690
|
+
directValue?: number;
|
|
2691
|
+
useEuler?: boolean;
|
|
2692
|
+
onChange?: (value: number) => void;
|
|
2693
|
+
onInput?: (value: number) => void;
|
|
2694
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
2695
|
+
decimalCount?: number;
|
|
2696
|
+
margin?: boolean;
|
|
2697
|
+
icon?: string;
|
|
2698
|
+
iconLabel?: string;
|
|
2699
|
+
lockObject: LockObject;
|
|
2700
|
+
unit?: React.ReactNode;
|
|
2701
|
+
allowOverflow?: boolean;
|
|
2702
|
+
}
|
|
2703
|
+
export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
|
|
2704
|
+
value: number;
|
|
2705
|
+
}> {
|
|
2706
|
+
private _localChange;
|
|
2707
|
+
constructor(props: ISliderLineComponentProps);
|
|
2708
|
+
shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
|
|
2709
|
+
value: number;
|
|
2710
|
+
}): boolean;
|
|
2711
|
+
onChange(newValueString: any): void;
|
|
2712
|
+
onInput(newValueString: any): void;
|
|
2713
|
+
prepareDataToRead(value: number): number;
|
|
2714
|
+
onCopyClick(): void;
|
|
2715
|
+
|
|
2716
|
+
|
|
2717
|
+
|
|
2718
|
+
}
|
|
2719
|
+
export {};
|
|
2720
|
+
|
|
2721
|
+
}
|
|
2722
|
+
declare module "@babylonjs/node-particle-editor/lines/radioLineComponent" {
|
|
2723
|
+
import * as React from "react";
|
|
2724
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2725
|
+
interface IRadioButtonLineComponentProps {
|
|
2726
|
+
onSelectionChangedObservable: Observable<RadioButtonLineComponent>;
|
|
2727
|
+
label: string;
|
|
2728
|
+
isSelected: () => boolean;
|
|
2729
|
+
onSelect: () => void;
|
|
2730
|
+
icon?: string;
|
|
2731
|
+
iconLabel?: string;
|
|
2732
|
+
}
|
|
2733
|
+
export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
|
|
2734
|
+
isSelected: boolean;
|
|
2735
|
+
}> {
|
|
2736
|
+
private _onSelectionChangedObserver;
|
|
2737
|
+
constructor(props: IRadioButtonLineComponentProps);
|
|
2738
|
+
componentDidMount(): void;
|
|
2739
|
+
componentWillUnmount(): void;
|
|
2740
|
+
onChange(): void;
|
|
2741
|
+
|
|
2742
|
+
}
|
|
2743
|
+
export {};
|
|
2744
|
+
|
|
2745
|
+
}
|
|
2746
|
+
declare module "@babylonjs/node-particle-editor/lines/optionsLineComponent" {
|
|
2747
|
+
import * as React from "react";
|
|
2748
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2749
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
2750
|
+
import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
|
|
2751
|
+
export const Null_Value: number;
|
|
2752
|
+
export interface IOptionsLineProps {
|
|
2753
|
+
label: string;
|
|
2754
|
+
target: any;
|
|
2755
|
+
propertyName: string;
|
|
2756
|
+
options: IInspectableOptions[];
|
|
2757
|
+
noDirectUpdate?: boolean;
|
|
2758
|
+
onSelect?: (value: number | string) => void;
|
|
2759
|
+
extractValue?: (target: any) => number | string;
|
|
2760
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
2761
|
+
allowNullValue?: boolean;
|
|
2762
|
+
icon?: string;
|
|
2763
|
+
iconLabel?: string;
|
|
2764
|
+
className?: string;
|
|
2765
|
+
valuesAreStrings?: boolean;
|
|
2766
|
+
defaultIfNull?: number;
|
|
2767
|
+
}
|
|
2768
|
+
export class OptionsLine extends React.Component<IOptionsLineProps, {
|
|
2769
|
+
value: number | string;
|
|
2770
|
+
}> {
|
|
2771
|
+
private _localChange;
|
|
2772
|
+
private _remapValueIn;
|
|
2773
|
+
private _remapValueOut;
|
|
2774
|
+
private _getValue;
|
|
2775
|
+
constructor(props: IOptionsLineProps);
|
|
2776
|
+
shouldComponentUpdate(nextProps: IOptionsLineProps, nextState: {
|
|
2777
|
+
value: number;
|
|
2778
|
+
}): boolean;
|
|
2779
|
+
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
|
|
2780
|
+
setValue(value: string | number): void;
|
|
2781
|
+
updateValue(valueString: string): void;
|
|
2782
|
+
onCopyClickStr(): string;
|
|
2783
|
+
private _renderFluent;
|
|
2784
|
+
private _renderOriginal;
|
|
2785
|
+
|
|
2786
|
+
}
|
|
2787
|
+
|
|
2788
|
+
}
|
|
2789
|
+
declare module "@babylonjs/node-particle-editor/lines/numericInputComponent" {
|
|
2790
|
+
import * as React from "react";
|
|
2791
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
2792
|
+
interface INumericInputProps {
|
|
2793
|
+
label: string;
|
|
2794
|
+
labelTooltip?: string;
|
|
2795
|
+
value: number;
|
|
2796
|
+
step?: number;
|
|
2797
|
+
onChange: (value: number) => void;
|
|
2798
|
+
precision?: number;
|
|
2799
|
+
icon?: string;
|
|
2800
|
+
iconLabel?: string;
|
|
2801
|
+
lockObject: LockObject;
|
|
2802
|
+
}
|
|
2803
|
+
export class NumericInput extends React.Component<INumericInputProps, {
|
|
2804
|
+
value: string;
|
|
2805
|
+
}> {
|
|
2806
|
+
static defaultProps: {
|
|
2807
|
+
step: number;
|
|
2808
|
+
};
|
|
2809
|
+
private _localChange;
|
|
2810
|
+
constructor(props: INumericInputProps);
|
|
2811
|
+
componentWillUnmount(): void;
|
|
2812
|
+
shouldComponentUpdate(nextProps: INumericInputProps, nextState: {
|
|
2813
|
+
value: string;
|
|
2814
|
+
}): boolean;
|
|
2815
|
+
updateValue(valueString: string): void;
|
|
2816
|
+
onBlur(): void;
|
|
2817
|
+
incrementValue(amount: number): void;
|
|
2818
|
+
onKeyDown(evt: React.KeyboardEvent<HTMLInputElement>): void;
|
|
2819
|
+
|
|
2820
|
+
}
|
|
2821
|
+
export {};
|
|
2822
|
+
|
|
2823
|
+
}
|
|
2824
|
+
declare module "@babylonjs/node-particle-editor/lines/messageLineComponent" {
|
|
2825
|
+
import * as React from "react";
|
|
2826
|
+
|
|
2827
|
+
interface IMessageLineComponentProps {
|
|
2828
|
+
text: string;
|
|
2829
|
+
color?: string;
|
|
2830
|
+
icon?: any;
|
|
2831
|
+
}
|
|
2832
|
+
export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
|
|
2833
|
+
constructor(props: IMessageLineComponentProps);
|
|
2834
|
+
|
|
2835
|
+
}
|
|
2836
|
+
export {};
|
|
2837
|
+
|
|
2838
|
+
}
|
|
2839
|
+
declare module "@babylonjs/node-particle-editor/lines/matrixLineComponent" {
|
|
2840
|
+
import * as React from "react";
|
|
2841
|
+
import { Vector3, Vector4 } from "@babylonjs/core/Maths/math.vector";
|
|
2842
|
+
import { Matrix } from "@babylonjs/core/Maths/math.vector";
|
|
2843
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2844
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
2845
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
2846
|
+
interface IMatrixLineComponentProps {
|
|
2847
|
+
label: string;
|
|
2848
|
+
target: any;
|
|
2849
|
+
propertyName: string;
|
|
2850
|
+
step?: number;
|
|
2851
|
+
onChange?: (newValue: Matrix) => void;
|
|
2852
|
+
onModeChange?: (mode: number) => void;
|
|
2853
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
2854
|
+
mode?: number;
|
|
2855
|
+
lockObject: LockObject;
|
|
2856
|
+
}
|
|
2857
|
+
export class MatrixLineComponent extends React.Component<IMatrixLineComponentProps, {
|
|
2858
|
+
value: Matrix;
|
|
2859
|
+
mode: number;
|
|
2860
|
+
angle: number;
|
|
2861
|
+
}> {
|
|
2862
|
+
private _localChange;
|
|
2863
|
+
constructor(props: IMatrixLineComponentProps);
|
|
2864
|
+
shouldComponentUpdate(nextProps: IMatrixLineComponentProps, nextState: {
|
|
2865
|
+
value: Matrix;
|
|
2866
|
+
mode: number;
|
|
2867
|
+
angle: number;
|
|
2868
|
+
}): boolean;
|
|
2869
|
+
raiseOnPropertyChanged(previousValue: Vector3): void;
|
|
2870
|
+
updateMatrix(): void;
|
|
2871
|
+
updateRow(value: Vector4, row: number): void;
|
|
2872
|
+
updateBasedOnMode(value: number): void;
|
|
2873
|
+
|
|
2874
|
+
}
|
|
2875
|
+
export {};
|
|
2876
|
+
|
|
2877
|
+
}
|
|
2878
|
+
declare module "@babylonjs/node-particle-editor/lines/linkButtonComponent" {
|
|
2879
|
+
import * as React from "react";
|
|
2880
|
+
|
|
2881
|
+
interface ILinkButtonComponentProps {
|
|
2882
|
+
label: string;
|
|
2883
|
+
buttonLabel: string;
|
|
2884
|
+
url?: string;
|
|
2885
|
+
onClick: () => void;
|
|
2886
|
+
icon?: any;
|
|
2887
|
+
onIconClick?: () => void;
|
|
2888
|
+
}
|
|
2889
|
+
export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
|
|
2890
|
+
constructor(props: ILinkButtonComponentProps);
|
|
2891
|
+
onLink(): void;
|
|
2892
|
+
|
|
2893
|
+
}
|
|
2894
|
+
export {};
|
|
2895
|
+
|
|
2896
|
+
}
|
|
2897
|
+
declare module "@babylonjs/node-particle-editor/lines/lineWithFileButtonComponent" {
|
|
2898
|
+
import * as React from "react";
|
|
2899
|
+
interface ILineWithFileButtonComponentProps {
|
|
2900
|
+
title: string;
|
|
2901
|
+
closed?: boolean;
|
|
2902
|
+
multiple?: boolean;
|
|
2903
|
+
label: string;
|
|
2904
|
+
iconImage: any;
|
|
2905
|
+
onIconClick: (file: File) => void;
|
|
2906
|
+
accept: string;
|
|
2907
|
+
uploadName?: string;
|
|
2908
|
+
}
|
|
2909
|
+
export class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, {
|
|
2910
|
+
isExpanded: boolean;
|
|
2911
|
+
}> {
|
|
2912
|
+
private _uploadRef;
|
|
2913
|
+
constructor(props: ILineWithFileButtonComponentProps);
|
|
2914
|
+
onChange(evt: any): void;
|
|
2915
|
+
switchExpandedState(): void;
|
|
2916
|
+
|
|
2917
|
+
}
|
|
2918
|
+
export {};
|
|
2919
|
+
|
|
2920
|
+
}
|
|
2921
|
+
declare module "@babylonjs/node-particle-editor/lines/lineContainerComponent" {
|
|
2922
|
+
import * as React from "react";
|
|
2923
|
+
import { ISelectedLineContainer } from "@babylonjs/node-particle-editor/lines/iSelectedLineContainer";
|
|
2924
|
+
interface ILineContainerComponentProps {
|
|
2925
|
+
selection?: ISelectedLineContainer;
|
|
2926
|
+
title: string;
|
|
2927
|
+
children: any[] | any;
|
|
2928
|
+
closed?: boolean;
|
|
2929
|
+
}
|
|
2930
|
+
export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
|
|
2931
|
+
isExpanded: boolean;
|
|
2932
|
+
isHighlighted: boolean;
|
|
2933
|
+
}> {
|
|
2934
|
+
constructor(props: ILineContainerComponentProps);
|
|
2935
|
+
switchExpandedState(): void;
|
|
2936
|
+
|
|
2937
|
+
componentDidMount(): void;
|
|
2938
|
+
|
|
2939
|
+
}
|
|
2940
|
+
export {};
|
|
2941
|
+
|
|
2942
|
+
}
|
|
2943
|
+
declare module "@babylonjs/node-particle-editor/lines/inputArrowsComponent" {
|
|
2944
|
+
import * as React from "react";
|
|
2945
|
+
interface IInputArrowsComponentProps {
|
|
2946
|
+
incrementValue: (amount: number) => void;
|
|
2947
|
+
setDragging: (dragging: boolean) => void;
|
|
2948
|
+
}
|
|
2949
|
+
export class InputArrowsComponent extends React.Component<IInputArrowsComponentProps> {
|
|
2950
|
+
private _arrowsRef;
|
|
2951
|
+
private _drag;
|
|
2952
|
+
private _releaseListener;
|
|
2953
|
+
private _lockChangeListener;
|
|
2954
|
+
|
|
2955
|
+
}
|
|
2956
|
+
export {};
|
|
2957
|
+
|
|
2958
|
+
}
|
|
2959
|
+
declare module "@babylonjs/node-particle-editor/lines/indentedTextLineComponent" {
|
|
2960
|
+
import * as React from "react";
|
|
2961
|
+
interface IIndentedTextLineComponentProps {
|
|
2962
|
+
value?: string;
|
|
2963
|
+
color?: string;
|
|
2964
|
+
underline?: boolean;
|
|
2965
|
+
onLink?: () => void;
|
|
2966
|
+
url?: string;
|
|
2967
|
+
additionalClass?: string;
|
|
2968
|
+
}
|
|
2969
|
+
export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
|
|
2970
|
+
constructor(props: IIndentedTextLineComponentProps);
|
|
2971
|
+
onLink(): void;
|
|
2972
|
+
|
|
2973
|
+
|
|
2974
|
+
}
|
|
2975
|
+
export {};
|
|
2976
|
+
|
|
2977
|
+
}
|
|
2978
|
+
declare module "@babylonjs/node-particle-editor/lines/iconComponent" {
|
|
2979
|
+
import * as React from "react";
|
|
2980
|
+
interface IIconComponentProps {
|
|
2981
|
+
icon: string;
|
|
2982
|
+
label?: string;
|
|
2983
|
+
}
|
|
2984
|
+
export class IconComponent extends React.Component<IIconComponentProps> {
|
|
2985
|
+
|
|
2986
|
+
}
|
|
2987
|
+
export {};
|
|
2988
|
+
|
|
2989
|
+
}
|
|
2990
|
+
declare module "@babylonjs/node-particle-editor/lines/iconButtonLineComponent" {
|
|
2991
|
+
import * as React from "react";
|
|
2992
|
+
export interface IIconButtonLineComponentProps {
|
|
2993
|
+
icon: string;
|
|
2994
|
+
onClick: () => void;
|
|
2995
|
+
tooltip: string;
|
|
2996
|
+
active?: boolean;
|
|
2997
|
+
}
|
|
2998
|
+
export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
|
|
2999
|
+
constructor(props: IIconButtonLineComponentProps);
|
|
3000
|
+
|
|
3001
|
+
}
|
|
3002
|
+
|
|
3003
|
+
}
|
|
3004
|
+
declare module "@babylonjs/node-particle-editor/lines/iSelectedLineContainer" {
|
|
3005
|
+
export interface ISelectedLineContainer {
|
|
3006
|
+
selectedLineContainerTitles: Array<string>;
|
|
3007
|
+
selectedLineContainerTitlesNoFocus: Array<string>;
|
|
3008
|
+
}
|
|
3009
|
+
|
|
3010
|
+
}
|
|
3011
|
+
declare module "@babylonjs/node-particle-editor/lines/hexLineComponent" {
|
|
3012
|
+
import * as React from "react";
|
|
3013
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
3014
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
3015
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
3016
|
+
interface IHexLineComponentProps {
|
|
3017
|
+
label: string;
|
|
3018
|
+
target: any;
|
|
3019
|
+
propertyName: string;
|
|
3020
|
+
lockObject?: LockObject;
|
|
3021
|
+
onChange?: (newValue: number) => void;
|
|
3022
|
+
isInteger?: boolean;
|
|
3023
|
+
replaySourceReplacement?: string;
|
|
3024
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
3025
|
+
additionalClass?: string;
|
|
3026
|
+
step?: string;
|
|
3027
|
+
digits?: number;
|
|
3028
|
+
useEuler?: boolean;
|
|
3029
|
+
min?: number;
|
|
3030
|
+
icon?: string;
|
|
3031
|
+
iconLabel?: string;
|
|
3032
|
+
}
|
|
3033
|
+
export class HexLineComponent extends React.Component<IHexLineComponentProps, {
|
|
3034
|
+
value: string;
|
|
3035
|
+
}> {
|
|
3036
|
+
private _localChange;
|
|
3037
|
+
private _store;
|
|
3038
|
+
private _propertyChange;
|
|
3039
|
+
constructor(props: IHexLineComponentProps);
|
|
3040
|
+
componentWillUnmount(): void;
|
|
3041
|
+
shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
|
|
3042
|
+
value: string;
|
|
3043
|
+
}): boolean;
|
|
3044
|
+
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
|
|
3045
|
+
convertToHexString(valueString: string): string;
|
|
3046
|
+
updateValue(valueString: string, raisePropertyChanged: boolean): void;
|
|
3047
|
+
lock(): void;
|
|
3048
|
+
unlock(): void;
|
|
3049
|
+
|
|
3050
|
+
}
|
|
3051
|
+
export {};
|
|
3052
|
+
|
|
3053
|
+
}
|
|
3054
|
+
declare module "@babylonjs/node-particle-editor/lines/floatLineComponent" {
|
|
3055
|
+
import * as React from "react";
|
|
3056
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
3057
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
3058
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
3059
|
+
interface IFloatLineComponentProps {
|
|
3060
|
+
label: string;
|
|
3061
|
+
target: any;
|
|
3062
|
+
propertyName: string;
|
|
3063
|
+
lockObject: LockObject;
|
|
3064
|
+
onChange?: (newValue: number) => void;
|
|
3065
|
+
isInteger?: boolean;
|
|
3066
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
3067
|
+
additionalClass?: string;
|
|
3068
|
+
step?: string;
|
|
3069
|
+
digits?: number;
|
|
3070
|
+
useEuler?: boolean;
|
|
3071
|
+
min?: number;
|
|
3072
|
+
max?: number;
|
|
3073
|
+
smallUI?: boolean;
|
|
3074
|
+
onEnter?: (newValue: number) => void;
|
|
3075
|
+
icon?: string;
|
|
3076
|
+
iconLabel?: string;
|
|
3077
|
+
defaultValue?: number;
|
|
3078
|
+
arrows?: boolean;
|
|
3079
|
+
unit?: React.ReactNode;
|
|
3080
|
+
onDragStart?: (newValue: number) => void;
|
|
3081
|
+
onDragStop?: (newValue: number) => void;
|
|
3082
|
+
disabled?: boolean;
|
|
3083
|
+
}
|
|
3084
|
+
export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
|
|
3085
|
+
value: string;
|
|
3086
|
+
dragging: boolean;
|
|
3087
|
+
}> {
|
|
3088
|
+
private _localChange;
|
|
3089
|
+
private _store;
|
|
3090
|
+
constructor(props: IFloatLineComponentProps);
|
|
3091
|
+
componentWillUnmount(): void;
|
|
3092
|
+
getValueString(value: any, props: IFloatLineComponentProps): string;
|
|
3093
|
+
shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
|
|
3094
|
+
value: string;
|
|
3095
|
+
dragging: boolean;
|
|
3096
|
+
}): boolean;
|
|
3097
|
+
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
|
|
3098
|
+
updateValue(valueString: string): void;
|
|
3099
|
+
lock(): void;
|
|
3100
|
+
unlock(): void;
|
|
3101
|
+
incrementValue(amount: number, processStep?: boolean): void;
|
|
3102
|
+
onKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void;
|
|
3103
|
+
onCopyClick(): void;
|
|
3104
|
+
|
|
3105
|
+
}
|
|
3106
|
+
export {};
|
|
3107
|
+
|
|
3108
|
+
}
|
|
3109
|
+
declare module "@babylonjs/node-particle-editor/lines/fileMultipleButtonLineComponent" {
|
|
3110
|
+
import * as React from "react";
|
|
3111
|
+
interface IFileMultipleButtonLineComponentProps {
|
|
3112
|
+
label: string;
|
|
3113
|
+
onClick: (event: any) => void;
|
|
3114
|
+
accept: string;
|
|
3115
|
+
icon?: string;
|
|
3116
|
+
iconLabel?: string;
|
|
3117
|
+
}
|
|
3118
|
+
export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
|
|
3119
|
+
private static _IdGenerator;
|
|
3120
|
+
private _id;
|
|
3121
|
+
private _uploadInputRef;
|
|
3122
|
+
constructor(props: IFileMultipleButtonLineComponentProps);
|
|
3123
|
+
onChange(evt: any): void;
|
|
3124
|
+
|
|
3125
|
+
}
|
|
3126
|
+
export {};
|
|
3127
|
+
|
|
3128
|
+
}
|
|
3129
|
+
declare module "@babylonjs/node-particle-editor/lines/fileButtonLineComponent" {
|
|
3130
|
+
import * as React from "react";
|
|
3131
|
+
interface IFileButtonLineProps {
|
|
3132
|
+
label: string;
|
|
3133
|
+
onClick: (file: File) => void;
|
|
3134
|
+
accept: string;
|
|
3135
|
+
icon?: string;
|
|
3136
|
+
iconLabel?: string;
|
|
3137
|
+
}
|
|
3138
|
+
export class FileButtonLine extends React.Component<IFileButtonLineProps> {
|
|
3139
|
+
private static _IdGenerator;
|
|
3140
|
+
private _id;
|
|
3141
|
+
private _uploadInputRef;
|
|
3142
|
+
constructor(props: IFileButtonLineProps);
|
|
3143
|
+
onChange(evt: any): void;
|
|
3144
|
+
|
|
3145
|
+
|
|
3146
|
+
|
|
3147
|
+
}
|
|
3148
|
+
export {};
|
|
3149
|
+
|
|
3150
|
+
}
|
|
3151
|
+
declare module "@babylonjs/node-particle-editor/lines/draggableLineWithButtonComponent" {
|
|
3152
|
+
import * as React from "react";
|
|
3153
|
+
export interface IDraggableLineWithButtonComponent {
|
|
3154
|
+
format: string;
|
|
3155
|
+
data: string;
|
|
3156
|
+
tooltip: string;
|
|
3157
|
+
iconImage: any;
|
|
3158
|
+
onIconClick: (value: string) => void;
|
|
3159
|
+
iconTitle: string;
|
|
3160
|
+
lenSuffixToRemove?: number;
|
|
3161
|
+
}
|
|
3162
|
+
export class DraggableLineWithButtonComponent extends React.Component<IDraggableLineWithButtonComponent> {
|
|
3163
|
+
constructor(props: IDraggableLineWithButtonComponent);
|
|
3164
|
+
|
|
3165
|
+
}
|
|
3166
|
+
|
|
3167
|
+
}
|
|
3168
|
+
declare module "@babylonjs/node-particle-editor/lines/draggableLineComponent" {
|
|
3169
|
+
import * as React from "react";
|
|
3170
|
+
export interface IButtonLineComponentProps {
|
|
3171
|
+
format: string;
|
|
3172
|
+
data: string;
|
|
3173
|
+
tooltip: string;
|
|
3174
|
+
}
|
|
3175
|
+
export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
|
|
3176
|
+
constructor(props: IButtonLineComponentProps);
|
|
3177
|
+
|
|
3178
|
+
}
|
|
3179
|
+
|
|
3180
|
+
}
|
|
3181
|
+
declare module "@babylonjs/node-particle-editor/lines/colorPickerComponent" {
|
|
3182
|
+
import * as React from "react";
|
|
3183
|
+
import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
|
|
3184
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
3185
|
+
export interface IColorPickerLineProps {
|
|
3186
|
+
value: Color4 | Color3;
|
|
3187
|
+
linearHint?: boolean;
|
|
3188
|
+
onColorChanged: (newOne: string) => void;
|
|
3189
|
+
icon?: string;
|
|
3190
|
+
iconLabel?: string;
|
|
3191
|
+
shouldPopRight?: boolean;
|
|
3192
|
+
lockObject?: LockObject;
|
|
3193
|
+
}
|
|
3194
|
+
interface IColorPickerComponentState {
|
|
3195
|
+
pickerEnabled: boolean;
|
|
3196
|
+
color: Color3 | Color4;
|
|
3197
|
+
hex: string;
|
|
3198
|
+
}
|
|
3199
|
+
export class ColorPickerLine extends React.Component<IColorPickerLineProps, IColorPickerComponentState> {
|
|
3200
|
+
private _floatRef;
|
|
3201
|
+
private _floatHostRef;
|
|
3202
|
+
constructor(props: IColorPickerLineProps);
|
|
3203
|
+
syncPositions(): void;
|
|
3204
|
+
shouldComponentUpdate(nextProps: IColorPickerLineProps, nextState: IColorPickerComponentState): boolean;
|
|
3205
|
+
getHexString(props?: Readonly<IColorPickerLineProps>): string;
|
|
3206
|
+
componentDidUpdate(): void;
|
|
3207
|
+
componentDidMount(): void;
|
|
3208
|
+
|
|
3209
|
+
}
|
|
3210
|
+
export {};
|
|
3211
|
+
|
|
3212
|
+
}
|
|
3213
|
+
declare module "@babylonjs/node-particle-editor/lines/colorLineComponent" {
|
|
3214
|
+
import * as React from "react";
|
|
3215
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
3216
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color";
|
|
3217
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
3218
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
3219
|
+
export interface IColorLineProps {
|
|
3220
|
+
label: string;
|
|
3221
|
+
target?: any;
|
|
3222
|
+
propertyName: string;
|
|
3223
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
3224
|
+
onChange?: () => void;
|
|
3225
|
+
isLinear?: boolean;
|
|
3226
|
+
icon?: string;
|
|
3227
|
+
iconLabel?: string;
|
|
3228
|
+
disableAlpha?: boolean;
|
|
3229
|
+
lockObject: LockObject;
|
|
3230
|
+
}
|
|
3231
|
+
interface IColorLineComponentState {
|
|
3232
|
+
isExpanded: boolean;
|
|
3233
|
+
color: Color4;
|
|
3234
|
+
}
|
|
3235
|
+
export class ColorLine extends React.Component<IColorLineProps, IColorLineComponentState> {
|
|
3236
|
+
constructor(props: IColorLineProps);
|
|
3237
|
+
shouldComponentUpdate(nextProps: IColorLineProps, nextState: IColorLineComponentState): boolean;
|
|
3238
|
+
getValue(props?: Readonly<IColorLineProps>): Color4;
|
|
3239
|
+
setColorFromString(colorString: string): void;
|
|
3240
|
+
setColor(newColor: Color4): void;
|
|
3241
|
+
switchExpandState(): void;
|
|
3242
|
+
updateStateR(value: number): void;
|
|
3243
|
+
updateStateG(value: number): void;
|
|
3244
|
+
updateStateB(value: number): void;
|
|
3245
|
+
updateStateA(value: number): void;
|
|
3246
|
+
private _convertToColor;
|
|
3247
|
+
private _toColor3;
|
|
3248
|
+
onCopyClick(): void;
|
|
3249
|
+
|
|
3250
|
+
|
|
3251
|
+
|
|
3252
|
+
}
|
|
3253
|
+
export {};
|
|
3254
|
+
|
|
3255
|
+
}
|
|
3256
|
+
declare module "@babylonjs/node-particle-editor/lines/color4LineComponent" {
|
|
3257
|
+
import * as React from "react";
|
|
3258
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
3259
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
3260
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
3261
|
+
export interface IColor4LineComponentProps {
|
|
3262
|
+
label: string;
|
|
3263
|
+
target?: any;
|
|
3264
|
+
propertyName: string;
|
|
3265
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
3266
|
+
onChange?: () => void;
|
|
3267
|
+
isLinear?: boolean;
|
|
3268
|
+
icon?: string;
|
|
3269
|
+
iconLabel?: string;
|
|
3270
|
+
lockObject: LockObject;
|
|
3271
|
+
}
|
|
3272
|
+
export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
|
|
3273
|
+
|
|
3274
|
+
}
|
|
3275
|
+
|
|
3276
|
+
}
|
|
3277
|
+
declare module "@babylonjs/node-particle-editor/lines/color3LineComponent" {
|
|
3278
|
+
import * as React from "react";
|
|
3279
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
3280
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
3281
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
3282
|
+
export interface IColor3LineComponentProps {
|
|
3283
|
+
label: string;
|
|
3284
|
+
target: any;
|
|
3285
|
+
propertyName: string;
|
|
3286
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
3287
|
+
isLinear?: boolean;
|
|
3288
|
+
icon?: string;
|
|
3289
|
+
lockObject: LockObject;
|
|
3290
|
+
iconLabel?: string;
|
|
3291
|
+
onChange?: () => void;
|
|
3292
|
+
}
|
|
3293
|
+
export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
|
|
3294
|
+
|
|
3295
|
+
}
|
|
3296
|
+
|
|
3297
|
+
}
|
|
3298
|
+
declare module "@babylonjs/node-particle-editor/lines/checkBoxLineComponent" {
|
|
3299
|
+
import * as React from "react";
|
|
3300
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
3301
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
3302
|
+
|
|
3303
|
+
export interface ICheckBoxLineComponentProps {
|
|
3304
|
+
label?: string;
|
|
3305
|
+
target?: any;
|
|
3306
|
+
propertyName?: string;
|
|
3307
|
+
isSelected?: boolean | (() => boolean);
|
|
3308
|
+
onSelect?: (value: boolean) => void;
|
|
3309
|
+
onValueChanged?: () => void;
|
|
3310
|
+
onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
|
|
3311
|
+
disabled?: boolean;
|
|
3312
|
+
icon?: string;
|
|
3313
|
+
iconLabel?: string;
|
|
3314
|
+
faIcons?: {
|
|
3315
|
+
enabled: any;
|
|
3316
|
+
disabled: any;
|
|
3317
|
+
};
|
|
3318
|
+
large?: boolean;
|
|
3319
|
+
}
|
|
3320
|
+
export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
|
|
3321
|
+
isSelected: boolean;
|
|
3322
|
+
isDisabled?: boolean;
|
|
3323
|
+
isConflict: boolean;
|
|
3324
|
+
}> {
|
|
3325
|
+
private _localChange;
|
|
3326
|
+
constructor(props: ICheckBoxLineComponentProps);
|
|
3327
|
+
shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
|
|
3328
|
+
isSelected: boolean;
|
|
3329
|
+
isDisabled: boolean;
|
|
3330
|
+
isConflict: boolean;
|
|
3331
|
+
}): boolean;
|
|
3332
|
+
onChange(): void;
|
|
3333
|
+
onCopyClick(): void;
|
|
3334
|
+
|
|
3335
|
+
|
|
3336
|
+
|
|
3337
|
+
}
|
|
3338
|
+
|
|
3339
|
+
}
|
|
3340
|
+
declare module "@babylonjs/node-particle-editor/lines/buttonLineComponent" {
|
|
3341
|
+
import * as React from "react";
|
|
3342
|
+
export interface IButtonLineComponentProps {
|
|
3343
|
+
label: string;
|
|
3344
|
+
onClick: () => void;
|
|
3345
|
+
icon?: string;
|
|
3346
|
+
iconLabel?: string;
|
|
3347
|
+
isDisabled?: boolean;
|
|
3348
|
+
}
|
|
3349
|
+
export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
|
|
3350
|
+
constructor(props: IButtonLineComponentProps);
|
|
3351
|
+
|
|
3352
|
+
|
|
3353
|
+
|
|
3354
|
+
}
|
|
3355
|
+
|
|
3356
|
+
}
|
|
3357
|
+
declare module "@babylonjs/node-particle-editor/lines/booleanLineComponent" {
|
|
3358
|
+
import * as React from "react";
|
|
3359
|
+
export interface IBooleanLineComponentProps {
|
|
3360
|
+
label: string;
|
|
3361
|
+
value: boolean;
|
|
3362
|
+
icon?: string;
|
|
3363
|
+
iconLabel?: string;
|
|
3364
|
+
}
|
|
3365
|
+
export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
|
|
3366
|
+
constructor(props: IBooleanLineComponentProps);
|
|
3367
|
+
|
|
3368
|
+
}
|
|
3369
|
+
|
|
3370
|
+
}
|
|
3371
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/textarea" {
|
|
3372
|
+
|
|
3373
|
+
import { FunctionComponent } from "react";
|
|
3374
|
+
import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3375
|
+
export type TextareaProps = BaseComponentProps<string> & {
|
|
3376
|
+
placeholder?: string;
|
|
3377
|
+
};
|
|
3378
|
+
/**
|
|
3379
|
+
* This is a texarea box that stops propagation of change/keydown events
|
|
3380
|
+
* @param props
|
|
3381
|
+
* @returns
|
|
3382
|
+
*/
|
|
3383
|
+
export const Textarea: FunctionComponent<any>;
|
|
3384
|
+
|
|
3385
|
+
}
|
|
3386
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/syncedSlider" {
|
|
3387
|
+
import { FunctionComponent } from "react";
|
|
3388
|
+
import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3389
|
+
export type SyncedSliderProps = BaseComponentProps<number> & {
|
|
3390
|
+
min?: number;
|
|
3391
|
+
max?: number;
|
|
3392
|
+
step?: number;
|
|
3393
|
+
};
|
|
3394
|
+
/**
|
|
3395
|
+
* Component which synchronizes a slider and an input field, allowing the user to change a value using either control
|
|
3396
|
+
* @param props
|
|
3397
|
+
* @returns SyncedSlider component
|
|
3398
|
+
*/
|
|
3399
|
+
export const SyncedSliderInput: FunctionComponent<SyncedSliderProps>;
|
|
3400
|
+
|
|
3401
|
+
}
|
|
3402
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/switch" {
|
|
3403
|
+
import { FunctionComponent } from "react";
|
|
3404
|
+
import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3405
|
+
export type SwitchProps = BaseComponentProps<boolean>;
|
|
3406
|
+
/**
|
|
3407
|
+
* This is a primitive fluent boolean switch component whose only knowledge is the shared styling across all tools
|
|
3408
|
+
* @param props
|
|
3409
|
+
* @returns Switch component
|
|
3410
|
+
*/
|
|
3411
|
+
export const Switch: FunctionComponent<SwitchProps>;
|
|
3412
|
+
|
|
3413
|
+
}
|
|
3414
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/spinButton" {
|
|
3415
|
+
import { FunctionComponent } from "react";
|
|
3416
|
+
import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3417
|
+
export type SpinButtonProps = BaseComponentProps<number>;
|
|
3418
|
+
export const SpinButton: FunctionComponent<SpinButtonProps>;
|
|
3419
|
+
|
|
3420
|
+
}
|
|
3421
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/link" {
|
|
3422
|
+
|
|
3423
|
+
|
|
3424
|
+
}
|
|
3425
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/input" {
|
|
3426
|
+
import { FunctionComponent } from "react";
|
|
3427
|
+
import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3428
|
+
export type InputProps<T extends string | number> = BaseComponentProps<T> & {
|
|
3429
|
+
step?: number;
|
|
3430
|
+
placeholder?: string;
|
|
3431
|
+
min?: number;
|
|
3432
|
+
max?: number;
|
|
3433
|
+
};
|
|
3434
|
+
/**
|
|
3435
|
+
* This is an input text box that stops propagation of change events and sets its width based on the type of input (text or number)
|
|
3436
|
+
* @param props
|
|
3437
|
+
* @returns
|
|
3438
|
+
*/
|
|
3439
|
+
export const Input: FunctionComponent<InputProps<string | number>>;
|
|
3440
|
+
|
|
3441
|
+
}
|
|
3442
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/dropdown" {
|
|
3443
|
+
import { FunctionComponent } from "react";
|
|
3444
|
+
import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3445
|
+
export type AcceptedDropdownValue = string | number;
|
|
3446
|
+
export type DropdownOption = {
|
|
3447
|
+
/**
|
|
3448
|
+
* Defines the visible part of the option
|
|
3449
|
+
*/
|
|
3450
|
+
label: string;
|
|
3451
|
+
/**
|
|
3452
|
+
* Defines the value part of the option
|
|
3453
|
+
*/
|
|
3454
|
+
value: AcceptedDropdownValue;
|
|
3455
|
+
};
|
|
3456
|
+
export type DropdownProps = BaseComponentProps<AcceptedDropdownValue | undefined> & {
|
|
3457
|
+
options: DropdownOption[];
|
|
3458
|
+
includeUndefined?: boolean;
|
|
3459
|
+
};
|
|
3460
|
+
/**
|
|
3461
|
+
* Renders a fluent UI dropdown component for the options passed in, and an additional 'Not Defined' option if includeUndefined is set to true
|
|
3462
|
+
* @param props
|
|
3463
|
+
* @returns dropdown component
|
|
3464
|
+
*/
|
|
3465
|
+
export const Dropdown: FunctionComponent<DropdownProps>;
|
|
3466
|
+
|
|
3467
|
+
}
|
|
3468
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/colorPicker" {
|
|
3469
|
+
import { FunctionComponent } from "react";
|
|
3470
|
+
import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
|
|
3471
|
+
import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3472
|
+
export type ColorPickerProps<C extends Color3 | Color4> = {
|
|
3473
|
+
isLinearMode?: boolean;
|
|
3474
|
+
} & BaseComponentProps<C>;
|
|
3475
|
+
export const ColorPickerPopup: FunctionComponent<ColorPickerProps<Color3 | Color4>>;
|
|
3476
|
+
type HsvKey = "h" | "s" | "v";
|
|
3477
|
+
export type InputHexProps = BaseComponentProps<Color3 | Color4> & {
|
|
3478
|
+
label?: string;
|
|
3479
|
+
linearHex?: boolean;
|
|
3480
|
+
isLinearMode?: boolean;
|
|
3481
|
+
};
|
|
3482
|
+
/**
|
|
3483
|
+
* Component which displays the passed in color's HEX value, either in linearSpace (if linearHex is true) or in gamma space
|
|
3484
|
+
* When the hex color is changed by user, component calculates the new Color3/4 value and calls onChange
|
|
3485
|
+
*
|
|
3486
|
+
* Component uses the isLinearMode boolean to display an informative label regarding linear / gamma space
|
|
3487
|
+
* @param props - The properties for the InputHexField component.
|
|
3488
|
+
* @returns
|
|
3489
|
+
*/
|
|
3490
|
+
export const InputHexField: FunctionComponent<InputHexProps>;
|
|
3491
|
+
type InputHsvFieldProps = {
|
|
3492
|
+
color: Color3 | Color4;
|
|
3493
|
+
label: string;
|
|
3494
|
+
hsvKey: HsvKey;
|
|
3495
|
+
onChange: (color: Color3 | Color4) => void;
|
|
3496
|
+
max: number;
|
|
3497
|
+
scale?: number;
|
|
3498
|
+
};
|
|
3499
|
+
/**
|
|
3500
|
+
* In the HSV (Hue, Saturation, Value) color model, Hue (H) ranges from 0 to 360 degrees, representing the color's position on the color wheel.
|
|
3501
|
+
* Saturation (S) ranges from 0 to 100%, indicating the intensity or purity of the color, with 0 being shades of gray and 100 being a fully saturated color.
|
|
3502
|
+
* Value (V) ranges from 0 to 100%, representing the brightness of the color, with 0 being black and 100 being the brightest.
|
|
3503
|
+
* @param props - The properties for the InputHsvField component.
|
|
3504
|
+
*/
|
|
3505
|
+
export const InputHsvField: FunctionComponent<InputHsvFieldProps>;
|
|
3506
|
+
export {};
|
|
3507
|
+
|
|
3508
|
+
}
|
|
3509
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/checkbox" {
|
|
3510
|
+
import { FunctionComponent } from "react";
|
|
3511
|
+
import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3512
|
+
export type CheckboxProps = BaseComponentProps<boolean>;
|
|
3513
|
+
/**
|
|
3514
|
+
* This is a primitive fluent checkbox that can both read and write checked state
|
|
3515
|
+
* @param props
|
|
3516
|
+
* @returns Checkbox component
|
|
3517
|
+
*/
|
|
3518
|
+
export const Checkbox: FunctionComponent<CheckboxProps>;
|
|
3519
|
+
|
|
3520
|
+
}
|
|
3521
|
+
declare module "@babylonjs/node-particle-editor/fluent/primitives/accordion" {
|
|
3522
|
+
import { FunctionComponent, PropsWithChildren } from "react";
|
|
3523
|
+
export type AccordionSectionProps = {
|
|
3524
|
+
title: string;
|
|
3525
|
+
};
|
|
3526
|
+
export const AccordionSection: FunctionComponent<PropsWithChildren<AccordionSectionProps>>;
|
|
3527
|
+
export const Accordion: FunctionComponent<PropsWithChildren>;
|
|
3528
|
+
|
|
3529
|
+
}
|
|
3530
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/vectorPropertyLine" {
|
|
3531
|
+
import { FunctionComponent } from "react";
|
|
3532
|
+
import { BaseComponentProps, PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3533
|
+
import { Vector4 } from "@babylonjs/core/Maths/math.vector";
|
|
3534
|
+
import { Vector3 } from "@babylonjs/core/Maths/math.vector";
|
|
3535
|
+
export type VectorPropertyLineProps<V extends Vector3 | Vector4> = BaseComponentProps<V> & PropertyLineProps & {
|
|
3536
|
+
/**
|
|
3537
|
+
* If passed, all sliders will use this for the min value
|
|
3538
|
+
*/
|
|
3539
|
+
min?: number;
|
|
3540
|
+
/**
|
|
3541
|
+
* If passed, all sliders will use this for the max value
|
|
3542
|
+
*/
|
|
3543
|
+
max?: number;
|
|
3544
|
+
/**
|
|
3545
|
+
* If passed, the UX will use the conversion functions to display/update values
|
|
3546
|
+
*/
|
|
3547
|
+
valueConverter?: {
|
|
3548
|
+
/**
|
|
3549
|
+
* Will call from(val) before displaying in the UX
|
|
3550
|
+
*/
|
|
3551
|
+
from: (val: number) => number;
|
|
3552
|
+
/**
|
|
3553
|
+
* Will call to(val) before calling onChange
|
|
3554
|
+
*/
|
|
3555
|
+
to: (val: number) => number;
|
|
3556
|
+
};
|
|
3557
|
+
};
|
|
3558
|
+
type RotationVectorPropertyLineProps = VectorPropertyLineProps<Vector3> & {
|
|
3559
|
+
/**
|
|
3560
|
+
* Display angles as degrees instead of radians
|
|
3561
|
+
*/
|
|
3562
|
+
useDegrees?: boolean;
|
|
3563
|
+
};
|
|
3564
|
+
export const RotationVectorPropertyLine: FunctionComponent<RotationVectorPropertyLineProps>;
|
|
3565
|
+
export const Vector3PropertyLine: FunctionComponent<VectorPropertyLineProps<Vector3>>;
|
|
3566
|
+
export const Vector4PropertyLine: FunctionComponent<VectorPropertyLineProps<Vector4>>;
|
|
3567
|
+
export {};
|
|
3568
|
+
|
|
3569
|
+
}
|
|
3570
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/textPropertyLine" {
|
|
3571
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3572
|
+
import { FunctionComponent } from "react";
|
|
3573
|
+
type TextProps = {
|
|
3574
|
+
value: string;
|
|
3575
|
+
tooltip?: string;
|
|
3576
|
+
};
|
|
3577
|
+
/**
|
|
3578
|
+
* Wraps text in a property line
|
|
3579
|
+
* @param props - PropertyLineProps and TextProps
|
|
3580
|
+
* @returns property-line wrapped text
|
|
3581
|
+
*/
|
|
3582
|
+
export const TextPropertyLine: FunctionComponent<PropertyLineProps & TextProps>;
|
|
3583
|
+
export {};
|
|
3584
|
+
|
|
3585
|
+
}
|
|
3586
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/syncedSliderLine" {
|
|
3587
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3588
|
+
import { SyncedSliderProps } from "@babylonjs/node-particle-editor/fluent/primitives/syncedSlider";
|
|
3589
|
+
import { FunctionComponent } from "react";
|
|
3590
|
+
type SyncedSliderLineProps = SyncedSliderProps & PropertyLineProps;
|
|
3591
|
+
/**
|
|
3592
|
+
* Renders a simple wrapper around the SyncedSliderInput
|
|
3593
|
+
* @param props
|
|
3594
|
+
* @returns
|
|
3595
|
+
*/
|
|
3596
|
+
export const SyncedSliderLine: FunctionComponent<SyncedSliderLineProps>;
|
|
3597
|
+
export {};
|
|
3598
|
+
|
|
3599
|
+
}
|
|
3600
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/switchPropertyLine" {
|
|
3601
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3602
|
+
import { FunctionComponent } from "react";
|
|
3603
|
+
import { SwitchProps } from "@babylonjs/node-particle-editor/fluent/primitives/switch";
|
|
3604
|
+
/**
|
|
3605
|
+
* Wraps a switch in a property line
|
|
3606
|
+
* @param props - The properties for the switch and property line
|
|
3607
|
+
* @returns A React element representing the property line with a switch
|
|
3608
|
+
*/
|
|
3609
|
+
export const SwitchPropertyLine: FunctionComponent<PropertyLineProps & SwitchProps>;
|
|
3610
|
+
|
|
3611
|
+
}
|
|
3612
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/propertyLine" {
|
|
3613
|
+
import { FunctionComponent } from "react";
|
|
3614
|
+
export type PropertyLineProps = {
|
|
3615
|
+
/**
|
|
3616
|
+
* The name of the property to display in the property line.
|
|
3617
|
+
*/
|
|
3618
|
+
label: string;
|
|
3619
|
+
/**
|
|
3620
|
+
* Optional description for the property, shown on hover of the info icon
|
|
3621
|
+
*/
|
|
3622
|
+
description?: string;
|
|
3623
|
+
/**
|
|
3624
|
+
* Optional function returning a string to copy to clipboard.
|
|
3625
|
+
*/
|
|
3626
|
+
onCopy?: () => string;
|
|
3627
|
+
/**
|
|
3628
|
+
* If supplied, an 'expand' icon will be shown which, when clicked, renders this component within the property line.
|
|
3629
|
+
*/
|
|
3630
|
+
expandedContent?: JSX.Element;
|
|
3631
|
+
/**
|
|
3632
|
+
* Link to the documentation for this property, available from the info icon either linked from the description (if provided) or defalt 'docs' text
|
|
3633
|
+
*/
|
|
3634
|
+
docLink?: string;
|
|
3635
|
+
};
|
|
3636
|
+
export const LineContainer: import("react").ForwardRefExoticComponent<{
|
|
3637
|
+
children?: import("react").ReactNode | undefined;
|
|
3638
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
3639
|
+
export type BaseComponentProps<T> = {
|
|
3640
|
+
/**
|
|
3641
|
+
* The value of the property to be displayed and modified.
|
|
3642
|
+
*/
|
|
3643
|
+
value: T;
|
|
3644
|
+
/**
|
|
3645
|
+
* Callback function to handle changes to the value
|
|
3646
|
+
*/
|
|
3647
|
+
onChange: (value: T) => void;
|
|
3648
|
+
/**
|
|
3649
|
+
* Optional flag to disable the component, preventing any interaction.
|
|
3650
|
+
*/
|
|
3651
|
+
disabled?: boolean;
|
|
3652
|
+
/**
|
|
3653
|
+
* Optional class name to apply custom styles to the component.
|
|
3654
|
+
*/
|
|
3655
|
+
className?: string;
|
|
3656
|
+
};
|
|
3657
|
+
/**
|
|
3658
|
+
* A reusable component that renders a property line with a label and child content, and an optional description, copy button, and expandable section.
|
|
3659
|
+
*
|
|
3660
|
+
* @param props - The properties for the PropertyLine component.
|
|
3661
|
+
* @returns A React element representing the property line.
|
|
3662
|
+
*
|
|
3663
|
+
*/
|
|
3664
|
+
export const PropertyLine: import("react").ForwardRefExoticComponent<PropertyLineProps & {
|
|
3665
|
+
children?: import("react").ReactNode | undefined;
|
|
3666
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
3667
|
+
export const PlaceholderPropertyLine: FunctionComponent<BaseComponentProps<any> & PropertyLineProps>;
|
|
3668
|
+
|
|
3669
|
+
}
|
|
3670
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/linkPropertyLine" {
|
|
3671
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3672
|
+
import { FunctionComponent } from "react";
|
|
3673
|
+
type LinkProps = {
|
|
3674
|
+
value: string;
|
|
3675
|
+
tooltip?: string;
|
|
3676
|
+
onLink?: () => void;
|
|
3677
|
+
url?: string;
|
|
3678
|
+
};
|
|
3679
|
+
/**
|
|
3680
|
+
* Wraps a link in a property line
|
|
3681
|
+
* @param props - PropertyLineProps and LinkProps
|
|
3682
|
+
* @returns property-line wrapped link
|
|
3683
|
+
*/
|
|
3684
|
+
export const LinkPropertyLine: FunctionComponent<PropertyLineProps & LinkProps>;
|
|
3685
|
+
export {};
|
|
3686
|
+
|
|
3687
|
+
}
|
|
3688
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/inputPropertyLine" {
|
|
3689
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3690
|
+
import { FunctionComponent } from "react";
|
|
3691
|
+
import { InputProps } from "@babylonjs/node-particle-editor/fluent/primitives/input";
|
|
3692
|
+
export const TextInputPropertyLine: FunctionComponent<InputProps<string> & PropertyLineProps>;
|
|
3693
|
+
export const FloatInputPropertyLine: FunctionComponent<InputProps<number> & PropertyLineProps>;
|
|
3694
|
+
|
|
3695
|
+
}
|
|
3696
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/hexLineComponent" {
|
|
3697
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3698
|
+
import { FunctionComponent } from "react";
|
|
3699
|
+
import { InputHexProps } from "@babylonjs/node-particle-editor/fluent/primitives/colorPicker";
|
|
3700
|
+
/**
|
|
3701
|
+
* Wraps a hex input in a property line
|
|
3702
|
+
* @param props - PropertyLineProps and InputHexProps
|
|
3703
|
+
* @returns property-line wrapped input hex component
|
|
3704
|
+
*/
|
|
3705
|
+
export const HexPropertyLine: FunctionComponent<InputHexProps & PropertyLineProps>;
|
|
3706
|
+
|
|
3707
|
+
}
|
|
3708
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/fluentToolWrapper" {
|
|
3709
|
+
import { PropsWithChildren, FunctionComponent } from "react";
|
|
3710
|
+
|
|
3711
|
+
export type ToolHostProps = {
|
|
3712
|
+
/**
|
|
3713
|
+
* Allows host to pass in a theme
|
|
3714
|
+
*/
|
|
3715
|
+
customTheme?: any;
|
|
3716
|
+
/**
|
|
3717
|
+
* Can be set to true to disable the copy button in the tool's property lines. Default is false (copy enabled)
|
|
3718
|
+
*/
|
|
3719
|
+
disableCopy?: boolean;
|
|
3720
|
+
};
|
|
3721
|
+
export const ToolContext: import("react").Context<{
|
|
3722
|
+
readonly useFluent: boolean;
|
|
3723
|
+
readonly disableCopy: boolean;
|
|
3724
|
+
}>;
|
|
3725
|
+
/**
|
|
3726
|
+
* For tools which are ready to move over the fluent, wrap the root of the tool (or the panel which you want fluentized) with this component
|
|
3727
|
+
* Today we will only enable fluent if the URL has the `newUX` query parameter is truthy
|
|
3728
|
+
* @param props
|
|
3729
|
+
* @returns
|
|
3730
|
+
*/
|
|
3731
|
+
export const FluentToolWrapper: FunctionComponent<PropsWithChildren<ToolHostProps>>;
|
|
3732
|
+
|
|
3733
|
+
}
|
|
3734
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/fileUploadLine" {
|
|
3735
|
+
import { FunctionComponent } from "react";
|
|
3736
|
+
import { ButtonLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/buttonLine";
|
|
3737
|
+
type FileUploadLineProps = Omit<ButtonLineProps, "onClick"> & {
|
|
3738
|
+
onClick: (file: File) => void;
|
|
3739
|
+
accept: string;
|
|
3740
|
+
};
|
|
3741
|
+
export const FileUploadLine: FunctionComponent<FileUploadLineProps>;
|
|
3742
|
+
export {};
|
|
3743
|
+
|
|
3744
|
+
}
|
|
3745
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/dropdownPropertyLine" {
|
|
3746
|
+
import { DropdownProps } from "@babylonjs/node-particle-editor/fluent/primitives/dropdown";
|
|
3747
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3748
|
+
import { FunctionComponent } from "react";
|
|
3749
|
+
/**
|
|
3750
|
+
* Wraps a dropdown in a property line
|
|
3751
|
+
* @param props - PropertyLineProps and DropdownProps
|
|
3752
|
+
* @returns property-line wrapped dropdown
|
|
3753
|
+
*/
|
|
3754
|
+
export const DropdownPropertyLine: FunctionComponent<PropertyLineProps & DropdownProps>;
|
|
3755
|
+
|
|
3756
|
+
}
|
|
3757
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/colorPropertyLine" {
|
|
3758
|
+
import { FunctionComponent } from "react";
|
|
3759
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3760
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color";
|
|
3761
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color";
|
|
3762
|
+
import { ColorPickerProps } from "@babylonjs/node-particle-editor/fluent/primitives/colorPicker";
|
|
3763
|
+
export type ColorPropertyLineProps = ColorPickerProps<Color3 | Color4> & PropertyLineProps;
|
|
3764
|
+
export const Color3PropertyLine: FunctionComponent<ColorPickerProps<Color3> & PropertyLineProps>;
|
|
3765
|
+
export const Color4PropertyLine: FunctionComponent<ColorPickerProps<Color4> & PropertyLineProps>;
|
|
3766
|
+
|
|
3767
|
+
}
|
|
3768
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/checkboxPropertyLine" {
|
|
3769
|
+
import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
|
|
3770
|
+
import { FunctionComponent } from "react";
|
|
3771
|
+
import { CheckboxProps } from "@babylonjs/node-particle-editor/fluent/primitives/checkbox";
|
|
3772
|
+
/**
|
|
3773
|
+
* Wraps a checkbox in a property line
|
|
3774
|
+
* @param props - PropertyLineProps and CheckboxProps
|
|
3775
|
+
* @returns property-line wrapped checkbox
|
|
3776
|
+
*/
|
|
3777
|
+
export const CheckboxPropertyLine: FunctionComponent<PropertyLineProps & CheckboxProps>;
|
|
3778
|
+
|
|
3779
|
+
}
|
|
3780
|
+
declare module "@babylonjs/node-particle-editor/fluent/hoc/buttonLine" {
|
|
3781
|
+
import { FunctionComponent } from "react";
|
|
3782
|
+
export type ButtonLineProps = {
|
|
3783
|
+
label: string;
|
|
3784
|
+
onClick: () => void;
|
|
3785
|
+
disabled?: boolean;
|
|
3786
|
+
icon?: string;
|
|
3787
|
+
title?: string;
|
|
3788
|
+
};
|
|
3789
|
+
/**
|
|
3790
|
+
* Wraps a button with a label in a line container
|
|
3791
|
+
* @param props Button props plus a label
|
|
3792
|
+
* @returns A button inside a line
|
|
3793
|
+
*/
|
|
3794
|
+
export const ButtonLine: FunctionComponent<ButtonLineProps>;
|
|
3795
|
+
|
|
3796
|
+
}
|
|
3797
|
+
declare module "@babylonjs/node-particle-editor/components/classNames" {
|
|
3798
|
+
export function ClassNames(names: any, styleObject: any): string;
|
|
3799
|
+
export function JoinClassNames(styleObject: any, ...names: string[]): string;
|
|
3800
|
+
|
|
3801
|
+
}
|
|
3802
|
+
declare module "@babylonjs/node-particle-editor/components/Toggle" {
|
|
3803
|
+
export type ToggleProps = {
|
|
3804
|
+
toggled: "on" | "mixed" | "off";
|
|
3805
|
+
onToggle?: () => void;
|
|
3806
|
+
padded?: boolean;
|
|
3807
|
+
color?: "dark" | "light";
|
|
3808
|
+
};
|
|
3809
|
+
export const Toggle: React.FC<ToggleProps>;
|
|
3810
|
+
|
|
3811
|
+
}
|
|
3812
|
+
declare module "@babylonjs/node-particle-editor/components/TextInputWithSubmit" {
|
|
3813
|
+
export interface ITextInputProps {
|
|
3814
|
+
label?: string;
|
|
3815
|
+
placeholder?: string;
|
|
3816
|
+
submitValue: (newValue: string) => void;
|
|
3817
|
+
validateValue?: (value: string) => boolean;
|
|
3818
|
+
cancelSubmit?: () => void;
|
|
3819
|
+
}
|
|
3820
|
+
/**
|
|
3821
|
+
* This component represents a text input that can be submitted or cancelled on buttons
|
|
3822
|
+
* @param props properties
|
|
3823
|
+
* @returns TextInputWithSubmit element
|
|
3824
|
+
*/
|
|
3825
|
+
|
|
3826
|
+
|
|
3827
|
+
}
|
|
3828
|
+
declare module "@babylonjs/node-particle-editor/components/MessageDialog" {
|
|
3829
|
+
import * as React from "react";
|
|
3830
|
+
export interface MessageDialogProps {
|
|
3831
|
+
message: string;
|
|
3832
|
+
isError: boolean;
|
|
3833
|
+
onClose?: () => void;
|
|
3834
|
+
}
|
|
3835
|
+
export const MessageDialog: React.FC<MessageDialogProps>;
|
|
3836
|
+
|
|
3837
|
+
}
|
|
3838
|
+
declare module "@babylonjs/node-particle-editor/components/Label" {
|
|
3839
|
+
import { ReactChild } from "react";
|
|
3840
|
+
export type LabelProps = {
|
|
3841
|
+
text: string;
|
|
3842
|
+
children?: ReactChild;
|
|
3843
|
+
color?: "dark" | "light";
|
|
3844
|
+
};
|
|
3845
|
+
export const Label: React.FC<LabelProps>;
|
|
3846
|
+
|
|
3847
|
+
}
|
|
3848
|
+
declare module "@babylonjs/node-particle-editor/components/Icon" {
|
|
3849
|
+
export type IconProps = {
|
|
3850
|
+
color?: "dark" | "light";
|
|
3851
|
+
icon: string;
|
|
3852
|
+
};
|
|
3853
|
+
export const Icon: React.FC<IconProps>;
|
|
3854
|
+
|
|
3855
|
+
}
|
|
3856
|
+
declare module "@babylonjs/node-particle-editor/components/Button" {
|
|
3857
|
+
import { PropsWithChildren } from "react";
|
|
3858
|
+
export type ButtonProps = {
|
|
3859
|
+
disabled?: boolean;
|
|
3860
|
+
active?: boolean;
|
|
3861
|
+
onClick?: () => void;
|
|
3862
|
+
color: "light" | "dark";
|
|
3863
|
+
size: "default" | "small" | "wide" | "smaller";
|
|
3864
|
+
title?: string;
|
|
3865
|
+
backgroundColor?: string;
|
|
3866
|
+
};
|
|
3867
|
+
export const Button: React.FC<PropsWithChildren<ButtonProps>>;
|
|
3868
|
+
|
|
3869
|
+
}
|
|
3870
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/useGraphContext" {
|
|
3871
|
+
/**
|
|
3872
|
+
* utility hook to assist using the graph context
|
|
3873
|
+
* @returns
|
|
3874
|
+
*/
|
|
3875
|
+
export const useGraphContext: () => import("@babylonjs/node-particle-editor/components/reactGraphSystem/GraphContextManager").IGraphContext;
|
|
3876
|
+
|
|
3877
|
+
}
|
|
3878
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/NodeRenderer" {
|
|
3879
|
+
import { ComponentType, PropsWithChildren } from "react";
|
|
3880
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
3881
|
+
export type IVisualRecordsType = Record<string, {
|
|
3882
|
+
x: number;
|
|
3883
|
+
y: number;
|
|
3884
|
+
}>;
|
|
3885
|
+
export type IConnectionType = {
|
|
3886
|
+
id: string;
|
|
3887
|
+
sourceId: string;
|
|
3888
|
+
targetId: string;
|
|
3889
|
+
};
|
|
3890
|
+
export type ICustomDataType = {
|
|
3891
|
+
type: string;
|
|
3892
|
+
value: any;
|
|
3893
|
+
};
|
|
3894
|
+
export type INodeType = {
|
|
3895
|
+
id: string;
|
|
3896
|
+
label: string;
|
|
3897
|
+
customData?: ICustomDataType;
|
|
3898
|
+
};
|
|
3899
|
+
/**
|
|
3900
|
+
* props for the node renderer
|
|
3901
|
+
*/
|
|
3902
|
+
export interface INodeRendererProps {
|
|
3903
|
+
/**
|
|
3904
|
+
* array of connections between nodes
|
|
3905
|
+
*/
|
|
3906
|
+
connections: IConnectionType[];
|
|
3907
|
+
/**
|
|
3908
|
+
* function called when a new connection is created
|
|
3909
|
+
*/
|
|
3910
|
+
updateConnections: (sourceId: string, targetId: string) => void;
|
|
3911
|
+
/**
|
|
3912
|
+
* function called when a connection is deleted
|
|
3913
|
+
*/
|
|
3914
|
+
deleteLine: (lineId: string) => void;
|
|
3915
|
+
/**
|
|
3916
|
+
* function called when a node is deleted
|
|
3917
|
+
*/
|
|
3918
|
+
deleteNode: (nodeId: string) => void;
|
|
3919
|
+
/**
|
|
3920
|
+
* array of all nodes
|
|
3921
|
+
*/
|
|
3922
|
+
nodes: INodeType[];
|
|
3923
|
+
/**
|
|
3924
|
+
* id of the node to highlight
|
|
3925
|
+
*/
|
|
3926
|
+
highlightedNode?: Nullable<string>;
|
|
3927
|
+
/**
|
|
3928
|
+
* function to be called if a node is selected
|
|
3929
|
+
*/
|
|
3930
|
+
selectNode?: (nodeId: Nullable<string>) => void;
|
|
3931
|
+
/**
|
|
3932
|
+
* id of this renderer
|
|
3933
|
+
*/
|
|
3934
|
+
id: string;
|
|
3935
|
+
/**
|
|
3936
|
+
* optional list of custom components to be rendered inside nodes of
|
|
3937
|
+
* a certain type
|
|
3938
|
+
*/
|
|
3939
|
+
customComponents?: Record<string, ComponentType<any>>;
|
|
3940
|
+
}
|
|
3941
|
+
/**
|
|
3942
|
+
* This component is a bridge between the app logic related to the graph, and the actual rendering
|
|
3943
|
+
* of it. It manages the nodes' positions and selection states.
|
|
3944
|
+
* @param props
|
|
3945
|
+
* @returns
|
|
3946
|
+
*/
|
|
3947
|
+
|
|
3948
|
+
|
|
3949
|
+
}
|
|
3950
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphNodesContainer" {
|
|
3951
|
+
import { FC, PropsWithChildren } from "react";
|
|
3952
|
+
export interface IGraphContainerProps {
|
|
3953
|
+
onNodeMoved: (id: string, x: number, y: number) => void;
|
|
3954
|
+
id: string;
|
|
3955
|
+
}
|
|
3956
|
+
/**
|
|
3957
|
+
* This component contains all the nodes and handles their dragging
|
|
3958
|
+
* @param props properties
|
|
3959
|
+
* @returns graph node container element
|
|
3960
|
+
*/
|
|
3961
|
+
export const GraphNodesContainer: FC<PropsWithChildren<IGraphContainerProps>>;
|
|
3962
|
+
|
|
3963
|
+
}
|
|
3964
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphNode" {
|
|
3965
|
+
import { FC, PropsWithChildren } from "react";
|
|
3966
|
+
export interface IGraphNodeProps {
|
|
3967
|
+
id: string;
|
|
3968
|
+
name: string;
|
|
3969
|
+
x: number;
|
|
3970
|
+
y: number;
|
|
3971
|
+
selected?: boolean;
|
|
3972
|
+
width?: number;
|
|
3973
|
+
height?: number;
|
|
3974
|
+
highlighted?: boolean;
|
|
3975
|
+
parentContainerId: string;
|
|
3976
|
+
}
|
|
3977
|
+
export const SingleGraphNode: FC<PropsWithChildren<IGraphNodeProps>>;
|
|
3978
|
+
|
|
3979
|
+
}
|
|
3980
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphLinesContainer" {
|
|
3981
|
+
import { FC, PropsWithChildren } from "react";
|
|
3982
|
+
/**
|
|
3983
|
+
* props for the GraphLineContainer
|
|
3984
|
+
*/
|
|
3985
|
+
export interface IGraphLinesContainerProps {
|
|
3986
|
+
/**
|
|
3987
|
+
* id of the container
|
|
3988
|
+
*/
|
|
3989
|
+
id: string;
|
|
3990
|
+
}
|
|
3991
|
+
/**
|
|
3992
|
+
* this component handles the dragging of new connections
|
|
3993
|
+
* @param props
|
|
3994
|
+
* @returns
|
|
3995
|
+
*/
|
|
3996
|
+
export const GraphLinesContainer: FC<PropsWithChildren<IGraphLinesContainerProps>>;
|
|
3997
|
+
|
|
3998
|
+
}
|
|
3999
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphLine" {
|
|
4000
|
+
import { FC } from "react";
|
|
4001
|
+
/**
|
|
4002
|
+
* props for the GraphLine component
|
|
4003
|
+
*/
|
|
4004
|
+
export interface IGraphLineProps {
|
|
4005
|
+
/**
|
|
4006
|
+
* id of the line. temporary lines can have no id
|
|
4007
|
+
*/
|
|
4008
|
+
id?: string;
|
|
4009
|
+
/**
|
|
4010
|
+
* starting x pos of the line
|
|
4011
|
+
*/
|
|
4012
|
+
x1: number;
|
|
4013
|
+
/**
|
|
4014
|
+
* ending x pos of the line
|
|
4015
|
+
*/
|
|
4016
|
+
x2: number;
|
|
4017
|
+
/**
|
|
4018
|
+
* starting y pos of the line
|
|
4019
|
+
*/
|
|
4020
|
+
y1: number;
|
|
4021
|
+
/**
|
|
4022
|
+
* ending y pos of the line
|
|
4023
|
+
*/
|
|
4024
|
+
y2: number;
|
|
4025
|
+
/**
|
|
4026
|
+
* is the line selected
|
|
4027
|
+
*/
|
|
4028
|
+
selected?: boolean;
|
|
4029
|
+
/**
|
|
4030
|
+
* does the line have a direction
|
|
4031
|
+
*/
|
|
4032
|
+
directional?: boolean;
|
|
4033
|
+
}
|
|
4034
|
+
export const MarkerArrowId = "arrow";
|
|
4035
|
+
/**
|
|
4036
|
+
* This component draws a SVG line between two points, with an optional marker
|
|
4037
|
+
* indicating direction
|
|
4038
|
+
* @param props properties
|
|
4039
|
+
* @returns graph line element
|
|
4040
|
+
*/
|
|
4041
|
+
export const GraphLine: FC<IGraphLineProps>;
|
|
4042
|
+
|
|
4043
|
+
}
|
|
4044
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphContextManager" {
|
|
4045
|
+
/**
|
|
4046
|
+
* this context is used to pass callbacks to the graph nodes and connections
|
|
4047
|
+
*/
|
|
4048
|
+
export interface IGraphContext {
|
|
4049
|
+
onNodesConnected?: (sourceId: string, targetId: string) => void;
|
|
4050
|
+
onLineSelected?: (lineId: string) => void;
|
|
4051
|
+
onNodeSelected?: (nodeId: string) => void;
|
|
4052
|
+
}
|
|
4053
|
+
export const GraphContextManager: import("react").Context<IGraphContext>;
|
|
4054
|
+
|
|
4055
|
+
}
|
|
4056
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphContainer" {
|
|
4057
|
+
import { FC, PropsWithChildren } from "react";
|
|
4058
|
+
export interface IGraphContainerProps {
|
|
4059
|
+
}
|
|
4060
|
+
/**
|
|
4061
|
+
* This component is just a simple container to keep the nodes and lines containers
|
|
4062
|
+
* together
|
|
4063
|
+
* @param props
|
|
4064
|
+
* @returns
|
|
4065
|
+
*/
|
|
4066
|
+
export const GraphContainer: FC<PropsWithChildren<IGraphContainerProps>>;
|
|
4067
|
+
|
|
4068
|
+
}
|
|
4069
|
+
declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphConnectorHandle" {
|
|
4070
|
+
import { FC, PropsWithChildren } from "react";
|
|
4071
|
+
/**
|
|
4072
|
+
* Props for the connector
|
|
4073
|
+
*/
|
|
4074
|
+
export interface IGraphConnectorHandlerProps {
|
|
4075
|
+
/**
|
|
4076
|
+
* id of the parent node
|
|
4077
|
+
*/
|
|
4078
|
+
parentId: string;
|
|
4079
|
+
/**
|
|
4080
|
+
* x position of the parent node
|
|
4081
|
+
*/
|
|
4082
|
+
parentX: number;
|
|
4083
|
+
/**
|
|
4084
|
+
* y position of the parent node
|
|
4085
|
+
*/
|
|
4086
|
+
parentY: number;
|
|
4087
|
+
/**
|
|
4088
|
+
* x position of the connector relative to the parent node
|
|
4089
|
+
*/
|
|
4090
|
+
offsetX?: number;
|
|
4091
|
+
/**
|
|
4092
|
+
* y position of the connector relative to the parent node
|
|
4093
|
+
*/
|
|
4094
|
+
offsetY?: number;
|
|
4095
|
+
/**
|
|
4096
|
+
* width of the parent node
|
|
4097
|
+
*/
|
|
4098
|
+
parentWidth: number;
|
|
4099
|
+
/**
|
|
4100
|
+
* height of the parent node
|
|
4101
|
+
*/
|
|
4102
|
+
parentHeight: number;
|
|
4103
|
+
/**
|
|
4104
|
+
* id of the container where its parent node is
|
|
4105
|
+
*/
|
|
4106
|
+
parentContainerId: string;
|
|
4107
|
+
}
|
|
4108
|
+
/**
|
|
4109
|
+
* This component is used to initiate a connection between two nodes. Simply
|
|
4110
|
+
* drag the handle in a node and drop it in another node to create a connection.
|
|
4111
|
+
* @returns connector element
|
|
4112
|
+
*/
|
|
4113
|
+
export const GraphConnectorHandler: FC<PropsWithChildren<IGraphConnectorHandlerProps>>;
|
|
4114
|
+
|
|
4115
|
+
}
|
|
4116
|
+
declare module "@babylonjs/node-particle-editor/components/lines/OptionsLineComponent" {
|
|
4117
|
+
/**
|
|
4118
|
+
* This components represents an options menu with optional
|
|
4119
|
+
* customizable properties. Option IDs should be unique.
|
|
4120
|
+
*/
|
|
4121
|
+
export interface IOption {
|
|
4122
|
+
label: string;
|
|
4123
|
+
value: string;
|
|
4124
|
+
id: string;
|
|
4125
|
+
}
|
|
4126
|
+
export interface IOptionsLineComponentProps {
|
|
4127
|
+
options: IOption[];
|
|
4128
|
+
addOptionPlaceholder?: string;
|
|
4129
|
+
onOptionAdded?: (newOption: IOption) => void;
|
|
4130
|
+
onOptionSelected: (selectedOptionValue: string) => void;
|
|
4131
|
+
selectedOptionValue: string;
|
|
4132
|
+
validateNewOptionValue?: (newOptionValue: string) => boolean;
|
|
4133
|
+
addOptionText?: string;
|
|
4134
|
+
}
|
|
4135
|
+
|
|
4136
|
+
|
|
4137
|
+
}
|
|
4138
|
+
declare module "@babylonjs/node-particle-editor/components/lines/NumericInputComponent" {
|
|
4139
|
+
import * as React from "react";
|
|
4140
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4141
|
+
interface INumericInputComponentProps {
|
|
4142
|
+
label: string;
|
|
4143
|
+
labelTooltip?: string;
|
|
4144
|
+
value: number;
|
|
4145
|
+
step?: number;
|
|
4146
|
+
onChange: (value: number) => void;
|
|
4147
|
+
precision?: number;
|
|
4148
|
+
icon?: string;
|
|
4149
|
+
iconLabel?: string;
|
|
4150
|
+
lockObject: LockObject;
|
|
4151
|
+
}
|
|
4152
|
+
export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
|
|
4153
|
+
value: string;
|
|
4154
|
+
}> {
|
|
4155
|
+
static defaultProps: {
|
|
4156
|
+
step: number;
|
|
4157
|
+
};
|
|
4158
|
+
private _localChange;
|
|
4159
|
+
constructor(props: INumericInputComponentProps);
|
|
4160
|
+
componentWillUnmount(): void;
|
|
4161
|
+
shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
|
|
4162
|
+
value: string;
|
|
4163
|
+
}): boolean;
|
|
4164
|
+
updateValue(valueString: string): void;
|
|
4165
|
+
onBlur(): void;
|
|
4166
|
+
incrementValue(amount: number): void;
|
|
4167
|
+
onKeyDown(evt: React.KeyboardEvent<HTMLInputElement>): void;
|
|
4168
|
+
|
|
4169
|
+
}
|
|
4170
|
+
export {};
|
|
4171
|
+
|
|
4172
|
+
}
|
|
4173
|
+
declare module "@babylonjs/node-particle-editor/components/lines/FileButtonLineComponent" {
|
|
4174
|
+
import * as React from "react";
|
|
4175
|
+
export interface IFileButtonLineComponentProps {
|
|
4176
|
+
label: string;
|
|
4177
|
+
onClick: (file: File) => void;
|
|
4178
|
+
accept: string;
|
|
4179
|
+
icon?: string;
|
|
4180
|
+
iconLabel?: string;
|
|
4181
|
+
}
|
|
4182
|
+
export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
|
|
4183
|
+
private static _IdGenerator;
|
|
4184
|
+
private _id;
|
|
4185
|
+
private _uploadInputRef;
|
|
4186
|
+
constructor(props: IFileButtonLineComponentProps);
|
|
4187
|
+
onChange(evt: any): void;
|
|
4188
|
+
|
|
4189
|
+
}
|
|
4190
|
+
|
|
4191
|
+
}
|
|
4192
|
+
declare module "@babylonjs/node-particle-editor/components/lines/ColorPickerLineComponent" {
|
|
4193
|
+
import * as React from "react";
|
|
4194
|
+
import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
|
|
4195
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4196
|
+
export interface IColorPickerLineComponentProps {
|
|
4197
|
+
value: Color4 | Color3;
|
|
4198
|
+
linearHint?: boolean;
|
|
4199
|
+
onColorChanged: (newOne: string) => void;
|
|
4200
|
+
icon?: string;
|
|
4201
|
+
iconLabel?: string;
|
|
4202
|
+
shouldPopRight?: boolean;
|
|
4203
|
+
lockObject?: LockObject;
|
|
4204
|
+
backgroundColor?: string;
|
|
4205
|
+
}
|
|
4206
|
+
interface IColorPickerComponentState {
|
|
4207
|
+
pickerEnabled: boolean;
|
|
4208
|
+
color: Color3 | Color4;
|
|
4209
|
+
hex: string;
|
|
4210
|
+
}
|
|
4211
|
+
export class ColorPickerLineComponent extends React.Component<IColorPickerLineComponentProps, IColorPickerComponentState> {
|
|
4212
|
+
private _floatRef;
|
|
4213
|
+
private _floatHostRef;
|
|
4214
|
+
private _coverRef;
|
|
4215
|
+
constructor(props: IColorPickerLineComponentProps);
|
|
4216
|
+
syncPositions(): void;
|
|
4217
|
+
shouldComponentUpdate(nextProps: IColorPickerLineComponentProps, nextState: IColorPickerComponentState): boolean;
|
|
4218
|
+
getHexString(props?: Readonly<IColorPickerLineComponentProps>): string;
|
|
4219
|
+
componentDidUpdate(): void;
|
|
4220
|
+
componentDidMount(): void;
|
|
4221
|
+
|
|
4222
|
+
}
|
|
4223
|
+
export {};
|
|
4224
|
+
|
|
4225
|
+
}
|
|
4226
|
+
declare module "@babylonjs/node-particle-editor/components/lines/ColorLineComponent" {
|
|
4227
|
+
import * as React from "react";
|
|
4228
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
4229
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color";
|
|
4230
|
+
import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
|
|
4231
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4232
|
+
export interface IColorLineComponentProps {
|
|
4233
|
+
label: string;
|
|
4234
|
+
target: any;
|
|
4235
|
+
propertyName: string;
|
|
4236
|
+
onPropertyChangedObservable: Observable<PropertyChangedEvent>;
|
|
4237
|
+
onChange?: () => void;
|
|
4238
|
+
isLinear?: boolean;
|
|
4239
|
+
icon?: string;
|
|
4240
|
+
iconLabel?: string;
|
|
4241
|
+
disableAlpha?: boolean;
|
|
4242
|
+
lockObject: LockObject;
|
|
4243
|
+
}
|
|
4244
|
+
interface IColorLineComponentState {
|
|
4245
|
+
isExpanded: boolean;
|
|
4246
|
+
color: Color4;
|
|
4247
|
+
}
|
|
4248
|
+
export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
|
|
4249
|
+
constructor(props: IColorLineComponentProps);
|
|
4250
|
+
shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
|
|
4251
|
+
getValue(props?: Readonly<IColorLineComponentProps>): Color4;
|
|
4252
|
+
setColorFromString(colorString: string): void;
|
|
4253
|
+
setColor(newColor: Color4): void;
|
|
4254
|
+
switchExpandState(): void;
|
|
4255
|
+
updateStateR(value: number): void;
|
|
4256
|
+
updateStateG(value: number): void;
|
|
4257
|
+
updateStateB(value: number): void;
|
|
4258
|
+
updateStateA(value: number): void;
|
|
4259
|
+
copyToClipboard(): void;
|
|
4260
|
+
private _convertToColor;
|
|
4261
|
+
private _toColor3;
|
|
4262
|
+
|
|
4263
|
+
}
|
|
4264
|
+
export {};
|
|
4265
|
+
|
|
4266
|
+
}
|
|
4267
|
+
declare module "@babylonjs/node-particle-editor/components/layout/utils" {
|
|
4268
|
+
import { Layout, LayoutColumn, LayoutTabsRow } from "@babylonjs/node-particle-editor/components/layout/types";
|
|
4269
|
+
/**
|
|
4270
|
+
* Given a column and row number in the layout, return the corresponding column/row
|
|
4271
|
+
* @param layout
|
|
4272
|
+
* @param column
|
|
4273
|
+
* @param row
|
|
4274
|
+
* @returns
|
|
4275
|
+
*/
|
|
4276
|
+
export const getPosInLayout: (layout: Layout, column: number, row?: number) => LayoutColumn | LayoutTabsRow;
|
|
4277
|
+
/**
|
|
4278
|
+
* Remove a row in position row, column from the layout, and redistribute heights of remaining rows
|
|
4279
|
+
* @param layout
|
|
4280
|
+
* @param column
|
|
4281
|
+
* @param row
|
|
4282
|
+
*/
|
|
4283
|
+
export const removeLayoutRowAndRedistributePercentages: (layout: Layout, column: number, row: number) => void;
|
|
4284
|
+
/**
|
|
4285
|
+
* Add a percentage string to a number
|
|
4286
|
+
* @param p1 the percentage string
|
|
4287
|
+
* @param p2 the number
|
|
4288
|
+
* @returns the sum of the percentage string and the number
|
|
4289
|
+
*/
|
|
4290
|
+
export const addPercentageStringToNumber: (p1: string, p2: number) => number;
|
|
4291
|
+
/**
|
|
4292
|
+
* Parses a percentage string into a number
|
|
4293
|
+
* @param p the percentage string
|
|
4294
|
+
* @returns the parsed number
|
|
4295
|
+
*/
|
|
4296
|
+
export const parsePercentage: (p: string) => number;
|
|
4297
|
+
|
|
4298
|
+
}
|
|
4299
|
+
declare module "@babylonjs/node-particle-editor/components/layout/types" {
|
|
4300
|
+
import { ReactElement } from "react";
|
|
4301
|
+
export type LayoutTab = {
|
|
4302
|
+
/**
|
|
4303
|
+
* Tab id
|
|
4304
|
+
*/
|
|
4305
|
+
id: string;
|
|
4306
|
+
/**
|
|
4307
|
+
* React component rendered by tab
|
|
4308
|
+
*/
|
|
4309
|
+
component: ReactElement;
|
|
4310
|
+
/**
|
|
4311
|
+
* Tab title
|
|
4312
|
+
*/
|
|
4313
|
+
title: string;
|
|
4314
|
+
};
|
|
4315
|
+
export type LayoutTabsRow = {
|
|
4316
|
+
/**
|
|
4317
|
+
* row id
|
|
4318
|
+
*/
|
|
4319
|
+
id: string;
|
|
4320
|
+
/**
|
|
4321
|
+
* row height in its containing column
|
|
4322
|
+
*/
|
|
4323
|
+
height: string;
|
|
4324
|
+
/**
|
|
4325
|
+
* selected tab in row
|
|
4326
|
+
*/
|
|
4327
|
+
selectedTab: string;
|
|
4328
|
+
/**
|
|
4329
|
+
* list of tabs contained in row
|
|
4330
|
+
*/
|
|
4331
|
+
tabs: LayoutTab[];
|
|
4332
|
+
};
|
|
4333
|
+
export type LayoutColumn = {
|
|
4334
|
+
/**
|
|
4335
|
+
* column id
|
|
4336
|
+
*/
|
|
4337
|
+
id: string;
|
|
4338
|
+
/**
|
|
4339
|
+
* column width in the grid
|
|
4340
|
+
*/
|
|
4341
|
+
width: string;
|
|
4342
|
+
/**
|
|
4343
|
+
* column rows
|
|
4344
|
+
*/
|
|
4345
|
+
rows: LayoutTabsRow[];
|
|
4346
|
+
};
|
|
4347
|
+
export type Layout = {
|
|
4348
|
+
/**
|
|
4349
|
+
* layout columns
|
|
4350
|
+
*/
|
|
4351
|
+
columns?: LayoutColumn[];
|
|
4352
|
+
};
|
|
4353
|
+
export type TabDrag = {
|
|
4354
|
+
/**
|
|
4355
|
+
* row number of the tab being dragged
|
|
4356
|
+
*/
|
|
4357
|
+
rowNumber: number;
|
|
4358
|
+
/**
|
|
4359
|
+
* column number of the tab being dragged
|
|
4360
|
+
*/
|
|
4361
|
+
columnNumber: number;
|
|
4362
|
+
/**
|
|
4363
|
+
* the tabs being dragged
|
|
4364
|
+
*/
|
|
4365
|
+
tabs: {
|
|
4366
|
+
/**
|
|
4367
|
+
* id of tab being dragged
|
|
4368
|
+
*/
|
|
4369
|
+
id: string;
|
|
4370
|
+
}[];
|
|
4371
|
+
};
|
|
4372
|
+
export enum ElementTypes {
|
|
4373
|
+
RESIZE_BAR = "0",
|
|
4374
|
+
TAB = "1",
|
|
4375
|
+
TAB_GROUP = "2",
|
|
4376
|
+
NONE = "2"
|
|
4377
|
+
}
|
|
4378
|
+
export enum ResizeDirections {
|
|
4379
|
+
ROW = "row",
|
|
4380
|
+
COLUMN = "column"
|
|
4381
|
+
}
|
|
4382
|
+
|
|
4383
|
+
}
|
|
4384
|
+
declare module "@babylonjs/node-particle-editor/components/layout/LayoutContext" {
|
|
4385
|
+
import { Layout } from "@babylonjs/node-particle-editor/components/layout/types";
|
|
4386
|
+
export const LayoutContext: import("react").Context<{
|
|
4387
|
+
/**
|
|
4388
|
+
* The layout object
|
|
4389
|
+
*/
|
|
4390
|
+
layout: Layout;
|
|
4391
|
+
/**
|
|
4392
|
+
* Function to set the layout object in the context
|
|
4393
|
+
*/
|
|
4394
|
+
setLayout: (layout: Layout) => void;
|
|
4395
|
+
}>;
|
|
4396
|
+
|
|
4397
|
+
}
|
|
4398
|
+
declare module "@babylonjs/node-particle-editor/components/layout/FlexibleTabsContainer" {
|
|
4399
|
+
import { FC } from "react";
|
|
4400
|
+
import { LayoutTab } from "@babylonjs/node-particle-editor/components/layout/types";
|
|
4401
|
+
/**
|
|
4402
|
+
* Arguments for the TabsContainer component.
|
|
4403
|
+
*/
|
|
4404
|
+
export interface IFlexibleTabsContainerProps {
|
|
4405
|
+
/**
|
|
4406
|
+
* The tabs to display
|
|
4407
|
+
*/
|
|
4408
|
+
tabs: LayoutTab[];
|
|
4409
|
+
/**
|
|
4410
|
+
* Row index of component in layout
|
|
4411
|
+
*/
|
|
4412
|
+
rowIndex: number;
|
|
4413
|
+
/**
|
|
4414
|
+
* Column index of component in layout
|
|
4415
|
+
*/
|
|
4416
|
+
columnIndex: number;
|
|
4417
|
+
/**
|
|
4418
|
+
* Which tab is selected in the layout
|
|
4419
|
+
*/
|
|
4420
|
+
selectedTab?: string;
|
|
4421
|
+
}
|
|
4422
|
+
/**
|
|
4423
|
+
* This component contains a set of tabs of which only one is visible at a time.
|
|
4424
|
+
* The tabs can also be dragged from and to different containers.
|
|
4425
|
+
* @param props properties
|
|
4426
|
+
* @returns tabs container element
|
|
4427
|
+
*/
|
|
4428
|
+
export const FlexibleTabsContainer: FC<IFlexibleTabsContainerProps>;
|
|
4429
|
+
|
|
4430
|
+
}
|
|
4431
|
+
declare module "@babylonjs/node-particle-editor/components/layout/FlexibleTab" {
|
|
4432
|
+
import { FC } from "react";
|
|
4433
|
+
import { TabDrag } from "@babylonjs/node-particle-editor/components/layout/types";
|
|
4434
|
+
/**
|
|
4435
|
+
* Arguments for the FlexibleTab component.
|
|
4436
|
+
*/
|
|
4437
|
+
export interface IFlexibleTabProps {
|
|
4438
|
+
/**
|
|
4439
|
+
* The tab's title.
|
|
4440
|
+
*/
|
|
4441
|
+
title: string;
|
|
4442
|
+
/**
|
|
4443
|
+
* If the tab is currently selected or not
|
|
4444
|
+
*/
|
|
4445
|
+
selected: boolean;
|
|
4446
|
+
/**
|
|
4447
|
+
* What happens when the user clicks on the tab
|
|
4448
|
+
*/
|
|
4449
|
+
onClick: () => void;
|
|
4450
|
+
/**
|
|
4451
|
+
* The object that will be sent to the drag event
|
|
4452
|
+
*/
|
|
4453
|
+
item: TabDrag;
|
|
4454
|
+
/**
|
|
4455
|
+
* What happens when the user drops another tab after this one
|
|
4456
|
+
*/
|
|
4457
|
+
onTabDroppedAction: (item: TabDrag) => void;
|
|
4458
|
+
}
|
|
4459
|
+
/**
|
|
4460
|
+
* A component that renders a tab that the user can click
|
|
4461
|
+
* to activate or drag to reorder. It also listens for
|
|
4462
|
+
* drop events if the user wants to drop another tab
|
|
4463
|
+
* after it.
|
|
4464
|
+
* @param props properties
|
|
4465
|
+
* @returns FlexibleTab element
|
|
4466
|
+
*/
|
|
4467
|
+
export const FlexibleTab: FC<IFlexibleTabProps>;
|
|
4468
|
+
|
|
4469
|
+
}
|
|
4470
|
+
declare module "@babylonjs/node-particle-editor/components/layout/FlexibleResizeBar" {
|
|
4471
|
+
import { FC } from "react";
|
|
4472
|
+
import { ResizeDirections } from "@babylonjs/node-particle-editor/components/layout/types";
|
|
4473
|
+
/**
|
|
4474
|
+
* Arguments for the ResizeBar component.
|
|
4475
|
+
*/
|
|
4476
|
+
export interface IFlexibleRowResizerProps {
|
|
4477
|
+
/**
|
|
4478
|
+
* Row number of the component that is being resized
|
|
4479
|
+
*/
|
|
4480
|
+
rowNumber: number;
|
|
4481
|
+
/**
|
|
4482
|
+
* Column number of the component being resized
|
|
4483
|
+
*/
|
|
4484
|
+
columnNumber: number;
|
|
4485
|
+
/**
|
|
4486
|
+
* If the resizing happens in row or column direction
|
|
4487
|
+
*/
|
|
4488
|
+
direction: ResizeDirections;
|
|
4489
|
+
}
|
|
4490
|
+
/**
|
|
4491
|
+
* The item that will be sent to the drag event
|
|
4492
|
+
*/
|
|
4493
|
+
export type ResizeItem = {
|
|
4494
|
+
/**
|
|
4495
|
+
* If the resizing happens in row or column direction
|
|
4496
|
+
*/
|
|
4497
|
+
direction: ResizeDirections;
|
|
4498
|
+
/**
|
|
4499
|
+
* The row number of the component that is being resized
|
|
4500
|
+
*/
|
|
4501
|
+
rowNumber: number;
|
|
4502
|
+
/**
|
|
4503
|
+
* the column number of the component being resized
|
|
4504
|
+
*/
|
|
4505
|
+
columnNumber: number;
|
|
4506
|
+
};
|
|
4507
|
+
/**
|
|
4508
|
+
* A component that renders a bar that the user can drag to resize.
|
|
4509
|
+
* @param props properties
|
|
4510
|
+
* @returns resize bar element
|
|
4511
|
+
*/
|
|
4512
|
+
export const FlexibleResizeBar: FC<IFlexibleRowResizerProps>;
|
|
4513
|
+
|
|
4514
|
+
}
|
|
4515
|
+
declare module "@babylonjs/node-particle-editor/components/layout/FlexibleGridLayout" {
|
|
4516
|
+
import { FC } from "react";
|
|
4517
|
+
import { Layout } from "@babylonjs/node-particle-editor/components/layout/types";
|
|
4518
|
+
/**
|
|
4519
|
+
* Arguments for the Layout component.
|
|
4520
|
+
*/
|
|
4521
|
+
export interface IFlexibleGridLayoutProps {
|
|
4522
|
+
/**
|
|
4523
|
+
* A definition of the layout which can be changed by the user
|
|
4524
|
+
*/
|
|
4525
|
+
layoutDefinition: Layout;
|
|
4526
|
+
}
|
|
4527
|
+
/**
|
|
4528
|
+
* This component represents a grid layout that can be resized and rearranged
|
|
4529
|
+
* by the user.
|
|
4530
|
+
* @param props properties
|
|
4531
|
+
* @returns layout element
|
|
4532
|
+
*/
|
|
4533
|
+
export const FlexibleGridLayout: FC<IFlexibleGridLayoutProps>;
|
|
4534
|
+
|
|
4535
|
+
}
|
|
4536
|
+
declare module "@babylonjs/node-particle-editor/components/layout/FlexibleGridContainer" {
|
|
4537
|
+
import { FC } from "react";
|
|
4538
|
+
/**
|
|
4539
|
+
* Arguments for the GridContainer component.
|
|
4540
|
+
*/
|
|
4541
|
+
export interface IFlexibleGridContainerProps {
|
|
4542
|
+
}
|
|
4543
|
+
/**
|
|
4544
|
+
* Component responsible for mapping the layout to the actual components
|
|
4545
|
+
* @returns GridContainer element
|
|
4546
|
+
*/
|
|
4547
|
+
export const FlexibleGridContainer: FC<IFlexibleGridContainerProps>;
|
|
4548
|
+
|
|
4549
|
+
}
|
|
4550
|
+
declare module "@babylonjs/node-particle-editor/components/layout/FlexibleDropZone" {
|
|
4551
|
+
import { FC, PropsWithChildren } from "react";
|
|
4552
|
+
/**
|
|
4553
|
+
* Arguments for the FlexibleDropZone component.
|
|
4554
|
+
*/
|
|
4555
|
+
export interface IFlexibleDropZoneProps {
|
|
4556
|
+
/**
|
|
4557
|
+
* The row number of the component in the layout
|
|
4558
|
+
*/
|
|
4559
|
+
rowNumber: number;
|
|
4560
|
+
/**
|
|
4561
|
+
* The column number of the component in the layout
|
|
4562
|
+
*/
|
|
4563
|
+
columnNumber: number;
|
|
4564
|
+
}
|
|
4565
|
+
/**
|
|
4566
|
+
* This component contains the drag and drop zone for the resize bars that
|
|
4567
|
+
* allow redefining width and height of layout elements
|
|
4568
|
+
* @param props properties
|
|
4569
|
+
* @returns drop zone element
|
|
4570
|
+
*/
|
|
4571
|
+
export const FlexibleDropZone: FC<PropsWithChildren<IFlexibleDropZoneProps>>;
|
|
4572
|
+
|
|
4573
|
+
}
|
|
4574
|
+
declare module "@babylonjs/node-particle-editor/components/layout/FlexibleDragHandler" {
|
|
4575
|
+
import { FC, PropsWithChildren } from "react";
|
|
4576
|
+
/**
|
|
4577
|
+
* Arguments for the DragHandler component.
|
|
4578
|
+
*/
|
|
4579
|
+
export interface IFlexibleDragHandlerProps {
|
|
4580
|
+
/**
|
|
4581
|
+
* The size of the containing element. Used to calculate the percentage of
|
|
4582
|
+
* space occupied by the component
|
|
4583
|
+
*/
|
|
4584
|
+
containerSize: {
|
|
4585
|
+
width: number;
|
|
4586
|
+
height: number;
|
|
4587
|
+
};
|
|
4588
|
+
}
|
|
4589
|
+
/**
|
|
4590
|
+
* This component receives the drop events and updates the layout accordingly
|
|
4591
|
+
* @param props properties
|
|
4592
|
+
* @returns DragHandler element
|
|
4593
|
+
*/
|
|
4594
|
+
export const FlexibleDragHandler: FC<PropsWithChildren<IFlexibleDragHandlerProps>>;
|
|
4595
|
+
|
|
4596
|
+
}
|
|
4597
|
+
declare module "@babylonjs/node-particle-editor/components/layout/FlexibleColumn" {
|
|
4598
|
+
import { FC, PropsWithChildren } from "react";
|
|
4599
|
+
/**
|
|
4600
|
+
* Arguments for the Column component.
|
|
4601
|
+
*/
|
|
4602
|
+
export interface IFlexibleColumnProps {
|
|
4603
|
+
/**
|
|
4604
|
+
* Width of column
|
|
4605
|
+
*/
|
|
4606
|
+
width: string;
|
|
4607
|
+
}
|
|
4608
|
+
/**
|
|
4609
|
+
* This component represents a single column in the layout. It receives a width
|
|
4610
|
+
* that it occupies and the content to display
|
|
4611
|
+
* @param props
|
|
4612
|
+
* @returns
|
|
4613
|
+
*/
|
|
4614
|
+
export const FlexibleColumn: FC<PropsWithChildren<IFlexibleColumnProps>>;
|
|
4615
|
+
|
|
4616
|
+
}
|
|
4617
|
+
declare module "@babylonjs/node-particle-editor/components/layout/DraggableIcon" {
|
|
4618
|
+
import { FC } from "react";
|
|
4619
|
+
import { ElementTypes, TabDrag } from "@babylonjs/node-particle-editor/components/layout/types";
|
|
4620
|
+
/**
|
|
4621
|
+
* Arguments for the DraggableIcon component.
|
|
4622
|
+
*/
|
|
4623
|
+
export interface IDraggableIconProps {
|
|
4624
|
+
/**
|
|
4625
|
+
* Icon source
|
|
4626
|
+
*/
|
|
4627
|
+
src: string;
|
|
4628
|
+
/**
|
|
4629
|
+
* Object that will be passed to the drag event
|
|
4630
|
+
*/
|
|
4631
|
+
item: TabDrag;
|
|
4632
|
+
/**
|
|
4633
|
+
* Type of drag event
|
|
4634
|
+
*/
|
|
4635
|
+
type: ElementTypes;
|
|
4636
|
+
}
|
|
4637
|
+
/**
|
|
4638
|
+
* An icon that can be dragged by the user
|
|
4639
|
+
* @param props properties
|
|
4640
|
+
* @returns draggable icon element
|
|
4641
|
+
*/
|
|
4642
|
+
export const DraggableIcon: FC<IDraggableIconProps>;
|
|
4643
|
+
|
|
4644
|
+
}
|
|
4645
|
+
declare module "@babylonjs/node-particle-editor/components/colorPicker/HexColor" {
|
|
4646
|
+
import * as React from "react";
|
|
4647
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4648
|
+
export interface IHexColorProps {
|
|
4649
|
+
value: string;
|
|
4650
|
+
expectedLength: number;
|
|
4651
|
+
onChange: (value: string) => void;
|
|
4652
|
+
lockObject: LockObject;
|
|
4653
|
+
}
|
|
4654
|
+
export class HexColorComponent extends React.Component<IHexColorProps, {
|
|
4655
|
+
hex: string;
|
|
4656
|
+
}> {
|
|
4657
|
+
constructor(props: IHexColorProps);
|
|
4658
|
+
shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
|
|
4659
|
+
hex: string;
|
|
4660
|
+
}): boolean;
|
|
4661
|
+
lock(): void;
|
|
4662
|
+
unlock(): void;
|
|
4663
|
+
updateHexValue(valueString: string): void;
|
|
4664
|
+
|
|
4665
|
+
}
|
|
4666
|
+
|
|
4667
|
+
}
|
|
4668
|
+
declare module "@babylonjs/node-particle-editor/components/colorPicker/ColorPicker" {
|
|
4669
|
+
import * as React from "react";
|
|
4670
|
+
import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
|
|
4671
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4672
|
+
/**
|
|
4673
|
+
* Interface used to specify creation options for color picker
|
|
4674
|
+
*/
|
|
4675
|
+
export interface IColorPickerComponentProps {
|
|
4676
|
+
color: Color3 | Color4;
|
|
4677
|
+
linearhint?: boolean;
|
|
4678
|
+
debugMode?: boolean;
|
|
4679
|
+
onColorChanged?: (color: Color3 | Color4) => void;
|
|
4680
|
+
lockObject: LockObject;
|
|
4681
|
+
backgroundColor?: string;
|
|
4682
|
+
}
|
|
4683
|
+
/**
|
|
4684
|
+
* Interface used to specify creation options for color picker
|
|
4685
|
+
*/
|
|
4686
|
+
export interface IColorPickerState {
|
|
4687
|
+
color: Color3;
|
|
4688
|
+
alpha: number;
|
|
4689
|
+
}
|
|
4690
|
+
/**
|
|
4691
|
+
* Class used to create a color picker
|
|
4692
|
+
*/
|
|
4693
|
+
export class ColorPickerComponent extends React.Component<IColorPickerComponentProps, IColorPickerState> {
|
|
4694
|
+
private _saturationRef;
|
|
4695
|
+
private _hueRef;
|
|
4696
|
+
private _isSaturationPointerDown;
|
|
4697
|
+
private _isHuePointerDown;
|
|
4698
|
+
constructor(props: IColorPickerComponentProps);
|
|
4699
|
+
shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerState): boolean;
|
|
4700
|
+
onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4701
|
+
onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4702
|
+
onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4703
|
+
onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4704
|
+
onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4705
|
+
onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4706
|
+
private _evaluateSaturation;
|
|
4707
|
+
private _evaluateHue;
|
|
4708
|
+
componentDidUpdate(): void;
|
|
4709
|
+
raiseOnColorChanged(): void;
|
|
4710
|
+
|
|
4711
|
+
}
|
|
4712
|
+
|
|
4713
|
+
}
|
|
4714
|
+
declare module "@babylonjs/node-particle-editor/components/colorPicker/ColorComponentEntry" {
|
|
4715
|
+
import * as React from "react";
|
|
4716
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4717
|
+
export interface IColorComponentEntryProps {
|
|
4718
|
+
value: number;
|
|
4719
|
+
label: string;
|
|
4720
|
+
max?: number;
|
|
4721
|
+
min?: number;
|
|
4722
|
+
onChange: (value: number) => void;
|
|
4723
|
+
disabled?: boolean;
|
|
4724
|
+
lockObject: LockObject;
|
|
4725
|
+
}
|
|
4726
|
+
export class ColorComponentComponentEntry extends React.Component<IColorComponentEntryProps> {
|
|
4727
|
+
constructor(props: IColorComponentEntryProps);
|
|
4728
|
+
updateValue(valueString: string): void;
|
|
4729
|
+
lock(): void;
|
|
4730
|
+
unlock(): void;
|
|
4731
|
+
|
|
4732
|
+
}
|
|
4733
|
+
|
|
4734
|
+
}
|
|
4735
|
+
declare module "@babylonjs/node-particle-editor/components/bars/CommandDropdownComponent" {
|
|
4736
|
+
import * as React from "react";
|
|
4737
|
+
interface ICommandDropdownComponentProps {
|
|
4738
|
+
icon?: string;
|
|
4739
|
+
tooltip: string;
|
|
4740
|
+
defaultValue?: string;
|
|
4741
|
+
items: {
|
|
4742
|
+
label: string;
|
|
4743
|
+
icon?: string;
|
|
4744
|
+
fileButton?: boolean;
|
|
4745
|
+
onClick?: () => void;
|
|
4746
|
+
onCheck?: (value: boolean) => void;
|
|
4747
|
+
storeKey?: string;
|
|
4748
|
+
isActive?: boolean;
|
|
4749
|
+
defaultValue?: boolean | string;
|
|
4750
|
+
subItems?: string[];
|
|
4751
|
+
}[];
|
|
4752
|
+
toRight?: boolean;
|
|
4753
|
+
}
|
|
4754
|
+
export class CommandDropdownComponent extends React.Component<ICommandDropdownComponentProps, {
|
|
4755
|
+
isExpanded: boolean;
|
|
4756
|
+
activeState: string;
|
|
4757
|
+
}> {
|
|
4758
|
+
constructor(props: ICommandDropdownComponentProps);
|
|
4759
|
+
|
|
4760
|
+
}
|
|
4761
|
+
export {};
|
|
4762
|
+
|
|
4763
|
+
}
|
|
4764
|
+
declare module "@babylonjs/node-particle-editor/components/bars/CommandButtonComponent" {
|
|
4765
|
+
import * as React from "react";
|
|
4766
|
+
export interface ICommandButtonComponentProps {
|
|
4767
|
+
tooltip: string;
|
|
4768
|
+
shortcut?: string;
|
|
4769
|
+
icon: string;
|
|
4770
|
+
iconLabel?: string;
|
|
4771
|
+
isActive: boolean;
|
|
4772
|
+
onClick: () => void;
|
|
4773
|
+
disabled?: boolean;
|
|
4774
|
+
}
|
|
4775
|
+
export const CommandButtonComponent: React.FC<ICommandButtonComponentProps>;
|
|
4776
|
+
|
|
4777
|
+
}
|
|
4778
|
+
declare module "@babylonjs/node-particle-editor/components/bars/CommandBarComponent" {
|
|
4779
|
+
import { FC, PropsWithChildren } from "react";
|
|
4780
|
+
export interface ICommandBarComponentProps {
|
|
4781
|
+
onSaveButtonClicked?: () => void;
|
|
4782
|
+
onSaveToSnippetButtonClicked?: () => void;
|
|
4783
|
+
onLoadFromSnippetButtonClicked?: () => void;
|
|
4784
|
+
onHelpButtonClicked?: () => void;
|
|
4785
|
+
onGiveFeedbackButtonClicked?: () => void;
|
|
4786
|
+
onSelectButtonClicked?: () => void;
|
|
4787
|
+
onPanButtonClicked?: () => void;
|
|
4788
|
+
onZoomButtonClicked?: () => void;
|
|
4789
|
+
onFitButtonClicked?: () => void;
|
|
4790
|
+
onArtboardColorChanged?: (newColor: string) => void;
|
|
4791
|
+
artboardColor?: string;
|
|
4792
|
+
artboardColorPickerColor?: string;
|
|
4793
|
+
}
|
|
4794
|
+
export const CommandBarComponent: FC<PropsWithChildren<ICommandBarComponentProps>>;
|
|
4795
|
+
|
|
4796
|
+
}
|
|
4797
|
+
declare module "@babylonjs/node-particle-editor/colorPicker/hexColor" {
|
|
4798
|
+
import * as React from "react";
|
|
4799
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4800
|
+
export interface IHexColorProps {
|
|
4801
|
+
value: string;
|
|
4802
|
+
expectedLength: number;
|
|
4803
|
+
onChange: (value: string) => void;
|
|
4804
|
+
lockObject: LockObject;
|
|
4805
|
+
}
|
|
4806
|
+
export class HexColor extends React.Component<IHexColorProps, {
|
|
4807
|
+
hex: string;
|
|
4808
|
+
}> {
|
|
4809
|
+
constructor(props: IHexColorProps);
|
|
4810
|
+
shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
|
|
4811
|
+
hex: string;
|
|
4812
|
+
}): boolean;
|
|
4813
|
+
lock(): void;
|
|
4814
|
+
unlock(): void;
|
|
4815
|
+
updateHexValue(valueString: string): void;
|
|
4816
|
+
|
|
4817
|
+
}
|
|
4818
|
+
|
|
4819
|
+
}
|
|
4820
|
+
declare module "@babylonjs/node-particle-editor/colorPicker/colorPicker" {
|
|
4821
|
+
import * as React from "react";
|
|
4822
|
+
import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
|
|
4823
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4824
|
+
import "@babylonjs/node-particle-editor/colorPicker/colorPicker.scss";
|
|
4825
|
+
/**
|
|
4826
|
+
* Interface used to specify creation options for color picker
|
|
4827
|
+
*/
|
|
4828
|
+
export interface IColorPickerProps {
|
|
4829
|
+
color: Color3 | Color4;
|
|
4830
|
+
linearhint?: boolean;
|
|
4831
|
+
debugMode?: boolean;
|
|
4832
|
+
onColorChanged?: (color: Color3 | Color4) => void;
|
|
4833
|
+
lockObject: LockObject;
|
|
4834
|
+
}
|
|
4835
|
+
/**
|
|
4836
|
+
* Interface used to specify creation options for color picker
|
|
4837
|
+
*/
|
|
4838
|
+
export interface IColorPickerState {
|
|
4839
|
+
color: Color3;
|
|
4840
|
+
alpha: number;
|
|
4841
|
+
}
|
|
4842
|
+
/**
|
|
4843
|
+
* Class used to create a color picker
|
|
4844
|
+
*/
|
|
4845
|
+
export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
|
|
4846
|
+
private _saturationRef;
|
|
4847
|
+
private _hueRef;
|
|
4848
|
+
private _isSaturationPointerDown;
|
|
4849
|
+
private _isHuePointerDown;
|
|
4850
|
+
constructor(props: IColorPickerProps);
|
|
4851
|
+
shouldComponentUpdate(nextProps: IColorPickerProps, nextState: IColorPickerState): boolean;
|
|
4852
|
+
onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4853
|
+
onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4854
|
+
onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4855
|
+
onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4856
|
+
onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4857
|
+
onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
|
|
4858
|
+
private _evaluateSaturation;
|
|
4859
|
+
private _evaluateHue;
|
|
4860
|
+
componentDidUpdate(): void;
|
|
4861
|
+
raiseOnColorChanged(): void;
|
|
4862
|
+
|
|
4863
|
+
}
|
|
4864
|
+
|
|
4865
|
+
}
|
|
4866
|
+
declare module "@babylonjs/node-particle-editor/colorPicker/colorComponentEntry" {
|
|
4867
|
+
import * as React from "react";
|
|
4868
|
+
import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
|
|
4869
|
+
export interface IColorComponentEntryProps {
|
|
4870
|
+
value: number;
|
|
4871
|
+
label: string;
|
|
4872
|
+
max?: number;
|
|
4873
|
+
min?: number;
|
|
4874
|
+
onChange: (value: number) => void;
|
|
4875
|
+
disabled?: boolean;
|
|
4876
|
+
lockObject: LockObject;
|
|
4877
|
+
}
|
|
4878
|
+
export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
|
|
4879
|
+
constructor(props: IColorComponentEntryProps);
|
|
4880
|
+
updateValue(valueString: string): void;
|
|
4881
|
+
lock(): void;
|
|
4882
|
+
unlock(): void;
|
|
4883
|
+
|
|
4884
|
+
}
|
|
4885
|
+
|
|
4886
|
+
}
|
|
4887
|
+
|
|
4888
|
+
declare module "@babylonjs/node-particle-editor" {
|
|
4889
|
+
export * from "@babylonjs/node-particle-editor/legacy/legacy";
|
|
4890
|
+
}
|
|
4891
|
+
|
|
4892
|
+
|
|
4893
|
+
|