babylon.min.d.ts 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478
  1. // babylon.engine.d.ts
  2. interface WebGLProgram {
  3. }
  4. interface WebGLShader {
  5. }
  6. interface WebGLUniformLocation {
  7. }
  8. interface WebGLRenderingContext {
  9. }
  10. interface VertexBuffer {
  11. [index: number]: number;
  12. }
  13. interface IndexBuffer {
  14. [index: number]: number;
  15. }
  16. declare module BABYLON {
  17. interface Capabilities {
  18. maxTexturesImageUnits: number;
  19. maxTextureSize: number;
  20. maxCubemapTextureSize: number;
  21. maxRenderTextureSize: number;
  22. }
  23. class Engine {
  24. constructor(canvas: HTMLCanvasElement, antialias: boolean);
  25. forceWireframe: boolean;
  26. cullBackFaces: boolean;
  27. scenes: Scene[];
  28. isPointerLock: boolean;
  29. getAspectRatio(): number;
  30. getRenderWidth(): number;
  31. getRenderHeight(): number;
  32. getRenderingCanvas(): HTMLCanvasElement;
  33. setHardwareScalingLevel(level: number): void;
  34. getLoadedTexturesCache(): Texture[];
  35. getCaps(): Capabilities;
  36. stopRenderLoop(): void;
  37. runRenderLoop(renderFunction: Function): void;
  38. switchFullscreen(element: HTMLElement);
  39. clear(color: IColor3, backBuffer: boolean, depthStencil: boolean);
  40. beginFrame(): void;
  41. endFrame(): void;
  42. resize(): void;
  43. bindFramebuffer(texture: Texture);
  44. unBindFramebuffer(texture: Texture);
  45. flushFramebuffer(): void;
  46. restoreDefaultFramebuffer(): void;
  47. createVertexBuffer(vertices: number[]): VertexBuffer;
  48. createVertexBuffer(vertices: ArrayBuffer): VertexBuffer;
  49. createVertexBuffer(vertices: ArrayBufferView): VertexBuffer;
  50. createDynamicVertexBuffer(capacity: number): VertexBuffer;
  51. updateDynamicVertexBuffer(vertexBuffer: VertexBuffer, vertices: number[]): void;
  52. updateDynamicVertexBuffer(vertexBuffer: VertexBuffer, vertices: ArrayBuffer): void;
  53. updateDynamicVertexBuffer(vertexBuffer: VertexBuffer, vertices: ArrayBufferView): void;
  54. createIndexBuffer(indices, is32Bits): IndexBuffer;
  55. bindBuffers(vb: VertexBuffer, ib: IndexBuffer, vdecl: number[], strideSize: number, effect: Effect);
  56. bindMultiBuffers(vertexBuffers: VertexBuffer[], indexBuffer: IndexBuffer, effect: Effect): void;
  57. _releaseBuffer(vb: VertexBuffer);
  58. draw(useTriangles: boolean, indexStart: number, indexCount: number);
  59. createEffect(baseName: string, attributesNames: string, uniformsNames: string[],
  60. samplers: WebGLUniformLocation[],
  61. defines: string): Effect;
  62. createShaderProgram(vertexCode: string, fragmentCode: string, defines: string): WebGLProgram;
  63. getUniforms(shaderProgram: WebGLProgram, uniformsNames: string[]): WebGLUniformLocation[];
  64. getAttributes(shaderProgram: WebGLProgram, attributesNames: string[]): number[];
  65. enableEffect(effect: Effect): void;
  66. setMatrices(uniform: string, matrices: Matrix[]): void;
  67. setMatrix(uniform: string, matrix: Matrix): void;
  68. setVector2(uniform: string, x: number, y: number): void;
  69. setVector3(uniform: string, v: Vector3): void;
  70. setFloat2(uniform: string, x: number, y: number): void;
  71. setFloat3(uniform: string, x: number, y: number, z: number): void;
  72. setBool(uniform: string, val: boolean): void;
  73. setFloat4(uniform: string, x: number, y: number, z: number, w: number): void;
  74. setColor3(uniform: string, color: Color3): void;
  75. setColor4(uniform: string, color: Color3, alpha: number): void;
  76. setState(cullingMode: number): void;
  77. setDepthBuffer(enable: boolean): void;
  78. setDepthWrite(enable: boolean): void;
  79. setColorWrite(enable: boolean): void;
  80. setAlphaMode(mode: number): void;
  81. setAlphaTesting(enable: boolean): void;
  82. getAlphaTesting(): boolean;
  83. wipeCaches(): void;
  84. getExponantOfTwo(value: number, max: number): number;
  85. createTexture(url: string, noMipmap: boolean, invertY: boolean, scene: Scene): Texture;
  86. createDynamicTexture(size: number, noMipmap: boolean): Texture;
  87. updateDynamicTexture(texture: Texture, canvas: HTMLCanvasElement, invertY: boolean): void;
  88. updateVideoTexture(texture: Texture, video: HTMLVideoElement): void;
  89. createRenderTargetTexture(size: number, generateMipMaps: boolean): Texture;
  90. createCubeTexture(rootUrl: string, scene: Scene): Texture;
  91. _releaseTexture(tex: Texture): void;
  92. bindSamplers(effect: Effect): void;
  93. setTexture(channel: number, texture: Texture): void;
  94. dispose(): void;
  95. static ShadersRepository: string;
  96. static ALPHA_DISABLE: number;
  97. static ALPHA_ADD: number;
  98. static ALPHA_COMBINE: number;
  99. static DELAYLOADSTATE_NONE: number;
  100. static DELAYLOADSTATE_LOADED: number;
  101. static DELAYLOADSTATE_LOADING: number;
  102. static DELAYLOADSTATE_NOTLOADED: number;
  103. static epsilon: number;
  104. static collisionEpsilon: number;
  105. static isSupported(): boolean;
  106. }
  107. // babylon.scene.d.ts
  108. interface ScenePickResult {
  109. hit: boolean;
  110. distance: number;
  111. pickedMesh: Mesh;
  112. pickedPoint: Vector3;
  113. }
  114. class Scene {
  115. constructor(engine: Engine);
  116. autoClear: boolean;
  117. clearColor: Color3;
  118. ambientColor: Color3;
  119. fogMode: number;
  120. fogColor: Color3;
  121. fogDensity: number;
  122. fogStart: number;
  123. fogEnd: number;
  124. lights: Light[];
  125. cameras: Camera[];
  126. activeCamera: Camera;
  127. meshes: Mesh[];
  128. materials: Material[];
  129. multiMaterials: MultiMaterial[];
  130. defaultMaterial: StandardMaterial;
  131. textures: Texture[];
  132. particlesEnabled: boolean;
  133. particleSystems: ParticleSystem[];
  134. spriteManagers: SpriteManager[];
  135. layers: Layer[];
  136. skeletons: Skeleton[];
  137. collisionsEnabled: boolean;
  138. gravity: Vector3;
  139. postProcessManager: PostProcessManager;
  140. getEngine(): Engine;
  141. getTotalVertices(): number;
  142. getActiveVertices(): number;
  143. getActiveParticles(): number;
  144. getLastFrameDuration(): number;
  145. getEvaluateActiveMeshesDuration(): number;
  146. getRenderTargetsDuration(): number;
  147. getRenderDuration(): number;
  148. getParticlesDuration(): number;
  149. getSpritesDuration(): number;
  150. getAnimationRatio(): number;
  151. getRenderId: number;
  152. isReady(): boolean;
  153. registerBeforeRender(func: Function): void;
  154. unregisterBeforeRender(func: Function): void;
  155. executeWhenReady(func: Function): void;
  156. getWaitingItemsCount(): number;
  157. beginAnimation(target: string, from: number, to: number, loop: boolean, speedRatio: number, onAnimationEnd: Function): void;
  158. stopAnimation(target: string);
  159. getViewMatrix(): Matrix;
  160. getProjectionMatrix(): Matrix;
  161. getTransformMatrix(): Matrix;
  162. setTransformMatrix(view: Matrix, projection: Matrix);
  163. activeCameraByID(id: number): void;
  164. getMaterialByID(id: number): Material;
  165. getLightByID(id: number): Light;
  166. getMeshByID(id: number): Mesh;
  167. getLastMeshByID(id: number): Mesh;
  168. getMeshByName(name: string): Mesh;
  169. isActiveMesh(mesh: Mesh): boolean;
  170. getLastSkeletonByID(id: number): Skeleton;
  171. getSkeletonByID(id: number): Skeleton;
  172. getSkeletonByName(name: string): Skeleton;
  173. _evaluateActiveMeshes(): void;
  174. _localRender(opaqueSubMeshes, alphaTestSubMeshes, transparentSubMeshes, activeMeshes);
  175. render();
  176. dispose();
  177. _getNewPosition(position: Vector3, velocity: Vector3, collider: Sphere, maximumRetries: number): Vector3;
  178. _collideWithWorld(position: Vector3, velocity: Vector3, collider: Sphere, maximumRetries: number): Vector3;
  179. createOrUpdateSelectionOctree(): void;
  180. createPickingRay(x: number, y: number, world: Matrix): Ray;
  181. pick(x: number, y: number): ScenePickResult;
  182. static FOGMODE_NONE: number;
  183. static FOGMODE_EXP: number;
  184. static FOGMODE_EXP2: number;
  185. static FOGMODE_LINEAR: number;
  186. }
  187. // babylon.math.d.ts
  188. interface RayTriangleIntersection {
  189. hit: boolean;
  190. distance: number;
  191. bu: number;
  192. bv: number;
  193. }
  194. interface IColor3 {
  195. r: number;
  196. g: number;
  197. b: number;
  198. }
  199. interface Size2D
  200. {
  201. width: number;
  202. height: number;
  203. }
  204. interface Sphere {
  205. center: Vector3;
  206. radius: number;
  207. }
  208. class Ray {
  209. origin: Vector3;
  210. direction: Vector3;
  211. constructor(origin: Vector3, direction: Vector3);
  212. intersectsBox(box: BoundingBox): boolean;
  213. intersectsSphere(sphere: Sphere): boolean;
  214. intersectsTriangle(vertex0: Vector3,
  215. vertex1: Vector3,
  216. vertex2: Vector3): RayTriangleIntersection;
  217. static CreateNew(x: number,
  218. y: number,
  219. viewportWidth: number,
  220. viewportHeight: number,
  221. world: Matrix,
  222. view: Matrix,
  223. projection: Matrix): Ray;
  224. }
  225. class Color3 implements IColor3 {
  226. r: number;
  227. g: number;
  228. b: number;
  229. constructor(intialR: number, initialG: number, initialB: number);
  230. equals(otherColor: Color3): boolean;
  231. equals(otherColor: Color4): boolean;
  232. toString(): string;
  233. clone(): Color3;
  234. multiply(otherColor: Color3): Color3;
  235. mutilplyToRef(otherColor: Color3, result: Color3): void;
  236. scale(scale: number): Color3;
  237. scaleToRef(scale: number, result: Color3): void;
  238. copyFrom(source: Color3): void;
  239. copyFromFloats(r: number, g: number, b: number): void;
  240. static FromArray(array: number[]): Color3;
  241. }
  242. class Color4 implements IColor3 {
  243. r: number;
  244. g: number;
  245. b: number;
  246. a: number;
  247. constructor(initialR: number, initialG: number, initialB: number, initialA: number);
  248. addInPlace(right: Color4): void;
  249. add(right: Color4): Color4;
  250. subtract(right: Color4): Color4;
  251. subtractToRef(right: Color4, result: Color4): void;
  252. scale(factor: number): Color4;
  253. scale(factor: number, result: Color4): void;
  254. toString(): string;
  255. clone(): Color4;
  256. static Lerp(left: number, right: number, amount: number): Color4;
  257. static FromArray(array: number[]): Color4;
  258. }
  259. class Vector2 {
  260. x: number;
  261. y: number;
  262. constructor(x: number, y: number);
  263. toString(): string;
  264. add(other: Vector2): Vector2;
  265. subtract(other: Vector2): Vector2;
  266. negate(): Vector2;
  267. scaleInPlace(scale: number): void;
  268. scale(scale: number): Vector2;
  269. equals(other: Vector2): boolean;
  270. length(): number;
  271. lengthSquared(): number;
  272. normalize();
  273. clone(): Vector2;
  274. static Zero(): Vector2;
  275. static CatmullRom(value1: Vector2, value2: Vector2, value3: Vector2, value4: Vector2, amount: number): Vector2;
  276. static Clamp(value: Vector2, min: Vector2, max: Vector2): Vector2;
  277. static Hermite(value1: Vector2, tangent1: Vector2, value2: Vector2, tangent2: Vector2, amount: number): Vector2;
  278. static Lerp(start: Vector2, end: Vector2, amount: number): Vector2;
  279. static Dot(left: Vector2, right: Vector2): number;
  280. static Normalize(vector: Vector2): Vector2;
  281. static Minimize(left: Vector2, right: Vector2): Vector2;
  282. static Maximize(left: Vector2, right: Vector2): Vector2;
  283. static Transform(vector: Vector2, transformation: number[]): Vector2;
  284. static Distance(value1: Vector2, value2: Vector2): number;
  285. static DistanceSquared(value1: Vector2, value2: Vector2): number;
  286. }
  287. class Vector3 {
  288. x: number;
  289. y: number;
  290. z: number;
  291. constructor(x: number, y: number, z: number);
  292. toString(): string;
  293. addInPlace(otherVector: Vector3): void;
  294. add(other: Vector3): Vector3;
  295. addToRef(otherVector: Vector3, result: Vector3): void;
  296. suntractInPlace(otherVector: Vector3): void;
  297. subtract(other: Vector3): Vector3;
  298. subtractToRef(otherVector: Vector3, result: Vector3): void;
  299. subtractFromFloatsTo(x: number, y: number, z: number): Vector3;
  300. subtractFromFloatsToRef(x: number, y: number, z: number, result: Vector3): void;
  301. negate(): Vector3;
  302. scaleInPlace(scale: number): void;
  303. scale(scale: number): Vector3;
  304. scaleToRef(scale: number, result: Vector3): void;
  305. equals(other: Vector3): boolean;
  306. equalsToFloats(x: number, y: number, z: number): boolean;
  307. multiplyInPlace(other: Vector3): void;
  308. multiply(other: Vector3): Vector3;
  309. multiplyToRef(otherVector: Vector3, result: Vector3): void
  310. multiplyByFloats(x: number, y: number, z: number): Vector3;
  311. divide(other: Vector3): Vector3;
  312. divideToRef(otherVector: Vector3, result: Vector3): void;
  313. length(): number;
  314. lengthSquared(): number;
  315. normalize();
  316. clone(): Vector3;
  317. copyFrom(source: Vector3): void;
  318. copyFromFloats(x: number, y: number, z: number): void;
  319. static FromArray(array: number[], offset: number);
  320. static FromArrayToRef(array: number[], offset: number, result: Vector3): void;
  321. static FromFloatsToRef(x: number, y: number, z: number, result: Vector3): void;
  322. static Zero(): Vector3;
  323. static Up(): Vector3;
  324. static TransformCoordinates(vector: Vector3, transformation: Matrix): Vector3;
  325. static TransformCoordinatesToRef(vector: Vector3, transformation: Matrix, result: Vector3): void;
  326. static TransformCoordinatesFromFloatsToRef(x: number, y: number, z: number, transformation: Matrix, result: Vector3): void;
  327. static TransformNormal(vector: Vector3, transformation: Matrix): Vector3;
  328. static TransformNormalToRef(vector: Vector3, transformation: Matrix, result: Vector3): void;
  329. static TransformNormalFromFloatsToRef(x: number, y: number, z: number, transformation: Matrix, result: Vector3): void;
  330. static CatmullRom(value1: Vector3, value2: Vector3, value3: Vector3, value4: Vector3, amount: number): Vector3;
  331. static Clamp(value: Vector3, min: Vector3, max: Vector3): Vector3;
  332. static Hermite(value1: Vector3, tangent1: Vector3, value2: Vector3, tangent2: Vector3, amount: number): Vector3;
  333. static Lerp(start: Vector3, end: Vector3, amount: number): Vector3;
  334. static Dot(left: Vector3, right: Vector3): number;
  335. static Cross(left: Vector3, right: Vector3): Vector3;
  336. static CrossToRef(left: Vector3, right: Vector3, result: Vector3): void;
  337. static Normalize(vector: Vector3): Vector3;
  338. static NormalizeToRef(vector: Vector3, result: Vector3): void;
  339. static Unproject(source: Vector3,
  340. viewportWidth: number,
  341. viewportHeight: number,
  342. world: Matrix,
  343. view: Matrix,
  344. projection: Matrix): Vector3;
  345. static Minimize(left: Vector3, right: Vector3): Vector3;
  346. static Maximize(left: Vector3, right: Vector3): Vector3;
  347. static Distance(value1: Vector3, value2: Vector3): number;
  348. static DistanceSquared(value1: Vector3, value2: Vector3): number;
  349. }
  350. class Quaternion {
  351. x: number;
  352. y: number;
  353. z: number;
  354. w: number;
  355. toString(): string;
  356. constructor(x: number, y: number, z: number, w: number);
  357. equals(otherQuaternion: Quaternion): boolean;
  358. clone(): Quaternion;
  359. copyFrom(other: Quaternion): void;
  360. add(other: Quaternion): Quaternion;
  361. scale(factor: number): Quaternion;
  362. multiply(q1: Quaternion): Quaternion;
  363. multiplyToRef(q1: Quaternion, result: Quaternion): void;
  364. length(): number;
  365. normalize(): void;
  366. toEulerAngles(): Vector3;
  367. toRotationMatrix(result: Quaternion): void;
  368. static FromArray(array: number[], offset: number): Quaternion;
  369. static RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Quaternion;
  370. static RotationYawPitchRollToRef(yaw: number, pitch: number, roll: number, result: Quaternion): void;
  371. static Slerp(left: Quaternion, right: Quaternion, amount: number): Quaternion;
  372. }
  373. class Matrix {
  374. m: number[];
  375. constructor();
  376. isIdentity(): boolean;
  377. determinant(): number;
  378. toArray(): number[];
  379. invert(): void;
  380. invertToRef(other: Matrix): void;
  381. setTranslations(vector3: Vector3): void;
  382. multiply(other: Matrix): Matrix;
  383. copyFrom(other: Matrix): void;
  384. multiplyToRef(other: Matrix, result: Matrix): void;
  385. multiplyToArray(other: Matrix, result: number[], offset: number): void;
  386. equals(other: Matrix): boolean;
  387. clone(): Matrix;
  388. static FromArray(array: number[], offset: number): Matrix;
  389. static FromArrayToRef(array: number[], offset: number, result: Matrix): void;
  390. static FromValues(m11: number, m12: number, m13: number, m14: number,
  391. m21: number, m22: number, m23: number, m24: number,
  392. m31: number, m32: number, m33: number, m34: number,
  393. m41: number, m42: number, m43: number, m44: number): Matrix;
  394. static FromValuesToRef(m11: number, m12: number, m13: number, m14: number,
  395. m21: number, m22: number, m23: number, m24: number,
  396. m31: number, m32: number, m33: number, m34: number,
  397. m41: number, m42: number, m43: number, m44: number, result: Matrix): void;
  398. static Identity(): Matrix;
  399. static IdentityToRef(result: Matrix): void;
  400. static Zero(): Matrix;
  401. static RotationX(angle: number): Matrix;
  402. static RotationXToRef(angle: number, result: Matrix): void;
  403. static RotationY(angle: number): Matrix;
  404. static RotationYToRef(angle: number, result: Matrix): void;
  405. static RotationZ(angle: number): Matrix;
  406. static RotationZToRef(angle: number, result: Matrix): void;
  407. static RotationAxis(axis: Vector3, angle: number): Matrix;
  408. static RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Matrix;
  409. static Scaling(scaleX: number, scaleY: number, scaleZ: number): Matrix;
  410. static ScalingToRef(scaleX: number, scaleY: number, scaleZ: number, result: Matrix): void;
  411. static Translation(x: number, y: number, z: number): Matrix;
  412. static TranslationToRef(x: number, y: number, z: number, result: Matrix): void;
  413. static LookAtLH(eye: Vector3, target: Vector3, up: Vector3): Matrix;
  414. static LookAtLHToRef(eye: Vector3, target: Vector3, up: Vector3, result: Matrix): void;
  415. static OrthoLH(width: number, height: number, znear: number, zfar: number): Matrix;
  416. static OrthoOffCenterLH(left: number, right: number, bottom: number, top: number, znear: number, zfar: number): Matrix;
  417. static OrthoOffCenterLHToRef(left: number, right: number, bottom: number, top: number, znear: number, zfar: number, result: Matrix): void;
  418. static PerspectiveLH(width: number, height: number, znear: number, zfar: number): Matrix;
  419. static PerspectiveFovLH(fov: number, aspect: number, znear: number, zfar: number): Matrix;
  420. static PerspectiveFovLHToRef(fov: number, aspect: number, znear: number, zfar: number, result: Matrix): void;
  421. static AffineTransformation(scaling: number, rotationCenter: Vector3, rotation: Quaternion, translation: Vector3): Matrix;
  422. static GetFinalMatrix(viewport: Size2D, world: Matrix, view: Matrix, projection: Matrix): Matrix;
  423. static Transpose(matrix: Matrix): Matrix;
  424. static Reflection(plane: Plane): Matrix;
  425. static ReflectionToRef(plane: Plane, result: Matrix): void;
  426. }
  427. class Plane {
  428. normal: Vector3;
  429. d: number;
  430. constructor(a: number, b: number, c: number, d: number);
  431. normalize(): void;
  432. transform(transformation: Matrix): Plane;
  433. dotCoordinate(point: Vector3): number;
  434. copyFromPoints(point1: Vector3, point2: Vector3, point3: Vector3): void;
  435. isFrontFacingTo(direction: Vector3, epsilon: Vector3): boolean;
  436. signedDistanceTo(point: Vector3): number;
  437. static FromArray(array: number[]): Plane;
  438. static FromPoints(point1: Vector3, point2: Vector3, point3: Vector3): Plane;
  439. static FromPositionAndNormal(origin: Vector3, normal: Vector2): Plane;
  440. static SignedDistanceToPlaneFromPositionAndNormal(origin: Vector3, normal: Vector3, point): number;
  441. }
  442. class Frustum {
  443. frustrumPlanes: Plane[];
  444. constructor(transform: Matrix);
  445. static GetPlanes(transform: Matrix): Plane[];
  446. }
  447. // babylon.tools.d.ts
  448. class Tools {
  449. function ExtractMinAndMax(positions: number[], start: number, count: number): Object;
  450. function GetPointerPrefix(): string;
  451. function QueueNewFrame(func: Function): void;
  452. function RequestFullscreen(element: HTMLElement): void;
  453. function ExitFullscreen(): void;
  454. var BaseUrl: string;
  455. function LoadImage(url: string, onload: Function, onerror: Function, database: Database): HTMLImageElement;
  456. function LoadFile(url: string, callback: Function, progressCallback: Function): void;
  457. function isIE(): boolean;
  458. function WithinEpsilon(a: number, b: number);
  459. function cloneValue(source: Object, destinationObject: Object): void;
  460. function DeepCopy(source: Object, destination: Object, doNotCopyList: string[], mustCopyList: string[]);
  461. var fpsRange: number;
  462. var previousFramesDuration: number[];
  463. function GetFps(): number;
  464. function GetDeltaTime(): number;
  465. function _MeasureFps(): void;
  466. class SmartArray {
  467. data: Array;
  468. length: number;
  469. constructor(capacity: number);
  470. push(value: Object): void;
  471. pushNoDuplicate(value: Object): void;
  472. reset(): void;
  473. concat(array: SmartArray): void;
  474. concatWithNoDuplicate(array: SmartArray): void;
  475. indexOf(value: Object): number;
  476. }
  477. }
  478. //babylon.sceneLoader.d.ts
  479. function loadCubeTexture(rootUrl: string, parsedTexture: JSON, scene: Scene): CubeTexture;
  480. function loadTexture(rootUrl: string, parsedTexture: JSON, scene: Scene): Texture;
  481. function parseSkeleton(parsedSkeleton: JSON, scene: Scene): Skeleton;
  482. function parseMaterial(parsedMaterial: JSON, scene: Scene, rootUrl: string): Material;
  483. function parseMaterialById(id: number, parsedData: JSON, scene: Scene, rootUrl: string): Material;
  484. function parseMultiMaterial(parsedMultiMaterial: JSON, scene: Scene): MultiMaterial;
  485. function parseParticleSystem(parsedParticleSystem: JSON, scene: Scene, rootUrl: string): ParticleSystem;
  486. function parseShadowGenerator(parsedShadowGenerator: JSON, scene: Scene): ShadowGenerator;
  487. function parseAnimation(parsedAnimation: JSON): Animation;
  488. function parseLight(parsedLight: JSON, scene: Scene): Light;
  489. function parseMesh(parsedMesh: JSON, scene: Scene, rootUrl: string): Mesh;
  490. function isDescendantOf(mesh: Mesh, name: string, hierarchyIds: number[]): boolean;
  491. class SceneLoader {
  492. _ImportGeometry(parsedGeometry, mesh): void;
  493. ImportMesh(meshName: string, rootUrl: string, sceneFilename: string, scene: Scene, then: Function): void;
  494. Load(rootUrl: string, sceneFilename: string, engine: Engine, then: Function, progressCallback: Function): void;
  495. }
  496. // babylon.database.d.ts
  497. class Database {
  498. currentSceneUrl: string;
  499. db: Database;
  500. enableSceneOffline: boolean;
  501. enableTexturesOffline: boolean;
  502. manifestVersionFound: number;
  503. mustUpdateRessources: boolean;
  504. hasReachedQuota: boolean;
  505. constructor(urlToScene: string);
  506. isUASupportingBlobStorage: boolean;
  507. parseURL(url: string): string;
  508. ReturnFullUrlLocation(url: string): string;
  509. checkManifestFile(): void;
  510. openAsync(successCallback: Function, errorCallback: Function): void;
  511. loadImageFromDB(url: string, image: HTMLImageElement): void;
  512. _loadImageFromDBAsync(url: string, image: HTMLImageElement, notInDBCallback: Function);
  513. _saveImageIntoDBAsync(url: string, image: HTMLImageElement): void;
  514. _checkVersionFromDB(url: string, versionLoaded: number): void;
  515. _loadVersionFromDBAsync(url: string, callback, updateInDBCallback: Function): void;
  516. _saveVersionIntoDBAsync(url: string, callback: Function): void;
  517. loadSceneFromDB(url: string, sceneLoaded: Scene, progressCallBack: Function): void;
  518. _loadSceneFromDBAsync(url: string, callback: Function, notInDBCallback: Function): void;
  519. _saveSceneFromDBAsync(url: string, callback: Function, progressCallback: Function): void;
  520. }
  521. // babylon.animation.d.ts
  522. class Animation {
  523. name: string;
  524. targetProperty: string;
  525. targetPropertyPath: string[];
  526. framePerSecond: number;
  527. dataType: string;
  528. loopMode: number;
  529. _keys: number[];
  530. _offsetCache: Object;
  531. _highLimitsCache: Object;
  532. constructor(name: string, targetProperty: string, framePerSecond: number, dataType: string, loopMode: number);
  533. clone(): Animation;
  534. setKeys(values: number[]);
  535. _interpolate(currentFrame: number, repeatCount: number, loopMode: number, offsetValue: number, highLimitValue: number);
  536. animate(target: Object, delay: number, from: number, to: number, loop: boolean, speedRatio: number): boolean;
  537. static ANIMATIONTYPE_FLOAT: number;
  538. static ANIMATIONTYPE_VECTOR3: number;
  539. static ANIMATIONTYPE_QUATERNION: number;
  540. static ANIMATIONTYPE_MATRIX: number;
  541. static ANIMATIONLOOPMODE_RELATIVE: number;
  542. static ANIMATIONLOOPMODE_CYCLE: number;
  543. static ANIMATIONLOOPMODE_CONSTANT: number;
  544. }
  545. class _Animatable {
  546. target: Object;
  547. fromFrame: number;
  548. toFrame: number;
  549. loopAnimation: boolean;
  550. animationStartDate: Date;
  551. speedRatio: number;
  552. onAnimationEnd: Function;
  553. constructor(target: Object, from: number, to: number, loop: boolean, speedRatio: number, onAnimationEnd: Function);
  554. animationStarted: boolean;
  555. _animate(delay: number): boolean;
  556. }
  557. // babylon.bones.d.ts
  558. class Bone {
  559. name: string;
  560. _skeleton: Skeleton;
  561. _matrix: Matrix;
  562. _baseMatrix: Matrix;
  563. _worldTransform: Matrix;
  564. _absoluteTransform: Matrix;
  565. _invertedAbsoluteTransform: Matrix;
  566. children: Bone[];
  567. animation: Animation[];
  568. constructor(name: string, skeleton: Skeleton, parentBone: Bone, matrix: Matrix);
  569. getParent(): Bone;
  570. getLocalMatrix: Matrix;
  571. getAbsoluteMatrix: Matrix;
  572. _updateDifferenceMatrix(): void ;
  573. updateMatrix(matrix: Matrix): void;
  574. markAsDirty(): void;
  575. }
  576. class Skeleton {
  577. id: number;
  578. name: string;
  579. bones: Bone[];
  580. _scene: Scene;
  581. _isDirty: boolean;
  582. constructor(name: string, id: number, scene: Scene);
  583. getTransformMatrices(): Matrix[];
  584. prepare(): void;
  585. getAnimatables(): Animation[];
  586. clone(name: string, id: number): Skeleton;
  587. }
  588. // babylon.camera.d.ts
  589. class Camera {
  590. name: string;
  591. id: string;
  592. position: Vector3;
  593. _scene: Scene;
  594. constructor(name: string, position: Vector3, scene: Scene);
  595. static PERSPECTIVE_CAMERA: number;
  596. static ORTHOGRAPHIC_CAMERA: number;
  597. fov: number;
  598. orthoLeft: number;
  599. orthoRight: number;
  600. orthoBottom: number;
  601. orthoTop: number;
  602. minZ: number;
  603. maxZ: number;
  604. intertia: number;
  605. mode: number;
  606. attachControl(canvas: HTMLCanvasElement): void;
  607. detachControl(canvas: HTMLCanvasElement): void;
  608. _update();
  609. getViewMatrix(): Matrix;
  610. getProjectionMatrix(): Matrix;
  611. }
  612. class FreeCamera extends Camera {
  613. cameraDirection: Vector3;
  614. cameraRotation: Vector2;
  615. rotation: Vector3;
  616. ellipsoid: Vector3;
  617. _keys: number[];
  618. keysUp: number[];
  619. keysDown: number[];
  620. keysLeft: number[];
  621. keysRight: number[];
  622. _collider: Collider;
  623. _needsMoveForGravity: boolean;
  624. animations: Animation[];
  625. constructor(name: string, position: Vector3, scene: Scene);
  626. speed: number;
  627. checkCollisions: boolean;
  628. applyGravity: boolean;
  629. _computeLocalCameraSpeed(): number;
  630. setTarget(target: Vector3): void;
  631. _collideWithWorld(velocity: Vector3): void;
  632. _checkInputs();
  633. }
  634. class ArcRotateCamera extends Camera {
  635. alpha: number;
  636. beta: number;
  637. radius: number;
  638. target: Vector3;
  639. _keys: number[];
  640. keysUp: number[];
  641. keysDown: number[];
  642. keysLeft: number[];
  643. keysRight: number[];
  644. _viewMatrix: Matrix;
  645. constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene: Scene);
  646. inertialAlphaOffset: number;
  647. interialBetaOffset: number;
  648. lowerAlphaLimit: number;
  649. upperAlphaLimit: number;
  650. lowerBetaLimit: number;
  651. upperBetaLimit: number;
  652. lowerRadiusLimit: number;
  653. upperRadiusLimit: number;
  654. setPosition(position: Vector3): void;
  655. }
  656. class DeviceOrientationCamera extends FreeCamera {
  657. angularSensibility: number;
  658. moveSensibility: number;
  659. constructor(name: string, position: Vector3, scene: Scene);
  660. _offsetX: number;
  661. _offsetY: number;
  662. _orientationGamma: number;
  663. _orientationBeta: number;
  664. _initialOrientationGamma: number;
  665. _initialOrientationBeta: number;
  666. }
  667. class TouchCamera extends FreeCamera {
  668. _offsetX: number;
  669. _offsetY: number;
  670. _pointerCount: number;
  671. _pointerPressed: number[];
  672. angularSensibility: number;
  673. moveSensibility: number;
  674. constructor(name: string, position: Vector3, scene: Scene);
  675. }
  676. // babylon.collider.d.ts
  677. interface CollisionResponse {
  678. position: Vector3;
  679. velocity: Vector3;
  680. }
  681. class Collider {
  682. radius: Vector3;
  683. retry: number;
  684. basePointWorld: Vector3;
  685. velocityWorld: Vector3;
  686. normalizedVelocity: Vector3;
  687. constructor();
  688. _initialize(source: Vector3, dir: Vector3, e: number): void;
  689. _checkPontInTriangle(point: Vector3, pa: Vector3, pb: Vector3, pc: Vector3, n: Vector3): boolean;
  690. intersectBoxAASphere(boxMin: Vector3, boxMax: Vector3, sphereCenter: Vector3, sphereRadius: number): boolean;
  691. getLowestRoot(a: number, b: number, c: number, maxR: number): Object;
  692. _canDoCollision(sphereCenter: Vector3, sphereRadius: number, vecMin: Vector3, vecMax: Vector3): boolean;
  693. _testTriangle(subMesh: SubMesh, p1: Vector3, p2: Vector3, p3: Vector3): void;
  694. _collide(subMesh: SubMesh, pts: VertexBuffer, indices: IndexBuffer, indexStart: number, indexEnd: number, decal: number);
  695. _getResponse(pos: Vector3, vel: Vector3): CollisionResponse;
  696. }
  697. class CollisionPlane {
  698. normal: Vector3;
  699. origin: Vector3;
  700. equation: number[];
  701. constructor(origin: Vector3, normal: Vector3);
  702. isFrontFactingTo(direction: Vector3, epsilon: number): boolean;
  703. signedDistanceTo(point: Vector3): number;
  704. static CreateFromPoints(p1: Vector3, p2: Vector3, p3: Vector3): CollisionPlane;
  705. }
  706. // babylon.bounding.d.ts
  707. class BoundingBox {
  708. minimum: Vector3;
  709. maximum: Vector3;
  710. vectors: Vector3[];
  711. center: Vector3;
  712. extends: Vector3;
  713. directions: Vector3[];
  714. vectorsWorld: Vector3[];
  715. minimumWorld: Vector3;
  716. maximumWorld: Vector3;
  717. constructor(minimum: Vector3, maximum: Vector3);
  718. _update(world: Matrix): void;
  719. isInFrustrum(frustrumPlanes: Plane[]): boolean;
  720. intersectsPoint(point: Vector3): boolean;
  721. intersectsSphere(sphere: Sphere): boolean;
  722. intersectsMinMax(min: Vector3, max: Vector3): boolean;
  723. IsInFrustrum(boundingVectors: Vector3[], frustrumPlanes: Plane[]): boolean;
  724. static intersects(box0: BoundingBox, box1: BoundingBox): boolean;
  725. }
  726. class BoundingInfo {
  727. boundingBox: BoundingBox;
  728. boundingSphere: BoundingSphere;
  729. constructor(minimum: Vector3, maximum, Vector3);
  730. _update(world: Matrix, scale: number): void;
  731. extentsOverlap(min0, max0, min1, max1): boolean;
  732. computeBoxExtents(axis: Vector3, box: BoundingBox): Object;
  733. axisOverlap(axis: Vector3, box0: BoundingBox, box1: BoundingBox): boolean;
  734. isInFrustrum(frustrumPlanes: Plane[]): boolean;
  735. _checkCollision(collider: Collider): boolean;
  736. intersectsPoint(point: Vector3): boolean;
  737. intersects(boundingInfo: BoundingInfo, precise: boolean): boolean;
  738. }
  739. class BoundingSphere {
  740. minimum: Vector3;
  741. maximum: Vector3;
  742. center: Vector3;
  743. radius: number;
  744. distance: number;
  745. centerWorld: Vector3;
  746. constructor(minimum: Vector3, maximum: Vector3);
  747. _update(world: Matrix, scale: number): void;
  748. isInFrustrum(frustrumPlanes: Plane[]): boolean;
  749. intersectsPoint(point: Vector3): boolean;
  750. static intersects(sphere0: BoundingSphere, sphere1: BoundingSphere): boolean;
  751. }
  752. class Octree {
  753. blocks: OctreeBlock[];
  754. _maxBlockCapacity: number;
  755. _selection: Tools.SmartArray;
  756. constructor(maxBlockCapacity: number);
  757. update(worldMin: Vector3, worldMax: Vector3, meshes: Mesh[]): void;
  758. addMesh(mesh: Mesh): void;
  759. select(frustrumPlanes: Plane[]): void;
  760. static _CreateBlocks(worldMin: Vector3, worldMax: Vector3, meshes: Mesh[], maxBlockCapacity: number, target: OctreeBlock): void;
  761. }
  762. class OctreeBlock {
  763. subMeshes: Mesh[];
  764. meshes: Mesh[];
  765. _capacity: number;
  766. _minPoint: Vector3;
  767. _maxPoint: Vector3;
  768. _boundingVector: Vector3[];
  769. constructor(minPoint: Vector3, maxPoint: Vector3, capacity: number)
  770. addMesh(mesh: Mesh): void;
  771. addEntries(meshes: Mesh[]): void;
  772. select(frustrumPlanes: Plane[], selection: Tools.SmartArray): void;
  773. }
  774. // babylon.layer.d.ts
  775. class Layer {
  776. name: string;
  777. texture: Texture;
  778. isBackground: boolean;
  779. color: Color4;
  780. _scene: Scene;
  781. vertices: number[];
  782. indicies: number[];
  783. _indexBuffer: IndexBuffer;
  784. _effect: Effect;
  785. constructor(name: string, imgUrl: string, scene: Scene, isBackground: boolean, color: Color4);
  786. onDispose: () => void;
  787. render(): void;
  788. dispose(): void;
  789. }
  790. // babylon.light.d.ts
  791. class Light {
  792. name: string;
  793. id: string;
  794. constructor(name: string, scene: Scene);
  795. intensity: number;
  796. isEnabled: boolean;
  797. getScene(): Scene;
  798. getShadowGenerator: ShadowGenerator;
  799. dispose(): void;
  800. }
  801. class PointLight extends Light {
  802. position: Vector3;
  803. diffuse: Color3;
  804. specular: Color3;
  805. animations: Animation[];
  806. constructor(name: string, position: Vector3, scene: Scene)
  807. }
  808. class SpotLight {
  809. position: Vector3;
  810. direction: Vector3;
  811. angle: number;
  812. exponent: number;
  813. diffuse: Color3;
  814. specular: Color3;
  815. animations: Animation[];
  816. constructor(name: string, position: Vector3, direction: Vector3, angle: number, exponsent: number, scene: Scene);
  817. }
  818. class HemisphericLight {
  819. direction: Vector3;
  820. diffuse: Color3;
  821. specular: Color3;
  822. groundColor: Color3;
  823. animations: Animation[];
  824. constructor(name: string, direction: Vector3, scene: Scene);
  825. getShadowGenerator(): void;
  826. }
  827. class DirectionalLight extends Light {
  828. direction: Vector3;
  829. animations: Animation[];
  830. position: Vector3;
  831. diffuse: Color3;
  832. specular: Color3;
  833. constructor(name: string, direction: Vector3, scene: Scene);
  834. }
  835. class ShadowGenerator {
  836. _light: Light;
  837. _scene: Scene;
  838. _shadowMap: RenderTargetTexture;
  839. constructor(mapSize: number, light: Light);
  840. renderSubMesh(subMesh: Mesh): void;
  841. useVarianceShadowMap: boolean;
  842. isReady(mesh: Mesh): boolean;
  843. getShadowMap(): RenderTargetTexture;
  844. getLight(): Light;
  845. getTransformMatrix(): Matrix;
  846. dispose(): void;
  847. }
  848. // babylon.effect.d.ts
  849. class Effect {
  850. name: string;
  851. defines: string;
  852. constructor(baseName: string, attributesNames: string[], uniformsNames: string[], samplers: WebGLUniformLocation[], engine: Engine, defines: string);
  853. isReady(): boolean;
  854. getProgram(): WebGLProgram;
  855. getAttribute(index: number): string;
  856. getAttributesNames(): string;
  857. getAttributesCount(): number;
  858. getUniformIndex(uniformName: string): number;
  859. getUniform(uniformName: string): string;
  860. getSamplers(): WebGLUniformLocation[];
  861. getCompilationError(): string;
  862. _prepareEffect(vertexSourceCode: string, fragmentSourceCode: string, attributeNames: string[], defines: string): void;
  863. setTexture(channel: string, texture: Texture): void;
  864. setMatrices(uniformName: string, matrices: Matrix[]): void;
  865. setMatrix(uniformName: string, matrix: Matrix): void;
  866. setBool(uniformName: string, val: boolean): void;
  867. setVector3(uniformName: string, val: Vector3): void;
  868. setFloat2(uniformName: string, x: number, y: number);
  869. setFloat3(uniformName: string, x: number, y: number, z: number);
  870. setFloat4(uniformName: string, x: number, y: number, z: number, w: number);
  871. setColor3(uniformName: string, color: Color3): void;
  872. setColor4(uniformName: string, color: Color4): void;
  873. static ShadersStore: Object;
  874. }
  875. // babylon.material.d.ts
  876. class Material {
  877. name: string;
  878. id: string;
  879. constructor(name: string, scene: Scene);
  880. checkReadyOnEveryCall: boolean;
  881. alpha: number;
  882. wireframe: boolean;
  883. backFaceCulling: boolean;
  884. _effect: Effect;
  885. onDispose: () => void;
  886. isReady(): boolean;
  887. getEffect(): Effect;
  888. needAlphaBlending(): boolean;
  889. needAlphaTesting(): boolean;
  890. _preBind(): void;
  891. bind(world: Matrix, mesh: Mesh): void;
  892. unbind(): void;
  893. baseDispose(): void;
  894. dispose(): void;
  895. }
  896. class MultiMaterial extends Material {
  897. subMaterials: Material[];
  898. constructor(name: string, scene: Scene);
  899. getSubMaterial(index: number): Material;
  900. }
  901. class StandardMaterial extends Material {
  902. diffuseTexture: Texture;
  903. ambientTexture: Texture;
  904. opacityTexture: Texture;
  905. reflectionTexture: Texture;
  906. emissiveTexture: Texture;
  907. specularTexture: Texture;
  908. bumpTexture: Texture;
  909. ambientColor: Color3;
  910. diffuseColor: Color3;
  911. specularColor: Color3;
  912. specularPower: number;
  913. emissiveColor: Color3;
  914. getRenderTargetTextures(): Texture[];
  915. getAnimatables(): Texture[];
  916. clone(name: string): StandardMaterial;
  917. }
  918. // babylon.texture.d.ts
  919. class BaseTexture {
  920. _scene: Scene;
  921. constructor(url: string, scene: Scene);
  922. delayLoadState: number;
  923. hasAlpha: boolean;
  924. level: number;
  925. onDispose: () => void;
  926. getInternalTexture(): BaseTexture;
  927. isReady(): boolean;
  928. getSize(): Size2D;
  929. getBaseSize(): Size2D;
  930. _getFromCache(url: string, noMipmap: boolean): BaseTexture;
  931. delayLoad(): void;
  932. releaseInternalTexture(): void;
  933. dispose(): void;
  934. }
  935. class Texture extends BaseTexture {
  936. name: string;
  937. url: string
  938. animations: Animation[];
  939. constructor(url: string, scene: Scene, noMipmap: boolean, invertY: boolean);
  940. static EXPLICIT_MODE: number;
  941. static SPHERICAL_MODE: number;
  942. static PLANAR_MODE: number;
  943. static CUBIC_MODE: number;
  944. static PROJECTION_MODE: number;
  945. static SKYBOX_MODE: number;
  946. static CLAMP_ADDRESSMODE: number;
  947. static WRAP_ADDRESSMODE: number;
  948. static MIRROR_ADDRESSMODE: number;
  949. uOffset: number;
  950. vOffset: number;
  951. uScale: number;
  952. vScale: number;
  953. uAng: number;
  954. vAng: number;
  955. wAng: number;
  956. wrapU: number;
  957. wrapV: number;
  958. coordinatesIndex: number;
  959. coordinatesMode: number;
  960. _prepareRowForTextureGeneration(t: Vector3): Vector3;
  961. _computeTextureMatrix(): Matrix;
  962. _computeReflectionTextureMatrix: Matrix;
  963. clone(): Texture;
  964. }
  965. class CubeTexture extends BaseTexture {
  966. constructor(rootUrl: string, scene: Scene);
  967. isCube: boolean;
  968. _computeReflectionTextureMatrix(): Matrix;
  969. }
  970. class DynamicTexture extends Texture {
  971. _canvas: HTMLCanvasElement;
  972. _context: CanvasRenderingContext2D;
  973. constructor(name: string, size: Size2D, scene: Scene, generateMipMaps: boolean);
  974. getContext(): CanvasRenderingContext2D;
  975. drawText(text: string, x: number, y: number, font: string, color: string, clearColor: string, invertY: boolean): void;
  976. update(): void;
  977. }
  978. class RenderTargetTexture extends Texture {
  979. constructor(name: string, size: Size2D, scene: Scene, generateMipMaps: boolean);
  980. renderList: any[];
  981. isRenderTarget: boolean;
  982. coordinatesMode: number;
  983. renderParticles: boolean;
  984. _onBeforeRender: () => void;
  985. _onAfterRender: () => void;
  986. resize(size: Size2D, generateMipMaps: boolean): void;
  987. render(): void;
  988. }
  989. class MirrorTexture extends RenderTargetTexture {
  990. constructor(name: string, size: Size2D, scene: Scene, generateMipMaps: boolean);
  991. mirrorPlane: Plane;
  992. onBeforeRender(): void;
  993. onAfterRender(): void;
  994. }
  995. class VideoTexture extends Texture {
  996. constructor(name: string, urls: string[], size: Size2D, scene: Scene, generateMipMaps: boolean);
  997. video: HTMLVideoElement;
  998. _autoLaunch: boolean;
  999. textureSize: Size2D;
  1000. _update(): boolean;
  1001. }
  1002. // babylon.mesh.d.ts
  1003. interface MeshRayHitTest { hit: boolean; distance: number }
  1004. class Mesh {
  1005. name: string;
  1006. id: string;
  1007. position: Vector3;
  1008. rotation: Vector3;
  1009. scaling: Vector3;
  1010. rotationQuaternion: Quaternion;
  1011. subMeshes: SubMesh[];
  1012. animations: Animation[];
  1013. constructor(name: string, vertexDeclaration: number[], scene: Scene);
  1014. static BILLBOARDMODE_NONE: number;
  1015. static BILLBOARDMODE_X: number;
  1016. static BILLBOARDMODE_Y: number;
  1017. static BILLBOARDMODE_Z: number;
  1018. static BILLBOARDMODE_ALL: number;
  1019. delayLoadState: boolean;
  1020. material: Material;
  1021. parent: Mesh;
  1022. _isReady: boolean;
  1023. _isEnabled: boolean;
  1024. isVisible: boolean;
  1025. isPickable: boolean;
  1026. visibility: number;
  1027. billboardMode: number;
  1028. checkCollisions: boolean;
  1029. receiveShadows: boolean;
  1030. isDisposed: boolean;
  1031. onDispose: () => void;
  1032. skeleton: Skeleton;
  1033. renderingGroupId: number;
  1034. getBoundingInfo(): BoundingInfo;
  1035. getScene(): Scene;
  1036. getWorldMatrix: Matrix;
  1037. getTotalVertices: number;
  1038. getVerticesData(kind: string): any[];
  1039. isVerticesDataPresent(kind: string): boolean;
  1040. getTotalIndicies(): number;
  1041. getIndices(): number[];
  1042. getVertexStrideSize(): number;
  1043. _needToSynchronizeChildren(): boolean;
  1044. setPivotMatrix(matrix: Matrix): void;
  1045. getPivotMatrix(): Matrix;
  1046. isSynchronized(): boolean;
  1047. isReady(): boolean;
  1048. isEnabled(): boolean;
  1049. setEnabled(value: boolean): void;
  1050. isAnimated(): boolean;
  1051. markAsDirty(property: string): void;
  1052. refreshBoudningInfo(): void;
  1053. computeWorldMatrix(): Matrix;
  1054. _createGlobalSubMesh(): SubMesh;
  1055. subdivide(count: number): void;
  1056. setVerticesData(data: any[], kind: string, updatable: boolean): void;
  1057. updateVerticesData(kind: string, data: any[]);
  1058. setIndices(indices: number[]): void;
  1059. bindAndDraw(subMesh: SubMesh, effect: Effect, wireframe: boolean): void;
  1060. registerBeforeRender(func: Function): void;
  1061. unregisterBeforeRender(func: Function): void;
  1062. render(subMesh: SubMesh): void;
  1063. isDescendantOf(ancestor: Mesh): boolean;
  1064. getDescendants(): Mesh[];
  1065. getEmittedParticleSystems(): ParticleSystem[];
  1066. getHierarchyEmittedParticleSystems(): ParticleSystem[];
  1067. getChildren(): Mesh[];
  1068. isInFrustrum(frustumPlanes: Plane[]): boolean;
  1069. setMaterialByID(id: string);
  1070. getAnimatables(): Material;
  1071. setLocalTranslation(vector3: Vector3): void;
  1072. getLocalTranslation(): Vector3;
  1073. bakeTransformIntoVertices(transform: Matrix): void;
  1074. intersectsMesh(mesh: Mesh, precise: boolean): boolean;
  1075. intersectsPoint(point: Vector3): boolean;
  1076. intersects(ray: Ray): MeshRayHitTest;
  1077. clone(name: string, newParent: Mesh): Mesh;
  1078. dispose(): void;
  1079. static CreateBox(name: string, size: number, scene: Scene): Mesh;
  1080. static CreateCylinder(name: string, height: number, diameterTop: number, diameterBottom: number, tessellation: number, scene: Scene, updatable: boolean): Mesh;
  1081. static CreateTorus(name: string, diameter: number, thickness: number, tessellation: number, scene: Scene, updatable: boolean): Mesh;
  1082. static CreateSphere(name: string, segments: number, diameter: number, scene: Scene): Mesh;
  1083. static CreatePlane(name: string, size: number, scene: Scene): Mesh;
  1084. static CreateGround(name: string, width: number, height: number, subdivisions: number, scene: Scene, updatable: boolean): Mesh;
  1085. static CreateGroundFromHeightMap(name: string, url: string, width: number, height: number, subdivisions: number, minHeight: number, maxHeight: number, scene: Scene, updatable: boolean): Mesh;
  1086. static ComputeNormal(positions: number[], normals: number[], indices: number[]);
  1087. }
  1088. class SubMesh {
  1089. materialIndex: number;
  1090. verticesStart: number;
  1091. verticesCount: number;
  1092. indexStart: number;
  1093. indexCount: number;
  1094. constructor(materialIndex: number, verticesStart: number, verticesCount: number, indexStart: number, indexCount: number, mesh: Mesh);
  1095. getBoundingInfo(): BoundingInfo;
  1096. getMaterial(): Material;
  1097. refreshBoundingInfo(): void;
  1098. updateBoundingInfo(world: Matrix, scale: Vector3): void;
  1099. isInFrustrum(frustumPlanes: Plane[]): boolean;
  1100. render(): void;
  1101. getLinesIndexBuffer(indices: number[], engine: Engine): IndexBuffer;
  1102. canIntersects(ray: Ray): boolean;
  1103. intersects(ray: Ray, positions: Vector3[], indices: number[]): MeshRayHitTest;
  1104. clone(newMesh: Mesh): SubMesh;
  1105. static CreateFromIndices(materialIndex: number, startIndex: number, indexCount: number, mesh: Mesh): SubMesh;
  1106. }
  1107. class VertexBuffer {
  1108. constructor(mesh: Mesh, data: any[], kind: string, updatable: boolean);
  1109. isUpdatable(): boolean;
  1110. getData(): any[];
  1111. getStrideSize(): number;
  1112. update(data: any[]): void;
  1113. dispose(): void;
  1114. PositionKind: string;
  1115. NormalKind: string;
  1116. UVKind: string;
  1117. UV2Kind: string;
  1118. ColorKind: string;
  1119. MatricesIndicesKind: string;
  1120. MatricesWeightsKind: string;
  1121. }
  1122. // babylon.particle.d.ts
  1123. class Particle {
  1124. position: Vector3;
  1125. direction: Vector3;
  1126. lifetime: number;
  1127. age: number;
  1128. size: number;
  1129. angle: number;
  1130. angularSpeed: number;
  1131. color: Color4;
  1132. colorStep: Color4;
  1133. constructor();
  1134. }
  1135. class ParticleSystem {
  1136. name: string;
  1137. id: string;
  1138. gravity: Vector3;
  1139. direction1: Vector3;
  1140. direction2: Vector3;
  1141. minEmitBox: Vector3;
  1142. maxEmitBox: Vector3;
  1143. color1: Color4;
  1144. color2: Color4;
  1145. colorDead: Color4;
  1146. deadAlpha: number;
  1147. textureMask: Color4;
  1148. particles: Particle[];
  1149. indices: number[];
  1150. renderingGroupId: number;
  1151. emitter: any; // needs update
  1152. emitRate: number;
  1153. manualEmitCount: number;
  1154. updateSpeed: number;
  1155. targetStopDuration: number;
  1156. disposeOnStop: boolean;
  1157. minEmitPower: number;
  1158. maxEmitPower: number;
  1159. minLifeTime: number;
  1160. maxLifeTime: number;
  1161. minSize: number;
  1162. maxSize: number;
  1163. minAngularSpeed: number;
  1164. maxAngularSpeed: number;
  1165. particleTexture: Texture;
  1166. onDispose: () => void;
  1167. blendMode: number;
  1168. constructor(name: string, capacity: number, scene: Scene);
  1169. isAlive(): boolean;
  1170. start(): void;
  1171. stop(): void;
  1172. animate(): void;
  1173. render(): number;
  1174. dispose(): void;
  1175. clone(name: string, newEmitter: any): ParticleSystem; // needs update (newEmitter)
  1176. static BLENDMODE_ONEONE: number;
  1177. static BLENDMODE_STANDARD: number;
  1178. }
  1179. // PostProcess
  1180. class PostProcess {
  1181. }
  1182. class PostProcessManager {
  1183. constructor();
  1184. postProcesses: any[];
  1185. }
  1186. // babylon.sprite.d.ts
  1187. class Sprite {
  1188. name: string;
  1189. color: Color4;
  1190. position: Vector3;
  1191. size: number;
  1192. angle: number;
  1193. cellIndex: number;
  1194. invertU: number;
  1195. invertV: number;
  1196. disposeWhenFinishedAnimating: boolean;
  1197. constructor(name: string, manager: SpriteManager);
  1198. playAnimation(from: number, to: number, loop: boolean, delay: number);
  1199. stopAnimation(): void;
  1200. dispose(): void;
  1201. }
  1202. class SpriteManager {
  1203. name: string;
  1204. cellSize: number;
  1205. constructor(name: string, imgUrl: string, capacity: number, cellSize: number, scene: Scene, epsilon: number);
  1206. indicies: number[];
  1207. index: number;
  1208. sprites: Sprite[];
  1209. onDispose: () => void;
  1210. render(): void;
  1211. dispose(): void;
  1212. }
  1213. }