babylon.sandbox.d.ts 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /// <reference types="react" />
  2. declare module SANDBOX {
  3. export class GlobalState {
  4. currentScene: BABYLON.Scene;
  5. onSceneLoaded: BABYLON.Observable<{
  6. scene: BABYLON.Scene;
  7. filename: string;
  8. }>;
  9. onError: BABYLON.Observable<{
  10. scene?: BABYLON.Scene | undefined;
  11. message?: string | undefined;
  12. }>;
  13. onEnvironmentChanged: BABYLON.Observable<string>;
  14. onRequestClickInterceptor: BABYLON.Observable<void>;
  15. onClickInterceptorClicked: BABYLON.Observable<void>;
  16. filesInput: BABYLON.FilesInput;
  17. isDebugLayerEnabled: boolean;
  18. showDebugLayer(): void;
  19. hideDebugLayer(): void;
  20. }
  21. }
  22. declare module SANDBOX {
  23. export class LocalStorageHelper {
  24. static ReadLocalStorageValue(key: string, defaultValue: number): number;
  25. }
  26. }
  27. declare module SANDBOX {
  28. export class EnvironmentTools {
  29. static SkyboxPath: string;
  30. static Skyboxes: string[];
  31. static SkyboxesNames: string[];
  32. static LoadSkyboxPathTexture(scene: BABYLON.Scene): BABYLON.HDRCubeTexture | BABYLON.CubeTexture;
  33. static HookWithEnvironmentChange(globalState: GlobalState): void;
  34. }
  35. }
  36. declare module SANDBOX {
  37. interface IRenderingZoneProps {
  38. globalState: GlobalState;
  39. assetUrl?: string;
  40. cameraPosition?: BABYLON.Vector3;
  41. expanded: boolean;
  42. }
  43. export class RenderingZone extends React.Component<IRenderingZoneProps> {
  44. private _currentPluginName;
  45. private _engine;
  46. private _scene;
  47. private _canvas;
  48. constructor(props: IRenderingZoneProps);
  49. initEngine(): void;
  50. prepareCamera(): void;
  51. handleErrors(): void;
  52. prepareLighting(): void;
  53. onSceneLoaded(filename: string): void;
  54. loadAssetFromUrl(): void;
  55. loadAsset(): void;
  56. componentDidMount(): void;
  57. shouldComponentUpdate(nextProps: IRenderingZoneProps): boolean;
  58. render(): JSX.Element;
  59. }
  60. }
  61. declare module SANDBOX {
  62. interface IFooterButtonProps {
  63. globalState: GlobalState;
  64. enabled: boolean;
  65. onClick: () => void;
  66. icon: any;
  67. label: string;
  68. }
  69. export class FooterButton extends React.Component<IFooterButtonProps> {
  70. render(): JSX.Element | null;
  71. }
  72. }
  73. declare module SANDBOX {
  74. interface IDropUpButtonProps {
  75. globalState: GlobalState;
  76. enabled: boolean;
  77. icon?: any;
  78. label: string;
  79. options: string[];
  80. selectedOption?: string;
  81. onOptionPicked: (option: string) => void;
  82. }
  83. export class DropUpButton extends React.Component<IDropUpButtonProps, {
  84. isOpen: boolean;
  85. }> {
  86. private _onClickInterceptorClickedObserver;
  87. constructor(props: IDropUpButtonProps);
  88. componentWillUnmount(): void;
  89. switchDropUp(): void;
  90. clickOption(option: string): void;
  91. render(): JSX.Element | null;
  92. }
  93. }
  94. declare module SANDBOX {
  95. interface IFooterFileButtonProps {
  96. globalState: GlobalState;
  97. enabled: boolean;
  98. icon: any;
  99. label: string;
  100. onFilesPicked: (evt: Event, files: FileList | null) => void;
  101. }
  102. export class FooterFileButton extends React.Component<IFooterFileButtonProps> {
  103. onFilePicked(evt: React.ChangeEvent<HTMLInputElement>): void;
  104. render(): JSX.Element | null;
  105. }
  106. }
  107. declare module SANDBOX {
  108. interface IAnimationBarProps {
  109. globalState: GlobalState;
  110. enabled: boolean;
  111. }
  112. export class AnimationBar extends React.Component<IAnimationBarProps, {
  113. groupIndex: number;
  114. }> {
  115. private _currentScene;
  116. private _sliderSyncObserver;
  117. private _currentGroup;
  118. private _sliderRef;
  119. private _currentPlayingState;
  120. constructor(props: IAnimationBarProps);
  121. getCurrentPosition(): string;
  122. registerBeforeRender(newScene: BABYLON.Scene): void;
  123. pause(): void;
  124. play(): void;
  125. sliderInput(evt: React.FormEvent<HTMLInputElement>): void;
  126. render(): JSX.Element | null;
  127. }
  128. }
  129. declare module SANDBOX {
  130. interface IFooterProps {
  131. globalState: GlobalState;
  132. }
  133. export class Footer extends React.Component<IFooterProps> {
  134. constructor(props: IFooterProps);
  135. showInspector(): void;
  136. render(): JSX.Element;
  137. }
  138. }
  139. declare module SANDBOX {
  140. interface ISandboxProps {
  141. }
  142. export class Sandbox extends React.Component<ISandboxProps, {
  143. isFooterVisible: boolean;
  144. errorMessage: string;
  145. }> {
  146. private _globalState;
  147. private _assetUrl?;
  148. private _cameraPosition?;
  149. private _logoRef;
  150. private _dropTextRef;
  151. private _clickInterceptorRef;
  152. constructor(props: ISandboxProps);
  153. checkUrl(): void;
  154. componentDidUpdate(): void;
  155. render(): JSX.Element;
  156. static Show(hostElement: HTMLElement): void;
  157. }
  158. }