index.d.ts 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  1. declare module 'babylonjs/bones' {
  2. class Bone extends Node {
  3. name: string;
  4. private static _tmpVecs;
  5. private static _tmpQuat;
  6. private static _tmpMats;
  7. children: Bone[];
  8. animations: Animation[];
  9. length: number;
  10. _index: Nullable<number>;
  11. private _skeleton;
  12. private _localMatrix;
  13. private _restPose;
  14. private _baseMatrix;
  15. private _worldTransform;
  16. private _absoluteTransform;
  17. private _invertedAbsoluteTransform;
  18. private _parent;
  19. private _scaleMatrix;
  20. private _scaleVector;
  21. private _negateScaleChildren;
  22. private _scalingDeterminant;
  23. _matrix: Matrix;
  24. constructor(name: string, skeleton: Skeleton, parentBone?: Nullable<Bone>, localMatrix?: Nullable<Matrix>, restPose?: Nullable<Matrix>, baseMatrix?: Nullable<Matrix>, index?: Nullable<number>);
  25. getSkeleton(): Skeleton;
  26. getParent(): Nullable<Bone>;
  27. setParent(parent: Nullable<Bone>, updateDifferenceMatrix?: boolean): void;
  28. getLocalMatrix(): Matrix;
  29. getBaseMatrix(): Matrix;
  30. getRestPose(): Matrix;
  31. returnToRest(): void;
  32. getWorldMatrix(): Matrix;
  33. getInvertedAbsoluteTransform(): Matrix;
  34. getAbsoluteTransform(): Matrix;
  35. position: Vector3;
  36. rotation: Vector3;
  37. rotationQuaternion: Quaternion;
  38. scaling: Vector3;
  39. updateMatrix(matrix: Matrix, updateDifferenceMatrix?: boolean): void;
  40. _updateDifferenceMatrix(rootMatrix?: Matrix): void;
  41. markAsDirty(): void;
  42. copyAnimationRange(source: Bone, rangeName: string, frameOffset: number, rescaleAsRequired?: boolean, skelDimensionsRatio?: Nullable<Vector3>): boolean;
  43. /**
  44. * Translate the bone in local or world space.
  45. * @param vec The amount to translate the bone.
  46. * @param space The space that the translation is in.
  47. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  48. */
  49. translate(vec: Vector3, space?: Space, mesh?: AbstractMesh): void;
  50. /**
  51. * Set the postion of the bone in local or world space.
  52. * @param position The position to set the bone.
  53. * @param space The space that the position is in.
  54. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  55. */
  56. setPosition(position: Vector3, space?: Space, mesh?: AbstractMesh): void;
  57. /**
  58. * Set the absolute postion of the bone (world space).
  59. * @param position The position to set the bone.
  60. * @param mesh The mesh that this bone is attached to.
  61. */
  62. setAbsolutePosition(position: Vector3, mesh?: AbstractMesh): void;
  63. /**
  64. * Set the scale of the bone on the x, y and z axes.
  65. * @param x The scale of the bone on the x axis.
  66. * @param x The scale of the bone on the y axis.
  67. * @param z The scale of the bone on the z axis.
  68. * @param scaleChildren Set this to true if children of the bone should be scaled.
  69. */
  70. setScale(x: number, y: number, z: number, scaleChildren?: boolean): void;
  71. /**
  72. * Scale the bone on the x, y and z axes.
  73. * @param x The amount to scale the bone on the x axis.
  74. * @param x The amount to scale the bone on the y axis.
  75. * @param z The amount to scale the bone on the z axis.
  76. * @param scaleChildren Set this to true if children of the bone should be scaled.
  77. */
  78. scale(x: number, y: number, z: number, scaleChildren?: boolean): void;
  79. /**
  80. * Set the yaw, pitch, and roll of the bone in local or world space.
  81. * @param yaw The rotation of the bone on the y axis.
  82. * @param pitch The rotation of the bone on the x axis.
  83. * @param roll The rotation of the bone on the z axis.
  84. * @param space The space that the axes of rotation are in.
  85. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  86. */
  87. setYawPitchRoll(yaw: number, pitch: number, roll: number, space?: Space, mesh?: AbstractMesh): void;
  88. /**
  89. * Rotate the bone on an axis in local or world space.
  90. * @param axis The axis to rotate the bone on.
  91. * @param amount The amount to rotate the bone.
  92. * @param space The space that the axis is in.
  93. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  94. */
  95. rotate(axis: Vector3, amount: number, space?: Space, mesh?: AbstractMesh): void;
  96. /**
  97. * Set the rotation of the bone to a particular axis angle in local or world space.
  98. * @param axis The axis to rotate the bone on.
  99. * @param angle The angle that the bone should be rotated to.
  100. * @param space The space that the axis is in.
  101. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  102. */
  103. setAxisAngle(axis: Vector3, angle: number, space?: Space, mesh?: AbstractMesh): void;
  104. /**
  105. * Set the euler rotation of the bone in local of world space.
  106. * @param rotation The euler rotation that the bone should be set to.
  107. * @param space The space that the rotation is in.
  108. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  109. */
  110. setRotation(rotation: Vector3, space?: Space, mesh?: AbstractMesh): void;
  111. /**
  112. * Set the quaternion rotation of the bone in local of world space.
  113. * @param quat The quaternion rotation that the bone should be set to.
  114. * @param space The space that the rotation is in.
  115. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  116. */
  117. setRotationQuaternion(quat: Quaternion, space?: Space, mesh?: AbstractMesh): void;
  118. /**
  119. * Set the rotation matrix of the bone in local of world space.
  120. * @param rotMat The rotation matrix that the bone should be set to.
  121. * @param space The space that the rotation is in.
  122. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  123. */
  124. setRotationMatrix(rotMat: Matrix, space?: Space, mesh?: AbstractMesh): void;
  125. private _rotateWithMatrix(rmat, space?, mesh?);
  126. private _getNegativeRotationToRef(rotMatInv, space?, mesh?);
  127. /**
  128. * Get the scale of the bone
  129. * @returns the scale of the bone
  130. */
  131. getScale(): Vector3;
  132. /**
  133. * Copy the scale of the bone to a vector3.
  134. * @param result The vector3 to copy the scale to
  135. */
  136. getScaleToRef(result: Vector3): void;
  137. /**
  138. * Get the position of the bone in local or world space.
  139. * @param space The space that the returned position is in.
  140. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  141. * @returns The position of the bone
  142. */
  143. getPosition(space?: Space, mesh?: Nullable<AbstractMesh>): Vector3;
  144. /**
  145. * Copy the position of the bone to a vector3 in local or world space.
  146. * @param space The space that the returned position is in.
  147. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  148. * @param result The vector3 to copy the position to.
  149. */
  150. getPositionToRef(space: Space | undefined, mesh: Nullable<AbstractMesh>, result: Vector3): void;
  151. /**
  152. * Get the absolute position of the bone (world space).
  153. * @param mesh The mesh that this bone is attached to.
  154. * @returns The absolute position of the bone
  155. */
  156. getAbsolutePosition(mesh?: Nullable<AbstractMesh>): Vector3;
  157. /**
  158. * Copy the absolute position of the bone (world space) to the result param.
  159. * @param mesh The mesh that this bone is attached to.
  160. * @param result The vector3 to copy the absolute position to.
  161. */
  162. getAbsolutePositionToRef(mesh: AbstractMesh, result: Vector3): void;
  163. /**
  164. * Compute the absolute transforms of this bone and its children.
  165. */
  166. computeAbsoluteTransforms(): void;
  167. private _syncScaleVector();
  168. /**
  169. * Get the world direction from an axis that is in the local space of the bone.
  170. * @param localAxis The local direction that is used to compute the world direction.
  171. * @param mesh The mesh that this bone is attached to.
  172. * @returns The world direction
  173. */
  174. getDirection(localAxis: Vector3, mesh?: Nullable<AbstractMesh>): Vector3;
  175. /**
  176. * Copy the world direction to a vector3 from an axis that is in the local space of the bone.
  177. * @param localAxis The local direction that is used to compute the world direction.
  178. * @param mesh The mesh that this bone is attached to.
  179. * @param result The vector3 that the world direction will be copied to.
  180. */
  181. getDirectionToRef(localAxis: Vector3, mesh: AbstractMesh | null | undefined, result: Vector3): void;
  182. /**
  183. * Get the euler rotation of the bone in local or world space.
  184. * @param space The space that the rotation should be in.
  185. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  186. * @returns The euler rotation
  187. */
  188. getRotation(space?: Space, mesh?: Nullable<AbstractMesh>): Vector3;
  189. /**
  190. * Copy the euler rotation of the bone to a vector3. The rotation can be in either local or world space.
  191. * @param space The space that the rotation should be in.
  192. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  193. * @param result The vector3 that the rotation should be copied to.
  194. */
  195. getRotationToRef(space: Space | undefined, mesh: AbstractMesh | null | undefined, result: Vector3): void;
  196. /**
  197. * Get the quaternion rotation of the bone in either local or world space.
  198. * @param space The space that the rotation should be in.
  199. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  200. * @returns The quaternion rotation
  201. */
  202. getRotationQuaternion(space?: Space, mesh?: Nullable<AbstractMesh>): Quaternion;
  203. /**
  204. * Copy the quaternion rotation of the bone to a quaternion. The rotation can be in either local or world space.
  205. * @param space The space that the rotation should be in.
  206. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  207. * @param result The quaternion that the rotation should be copied to.
  208. */
  209. getRotationQuaternionToRef(space: Space | undefined, mesh: AbstractMesh | null | undefined, result: Quaternion): void;
  210. /**
  211. * Get the rotation matrix of the bone in local or world space.
  212. * @param space The space that the rotation should be in.
  213. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  214. * @returns The rotation matrix
  215. */
  216. getRotationMatrix(space: Space | undefined, mesh: AbstractMesh): Matrix;
  217. /**
  218. * Copy the rotation matrix of the bone to a matrix. The rotation can be in either local or world space.
  219. * @param space The space that the rotation should be in.
  220. * @param mesh The mesh that this bone is attached to. This is only used in world space.
  221. * @param result The quaternion that the rotation should be copied to.
  222. */
  223. getRotationMatrixToRef(space: Space | undefined, mesh: AbstractMesh, result: Matrix): void;
  224. /**
  225. * Get the world position of a point that is in the local space of the bone.
  226. * @param position The local position
  227. * @param mesh The mesh that this bone is attached to.
  228. * @returns The world position
  229. */
  230. getAbsolutePositionFromLocal(position: Vector3, mesh?: Nullable<AbstractMesh>): Vector3;
  231. /**
  232. * Get the world position of a point that is in the local space of the bone and copy it to the result param.
  233. * @param position The local position
  234. * @param mesh The mesh that this bone is attached to.
  235. * @param result The vector3 that the world position should be copied to.
  236. */
  237. getAbsolutePositionFromLocalToRef(position: Vector3, mesh: AbstractMesh | null | undefined, result: Vector3): void;
  238. /**
  239. * Get the local position of a point that is in world space.
  240. * @param position The world position
  241. * @param mesh The mesh that this bone is attached to.
  242. * @returns The local position
  243. */
  244. getLocalPositionFromAbsolute(position: Vector3, mesh?: Nullable<AbstractMesh>): Vector3;
  245. /**
  246. * Get the local position of a point that is in world space and copy it to the result param.
  247. * @param position The world position
  248. * @param mesh The mesh that this bone is attached to.
  249. * @param result The vector3 that the local position should be copied to.
  250. */
  251. getLocalPositionFromAbsoluteToRef(position: Vector3, mesh: AbstractMesh | null | undefined, result: Vector3): void;
  252. }
  253. }
  254. declare module 'babylonjs/bones' {
  255. class BoneIKController {
  256. private static _tmpVecs;
  257. private static _tmpQuat;
  258. private static _tmpMats;
  259. targetMesh: AbstractMesh;
  260. poleTargetMesh: AbstractMesh;
  261. poleTargetBone: Nullable<Bone>;
  262. targetPosition: Vector3;
  263. poleTargetPosition: Vector3;
  264. poleTargetLocalOffset: Vector3;
  265. poleAngle: number;
  266. mesh: AbstractMesh;
  267. slerpAmount: number;
  268. private _bone1Quat;
  269. private _bone1Mat;
  270. private _bone2Ang;
  271. private _bone1;
  272. private _bone2;
  273. private _bone1Length;
  274. private _bone2Length;
  275. private _maxAngle;
  276. private _maxReach;
  277. private _rightHandedSystem;
  278. private _bendAxis;
  279. private _slerping;
  280. private _adjustRoll;
  281. maxAngle: number;
  282. constructor(mesh: AbstractMesh, bone: Bone, options?: {
  283. targetMesh?: AbstractMesh;
  284. poleTargetMesh?: AbstractMesh;
  285. poleTargetBone?: Bone;
  286. poleTargetLocalOffset?: Vector3;
  287. poleAngle?: number;
  288. bendAxis?: Vector3;
  289. maxAngle?: number;
  290. slerpAmount?: number;
  291. });
  292. private _setMaxAngle(ang);
  293. update(): void;
  294. }
  295. }
  296. declare module 'babylonjs/bones' {
  297. class BoneLookController {
  298. private static _tmpVecs;
  299. private static _tmpQuat;
  300. private static _tmpMats;
  301. /**
  302. * The target Vector3 that the bone will look at.
  303. */
  304. target: Vector3;
  305. /**
  306. * The mesh that the bone is attached to.
  307. */
  308. mesh: AbstractMesh;
  309. /**
  310. * The bone that will be looking to the target.
  311. */
  312. bone: Bone;
  313. /**
  314. * The up axis of the coordinate system that is used when the bone is rotated.
  315. */
  316. upAxis: Vector3;
  317. /**
  318. * The space that the up axis is in - BABYLON.Space.BONE, BABYLON.Space.LOCAL (default), or BABYLON.Space.WORLD.
  319. */
  320. upAxisSpace: Space;
  321. /**
  322. * Used to make an adjustment to the yaw of the bone.
  323. */
  324. adjustYaw: number;
  325. /**
  326. * Used to make an adjustment to the pitch of the bone.
  327. */
  328. adjustPitch: number;
  329. /**
  330. * Used to make an adjustment to the roll of the bone.
  331. */
  332. adjustRoll: number;
  333. /**
  334. * The amount to slerp (spherical linear interpolation) to the target. Set this to a value between 0 and 1 (a value of 1 disables slerp).
  335. */
  336. slerpAmount: number;
  337. private _minYaw;
  338. private _maxYaw;
  339. private _minPitch;
  340. private _maxPitch;
  341. private _minYawSin;
  342. private _minYawCos;
  343. private _maxYawSin;
  344. private _maxYawCos;
  345. private _midYawConstraint;
  346. private _minPitchTan;
  347. private _maxPitchTan;
  348. private _boneQuat;
  349. private _slerping;
  350. private _transformYawPitch;
  351. private _transformYawPitchInv;
  352. private _firstFrameSkipped;
  353. private _yawRange;
  354. private _fowardAxis;
  355. /**
  356. * Get/set the minimum yaw angle that the bone can look to.
  357. */
  358. minYaw: number;
  359. /**
  360. * Get/set the maximum yaw angle that the bone can look to.
  361. */
  362. maxYaw: number;
  363. /**
  364. * Get/set the minimum pitch angle that the bone can look to.
  365. */
  366. minPitch: number;
  367. /**
  368. * Get/set the maximum pitch angle that the bone can look to.
  369. */
  370. maxPitch: number;
  371. /**
  372. * Create a BoneLookController
  373. * @param mesh the mesh that the bone belongs to
  374. * @param bone the bone that will be looking to the target
  375. * @param target the target Vector3 to look at
  376. * @param settings optional settings:
  377. * - maxYaw: the maximum angle the bone will yaw to
  378. * - minYaw: the minimum angle the bone will yaw to
  379. * - maxPitch: the maximum angle the bone will pitch to
  380. * - minPitch: the minimum angle the bone will yaw to
  381. * - slerpAmount: set the between 0 and 1 to make the bone slerp to the target.
  382. * - upAxis: the up axis of the coordinate system
  383. * - upAxisSpace: the space that the up axis is in - BABYLON.Space.BONE, BABYLON.Space.LOCAL (default), or BABYLON.Space.WORLD.
  384. * - yawAxis: set yawAxis if the bone does not yaw on the y axis
  385. * - pitchAxis: set pitchAxis if the bone does not pitch on the x axis
  386. * - adjustYaw: used to make an adjustment to the yaw of the bone
  387. * - adjustPitch: used to make an adjustment to the pitch of the bone
  388. * - adjustRoll: used to make an adjustment to the roll of the bone
  389. **/
  390. constructor(mesh: AbstractMesh, bone: Bone, target: Vector3, options?: {
  391. maxYaw?: number;
  392. minYaw?: number;
  393. maxPitch?: number;
  394. minPitch?: number;
  395. slerpAmount?: number;
  396. upAxis?: Vector3;
  397. upAxisSpace?: Space;
  398. yawAxis?: Vector3;
  399. pitchAxis?: Vector3;
  400. adjustYaw?: number;
  401. adjustPitch?: number;
  402. adjustRoll?: number;
  403. });
  404. /**
  405. * Update the bone to look at the target. This should be called before the scene is rendered (use scene.registerBeforeRender()).
  406. */
  407. update(): void;
  408. private _getAngleDiff(ang1, ang2);
  409. private _getAngleBetween(ang1, ang2);
  410. private _isAngleBetween(ang, ang1, ang2);
  411. }
  412. }
  413. declare module 'babylonjs/bones' {
  414. class Skeleton implements IAnimatable {
  415. name: string;
  416. id: string;
  417. bones: Bone[];
  418. dimensionsAtRest: Vector3;
  419. needInitialSkinMatrix: boolean;
  420. animations: Array<Animation>;
  421. private _scene;
  422. private _isDirty;
  423. private _transformMatrices;
  424. private _meshesWithPoseMatrix;
  425. private _animatables;
  426. private _identity;
  427. private _synchronizedWithMesh;
  428. private _ranges;
  429. private _lastAbsoluteTransformsUpdateId;
  430. /**
  431. * An event triggered before computing the skeleton's matrices
  432. * @type {BABYLON.Observable}
  433. */
  434. onBeforeComputeObservable: Observable<Skeleton>;
  435. constructor(name: string, id: string, scene: Scene);
  436. getTransformMatrices(mesh: AbstractMesh): Float32Array;
  437. getScene(): Scene;
  438. /**
  439. * @param {boolean} fullDetails - support for multiple levels of logging within scene loading
  440. */
  441. toString(fullDetails?: boolean): string;
  442. /**
  443. * Get bone's index searching by name
  444. * @param {string} name is bone's name to search for
  445. * @return {number} Indice of the bone. Returns -1 if not found
  446. */
  447. getBoneIndexByName(name: string): number;
  448. createAnimationRange(name: string, from: number, to: number): void;
  449. deleteAnimationRange(name: string, deleteFrames?: boolean): void;
  450. getAnimationRange(name: string): Nullable<AnimationRange>;
  451. /**
  452. * Returns as an Array, all AnimationRanges defined on this skeleton
  453. */
  454. getAnimationRanges(): Nullable<AnimationRange>[];
  455. /**
  456. * note: This is not for a complete retargeting, only between very similar skeleton's with only possible bone length differences
  457. */
  458. copyAnimationRange(source: Skeleton, name: string, rescaleAsRequired?: boolean): boolean;
  459. returnToRest(): void;
  460. private _getHighestAnimationFrame();
  461. beginAnimation(name: string, loop?: boolean, speedRatio?: number, onAnimationEnd?: () => void): Nullable<Animatable>;
  462. _markAsDirty(): void;
  463. _registerMeshWithPoseMatrix(mesh: AbstractMesh): void;
  464. _unregisterMeshWithPoseMatrix(mesh: AbstractMesh): void;
  465. _computeTransformMatrices(targetMatrix: Float32Array, initialSkinMatrix: Nullable<Matrix>): void;
  466. prepare(): void;
  467. getAnimatables(): IAnimatable[];
  468. clone(name: string, id: string): Skeleton;
  469. enableBlending(blendingSpeed?: number): void;
  470. dispose(): void;
  471. serialize(): any;
  472. static Parse(parsedSkeleton: any, scene: Scene): Skeleton;
  473. computeAbsoluteTransforms(forceUpdate?: boolean): void;
  474. getPoseMatrix(): Nullable<Matrix>;
  475. sortBones(): void;
  476. private _sortBones(index, bones, visited);
  477. }
  478. }
  479. 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';
  480. import {EngineInstrumentation,SceneInstrumentation,_TimeToken} from 'babylonjs/instrumentation';
  481. import {Particle,IParticleSystem,ParticleSystem,BoxParticleEmitter,ConeParticleEmitter,SphereParticleEmitter,SphereDirectedParticleEmitter,IParticleEmitterType} from 'babylonjs/particles';
  482. import {GPUParticleSystem} from 'babylonjs/gpuParticles';
  483. import {FramingBehavior,BouncingBehavior,AutoRotationBehavior} from 'babylonjs/cameraBehaviors';
  484. import {NullEngineOptions,NullEngine} from 'babylonjs/nullEngine';
  485. import {TextureTools} from 'babylonjs/textureTools';
  486. import {SolidParticle,ModelShape,DepthSortedParticle,SolidParticleSystem} from 'babylonjs/solidParticles';
  487. import {Collider,CollisionWorker,ICollisionCoordinator,SerializedMesh,SerializedSubMesh,SerializedGeometry,BabylonMessage,SerializedColliderToWorker,WorkerTaskType,WorkerReply,CollisionReplyPayload,InitPayload,CollidePayload,UpdatePayload,WorkerReplyType,CollisionCoordinatorWorker,CollisionCoordinatorLegacy} from 'babylonjs/collisions';
  488. import {IntersectionInfo,PickingInfo,Ray} from 'babylonjs/picking';
  489. import {SpriteManager,Sprite} from 'babylonjs/sprites';
  490. 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';
  491. import {Condition,ValueCondition,PredicateCondition,StateCondition,Action,ActionEvent,ActionManager,InterpolateValueAction,SwitchBooleanAction,SetStateAction,SetValueAction,IncrementValueAction,PlayAnimationAction,StopAnimationAction,DoNothingAction,CombineAction,ExecuteCodeAction,SetParentAction,PlaySoundAction,StopSoundAction} from 'babylonjs/actions';
  492. import {GroundMesh,InstancedMesh,LinesMesh} from 'babylonjs/additionalMeshes';
  493. import {ShaderMaterial} from 'babylonjs/shaderMaterial';
  494. import {MeshBuilder} from 'babylonjs/meshBuilder';
  495. import {PBRBaseMaterial,PBRBaseSimpleMaterial,PBRMaterial,PBRMetallicRoughnessMaterial,PBRSpecularGlossinessMaterial} from 'babylonjs/pbrMaterial';
  496. import {CameraInputTypes,ICameraInput,CameraInputsMap,CameraInputsManager,TargetCamera} from 'babylonjs/targetCamera';
  497. import {ArcRotateCameraKeyboardMoveInput,ArcRotateCameraMouseWheelInput,ArcRotateCameraPointersInput,ArcRotateCameraInputsManager,ArcRotateCamera} from 'babylonjs/arcRotateCamera';
  498. import {FreeCameraMouseInput,FreeCameraKeyboardMoveInput,FreeCameraInputsManager,FreeCamera} from 'babylonjs/freeCamera';
  499. import {HemisphericLight} from 'babylonjs/hemisphericLight';
  500. import {IShadowLight,ShadowLight,PointLight} from 'babylonjs/pointLight';
  501. import {DirectionalLight} from 'babylonjs/directionalLight';
  502. import {SpotLight} from 'babylonjs/spotLight';
  503. import {CubeTexture,RenderTargetTexture,IMultiRenderTargetOptions,MultiRenderTarget,MirrorTexture,RefractionTexture,DynamicTexture,VideoTexture,RawTexture} from 'babylonjs/additionalTextures';
  504. import {AudioEngine,Sound,SoundTrack,Analyser} from 'babylonjs/audio';
  505. import {ILoadingScreen,DefaultLoadingScreen,SceneLoaderProgressEvent,ISceneLoaderPluginExtensions,ISceneLoaderPluginFactory,ISceneLoaderPlugin,ISceneLoaderPluginAsync,SceneLoader,FilesInput} from 'babylonjs/loader';
  506. import {IShadowGenerator,ShadowGenerator} from 'babylonjs/shadows';
  507. import {StringDictionary} from 'babylonjs/stringDictionary';
  508. import {Tags,AndOrNotEvaluator} from 'babylonjs/userData';
  509. import {FresnelParameters} from 'babylonjs/fresnel';
  510. import {MultiMaterial} from 'babylonjs/multiMaterial';
  511. import {Database} from 'babylonjs/offline';
  512. import {FreeCameraTouchInput,TouchCamera} from 'babylonjs/touchCamera';
  513. import {ProceduralTexture,CustomProceduralTexture} from 'babylonjs/procedural';
  514. import {FreeCameraGamepadInput,ArcRotateCameraGamepadInput,GamepadManager,StickValues,GamepadButtonChanges,Gamepad,GenericPad,Xbox360Button,Xbox360Dpad,Xbox360Pad,PoseEnabledControllerType,MutableGamepadButton,ExtendedGamepadButton,PoseEnabledControllerHelper,PoseEnabledController,WebVRController,OculusTouchController,ViveController,GenericController,WindowsMotionController} from 'babylonjs/gamepad';
  515. import {FollowCamera,ArcFollowCamera,UniversalCamera,GamepadCamera} from 'babylonjs/additionalCameras';
  516. import {DepthRenderer} from 'babylonjs/depthRenderer';
  517. import {GeometryBufferRenderer} from 'babylonjs/geometryBufferRenderer';
  518. import {PostProcessOptions,PostProcess,PassPostProcess} from 'babylonjs/postProcesses';
  519. import {BlurPostProcess} from 'babylonjs/additionalPostProcess_blur';
  520. import {FxaaPostProcess} from 'babylonjs/additionalPostProcess_fxaa';
  521. import {HighlightsPostProcess} from 'babylonjs/additionalPostProcess_highlights';
  522. import {RefractionPostProcess,BlackAndWhitePostProcess,ConvolutionPostProcess,FilterPostProcess,VolumetricLightScatteringPostProcess,ColorCorrectionPostProcess,TonemappingOperator,TonemapPostProcess,DisplayPassPostProcess,ImageProcessingPostProcess} from 'babylonjs/additionalPostProcesses';
  523. import {PostProcessRenderPipelineManager,PostProcessRenderPass,PostProcessRenderEffect,PostProcessRenderPipeline} from 'babylonjs/renderingPipeline';
  524. import {SSAORenderingPipeline,SSAO2RenderingPipeline,LensRenderingPipeline,StandardRenderingPipeline} from 'babylonjs/additionalRenderingPipeline';
  525. import {DefaultRenderingPipeline} from 'babylonjs/defaultRenderingPipeline';
  526. import {SphericalPolynomial,SphericalHarmonics,CubeMapToSphericalPolynomialTools,CubeMapInfo,PanoramaToCubeMapTools,HDRInfo,HDRTools,HDRCubeTexture} from 'babylonjs/hdr';
  527. import {CSG} from 'babylonjs/csg';
  528. import {Polygon,PolygonMeshBuilder} from 'babylonjs/polygonMesh';
  529. import {LensFlare,LensFlareSystem} from 'babylonjs/lensFlares';
  530. 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';
  531. import {TGATools,DDSInfo,DDSTools,KhronosTextureContainer} from 'babylonjs/textureFormats';
  532. import {Debug,RayHelper,DebugLayer,BoundingBoxRenderer} from 'babylonjs/debug';
  533. import {MorphTarget,MorphTargetManager} from 'babylonjs/morphTargets';
  534. import {IOctreeContainer,Octree,OctreeBlock} from 'babylonjs/octrees';
  535. import {SIMDHelper} from 'babylonjs/simd';
  536. import {VRDistortionCorrectionPostProcess,AnaglyphPostProcess,StereoscopicInterlacePostProcess,FreeCameraDeviceOrientationInput,ArcRotateCameraVRDeviceOrientationInput,VRCameraMetrics,DevicePose,PoseControlled,WebVROptions,WebVRFreeCamera,DeviceOrientationCamera,VRDeviceOrientationFreeCamera,VRDeviceOrientationGamepadCamera,VRDeviceOrientationArcRotateCamera,AnaglyphFreeCamera,AnaglyphArcRotateCamera,AnaglyphGamepadCamera,AnaglyphUniversalCamera,StereoscopicFreeCamera,StereoscopicArcRotateCamera,StereoscopicGamepadCamera,StereoscopicUniversalCamera,VRTeleportationOptions,VRExperienceHelperOptions,VRExperienceHelper} from 'babylonjs/vr';
  537. import {JoystickAxis,VirtualJoystick,VirtualJoysticksCamera,FreeCameraVirtualJoystickInput} from 'babylonjs/virtualJoystick';
  538. 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';
  539. import {OutlineRenderer,EdgesRenderer,IHighlightLayerOptions,HighlightLayer} from 'babylonjs/highlights';
  540. import {SceneSerializer} from 'babylonjs/serialization';
  541. import {AssetTaskState,AbstractAssetTask,IAssetsProgressEvent,AssetsProgressEvent,MeshAssetTask,TextFileAssetTask,BinaryFileAssetTask,ImageAssetTask,ITextureAssetTask,TextureAssetTask,CubeTextureAssetTask,HDRCubeTextureAssetTask,AssetsManager} from 'babylonjs/assetsManager';
  542. import {ReflectionProbe} from 'babylonjs/probes';
  543. import {BackgroundMaterial} from 'babylonjs/backgroundMaterial';
  544. import {Layer} from 'babylonjs/layer';
  545. import {IEnvironmentHelperOptions,EnvironmentHelper} from 'babylonjs/environmentHelper';