index.d.ts 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. declare module 'babylonjs/vr' {
  2. class VRDistortionCorrectionPostProcess extends PostProcess {
  3. aspectRatio: number;
  4. private _isRightEye;
  5. private _distortionFactors;
  6. private _postProcessScaleFactor;
  7. private _lensCenterOffset;
  8. private _scaleIn;
  9. private _scaleFactor;
  10. private _lensCenter;
  11. constructor(name: string, camera: Camera, isRightEye: boolean, vrMetrics: VRCameraMetrics);
  12. }
  13. }
  14. declare module 'babylonjs/vr' {
  15. class AnaglyphPostProcess extends PostProcess {
  16. private _passedProcess;
  17. constructor(name: string, options: number | PostProcessOptions, rigCameras: Camera[], samplingMode?: number, engine?: Engine, reusable?: boolean);
  18. }
  19. }
  20. declare module 'babylonjs/vr' {
  21. class StereoscopicInterlacePostProcess extends PostProcess {
  22. private _stepSize;
  23. private _passedProcess;
  24. constructor(name: string, rigCameras: Camera[], isStereoscopicHoriz: boolean, samplingMode?: number, engine?: Engine, reusable?: boolean);
  25. }
  26. }
  27. declare module 'babylonjs/vr' {
  28. class FreeCameraDeviceOrientationInput implements ICameraInput<FreeCamera> {
  29. private _camera;
  30. private _screenOrientationAngle;
  31. private _constantTranform;
  32. private _screenQuaternion;
  33. private _alpha;
  34. private _beta;
  35. private _gamma;
  36. constructor();
  37. camera: FreeCamera;
  38. attachControl(element: HTMLElement, noPreventDefault?: boolean): void;
  39. private _orientationChanged;
  40. private _deviceOrientation;
  41. detachControl(element: Nullable<HTMLElement>): void;
  42. checkInputs(): void;
  43. getClassName(): string;
  44. getSimpleName(): string;
  45. }
  46. }
  47. declare module 'babylonjs/vr' {
  48. class ArcRotateCameraVRDeviceOrientationInput implements ICameraInput<ArcRotateCamera> {
  49. camera: ArcRotateCamera;
  50. alphaCorrection: number;
  51. betaCorrection: number;
  52. gammaCorrection: number;
  53. private _alpha;
  54. private _gamma;
  55. private _dirty;
  56. private _deviceOrientationHandler;
  57. constructor();
  58. attachControl(element: HTMLElement, noPreventDefault?: boolean): void;
  59. _onOrientationEvent(evt: DeviceOrientationEvent): void;
  60. checkInputs(): void;
  61. detachControl(element: Nullable<HTMLElement>): void;
  62. getClassName(): string;
  63. getSimpleName(): string;
  64. }
  65. }
  66. declare module 'babylonjs/vr' {
  67. class VRCameraMetrics {
  68. hResolution: number;
  69. vResolution: number;
  70. hScreenSize: number;
  71. vScreenSize: number;
  72. vScreenCenter: number;
  73. eyeToScreenDistance: number;
  74. lensSeparationDistance: number;
  75. interpupillaryDistance: number;
  76. distortionK: number[];
  77. chromaAbCorrection: number[];
  78. postProcessScaleFactor: number;
  79. lensCenterOffset: number;
  80. compensateDistortion: boolean;
  81. readonly aspectRatio: number;
  82. readonly aspectRatioFov: number;
  83. readonly leftHMatrix: Matrix;
  84. readonly rightHMatrix: Matrix;
  85. readonly leftPreViewMatrix: Matrix;
  86. readonly rightPreViewMatrix: Matrix;
  87. static GetDefault(): VRCameraMetrics;
  88. }
  89. }
  90. declare var HMDVRDevice: any;
  91. declare var VRDisplay: any;
  92. declare var VRFrameData: any;
  93. declare module 'babylonjs/vr' {
  94. /**
  95. * This is a copy of VRPose.
  96. * IMPORTANT!! The data is right-hand data.
  97. * @export
  98. * @interface DevicePose
  99. */
  100. interface DevicePose {
  101. readonly position?: Float32Array;
  102. readonly linearVelocity?: Float32Array;
  103. readonly linearAcceleration?: Float32Array;
  104. readonly orientation?: Float32Array;
  105. readonly angularVelocity?: Float32Array;
  106. readonly angularAcceleration?: Float32Array;
  107. }
  108. interface PoseControlled {
  109. position: Vector3;
  110. rotationQuaternion: Quaternion;
  111. devicePosition?: Vector3;
  112. deviceRotationQuaternion: Quaternion;
  113. rawPose: Nullable<DevicePose>;
  114. deviceScaleFactor: number;
  115. updateFromDevice(poseData: DevicePose): void;
  116. }
  117. interface WebVROptions {
  118. trackPosition?: boolean;
  119. positionScale?: number;
  120. displayName?: string;
  121. controllerMeshes?: boolean;
  122. defaultLightingOnControllers?: boolean;
  123. useCustomVRButton?: boolean;
  124. customVRButton?: HTMLButtonElement;
  125. rayLength?: number;
  126. defaultHeight?: number;
  127. }
  128. class WebVRFreeCamera extends FreeCamera implements PoseControlled {
  129. private webVROptions;
  130. _vrDevice: any;
  131. rawPose: Nullable<DevicePose>;
  132. private _onVREnabled;
  133. private _specsVersion;
  134. private _attached;
  135. private _frameData;
  136. protected _descendants: Array<Node>;
  137. private _deviceRoomPosition;
  138. private _deviceRoomRotationQuaternion;
  139. private _standingMatrix;
  140. devicePosition: Vector3;
  141. deviceRotationQuaternion: Quaternion;
  142. deviceScaleFactor: number;
  143. private _deviceToWorld;
  144. private _worldToDevice;
  145. controllers: Array<WebVRController>;
  146. onControllersAttachedObservable: Observable<WebVRController[]>;
  147. onControllerMeshLoadedObservable: Observable<WebVRController>;
  148. rigParenting: boolean;
  149. private _lightOnControllers;
  150. private _defaultHeight;
  151. constructor(name: string, position: Vector3, scene: Scene, webVROptions?: WebVROptions);
  152. deviceDistanceToRoomGround: () => number;
  153. useStandingMatrix: (callback?: (bool: boolean) => void) => void;
  154. dispose(): void;
  155. getControllerByName(name: string): Nullable<WebVRController>;
  156. private _leftController;
  157. readonly leftController: Nullable<WebVRController>;
  158. private _rightController;
  159. readonly rightController: Nullable<WebVRController>;
  160. getForwardRay(length?: number): Ray;
  161. _checkInputs(): void;
  162. updateFromDevice(poseData: DevicePose): void;
  163. /**
  164. * WebVR's attach control will start broadcasting frames to the device.
  165. * Note that in certain browsers (chrome for example) this function must be called
  166. * within a user-interaction callback. Example:
  167. * <pre> scene.onPointerDown = function() { camera.attachControl(canvas); }</pre>
  168. *
  169. * @param {HTMLElement} element
  170. * @param {boolean} [noPreventDefault]
  171. *
  172. * @memberOf WebVRFreeCamera
  173. */
  174. attachControl(element: HTMLElement, noPreventDefault?: boolean): void;
  175. detachControl(element: HTMLElement): void;
  176. getClassName(): string;
  177. resetToCurrentRotation(): void;
  178. _updateRigCameras(): void;
  179. private _workingVector;
  180. private _oneVector;
  181. private _workingMatrix;
  182. private updateCacheCalled;
  183. _updateCache(ignoreParentClass?: boolean): void;
  184. update(): void;
  185. _getViewMatrix(): Matrix;
  186. /**
  187. * This function is called by the two RIG cameras.
  188. * 'this' is the left or right camera (and NOT (!!!) the WebVRFreeCamera instance)
  189. */
  190. protected _getWebVRViewMatrix(): Matrix;
  191. protected _getWebVRProjectionMatrix(): Matrix;
  192. private _onGamepadConnectedObserver;
  193. private _onGamepadDisconnectedObserver;
  194. initControllers(): void;
  195. }
  196. }
  197. declare module 'babylonjs/vr' {
  198. class DeviceOrientationCamera extends FreeCamera {
  199. private _initialQuaternion;
  200. private _quaternionCache;
  201. constructor(name: string, position: Vector3, scene: Scene);
  202. getClassName(): string;
  203. _checkInputs(): void;
  204. resetToCurrentRotation(axis?: Axis): void;
  205. }
  206. }
  207. declare module 'babylonjs/vr' {
  208. class VRDeviceOrientationFreeCamera extends DeviceOrientationCamera {
  209. constructor(name: string, position: Vector3, scene: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
  210. getClassName(): string;
  211. }
  212. class VRDeviceOrientationGamepadCamera extends VRDeviceOrientationFreeCamera {
  213. constructor(name: string, position: Vector3, scene: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
  214. getClassName(): string;
  215. }
  216. class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {
  217. constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene: Scene, compensateDistortion?: boolean, vrCameraMetrics?: VRCameraMetrics);
  218. getClassName(): string;
  219. }
  220. }
  221. declare module 'babylonjs/vr' {
  222. class AnaglyphFreeCamera extends FreeCamera {
  223. constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene);
  224. getClassName(): string;
  225. }
  226. class AnaglyphArcRotateCamera extends ArcRotateCamera {
  227. constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, scene: Scene);
  228. getClassName(): string;
  229. }
  230. class AnaglyphGamepadCamera extends GamepadCamera {
  231. constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene);
  232. getClassName(): string;
  233. }
  234. class AnaglyphUniversalCamera extends UniversalCamera {
  235. constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene);
  236. getClassName(): string;
  237. }
  238. class StereoscopicFreeCamera extends FreeCamera {
  239. constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene);
  240. getClassName(): string;
  241. }
  242. class StereoscopicArcRotateCamera extends ArcRotateCamera {
  243. constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene);
  244. getClassName(): string;
  245. }
  246. class StereoscopicGamepadCamera extends GamepadCamera {
  247. constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene);
  248. getClassName(): string;
  249. }
  250. class StereoscopicUniversalCamera extends UniversalCamera {
  251. constructor(name: string, position: Vector3, interaxialDistance: number, isStereoscopicSideBySide: boolean, scene: Scene);
  252. getClassName(): string;
  253. }
  254. }
  255. declare module 'babylonjs/vr' {
  256. interface VRTeleportationOptions {
  257. floorMeshName?: string;
  258. floorMeshes?: Mesh[];
  259. }
  260. interface VRExperienceHelperOptions extends WebVROptions {
  261. createDeviceOrientationCamera?: boolean;
  262. createFallbackVRDeviceOrientationFreeCamera?: boolean;
  263. }
  264. class VRExperienceHelper {
  265. webVROptions: VRExperienceHelperOptions;
  266. private _scene;
  267. private _position;
  268. private _btnVR;
  269. private _btnVRDisplayed;
  270. private _webVRsupported;
  271. private _webVRready;
  272. private _webVRrequesting;
  273. private _webVRpresenting;
  274. private _fullscreenVRpresenting;
  275. private _canvas;
  276. private _webVRCamera;
  277. private _vrDeviceOrientationCamera;
  278. private _deviceOrientationCamera;
  279. private _existingCamera;
  280. private _onKeyDown;
  281. private _onVrDisplayPresentChange;
  282. private _onVRDisplayChanged;
  283. private _onVRRequestPresentStart;
  284. private _onVRRequestPresentComplete;
  285. /**
  286. * Observable raised when entering VR.
  287. */
  288. onEnteringVRObservable: Observable<VRExperienceHelper>;
  289. /**
  290. * Observable raised when exiting VR.
  291. */
  292. onExitingVRObservable: Observable<VRExperienceHelper>;
  293. /**
  294. * Observable raised when controller mesh is loaded.
  295. */
  296. onControllerMeshLoadedObservable: Observable<WebVRController>;
  297. /** Return this.onEnteringVRObservable
  298. * Note: This one is for backward compatibility. Please use onEnteringVRObservable directly
  299. */
  300. readonly onEnteringVR: Observable<VRExperienceHelper>;
  301. /** Return this.onExitingVRObservable
  302. * Note: This one is for backward compatibility. Please use onExitingVRObservable directly
  303. */
  304. readonly onExitingVR: Observable<VRExperienceHelper>;
  305. /** Return this.onControllerMeshLoadedObservable
  306. * Note: This one is for backward compatibility. Please use onControllerMeshLoadedObservable directly
  307. */
  308. readonly onControllerMeshLoaded: Observable<WebVRController>;
  309. private _rayLength;
  310. private _useCustomVRButton;
  311. private _teleportationRequested;
  312. private _teleportationEnabledOnLeftController;
  313. private _teleportationEnabledOnRightController;
  314. private _interactionsEnabledOnLeftController;
  315. private _interactionsEnabledOnRightController;
  316. private _leftControllerReady;
  317. private _rightControllerReady;
  318. private _floorMeshName;
  319. private _floorMeshesCollection;
  320. private _teleportationAllowed;
  321. private _rotationAllowed;
  322. private _teleportationRequestInitiated;
  323. private _teleportationBackRequestInitiated;
  324. private teleportBackwardsVector;
  325. private _rotationRightAsked;
  326. private _rotationLeftAsked;
  327. private _teleportationTarget;
  328. private _isDefaultTeleportationTarget;
  329. private _postProcessMove;
  330. private _passProcessMove;
  331. private _teleportationFillColor;
  332. private _teleportationBorderColor;
  333. private _rotationAngle;
  334. private _haloCenter;
  335. private _gazeTracker;
  336. private _padSensibilityUp;
  337. private _padSensibilityDown;
  338. private _leftLaserPointer;
  339. private _rightLaserPointer;
  340. private _currentMeshSelected;
  341. /**
  342. * Observable raised when a new mesh is selected based on meshSelectionPredicate
  343. */
  344. onNewMeshSelected: Observable<AbstractMesh>;
  345. /**
  346. * Observable raised when a new mesh is picked based on meshSelectionPredicate
  347. */
  348. onNewMeshPicked: Observable<PickingInfo>;
  349. private _circleEase;
  350. /**
  351. * Observable raised before camera teleportation
  352. */
  353. onBeforeCameraTeleport: Observable<Vector3>;
  354. /**
  355. * Observable raised after camera teleportation
  356. */
  357. onAfterCameraTeleport: Observable<Vector3>;
  358. /**
  359. * Observable raised when current selected mesh gets unselected
  360. */
  361. onSelectedMeshUnselected: Observable<AbstractMesh>;
  362. private _raySelectionPredicate;
  363. /**
  364. * To be optionaly changed by user to define custom ray selection
  365. */
  366. raySelectionPredicate: (mesh: AbstractMesh) => boolean;
  367. /**
  368. * To be optionaly changed by user to define custom selection logic (after ray selection)
  369. */
  370. meshSelectionPredicate: (mesh: AbstractMesh) => boolean;
  371. /**
  372. * Set teleportation enabled. If set to false camera teleportation will be disabled but camera rotation will be kept.
  373. */
  374. teleportationEnabled: boolean;
  375. private _currentHit;
  376. private _pointerDownOnMeshAsked;
  377. private _isActionableMesh;
  378. private _defaultHeight;
  379. private _teleportationInitialized;
  380. private _interactionsEnabled;
  381. private _interactionsRequested;
  382. private _displayGaze;
  383. private _displayLaserPointer;
  384. private _dpadPressed;
  385. teleportationTarget: Mesh;
  386. displayGaze: boolean;
  387. displayLaserPointer: boolean;
  388. readonly deviceOrientationCamera: Nullable<DeviceOrientationCamera>;
  389. readonly currentVRCamera: Nullable<Camera>;
  390. readonly webVRCamera: WebVRFreeCamera;
  391. readonly vrDeviceOrientationCamera: Nullable<VRDeviceOrientationFreeCamera>;
  392. constructor(scene: Scene, webVROptions?: VRExperienceHelperOptions);
  393. private _onDefaultMeshLoaded(webVRController);
  394. private _onResize;
  395. private _onFullscreenChange;
  396. /**
  397. * Gets a value indicating if we are currently in VR mode.
  398. */
  399. readonly isInVRMode: boolean;
  400. private onVrDisplayPresentChange();
  401. private onVRDisplayChanged(eventArgs);
  402. private moveButtonToBottomRight();
  403. private displayVRButton();
  404. private updateButtonVisibility();
  405. /**
  406. * Attempt to enter VR. If a headset is connected and ready, will request present on that.
  407. * Otherwise, will use the fullscreen API.
  408. */
  409. enterVR(): void;
  410. /**
  411. * Attempt to exit VR, or fullscreen.
  412. */
  413. exitVR(): void;
  414. position: Vector3;
  415. enableInteractions(): void;
  416. private beforeRender;
  417. private _isTeleportationFloor(mesh);
  418. addFloorMesh(floorMesh: Mesh): void;
  419. removeFloorMesh(floorMesh: Mesh): void;
  420. enableTeleportation(vrTeleportationOptions?: VRTeleportationOptions): void;
  421. private _onNewGamepadConnected;
  422. private _tryEnableInteractionOnController;
  423. private _onNewGamepadDisconnected;
  424. private _enableInteractionOnController(webVRController);
  425. private _checkTeleportWithRay(stateObject, webVRController?);
  426. private _selectionPointerDown();
  427. private _selectionPointerUp();
  428. private _checkRotate(stateObject);
  429. private _checkTeleportBackwards(stateObject);
  430. private _enableTeleportationOnController(webVRController);
  431. private _createGazeTracker();
  432. private _createTeleportationCircles();
  433. private _displayTeleportationTarget();
  434. private _hideTeleportationTarget();
  435. private _rotateCamera(right);
  436. private _moveTeleportationSelectorTo(hit);
  437. private _workingVector;
  438. private _workingQuaternion;
  439. private _workingMatrix;
  440. private _teleportCamera(location?);
  441. private _castRayAndSelectObject();
  442. changeLaserColor(color: Color3): void;
  443. changeGazeColor(color: Color3): void;
  444. dispose(): void;
  445. getClassName(): string;
  446. }
  447. }
  448. import {EffectFallbacks,EffectCreationOptions,Effect,Nullable,float,double,int,FloatArray,IndicesArray,KeyboardEventTypes,KeyboardInfo,KeyboardInfoPre,PointerEventTypes,PointerInfoBase,PointerInfoPre,PointerInfo,ToGammaSpace,ToLinearSpace,Epsilon,Color3,Color4,Vector2,Vector3,Vector4,ISize,Size,Quaternion,Matrix,Plane,Viewport,Frustum,Space,Axis,BezierCurve,Orientation,Angle,Arc2,Path2,Path3D,Curve3,PositionNormalVertex,PositionNormalTextureVertex,Tmp,Scalar,expandToProperty,serialize,serializeAsTexture,serializeAsColor3,serializeAsFresnelParameters,serializeAsVector2,serializeAsVector3,serializeAsMeshReference,serializeAsColorCurves,serializeAsColor4,serializeAsImageProcessingConfiguration,serializeAsQuaternion,SerializationHelper,EventState,Observer,MultiObserver,Observable,SmartArray,SmartArrayNoDuplicate,IAnimatable,LoadFileError,RetryStrategy,IFileRequest,Tools,PerfCounter,className,AsyncLoop,_AlphaState,_DepthCullingState,_StencilState,InstancingAttributeInfo,RenderTargetCreationOptions,EngineCapabilities,EngineOptions,IDisplayChangedEventArgs,Engine,Node,BoundingSphere,BoundingBox,ICullable,BoundingInfo,TransformNode,AbstractMesh,Light,Camera,RenderingManager,RenderingGroup,IDisposable,IActiveMeshCandidateProvider,RenderingGroupInfo,Scene,Buffer,VertexBuffer,InternalTexture,BaseTexture,Texture,_InstancesBatch,Mesh,BaseSubMesh,SubMesh,MaterialDefines,Material,UniformBuffer,IGetSetVerticesData,VertexData,Geometry,_PrimitiveGeometry,RibbonGeometry,BoxGeometry,SphereGeometry,DiscGeometry,CylinderGeometry,TorusGeometry,GroundGeometry,TiledGroundGeometry,PlaneGeometry,TorusKnotGeometry,PostProcessManager,PerformanceMonitor,RollingAverage,IImageProcessingConfigurationDefines,ImageProcessingConfiguration,ColorGradingTexture,ColorCurves,Behavior,MaterialHelper,PushMaterial,StandardMaterialDefines,StandardMaterial} from 'babylonjs/core';
  449. import {EngineInstrumentation,SceneInstrumentation,_TimeToken} from 'babylonjs/instrumentation';
  450. import {Particle,IParticleSystem,ParticleSystem,BoxParticleEmitter,ConeParticleEmitter,SphereParticleEmitter,SphereDirectedParticleEmitter,IParticleEmitterType} from 'babylonjs/particles';
  451. import {GPUParticleSystem} from 'babylonjs/gpuParticles';
  452. import {FramingBehavior,BouncingBehavior,AutoRotationBehavior} from 'babylonjs/cameraBehaviors';
  453. import {NullEngineOptions,NullEngine} from 'babylonjs/nullEngine';
  454. import {TextureTools} from 'babylonjs/textureTools';
  455. import {SolidParticle,ModelShape,DepthSortedParticle,SolidParticleSystem} from 'babylonjs/solidParticles';
  456. import {Collider,CollisionWorker,ICollisionCoordinator,SerializedMesh,SerializedSubMesh,SerializedGeometry,BabylonMessage,SerializedColliderToWorker,WorkerTaskType,WorkerReply,CollisionReplyPayload,InitPayload,CollidePayload,UpdatePayload,WorkerReplyType,CollisionCoordinatorWorker,CollisionCoordinatorLegacy} from 'babylonjs/collisions';
  457. import {IntersectionInfo,PickingInfo,Ray} from 'babylonjs/picking';
  458. import {SpriteManager,Sprite} from 'babylonjs/sprites';
  459. import {AnimationRange,AnimationEvent,PathCursor,Animation,TargetedAnimation,AnimationGroup,RuntimeAnimation,Animatable,IEasingFunction,EasingFunction,CircleEase,BackEase,BounceEase,CubicEase,ElasticEase,ExponentialEase,PowerEase,QuadraticEase,QuarticEase,QuinticEase,SineEase,BezierCurveEase} from 'babylonjs/animations';
  460. import {Condition,ValueCondition,PredicateCondition,StateCondition,Action,ActionEvent,ActionManager,InterpolateValueAction,SwitchBooleanAction,SetStateAction,SetValueAction,IncrementValueAction,PlayAnimationAction,StopAnimationAction,DoNothingAction,CombineAction,ExecuteCodeAction,SetParentAction,PlaySoundAction,StopSoundAction} from 'babylonjs/actions';
  461. import {GroundMesh,InstancedMesh,LinesMesh} from 'babylonjs/additionalMeshes';
  462. import {ShaderMaterial} from 'babylonjs/shaderMaterial';
  463. import {MeshBuilder} from 'babylonjs/meshBuilder';
  464. import {PBRBaseMaterial,PBRBaseSimpleMaterial,PBRMaterial,PBRMetallicRoughnessMaterial,PBRSpecularGlossinessMaterial} from 'babylonjs/pbrMaterial';
  465. import {CameraInputTypes,ICameraInput,CameraInputsMap,CameraInputsManager,TargetCamera} from 'babylonjs/targetCamera';
  466. import {ArcRotateCameraKeyboardMoveInput,ArcRotateCameraMouseWheelInput,ArcRotateCameraPointersInput,ArcRotateCameraInputsManager,ArcRotateCamera} from 'babylonjs/arcRotateCamera';
  467. import {FreeCameraMouseInput,FreeCameraKeyboardMoveInput,FreeCameraInputsManager,FreeCamera} from 'babylonjs/freeCamera';
  468. import {HemisphericLight} from 'babylonjs/hemisphericLight';
  469. import {IShadowLight,ShadowLight,PointLight} from 'babylonjs/pointLight';
  470. import {DirectionalLight} from 'babylonjs/directionalLight';
  471. import {SpotLight} from 'babylonjs/spotLight';
  472. import {CubeTexture,RenderTargetTexture,IMultiRenderTargetOptions,MultiRenderTarget,MirrorTexture,RefractionTexture,DynamicTexture,VideoTexture,RawTexture} from 'babylonjs/additionalTextures';
  473. import {AudioEngine,Sound,SoundTrack,Analyser} from 'babylonjs/audio';
  474. import {ILoadingScreen,DefaultLoadingScreen,SceneLoaderProgressEvent,ISceneLoaderPluginExtensions,ISceneLoaderPluginFactory,ISceneLoaderPlugin,ISceneLoaderPluginAsync,SceneLoader,FilesInput} from 'babylonjs/loader';
  475. import {IShadowGenerator,ShadowGenerator} from 'babylonjs/shadows';
  476. import {StringDictionary} from 'babylonjs/stringDictionary';
  477. import {Tags,AndOrNotEvaluator} from 'babylonjs/userData';
  478. import {FresnelParameters} from 'babylonjs/fresnel';
  479. import {MultiMaterial} from 'babylonjs/multiMaterial';
  480. import {Database} from 'babylonjs/offline';
  481. import {FreeCameraTouchInput,TouchCamera} from 'babylonjs/touchCamera';
  482. import {ProceduralTexture,CustomProceduralTexture} from 'babylonjs/procedural';
  483. import {FreeCameraGamepadInput,ArcRotateCameraGamepadInput,GamepadManager,StickValues,GamepadButtonChanges,Gamepad,GenericPad,Xbox360Button,Xbox360Dpad,Xbox360Pad,PoseEnabledControllerType,MutableGamepadButton,ExtendedGamepadButton,PoseEnabledControllerHelper,PoseEnabledController,WebVRController,OculusTouchController,ViveController,GenericController,WindowsMotionController} from 'babylonjs/gamepad';
  484. import {FollowCamera,ArcFollowCamera,UniversalCamera,GamepadCamera} from 'babylonjs/additionalCameras';
  485. import {DepthRenderer} from 'babylonjs/depthRenderer';
  486. import {GeometryBufferRenderer} from 'babylonjs/geometryBufferRenderer';
  487. import {PostProcessOptions,PostProcess,PassPostProcess} from 'babylonjs/postProcesses';
  488. import {BlurPostProcess} from 'babylonjs/additionalPostProcess_blur';
  489. import {FxaaPostProcess} from 'babylonjs/additionalPostProcess_fxaa';
  490. import {HighlightsPostProcess} from 'babylonjs/additionalPostProcess_highlights';
  491. import {RefractionPostProcess,BlackAndWhitePostProcess,ConvolutionPostProcess,FilterPostProcess,VolumetricLightScatteringPostProcess,ColorCorrectionPostProcess,TonemappingOperator,TonemapPostProcess,DisplayPassPostProcess,ImageProcessingPostProcess} from 'babylonjs/additionalPostProcesses';
  492. import {PostProcessRenderPipelineManager,PostProcessRenderPass,PostProcessRenderEffect,PostProcessRenderPipeline} from 'babylonjs/renderingPipeline';
  493. import {SSAORenderingPipeline,SSAO2RenderingPipeline,LensRenderingPipeline,StandardRenderingPipeline} from 'babylonjs/additionalRenderingPipeline';
  494. import {DefaultRenderingPipeline} from 'babylonjs/defaultRenderingPipeline';
  495. import {Bone,BoneIKController,BoneLookController,Skeleton} from 'babylonjs/bones';
  496. import {SphericalPolynomial,SphericalHarmonics,CubeMapToSphericalPolynomialTools,CubeMapInfo,PanoramaToCubeMapTools,HDRInfo,HDRTools,HDRCubeTexture} from 'babylonjs/hdr';
  497. import {CSG} from 'babylonjs/csg';
  498. import {Polygon,PolygonMeshBuilder} from 'babylonjs/polygonMesh';
  499. import {LensFlare,LensFlareSystem} from 'babylonjs/lensFlares';
  500. import {PhysicsJointData,PhysicsJoint,DistanceJoint,MotorEnabledJoint,HingeJoint,Hinge2Joint,IMotorEnabledJoint,DistanceJointData,SpringJointData,PhysicsImpostorParameters,IPhysicsEnabledObject,PhysicsImpostor,PhysicsImpostorJoint,PhysicsEngine,IPhysicsEnginePlugin,PhysicsHelper,PhysicsRadialExplosionEvent,PhysicsGravitationalFieldEvent,PhysicsUpdraftEvent,PhysicsVortexEvent,PhysicsRadialImpulseFalloff,PhysicsUpdraftMode,PhysicsForceAndContactPoint,PhysicsRadialExplosionEventData,PhysicsGravitationalFieldEventData,PhysicsUpdraftEventData,PhysicsVortexEventData,CannonJSPlugin,OimoJSPlugin} from 'babylonjs/physics';
  501. import {TGATools,DDSInfo,DDSTools,KhronosTextureContainer} from 'babylonjs/textureFormats';
  502. import {Debug,RayHelper,DebugLayer,BoundingBoxRenderer} from 'babylonjs/debug';
  503. import {MorphTarget,MorphTargetManager} from 'babylonjs/morphTargets';
  504. import {IOctreeContainer,Octree,OctreeBlock} from 'babylonjs/octrees';
  505. import {SIMDHelper} from 'babylonjs/simd';
  506. import {JoystickAxis,VirtualJoystick,VirtualJoysticksCamera,FreeCameraVirtualJoystickInput} from 'babylonjs/virtualJoystick';
  507. import {ISimplifier,ISimplificationSettings,SimplificationSettings,ISimplificationTask,SimplificationQueue,SimplificationType,DecimationTriangle,DecimationVertex,QuadraticMatrix,Reference,QuadraticErrorSimplification,MeshLODLevel,SceneOptimization,TextureOptimization,HardwareScalingOptimization,ShadowsOptimization,PostProcessesOptimization,LensFlaresOptimization,ParticlesOptimization,RenderTargetsOptimization,MergeMeshesOptimization,SceneOptimizerOptions,SceneOptimizer} from 'babylonjs/optimizations';
  508. import {OutlineRenderer,EdgesRenderer,IHighlightLayerOptions,HighlightLayer} from 'babylonjs/highlights';
  509. import {SceneSerializer} from 'babylonjs/serialization';
  510. import {AssetTaskState,AbstractAssetTask,IAssetsProgressEvent,AssetsProgressEvent,MeshAssetTask,TextFileAssetTask,BinaryFileAssetTask,ImageAssetTask,ITextureAssetTask,TextureAssetTask,CubeTextureAssetTask,HDRCubeTextureAssetTask,AssetsManager} from 'babylonjs/assetsManager';
  511. import {ReflectionProbe} from 'babylonjs/probes';
  512. import {BackgroundMaterial} from 'babylonjs/backgroundMaterial';
  513. import {Layer} from 'babylonjs/layer';
  514. import {IEnvironmentHelperOptions,EnvironmentHelper} from 'babylonjs/environmentHelper';