babylon.guiEditor.d.ts 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306
  1. /// <reference types="react" />
  2. declare module GUIEDITOR {
  3. interface ILogComponentProps {
  4. globalState: GlobalState;
  5. }
  6. export class LogEntry {
  7. message: string;
  8. isError: boolean;
  9. constructor(message: string, isError: boolean);
  10. }
  11. export class LogComponent extends React.Component<ILogComponentProps, {
  12. logs: LogEntry[];
  13. }> {
  14. constructor(props: ILogComponentProps);
  15. componentDidMount(): void;
  16. componentDidUpdate(): void;
  17. render(): JSX.Element;
  18. }
  19. }
  20. declare module GUIEDITOR {
  21. export interface IWorkbenchComponentProps {
  22. globalState: GlobalState;
  23. }
  24. export type FramePortData = {};
  25. export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
  26. export class WorkbenchComponent extends React.Component<IWorkbenchComponentProps> {
  27. private readonly MinZoom;
  28. private readonly MaxZoom;
  29. private _hostCanvas;
  30. private _gridCanvas;
  31. private _selectionContainer;
  32. private _frameContainer;
  33. private _svgCanvas;
  34. private _rootContainer;
  35. private _guiNodes;
  36. private _mouseStartPointX;
  37. private _mouseStartPointY;
  38. private _selectionStartX;
  39. private _selectionStartY;
  40. private _x;
  41. private _y;
  42. private _zoom;
  43. private _selectedGuiNodes;
  44. private _gridSize;
  45. private _selectionBox;
  46. private _frameCandidate;
  47. private _altKeyIsPressed;
  48. private _ctrlKeyIsPressed;
  49. private _oldY;
  50. _frameIsMoving: boolean;
  51. _isLoading: boolean;
  52. isOverGUINode: boolean;
  53. get gridSize(): number;
  54. set gridSize(value: number);
  55. get globalState(): GlobalState;
  56. get nodes(): GUINode[];
  57. get zoom(): number;
  58. set zoom(value: number);
  59. get x(): number;
  60. set x(value: number);
  61. get y(): number;
  62. set y(value: number);
  63. get selectedGuiNodes(): GUINode[];
  64. get canvasContainer(): HTMLDivElement;
  65. get hostCanvas(): HTMLDivElement;
  66. get svgCanvas(): HTMLElement;
  67. get selectionContainer(): HTMLDivElement;
  68. get frameContainer(): HTMLDivElement;
  69. constructor(props: IWorkbenchComponentProps);
  70. getGridPosition(position: number, useCeil?: boolean): number;
  71. getGridPositionCeil(position: number): number;
  72. loadFromJson(serializationObject: any): void;
  73. loadFromSnippet(snippedID: string): Promise<void>;
  74. loadFromGuiTexture(): void;
  75. updateTransform(): void;
  76. onKeyUp(): void;
  77. findNodeFromGuiElement(guiControl: Control): GUINode;
  78. reset(): void;
  79. appendBlock(guiElement: Control): GUINode;
  80. distributeGraph(): void;
  81. componentDidMount(): void;
  82. onMove(evt: React.PointerEvent): void;
  83. onDown(evt: React.PointerEvent<HTMLElement>): void;
  84. isUp: boolean;
  85. onUp(evt: React.PointerEvent): void;
  86. onWheel(evt: React.WheelEvent): void;
  87. zoomToFit(): void;
  88. createGUICanvas(): void;
  89. updateGUIs(): void;
  90. render(): JSX.Element;
  91. }
  92. }
  93. declare module GUIEDITOR {
  94. export class GUINode {
  95. guiControl: Control;
  96. private _x;
  97. private _y;
  98. private _gridAlignedX;
  99. private _gridAlignedY;
  100. private _globalState;
  101. private _onSelectionChangedObserver;
  102. private _onSelectionBoxMovedObserver;
  103. private _onUpdateRequiredObserver;
  104. private _ownerCanvas;
  105. private _isSelected;
  106. private _isVisible;
  107. private _enclosingFrameId;
  108. children: GUINode[];
  109. get isVisible(): boolean;
  110. set isVisible(value: boolean);
  111. get gridAlignedX(): number;
  112. get gridAlignedY(): number;
  113. get x(): number;
  114. set x(value: number);
  115. get y(): number;
  116. set y(value: number);
  117. get width(): number;
  118. get height(): number;
  119. get id(): number;
  120. get name(): string | undefined;
  121. get isSelected(): boolean;
  122. get enclosingFrameId(): number;
  123. set enclosingFrameId(value: number);
  124. set isSelected(value: boolean);
  125. constructor(globalState: GlobalState, guiControl: Control);
  126. cleanAccumulation(useCeil?: boolean): void;
  127. clicked: boolean;
  128. _onMove(evt: BABYLON.Vector2, startPos: BABYLON.Vector2, ignorClick?: boolean): boolean;
  129. updateVisual(): void;
  130. private _isContainer;
  131. addGui(childNode: GUINode): void;
  132. dispose(): void;
  133. }
  134. }
  135. declare module GUIEDITOR {
  136. export class PropertyChangedEvent {
  137. object: any;
  138. property: string;
  139. value: any;
  140. initialValue: any;
  141. allowNullValue?: boolean;
  142. }
  143. }
  144. declare module GUIEDITOR {
  145. export class GlobalState {
  146. guiTexture: AdvancedDynamicTexture;
  147. hostElement: HTMLElement;
  148. hostDocument: HTMLDocument;
  149. hostWindow: Window;
  150. onSelectionChangedObservable: BABYLON.Observable<BABYLON.Nullable<GUINode>>;
  151. onRebuildRequiredObservable: BABYLON.Observable<void>;
  152. onBuiltObservable: BABYLON.Observable<void>;
  153. onResetRequiredObservable: BABYLON.Observable<void>;
  154. onUpdateRequiredObservable: BABYLON.Observable<void>;
  155. onReOrganizedRequiredObservable: BABYLON.Observable<void>;
  156. onLogRequiredObservable: BABYLON.Observable<LogEntry>;
  157. onErrorMessageDialogRequiredObservable: BABYLON.Observable<string>;
  158. onIsLoadingChanged: BABYLON.Observable<boolean>;
  159. onSelectionBoxMoved: BABYLON.Observable<DOMRect | ClientRect>;
  160. onGuiNodeRemovalObservable: BABYLON.Observable<GUINode>;
  161. backgroundColor: BABYLON.Color4;
  162. blockKeyboardEvents: boolean;
  163. controlCamera: boolean;
  164. workbench: WorkbenchComponent;
  165. onPropertyChangedObservable: BABYLON.Observable<PropertyChangedEvent>;
  166. storeEditorData: (serializationObject: any) => void;
  167. customSave?: {
  168. label: string;
  169. action: (data: string) => Promise<void>;
  170. };
  171. constructor();
  172. }
  173. }
  174. declare module GUIEDITOR {
  175. interface ILineContainerComponentProps {
  176. title: string;
  177. children: any[] | any;
  178. closed?: boolean;
  179. }
  180. export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
  181. isExpanded: boolean;
  182. }> {
  183. constructor(props: ILineContainerComponentProps);
  184. switchExpandedState(): void;
  185. renderHeader(): JSX.Element;
  186. render(): JSX.Element;
  187. }
  188. }
  189. declare module GUIEDITOR {
  190. export interface IButtonLineComponentProps {
  191. data: string;
  192. tooltip: string;
  193. }
  194. export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
  195. constructor(props: IButtonLineComponentProps);
  196. render(): JSX.Element;
  197. }
  198. }
  199. declare module GUIEDITOR {
  200. interface IGuiListComponentProps {
  201. globalState: GlobalState;
  202. }
  203. export class GuiListComponent extends React.Component<IGuiListComponentProps, {
  204. filter: string;
  205. }> {
  206. private _onResetRequiredObserver;
  207. private static _Tooltips;
  208. constructor(props: IGuiListComponentProps);
  209. componentWillUnmount(): void;
  210. filterContent(filter: string): void;
  211. render(): JSX.Element;
  212. }
  213. }
  214. declare module GUIEDITOR {
  215. export interface IButtonLineComponentProps {
  216. label: string;
  217. onClick: () => void;
  218. }
  219. export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
  220. constructor(props: IButtonLineComponentProps);
  221. render(): JSX.Element;
  222. }
  223. }
  224. declare module GUIEDITOR {
  225. interface IFileButtonLineComponentProps {
  226. label: string;
  227. onClick: (file: File) => void;
  228. accept: string;
  229. }
  230. export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
  231. private static _IDGenerator;
  232. private _id;
  233. private uploadInputRef;
  234. constructor(props: IFileButtonLineComponentProps);
  235. onChange(evt: any): void;
  236. render(): JSX.Element;
  237. }
  238. }
  239. declare module GUIEDITOR {
  240. export interface ICheckBoxLineComponentProps {
  241. label: string;
  242. target?: any;
  243. propertyName?: string;
  244. isSelected?: () => boolean;
  245. onSelect?: (value: boolean) => void;
  246. onValueChanged?: () => void;
  247. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  248. disabled?: boolean;
  249. }
  250. export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
  251. isSelected: boolean;
  252. isDisabled?: boolean;
  253. }> {
  254. private static _UniqueIdSeed;
  255. private _uniqueId;
  256. private _localChange;
  257. constructor(props: ICheckBoxLineComponentProps);
  258. shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
  259. isSelected: boolean;
  260. isDisabled: boolean;
  261. }): boolean;
  262. onChange(): void;
  263. render(): JSX.Element;
  264. }
  265. }
  266. declare module GUIEDITOR {
  267. interface ITextLineComponentProps {
  268. label?: string;
  269. value?: string;
  270. color?: string;
  271. underline?: boolean;
  272. onLink?: () => void;
  273. url?: string;
  274. ignoreValue?: boolean;
  275. additionalClass?: string;
  276. }
  277. export class TextLineComponent extends React.Component<ITextLineComponentProps> {
  278. constructor(props: ITextLineComponentProps);
  279. onLink(): void;
  280. renderContent(): JSX.Element | null;
  281. render(): JSX.Element;
  282. }
  283. }
  284. declare module GUIEDITOR {
  285. export class StringTools {
  286. private static _SaveAs;
  287. private static _Click;
  288. /**
  289. * Download a string into a file that will be saved locally by the browser
  290. * @param content defines the string to download locally as a file
  291. */
  292. static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
  293. }
  294. }
  295. declare module GUIEDITOR {
  296. /**
  297. * Class used to provide lock mechanism
  298. */
  299. export class LockObject {
  300. /**
  301. * Gets or set if the lock is engaged
  302. */
  303. lock: boolean;
  304. }
  305. }
  306. declare module GUIEDITOR {
  307. interface IFloatLineComponentProps {
  308. label: string;
  309. target: any;
  310. propertyName: string;
  311. lockObject?: LockObject;
  312. onChange?: (newValue: number) => void;
  313. isInteger?: boolean;
  314. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  315. additionalClass?: string;
  316. step?: string;
  317. digits?: number;
  318. useEuler?: boolean;
  319. min?: number;
  320. max?: number;
  321. smallUI?: boolean;
  322. onEnter?: (newValue: number) => void;
  323. }
  324. export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
  325. value: string;
  326. }> {
  327. private _localChange;
  328. private _store;
  329. constructor(props: IFloatLineComponentProps);
  330. componentWillUnmount(): void;
  331. shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
  332. value: string;
  333. }): boolean;
  334. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  335. updateValue(valueString: string): void;
  336. lock(): void;
  337. unlock(): void;
  338. render(): JSX.Element;
  339. }
  340. }
  341. declare module GUIEDITOR {
  342. interface ISliderLineComponentProps {
  343. label: string;
  344. target?: any;
  345. propertyName?: string;
  346. minimum: number;
  347. maximum: number;
  348. step: number;
  349. directValue?: number;
  350. useEuler?: boolean;
  351. onChange?: (value: number) => void;
  352. onInput?: (value: number) => void;
  353. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  354. decimalCount?: number;
  355. margin?: boolean;
  356. }
  357. export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
  358. value: number;
  359. }> {
  360. private _localChange;
  361. constructor(props: ISliderLineComponentProps);
  362. shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
  363. value: number;
  364. }): boolean;
  365. onChange(newValueString: any): void;
  366. onInput(newValueString: any): void;
  367. prepareDataToRead(value: number): number;
  368. render(): JSX.Element;
  369. }
  370. }
  371. declare module GUIEDITOR {
  372. interface ITextInputLineComponentProps {
  373. label: string;
  374. lockObject: LockObject;
  375. target?: any;
  376. propertyName?: string;
  377. value?: string;
  378. onChange?: (value: string) => void;
  379. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  380. }
  381. export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
  382. value: string;
  383. }> {
  384. private _localChange;
  385. constructor(props: ITextInputLineComponentProps);
  386. componentWillUnmount(): void;
  387. shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
  388. value: string;
  389. }): boolean;
  390. raiseOnPropertyChanged(newValue: string, previousValue: string): void;
  391. updateValue(value: string): void;
  392. render(): JSX.Element;
  393. }
  394. }
  395. declare module GUIEDITOR {
  396. export const Null_Value: number;
  397. export class ListLineOption {
  398. label: string;
  399. value: number;
  400. selected?: boolean;
  401. }
  402. export interface IOptionsLineComponentProps {
  403. label: string;
  404. target: any;
  405. propertyName: string;
  406. options: ListLineOption[];
  407. noDirectUpdate?: boolean;
  408. onSelect?: (value: number) => void;
  409. extractValue?: () => number;
  410. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  411. allowNullValue?: boolean;
  412. }
  413. export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
  414. value: number;
  415. }> {
  416. private _localChange;
  417. private remapValueIn;
  418. private remapValueOut;
  419. constructor(props: IOptionsLineComponentProps);
  420. shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
  421. value: number;
  422. }): boolean;
  423. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  424. updateValue(valueString: string): void;
  425. render(): JSX.Element;
  426. }
  427. }
  428. declare module GUIEDITOR {
  429. interface ICommonControlPropertyGridComponentProps {
  430. control: Control;
  431. lockObject: LockObject;
  432. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  433. }
  434. export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
  435. constructor(props: ICommonControlPropertyGridComponentProps);
  436. renderGridInformation(): JSX.Element | null;
  437. render(): JSX.Element;
  438. }
  439. }
  440. declare module GUIEDITOR {
  441. interface ISliderPropertyGridComponentProps {
  442. slider: Slider;
  443. lockObject: LockObject;
  444. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  445. }
  446. export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
  447. constructor(props: ISliderPropertyGridComponentProps);
  448. render(): JSX.Element;
  449. }
  450. }
  451. declare module GUIEDITOR {
  452. interface ILinePropertyGridComponentProps {
  453. line: Line;
  454. lockObject: LockObject;
  455. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  456. }
  457. export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
  458. constructor(props: ILinePropertyGridComponentProps);
  459. onDashChange(value: string): void;
  460. render(): JSX.Element;
  461. }
  462. }
  463. declare module GUIEDITOR {
  464. interface IRadioButtonPropertyGridComponentProps {
  465. radioButton: RadioButton;
  466. lockObject: LockObject;
  467. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  468. }
  469. export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
  470. constructor(props: IRadioButtonPropertyGridComponentProps);
  471. render(): JSX.Element;
  472. }
  473. }
  474. declare module GUIEDITOR {
  475. interface ITextBlockPropertyGridComponentProps {
  476. textBlock: TextBlock;
  477. lockObject: LockObject;
  478. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  479. }
  480. export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
  481. constructor(props: ITextBlockPropertyGridComponentProps);
  482. render(): JSX.Element;
  483. }
  484. }
  485. declare module GUIEDITOR {
  486. interface IInputTextPropertyGridComponentProps {
  487. inputText: InputText;
  488. lockObject: LockObject;
  489. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  490. }
  491. export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
  492. constructor(props: IInputTextPropertyGridComponentProps);
  493. render(): JSX.Element;
  494. }
  495. }
  496. declare module GUIEDITOR {
  497. interface INumericInputComponentProps {
  498. label: string;
  499. value: number;
  500. step?: number;
  501. onChange: (value: number) => void;
  502. precision?: number;
  503. }
  504. export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
  505. value: string;
  506. }> {
  507. static defaultProps: {
  508. step: number;
  509. };
  510. private _localChange;
  511. constructor(props: INumericInputComponentProps);
  512. shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
  513. value: string;
  514. }): boolean;
  515. updateValue(evt: any): void;
  516. onBlur(): void;
  517. render(): JSX.Element;
  518. }
  519. }
  520. declare module GUIEDITOR {
  521. export interface IColorComponentEntryProps {
  522. value: number;
  523. label: string;
  524. max?: number;
  525. min?: number;
  526. onChange: (value: number) => void;
  527. }
  528. export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
  529. constructor(props: IColorComponentEntryProps);
  530. updateValue(valueString: string): void;
  531. render(): JSX.Element;
  532. }
  533. }
  534. declare module GUIEDITOR {
  535. export interface IHexColorProps {
  536. value: string;
  537. expectedLength: number;
  538. onChange: (value: string) => void;
  539. }
  540. export class HexColor extends React.Component<IHexColorProps, {
  541. hex: string;
  542. }> {
  543. constructor(props: IHexColorProps);
  544. shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
  545. hex: string;
  546. }): boolean;
  547. updateHexValue(valueString: string): void;
  548. render(): JSX.Element;
  549. }
  550. }
  551. declare module GUIEDITOR {
  552. /**
  553. * Interface used to specify creation options for color picker
  554. */
  555. export interface IColorPickerProps {
  556. color: BABYLON.Color3 | BABYLON.Color4;
  557. debugMode?: boolean;
  558. onColorChanged?: (color: BABYLON.Color3 | BABYLON.Color4) => void;
  559. }
  560. /**
  561. * Interface used to specify creation options for color picker
  562. */
  563. export interface IColorPickerState {
  564. color: BABYLON.Color3;
  565. alpha: number;
  566. }
  567. /**
  568. * Class used to create a color picker
  569. */
  570. export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
  571. private _saturationRef;
  572. private _hueRef;
  573. private _isSaturationPointerDown;
  574. private _isHuePointerDown;
  575. constructor(props: IColorPickerProps);
  576. onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  577. onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  578. onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
  579. onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  580. onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  581. onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
  582. private _evaluateSaturation;
  583. private _evaluateHue;
  584. componentDidUpdate(): void;
  585. raiseOnColorChanged(): void;
  586. render(): JSX.Element;
  587. }
  588. }
  589. declare module GUIEDITOR {
  590. export interface IColorPickerComponentProps {
  591. value: BABYLON.Color4 | BABYLON.Color3;
  592. onColorChanged: (newOne: string) => void;
  593. }
  594. interface IColorPickerComponentState {
  595. pickerEnabled: boolean;
  596. color: BABYLON.Color3 | BABYLON.Color4;
  597. hex: string;
  598. }
  599. export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
  600. private _floatRef;
  601. private _floatHostRef;
  602. constructor(props: IColorPickerComponentProps);
  603. syncPositions(): void;
  604. shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
  605. componentDidUpdate(): void;
  606. componentDidMount(): void;
  607. render(): JSX.Element;
  608. }
  609. }
  610. declare module GUIEDITOR {
  611. export interface IColor3LineComponentProps {
  612. label: string;
  613. target: any;
  614. propertyName: string;
  615. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  616. isLinear?: boolean;
  617. }
  618. export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
  619. isExpanded: boolean;
  620. color: BABYLON.Color3;
  621. }> {
  622. private _localChange;
  623. constructor(props: IColor3LineComponentProps);
  624. shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
  625. color: BABYLON.Color3;
  626. }): boolean;
  627. setPropertyValue(newColor: BABYLON.Color3): void;
  628. onChange(newValue: string): void;
  629. switchExpandState(): void;
  630. raiseOnPropertyChanged(previousValue: BABYLON.Color3): void;
  631. updateStateR(value: number): void;
  632. updateStateG(value: number): void;
  633. updateStateB(value: number): void;
  634. copyToClipboard(): void;
  635. render(): JSX.Element;
  636. }
  637. }
  638. declare module GUIEDITOR {
  639. interface IColorPickerPropertyGridComponentProps {
  640. colorPicker: ColorPicker;
  641. lockObject: LockObject;
  642. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  643. }
  644. export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
  645. constructor(props: IColorPickerPropertyGridComponentProps);
  646. render(): JSX.Element;
  647. }
  648. }
  649. declare module GUIEDITOR {
  650. interface IImagePropertyGridComponentProps {
  651. image: Image;
  652. lockObject: LockObject;
  653. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  654. }
  655. export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
  656. constructor(props: IImagePropertyGridComponentProps);
  657. render(): JSX.Element;
  658. }
  659. }
  660. declare module GUIEDITOR {
  661. interface IImageBasedSliderPropertyGridComponentProps {
  662. imageBasedSlider: ImageBasedSlider;
  663. lockObject: LockObject;
  664. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  665. }
  666. export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
  667. constructor(props: IImageBasedSliderPropertyGridComponentProps);
  668. render(): JSX.Element;
  669. }
  670. }
  671. declare module GUIEDITOR {
  672. interface IRectanglePropertyGridComponentProps {
  673. rectangle: Rectangle;
  674. lockObject: LockObject;
  675. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  676. }
  677. export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
  678. constructor(props: IRectanglePropertyGridComponentProps);
  679. render(): JSX.Element;
  680. }
  681. }
  682. declare module GUIEDITOR {
  683. interface IStackPanelPropertyGridComponentProps {
  684. stackPanel: StackPanel;
  685. lockObject: LockObject;
  686. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  687. }
  688. export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
  689. constructor(props: IStackPanelPropertyGridComponentProps);
  690. render(): JSX.Element;
  691. }
  692. }
  693. declare module GUIEDITOR {
  694. interface IGridPropertyGridComponentProps {
  695. grid: Grid;
  696. lockObject: LockObject;
  697. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  698. }
  699. export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
  700. constructor(props: IGridPropertyGridComponentProps);
  701. renderRows(): JSX.Element[];
  702. renderColumns(): JSX.Element[];
  703. render(): JSX.Element;
  704. }
  705. }
  706. declare module GUIEDITOR {
  707. interface IScrollViewerPropertyGridComponentProps {
  708. scrollViewer: ScrollViewer;
  709. lockObject: LockObject;
  710. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  711. }
  712. export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
  713. constructor(props: IScrollViewerPropertyGridComponentProps);
  714. render(): JSX.Element;
  715. }
  716. }
  717. declare module GUIEDITOR {
  718. interface IEllipsePropertyGridComponentProps {
  719. ellipse: Ellipse;
  720. lockObject: LockObject;
  721. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  722. }
  723. export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
  724. constructor(props: IEllipsePropertyGridComponentProps);
  725. render(): JSX.Element;
  726. }
  727. }
  728. declare module GUIEDITOR {
  729. interface ICheckboxPropertyGridComponentProps {
  730. checkbox: Checkbox;
  731. lockObject: LockObject;
  732. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  733. }
  734. export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
  735. constructor(props: ICheckboxPropertyGridComponentProps);
  736. render(): JSX.Element;
  737. }
  738. }
  739. declare module GUIEDITOR {
  740. interface IControlPropertyGridComponentProps {
  741. control: Control;
  742. lockObject: LockObject;
  743. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  744. }
  745. export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
  746. constructor(props: IControlPropertyGridComponentProps);
  747. render(): JSX.Element;
  748. }
  749. }
  750. declare module GUIEDITOR {
  751. interface IPropertyTabComponentProps {
  752. globalState: GlobalState;
  753. }
  754. interface IPropertyTabComponentState {
  755. currentNode: BABYLON.Nullable<GUINode>;
  756. }
  757. export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
  758. private _onBuiltObserver;
  759. private _timerIntervalId;
  760. private _lockObject;
  761. constructor(props: IPropertyTabComponentProps);
  762. timerRefresh(): void;
  763. componentDidMount(): void;
  764. componentWillUnmount(): void;
  765. load(file: File): void;
  766. save(): void;
  767. saveToSnippetServer(): void;
  768. loadFromSnippet(): void;
  769. renderProperties(): JSX.Element | null;
  770. render(): JSX.Element;
  771. }
  772. }
  773. declare module GUIEDITOR {
  774. interface IPortalProps {
  775. globalState: GlobalState;
  776. }
  777. export class Portal extends React.Component<IPortalProps> {
  778. render(): React.ReactPortal;
  779. }
  780. }
  781. declare module GUIEDITOR {
  782. export class GUINodeTools {
  783. static CreateControlFromString(data: string): Slider | Line | TextBlock | ColorPicker | Rectangle | Ellipse | Checkbox;
  784. }
  785. }
  786. declare module GUIEDITOR {
  787. export interface INodeLocationInfo {
  788. blockId: number;
  789. x: number;
  790. y: number;
  791. }
  792. export interface IFrameData {
  793. x: number;
  794. y: number;
  795. width: number;
  796. height: number;
  797. color: number[];
  798. name: string;
  799. isCollapsed: boolean;
  800. blocks: number[];
  801. comments: string;
  802. }
  803. export interface IEditorData {
  804. locations: INodeLocationInfo[];
  805. x: number;
  806. y: number;
  807. zoom: number;
  808. frames?: IFrameData[];
  809. map?: {
  810. [key: number]: number;
  811. };
  812. }
  813. }
  814. declare module GUIEDITOR {
  815. interface IMessageDialogComponentProps {
  816. globalState: GlobalState;
  817. }
  818. export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
  819. message: string;
  820. isError: boolean;
  821. }> {
  822. constructor(props: IMessageDialogComponentProps);
  823. render(): JSX.Element | null;
  824. }
  825. }
  826. declare module GUIEDITOR {
  827. interface IGraphEditorProps {
  828. globalState: GlobalState;
  829. }
  830. interface IGraphEditorState {
  831. showPreviewPopUp: boolean;
  832. }
  833. export class WorkbenchEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
  834. private _workbenchCanvas;
  835. private _startX;
  836. private _moveInProgress;
  837. private _leftWidth;
  838. private _rightWidth;
  839. private _blocks;
  840. private _onWidgetKeyUpPointer;
  841. private _popUpWindow;
  842. /**
  843. * Creates a node and recursivly creates its parent nodes from it's input
  844. * @param block
  845. */
  846. createNodeFromObject(block: Control, recursion?: boolean): BABYLON.Nullable<GUINode>;
  847. componentDidMount(): void;
  848. componentWillUnmount(): void;
  849. constructor(props: IGraphEditorProps);
  850. pasteSelection(copiedNodes: GUINode[], currentX: number, currentY: number, selectNew?: boolean): GUINode[];
  851. zoomToFit(): void;
  852. showWaitScreen(): void;
  853. hideWaitScreen(): void;
  854. reOrganize(editorData?: BABYLON.Nullable<IEditorData>, isImportingAFrame?: boolean): void;
  855. onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  856. onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  857. resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
  858. buildColumnLayout(): string;
  859. emitNewBlock(event: React.DragEvent<HTMLDivElement>): void;
  860. handlePopUp: () => void;
  861. handleClosingPopUp: () => void;
  862. createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
  863. copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void;
  864. fixPopUpStyles: (document: Document) => void;
  865. render(): JSX.Element;
  866. }
  867. }
  868. declare module GUIEDITOR {
  869. export class Popup {
  870. static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
  871. private static _CopyStyles;
  872. }
  873. }
  874. declare module GUIEDITOR {
  875. /**
  876. * Interface used to specify creation options for the gui editor
  877. */
  878. export interface IGUIEditorOptions {
  879. hostElement?: HTMLElement;
  880. customSave?: {
  881. label: string;
  882. action: (data: string) => Promise<void>;
  883. };
  884. customLoadObservable?: BABYLON.Observable<any>;
  885. }
  886. /**
  887. * Class used to create a gui editor
  888. */
  889. export class GUIEditor {
  890. private static _CurrentState;
  891. /**
  892. * Show the gui editor
  893. * @param options defines the options to use to configure the gui editor
  894. */
  895. static Show(options: IGUIEditorOptions): void;
  896. }
  897. }
  898. declare module GUIEDITOR {
  899. export class PropertyChangedEvent {
  900. object: any;
  901. property: string;
  902. value: any;
  903. initialValue: any;
  904. }
  905. }
  906. declare module GUIEDITOR {
  907. interface IFloatLineComponentProps {
  908. label: string;
  909. target: any;
  910. propertyName: string;
  911. onChange?: (newValue: number) => void;
  912. isInteger?: boolean;
  913. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  914. additionalClass?: string;
  915. step?: string;
  916. digits?: number;
  917. globalState: GlobalState;
  918. min?: number;
  919. max?: number;
  920. smallUI?: boolean;
  921. onEnter?: (newValue: number) => void;
  922. }
  923. export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
  924. value: string;
  925. }> {
  926. private _localChange;
  927. private _store;
  928. private _regExp;
  929. private _digits;
  930. constructor(props: IFloatLineComponentProps);
  931. shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
  932. value: string;
  933. }): boolean;
  934. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  935. updateValue(valueString: string): void;
  936. render(): JSX.Element;
  937. }
  938. }
  939. declare module GUIEDITOR {
  940. interface ILineWithFileButtonComponentProps {
  941. title: string;
  942. closed?: boolean;
  943. label: string;
  944. iconImage: any;
  945. onIconClick: (file: File) => void;
  946. accept: string;
  947. uploadName?: string;
  948. }
  949. export class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, {
  950. isExpanded: boolean;
  951. }> {
  952. private uploadRef;
  953. constructor(props: ILineWithFileButtonComponentProps);
  954. onChange(evt: any): void;
  955. switchExpandedState(): void;
  956. render(): JSX.Element;
  957. }
  958. }
  959. declare module GUIEDITOR {
  960. interface INumericInputComponentProps {
  961. label: string;
  962. value: number;
  963. step?: number;
  964. onChange: (value: number) => void;
  965. globalState: GlobalState;
  966. }
  967. export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
  968. value: string;
  969. }> {
  970. static defaultProps: {
  971. step: number;
  972. };
  973. private _localChange;
  974. constructor(props: INumericInputComponentProps);
  975. shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
  976. value: string;
  977. }): boolean;
  978. updateValue(evt: any): void;
  979. render(): JSX.Element;
  980. }
  981. }
  982. declare module GUIEDITOR {
  983. interface ISliderLineComponentProps {
  984. label: string;
  985. target?: any;
  986. propertyName?: string;
  987. minimum: number;
  988. maximum: number;
  989. step: number;
  990. directValue?: number;
  991. useEuler?: boolean;
  992. onChange?: (value: number) => void;
  993. onInput?: (value: number) => void;
  994. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  995. decimalCount?: number;
  996. globalState: GlobalState;
  997. }
  998. export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
  999. value: number;
  1000. }> {
  1001. private _localChange;
  1002. constructor(props: ISliderLineComponentProps);
  1003. shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
  1004. value: number;
  1005. }): boolean;
  1006. onChange(newValueString: any): void;
  1007. onInput(newValueString: any): void;
  1008. prepareDataToRead(value: number): number;
  1009. render(): JSX.Element;
  1010. }
  1011. }
  1012. declare module GUIEDITOR {
  1013. interface ITextInputLineComponentProps {
  1014. label: string;
  1015. globalState: GlobalState;
  1016. target?: any;
  1017. propertyName?: string;
  1018. value?: string;
  1019. multilines?: boolean;
  1020. onChange?: (value: string) => void;
  1021. validator?: (value: string) => boolean;
  1022. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1023. }
  1024. export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
  1025. value: string;
  1026. }> {
  1027. private _localChange;
  1028. constructor(props: ITextInputLineComponentProps);
  1029. shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
  1030. value: string;
  1031. }): boolean;
  1032. raiseOnPropertyChanged(newValue: string, previousValue: string): void;
  1033. updateValue(value: string, raisePropertyChanged: boolean): void;
  1034. render(): JSX.Element;
  1035. }
  1036. }
  1037. declare module GUIEDITOR {
  1038. export interface IBooleanLineComponentProps {
  1039. label: string;
  1040. value: boolean;
  1041. }
  1042. export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
  1043. constructor(props: IBooleanLineComponentProps);
  1044. render(): JSX.Element;
  1045. }
  1046. }
  1047. declare module GUIEDITOR {
  1048. export interface IColor4LineComponentProps {
  1049. label: string;
  1050. target: any;
  1051. propertyName: string;
  1052. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1053. onChange?: () => void;
  1054. isLinear?: boolean;
  1055. }
  1056. export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
  1057. isExpanded: boolean;
  1058. color: BABYLON.Color4;
  1059. }> {
  1060. private _localChange;
  1061. constructor(props: IColor4LineComponentProps);
  1062. shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
  1063. color: BABYLON.Color4;
  1064. }): boolean;
  1065. setPropertyValue(newColor: BABYLON.Color4): void;
  1066. onChange(newValue: string): void;
  1067. switchExpandState(): void;
  1068. raiseOnPropertyChanged(previousValue: BABYLON.Color4): void;
  1069. updateStateR(value: number): void;
  1070. updateStateG(value: number): void;
  1071. updateStateB(value: number): void;
  1072. updateStateA(value: number): void;
  1073. copyToClipboard(): void;
  1074. render(): JSX.Element;
  1075. }
  1076. }
  1077. declare module GUIEDITOR {
  1078. interface IFileMultipleButtonLineComponentProps {
  1079. label: string;
  1080. onClick: (event: any) => void;
  1081. accept: string;
  1082. }
  1083. export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
  1084. private static _IDGenerator;
  1085. private _id;
  1086. private uploadInputRef;
  1087. constructor(props: IFileMultipleButtonLineComponentProps);
  1088. onChange(evt: any): void;
  1089. render(): JSX.Element;
  1090. }
  1091. }
  1092. declare module GUIEDITOR {
  1093. interface IHexLineComponentProps {
  1094. label: string;
  1095. target: any;
  1096. propertyName: string;
  1097. lockObject?: LockObject;
  1098. onChange?: (newValue: number) => void;
  1099. isInteger?: boolean;
  1100. replaySourceReplacement?: string;
  1101. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1102. additionalClass?: string;
  1103. step?: string;
  1104. digits?: number;
  1105. useEuler?: boolean;
  1106. min?: number;
  1107. }
  1108. export class HexLineComponent extends React.Component<IHexLineComponentProps, {
  1109. value: string;
  1110. }> {
  1111. private _localChange;
  1112. private _store;
  1113. private _propertyChange;
  1114. constructor(props: IHexLineComponentProps);
  1115. componentWillUnmount(): void;
  1116. shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
  1117. value: string;
  1118. }): boolean;
  1119. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  1120. convertToHexString(valueString: string): string;
  1121. updateValue(valueString: string, raisePropertyChanged: boolean): void;
  1122. lock(): void;
  1123. unlock(): void;
  1124. render(): JSX.Element;
  1125. }
  1126. }
  1127. declare module GUIEDITOR {
  1128. export interface IIconButtonLineComponentProps {
  1129. icon: string;
  1130. onClick: () => void;
  1131. tooltip: string;
  1132. active?: boolean;
  1133. }
  1134. export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
  1135. constructor(props: IIconButtonLineComponentProps);
  1136. render(): JSX.Element;
  1137. }
  1138. }
  1139. declare module GUIEDITOR {
  1140. interface IIndentedTextLineComponentProps {
  1141. value?: string;
  1142. color?: string;
  1143. underline?: boolean;
  1144. onLink?: () => void;
  1145. url?: string;
  1146. additionalClass?: string;
  1147. }
  1148. export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
  1149. constructor(props: IIndentedTextLineComponentProps);
  1150. onLink(): void;
  1151. renderContent(): JSX.Element;
  1152. render(): JSX.Element;
  1153. }
  1154. }
  1155. declare module GUIEDITOR {
  1156. interface ILinkButtonComponentProps {
  1157. label: string;
  1158. buttonLabel: string;
  1159. url?: string;
  1160. onClick: () => void;
  1161. onIconClick?: () => void;
  1162. }
  1163. export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
  1164. constructor(props: ILinkButtonComponentProps);
  1165. onLink(): void;
  1166. render(): JSX.Element;
  1167. }
  1168. }
  1169. declare module GUIEDITOR {
  1170. interface IMessageLineComponentProps {
  1171. text: string;
  1172. color?: string;
  1173. }
  1174. export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
  1175. constructor(props: IMessageLineComponentProps);
  1176. render(): JSX.Element;
  1177. }
  1178. }
  1179. declare module GUIEDITOR {
  1180. interface IRadioButtonLineComponentProps {
  1181. onSelectionChangedObservable: BABYLON.Observable<RadioButtonLineComponent>;
  1182. label: string;
  1183. isSelected: () => boolean;
  1184. onSelect: () => void;
  1185. }
  1186. export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
  1187. isSelected: boolean;
  1188. }> {
  1189. private _onSelectionChangedObserver;
  1190. constructor(props: IRadioButtonLineComponentProps);
  1191. componentDidMount(): void;
  1192. componentWillUnmount(): void;
  1193. onChange(): void;
  1194. render(): JSX.Element;
  1195. }
  1196. }
  1197. declare module GUIEDITOR {
  1198. interface IValueLineComponentProps {
  1199. label: string;
  1200. value: number;
  1201. color?: string;
  1202. fractionDigits?: number;
  1203. units?: string;
  1204. }
  1205. export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
  1206. constructor(props: IValueLineComponentProps);
  1207. render(): JSX.Element;
  1208. }
  1209. }
  1210. declare module GUIEDITOR {
  1211. interface IVector2LineComponentProps {
  1212. label: string;
  1213. target: any;
  1214. propertyName: string;
  1215. step?: number;
  1216. onChange?: (newvalue: BABYLON.Vector2) => void;
  1217. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1218. }
  1219. export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
  1220. isExpanded: boolean;
  1221. value: BABYLON.Vector2;
  1222. }> {
  1223. static defaultProps: {
  1224. step: number;
  1225. };
  1226. private _localChange;
  1227. constructor(props: IVector2LineComponentProps);
  1228. shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
  1229. isExpanded: boolean;
  1230. value: BABYLON.Vector2;
  1231. }): boolean;
  1232. switchExpandState(): void;
  1233. raiseOnPropertyChanged(previousValue: BABYLON.Vector2): void;
  1234. updateStateX(value: number): void;
  1235. updateStateY(value: number): void;
  1236. render(): JSX.Element;
  1237. }
  1238. }
  1239. declare module GUIEDITOR {
  1240. interface IVector3LineComponentProps {
  1241. label: string;
  1242. target: any;
  1243. propertyName: string;
  1244. step?: number;
  1245. onChange?: (newvalue: BABYLON.Vector3) => void;
  1246. useEuler?: boolean;
  1247. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1248. noSlider?: boolean;
  1249. }
  1250. export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
  1251. isExpanded: boolean;
  1252. value: BABYLON.Vector3;
  1253. }> {
  1254. static defaultProps: {
  1255. step: number;
  1256. };
  1257. private _localChange;
  1258. constructor(props: IVector3LineComponentProps);
  1259. getCurrentValue(): any;
  1260. shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
  1261. isExpanded: boolean;
  1262. value: BABYLON.Vector3;
  1263. }): boolean;
  1264. switchExpandState(): void;
  1265. raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void;
  1266. updateVector3(): void;
  1267. updateStateX(value: number): void;
  1268. updateStateY(value: number): void;
  1269. updateStateZ(value: number): void;
  1270. render(): JSX.Element;
  1271. }
  1272. }
  1273. declare module GUIEDITOR {
  1274. interface IVector4LineComponentProps {
  1275. label: string;
  1276. target: any;
  1277. propertyName: string;
  1278. step?: number;
  1279. onChange?: (newvalue: BABYLON.Vector4) => void;
  1280. useEuler?: boolean;
  1281. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1282. }
  1283. export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
  1284. isExpanded: boolean;
  1285. value: BABYLON.Vector4;
  1286. }> {
  1287. static defaultProps: {
  1288. step: number;
  1289. };
  1290. private _localChange;
  1291. constructor(props: IVector4LineComponentProps);
  1292. getCurrentValue(): any;
  1293. shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
  1294. isExpanded: boolean;
  1295. value: BABYLON.Vector4;
  1296. }): boolean;
  1297. switchExpandState(): void;
  1298. raiseOnPropertyChanged(previousValue: BABYLON.Vector4): void;
  1299. updateVector4(): void;
  1300. updateStateX(value: number): void;
  1301. updateStateY(value: number): void;
  1302. updateStateZ(value: number): void;
  1303. updateStateW(value: number): void;
  1304. render(): JSX.Element;
  1305. }
  1306. }