babylon.min.d.ts 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976
  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. getAspectRatio(): number;
  26. getRenderWidth(): number;
  27. getRenderHeight(): number;
  28. getRenderingCanvas(): HTMLCanvasElement;
  29. setHardwareScalingLevel(level: number): void;
  30. getLoadedTexturesCache(): Texture[];
  31. getCaps(): Capabilities;
  32. switchFullscreen(element: HTMLElement);
  33. clear(color: IColor3, backBuffer: bool, depthStencil: bool);
  34. beginFrame(): void;
  35. endFrame(): void;
  36. resize(): void;
  37. bindFramebuffer(texture: Texture);
  38. unBindFramebuffer(texture: Texture);
  39. flushFramebuffer(): void;
  40. restoreDefaultFramebuffer(): void;
  41. createVertexBuffer(vertices: number[]): VertexBuffer;
  42. createVertexBuffer(vertices: ArrayBuffer): VertexBuffer;
  43. createVertexBuffer(vertices: ArrayBufferView): VertexBuffer;
  44. createDynamicVertexBuffer(capacity: number): VertexBuffer;
  45. updateDynamicVertexBuffer(vertexBuffer: VertexBuffer, vertices: number[]): void;
  46. updateDynamicVertexBuffer(vertexBuffer: VertexBuffer, vertices: ArrayBuffer): void;
  47. updateDynamicVertexBuffer(vertexBuffer: VertexBuffer, vertices: ArrayBufferView): void;
  48. createIndexBuffer(indices, is32Bits): IndexBuffer;
  49. bindBuffers(vb: VertexBuffer, ib: IndexBuffer, vdecl: number[], strideSize: number, effect: Effect);
  50. _releaseBuffer(vb: VertexBuffer);
  51. draw(useTriangles: bool, indexStart: number, indexCount: number);
  52. createEffect(baseName: string, attributesNames: string, uniformsNames: string[],
  53. samplers: WebGLUniformLocation[],
  54. defines: string): Effect;
  55. createShaderProgram(vertexCode: string, fragmentCode: string, defines: string): WebGLProgram;
  56. getUniforms(shaderProgram: WebGLProgram, uniformsNames: string[]): WebGLUniformLocation[];
  57. getAttributes(shaderProgram: WebGLProgram, attributesNames: string[]): number[];
  58. enableEffect(effect: Effect): void;
  59. setMatrix(uniform: string, matrix: Matrix): void;
  60. setVector2(uniform: string, x: number, y: number): void;
  61. setVector3(uniform: string, v: Vector3): void;
  62. setBool(uniform: string, val: bool): void;
  63. setVector4(uniform: string, x: number, y: number, z: number, w: number): void;
  64. setColor3(uniform: string, color: Color3): void;
  65. setColor4(uniform: string, color: Color3, alpha: number): void;
  66. setState(cullingMode: number): void;
  67. setDepthBuffer(enable: bool): void;
  68. setDepthWrite(enable: bool): void;
  69. setColorWrite(enable: bool): void;
  70. setAlphaMode(mode: number): void;
  71. setAlphaTesting(enable: bool): void;
  72. getAlphaTesting(): bool;
  73. wipeCaches(): void;
  74. createTexture(url: string, noMipmap: bool, invertY: bool): Texture;
  75. createDynamicTexture(size: number, noMipmap: bool): Texture;
  76. updateDynamicTexture(texture: Texture, canvas: HTMLCanvasElement): void;
  77. createRenderTargetTexture(size: number, generateMipMaps: bool): Texture;
  78. createCubeTexture(rootUrl: string): Texture;
  79. _releaseTexture(tex: Texture): void;
  80. bindSamplers(effect: Effect): void;
  81. setTexture(channel: number, texture: Texture): void;
  82. dispose(): void;
  83. static ShadersRepository: string;
  84. static ALPHA_DISABLE: number;
  85. static ALPHA_ADD: number;
  86. static ALPHA_COMBINE: number;
  87. static epsilon: number;
  88. static collisionEpsilon: number;
  89. static isSupported(): bool;
  90. }
  91. // babylon.scene.d.ts
  92. interface ScenePickResult {
  93. hit: bool;
  94. distance: number;
  95. pickedMesh: Mesh;
  96. pickedPoint: Vector3;
  97. }
  98. class Scene {
  99. constructor(engine: Engine);
  100. getEngine(): Engine;
  101. getTotalVertices(): number;
  102. getActiveVertices(): number;
  103. getActiveParticles(): number;
  104. getLastFrameDuration(): number;
  105. getEvaluateActiveMeshesDuration(): number;
  106. getRenderTargetsDuration(): number;
  107. getRenderDuration(): number;
  108. getParticlesDuration(): number;
  109. getSpritesDuration(): number;
  110. getAnimationRatio(): number;
  111. isReady(): bool;
  112. executeWhenReady(func: Function): void;
  113. // TODO: Animations
  114. getViewMatrix(): Matrix;
  115. getProjectionMatrix(): Matrix;
  116. getTransformMatrix(): Matrix;
  117. setTransformMatrix(view: Matrix, projection: Matrix);
  118. activeCameraByID(id: number): void;
  119. getMaterialByID(id: number): Material;
  120. getMeshByID(id: number): Mesh;
  121. getLastMeshByID(id: number): Mesh;
  122. getMeshByName(name: string): Mesh;
  123. isActiveMesh(mesh: Mesh): bool;
  124. _evaluateActiveMeshes(): void;
  125. _localRender(opaqueSubMeshes, alphaTestSubMeshes, transparentSubMeshes, activeMeshes);
  126. render();
  127. dispose();
  128. _getNewPosition(position: Vector3, velocity: Vector3, collider: Sphere, maximumRetries: number): Vector3;
  129. _collideWithWorld(position: Vector3, velocity: Vector3, collider: Sphere, maximumRetries: number): Vector3;
  130. createPickingRay(x: number, y: number, world: Matrix): Ray;
  131. pick(x: number, y: number): ScenePickResult;
  132. }
  133. // babylon.math.d.ts
  134. interface RayTriangleIntersection {
  135. hit: bool;
  136. distance: number;
  137. bu: number;
  138. bv: number;
  139. }
  140. interface IColor3 {
  141. r: number;
  142. g: number;
  143. b: number;
  144. }
  145. interface Size2D {
  146. width: number;
  147. height: number;
  148. }
  149. interface Sphere {
  150. center: Vector3;
  151. radius: number;
  152. }
  153. class Ray {
  154. origin: Vector3;
  155. direction: Vector3;
  156. constructor(origin: Vector3, direction: Vector3);
  157. intersectsSphere(sphere: Sphere): bool;
  158. intersectsTriangle(vertex0: Vector3,
  159. vertex1: Vector3,
  160. vertex2: Vector3): RayTriangleIntersection;
  161. static CreateNew(x: number,
  162. y: number,
  163. viewportWidth: number,
  164. viewportHeight: number,
  165. world: Matrix,
  166. view: Matrix,
  167. projection: Matrix): Ray;
  168. }
  169. class Color3 implements IColor3 {
  170. r: number;
  171. g: number;
  172. b: number;
  173. constructor(intialR: number, initialG: number, initialB: number);
  174. equals(otherColor: Color3): bool;
  175. equals(otherColor: Color4): bool;
  176. toString(): string;
  177. clone(): Color3;
  178. multiply(otherColor: Color3): Color3;
  179. scale(scale: number): Color3;
  180. static FromArray(values: number[]): Color3;
  181. }
  182. class Color4 implements IColor3 {
  183. r: number;
  184. g: number;
  185. b: number;
  186. a: number;
  187. constructor(initialR: number, initialG: number, initialB: number, initialA: number);
  188. add(right: Color4): Color4;
  189. subtract(right: Color4): Color4;
  190. scale(factor: number): Color4;
  191. toString(): string;
  192. clone(): Color4;
  193. static Lerp(left: number, right: number, amount: number): Color4;
  194. static FromArray(values: number[]): Color4;
  195. }
  196. class Vector2 {
  197. x: number;
  198. y: number;
  199. constructor(x: number, y: number);
  200. toString(): string;
  201. add(other: Vector2): Vector2;
  202. subtract(other: Vector2): Vector2;
  203. negate(): Vector2;
  204. scale(factor: number): Vector2;
  205. equals(other: Vector2): bool;
  206. length(): number;
  207. lengthSquared(): number;
  208. normalize();
  209. clone(): Vector2;
  210. static Zero(): Vector2;
  211. static CatmullRom(value1: Vector2, value2: Vector2, value3: Vector2, value4: Vector2, amount: number): Vector2;
  212. static Clamp(value: Vector2, min: Vector2, max: Vector2): Vector2;
  213. static Hermite(value1: Vector2, tangent1: Vector2, value2: Vector2, tangent2: Vector2, amount: number): Vector2;
  214. static Lerp(start: Vector2, end: Vector2, amount: number): Vector2;
  215. static Dot(left: Vector2, right: Vector2): number;
  216. static Normalize(vector: Vector2): Vector2;
  217. static Minimize(left: Vector2, right: Vector2): Vector2;
  218. static Maximize(left: Vector2, right: Vector2): Vector2;
  219. static Transform(vector: Vector2, transformation: number[]): Vector2;
  220. static Distance(value1: Vector2, value2: Vector2): number;
  221. static DistanceSquared(value1: Vector2, value2: Vector2): number;
  222. }
  223. class Vector3 {
  224. x: number;
  225. y: number;
  226. z: number;
  227. constructor(x: number, y: number, z: number);
  228. toString(): string;
  229. add(other: Vector3): Vector3;
  230. subtract(other: Vector3): Vector3;
  231. negate(): Vector3;
  232. scale(factor: number): Vector3;
  233. equals(other: Vector3): bool;
  234. multiply(other: Vector3): Vector3;
  235. divide(other: Vector3): Vector3;
  236. length(): number;
  237. lengthSquared(): number;
  238. normalize();
  239. clone(): Vector3;
  240. static FromArray(array: number[], offset?: number);
  241. static Zero(): Vector3;
  242. static Up(): Vector3;
  243. static TransformCoordinates(vector: Vector3, transformation: Matrix);
  244. static TransformNormal(vector: Vector3, transformation: Matrix);
  245. static CatmullRom(value1: Vector3, value2: Vector3, value3: Vector3, value4: Vector3, amount: number): Vector3;
  246. static Clamp(value: Vector3, min: Vector3, max: Vector3): Vector3;
  247. static Hermite(value1: Vector3, tangent1: Vector3, value2: Vector3, tangent2: Vector3, amount: number): Vector3;
  248. static Lerp(start: Vector3, end: Vector3, amount: number): Vector3;
  249. static Dot(left: Vector3, right: Vector3): number;
  250. static Normalize(vector: Vector3): Vector3;
  251. static Unproject(source: Vector3,
  252. viewportWidth: number,
  253. viewportHeight: number,
  254. world: Matrix,
  255. view: Matrix,
  256. projection: Matrix): Vector3;
  257. static Minimize(left: Vector3, right: Vector3): Vector3;
  258. static Maximize(left: Vector3, right: Vector3): Vector3;
  259. static Distance(value1: Vector3, value2: Vector3): number;
  260. static DistanceSquared(value1: Vector3, value2: Vector3): number;
  261. }
  262. class Quaternion {
  263. x: number;
  264. y: number;
  265. z: number;
  266. w: number;
  267. constructor(x: number, y: number, z: number, w: number);
  268. clone(): Quaternion;
  269. add(other: Quaternion): Quaternion;
  270. scale(factor: number): Quaternion;
  271. toEulerAngles(): Vector3;
  272. static FromArray(array: number[], offset?: number): Quaternion;
  273. static Slerp(left: Quaternion, right: Quaternion, amount: number): Quaternion;
  274. }
  275. class Matrix {
  276. m: number[];
  277. constructor();
  278. isIdentity(): bool;
  279. determinant(): number;
  280. toArray(): number[];
  281. invert(): void;
  282. multiply(other: Matrix): Matrix;
  283. equals(other: Matrix): Matrix;
  284. clone(): Matrix;
  285. static FromValues(m11: number, m12: number, m13: number, m14: number,
  286. m21: number, m22: number, m23: number, m24: number,
  287. m31: number, m32: number, m33: number, m34: number,
  288. m41: number, m42: number, m43: number, m44: number): Matrix;
  289. static Identity(): Matrix;
  290. static Zero(): Matrix;
  291. static RotationX(angle: number): Matrix;
  292. static RotationY(angle: number): Matrix;
  293. static RotationZ(angle: number): Matrix;
  294. static RotationAxis(axis: Vector3, angle: number): Matrix;
  295. static RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Matrix;
  296. static Scaling(scaleX: number, scaleY: number, scaleZ: number): Matrix;
  297. static Translation(x: number, y: number, z: number): Matrix;
  298. static LookAtLH(eye: Vector3, target: Vector3, up: Vector3): Matrix;
  299. static OrthoLH(width: number, height: number, znear: number, zfar: number): Matrix;
  300. static OrthoOffCenterLH(left: number, right: number, bottom: number, top: number, znear: number, zfar: number): Matrix;
  301. static PerspectiveLH(width: number, height: number, znear: number, zfar: number): Matrix;
  302. static PerspectiveFovLH(fov: number, aspect: number, znear: number, zfar: number): Matrix;
  303. static AffineTransformation(scaling: number, rotationCenter: Vector3, rotation: Quaternion, translation: Vector3): Matrix;
  304. static GetFinalMatrix(viewport: Size2D, world: Matrix, view: Matrix, projection: Matrix): Matrix;
  305. static Transpose(matrix: Matrix): Matrix;
  306. static Reflection(plane: Plane): Matrix;
  307. }
  308. class Plane {
  309. normal: Vector3;
  310. d: number;
  311. normalize(): void;
  312. transform(transformation: Matrix): Plane;
  313. dotCoordinate(point: Vector3): number;
  314. static FromArray(array: number[]): Plane;
  315. static FromPoints(point1: Vector3, point2: Vector3, point3: Vector3): Plane;
  316. }
  317. class Frustum {
  318. static GetPlanes(transform: Matrix): Plane[];
  319. }
  320. // babylon.tools.d.ts
  321. function QueueNewFrame(func: Function): void;
  322. function RequestFullscreen(element: HTMLElement): void;
  323. function ExitFullscreen(): void;
  324. var BaseUrl: string;
  325. function LoadFile(url: string, callback: Function, progressCallback: Function): void;
  326. function WithinEpsilon(a: number, b: number);
  327. function DeepCopy(source: Object, destination: Object, doNotCopyList: string[], mustCopyList: string[]);
  328. function GetFps(): number;
  329. function GetDeltaTime(): number;
  330. function _MeasureFps(): void;
  331. //babylon.tools.dds.d.ts
  332. function LoadDDSTexture(gl: WebGLRenderingContext, ext: any, data: ArrayBuffer): number;
  333. //babylon.sceneLoader.d.ts
  334. function ImportMesh(meshName: string, rootUrl: string, sceneFilename: string, scene: Scene, then: Function);
  335. function Load(rootUrl: string, sceneFilename: string, engine: Engine, then: Function, progressCallback: Function);
  336. // babylon.animation.d.ts
  337. class _Animatable {
  338. target: Object;
  339. fromFrame: number;
  340. toFrame: number;
  341. loopAnimation: bool;
  342. animationStartDate: Date;
  343. speedRatio: number;
  344. constructor(target: Object, from: number, to: number, loop: bool, speedRatio?: number);
  345. _animate(): bool;
  346. }
  347. class Animation {
  348. name: string;
  349. targetPropertyPath: string[];
  350. framePerSecond: number;
  351. dataType: string;
  352. loopMode: number;
  353. _keys: number[];
  354. constructor(name: string, targetProperty: string, framePerSecond: number, dataType: string, loopMode: number);
  355. clone(): Animation;
  356. setKeys(values: number[]);
  357. _interpolate(currentFrame: number, repeatCount: number, loopMode: number, offsetValue: number, highLimitValue: number);
  358. animate(target: Object, delay: number, from: number, to: number, loop: bool, speedRatio: number): bool;
  359. static ANIMATIONTYPE_FLOAT: number;
  360. static ANIMATIONTYPE_VECTOR3: number;
  361. static ANIMATIONTYPE_QUATERNION: number;
  362. static ANIMATIONLOOPMODE_RELATIVE: number;
  363. static ANIMATIONLOOPMODE_CYCLE: number;
  364. static ANIMATIONLOOPMODE_CONSTANT: number;
  365. }
  366. // babylon.camera.d.ts
  367. class Camera {
  368. name: string;
  369. id: string;
  370. position: Vector3;
  371. _scene: Scene;
  372. constructor(name: string, position: Vector3, scene: Scene);
  373. fov: number;
  374. minZ: number;
  375. maxZ: number;
  376. intertia: number;
  377. attachControl(canvas: HTMLCanvasElement): void;
  378. detachControl(canvas: HTMLCanvasElement): void;
  379. _update();
  380. getViewMatrix(): Matrix;
  381. getProjectionMatrix(): Matrix;
  382. }
  383. class FreeCamera extends Camera {
  384. cameraDirection: Vector3;
  385. cameraRotation: Vector2;
  386. rotation: Vector3;
  387. ellipsoid: Vector3;
  388. _keys: number[];
  389. keysUp: number[];
  390. keysDown: number[];
  391. keysLeft: number[];
  392. keysRight: number[];
  393. _collider: Collider;
  394. _needsMoveForGravity: bool;
  395. animations: Animation[];
  396. constructor(name: string, position: Vector3, scene: Scene);
  397. speed: number;
  398. checkCollisions: bool;
  399. applyGravity: bool;
  400. _computeLocalCameraSpeed(): number;
  401. setTarget(target: Vector3): void;
  402. _collideWithWorld(velocity: Vector3): void;
  403. _checkInputs();
  404. }
  405. class TouchCamera extends FreeCamera {
  406. _offsetX: number;
  407. _offsetY: number;
  408. _pointerCount: number;
  409. _pointerPressed: number[];
  410. constructor(name: string, position: Vector3, scene: Scene);
  411. }
  412. class ArcRotateCamera extends Camera {
  413. alpha: number;
  414. beta: number;
  415. radius: number;
  416. target: Vector3;
  417. constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene: Scene);
  418. inertialAlphaOffset: number;
  419. interialBetaOffset: number;
  420. setPosition(position: Vector3): void;
  421. }
  422. // babylon.collider.d.ts
  423. interface CollisionResponse {
  424. position: Vector3;
  425. velocity: Vector3;
  426. }
  427. class Collider {
  428. radius: Vector3;
  429. retry: number;
  430. constructor();
  431. _initialize(source: Vector3, dir: Vector3, e: number): void;
  432. _canDoCollision(sphereCenter: Vector3, sphereRadius: number, vecMin: Vector3, vecMax: Vector3): bool;
  433. _testTriangle(subMesh: SubMesh, p1: Vector3, p2: Vector3, p3: Vector3): void;
  434. _collide(subMesh: SubMesh, pts: VertexBuffer, indices: IndexBuffer, indexStart: number, indexEnd: number, decal: number);
  435. _getResponse(pos: Vector3, vel: Vector3): CollisionResponse;
  436. }
  437. class CollisionPlane {
  438. normal: Vector3;
  439. origin: Vector3;
  440. equation: number[];
  441. constructor(origin: Vector3, normal: Vector3);
  442. isFrontFactingTo(direction: Vector3, epsilon: number): bool;
  443. signedDistanceTo(point: Vector3): number;
  444. static CreateFromPoints(p1: Vector3, p2: Vector3, p3: Vector3): CollisionPlane;
  445. }
  446. // babylon.bounding.d.ts
  447. class BoundingBox {
  448. minimum: Vector3;
  449. maximum: Vector3;
  450. vectors: Vector3[];
  451. center: Vector3;
  452. extends: Vector3;
  453. directions: Vector3[];
  454. constructor(vertices: VertexBuffer, stride: number, start: number, count: number);
  455. _update(world: Matrix): void;
  456. isInFrustrum(frustrumPlanes: Plane[]): bool;
  457. intersectsPoint(point: Vector3): bool;
  458. static intersects(box0: BoundingBox, box1: BoundingBox): bool;
  459. }
  460. class BoundingSphere {
  461. minimum: Vector3;
  462. maximum: Vector3;
  463. center: Vector3;
  464. radius: number;
  465. constructor(vertices: VertexBuffer, stride: number, start: number, count: number);
  466. _update(world: Matrix, scale: number): void;
  467. isInFrustrum(frustrumPlanes: Plane[]): bool;
  468. intersectsPoint(point: Vector3): bool;
  469. static intersects(sphere0: BoundingSphere, sphere1: BoundingSphere): bool;
  470. }
  471. class BoundingInfo {
  472. boundingBox: BoundingBox;
  473. boundingSphere: BoundingSphere;
  474. constructor(vertices: VertexBuffer, stride: number, start: number, count: number);
  475. _update(world: Matrix, scale: number): void;
  476. isInFrustrum(frustrumPlanes: Plane[]): bool;
  477. _checkCollision(collider: Collider): bool;
  478. intersectsPoint(point: Vector3): bool;
  479. intersects(boundingInfo: BoundingInfo, precise: bool): bool;
  480. }
  481. // babylon.layer.d.ts
  482. class Layer {
  483. name: string;
  484. texture: Texture;
  485. isBackground: bool;
  486. constructor(name: string, imgUrl: string, scene: Scene, isBackground: bool);
  487. onDispose: () => void;
  488. render(): void;
  489. dispose(): void;
  490. }
  491. // babylon.light.d.ts
  492. class Light {
  493. name: string;
  494. id: string;
  495. diffuse: Color3;
  496. specular: Color3;
  497. private _scene: Scene;
  498. constructor(name: string, scene: Scene);
  499. intensity: number;
  500. isEnabled: bool;
  501. }
  502. class PointLight extends Light {
  503. position: Vector3;
  504. animations: Animation[];
  505. constructor(name: string, position: Vector3, scene: Scene);
  506. }
  507. class DirectionalLight extends Light {
  508. direction: Vector3;
  509. animations: Animation[];
  510. constructor(name: string, direction: Vector3, scene: Scene);
  511. }
  512. // babylon.effect.d.ts
  513. class Effect {
  514. name: string;
  515. defines: string;
  516. constructor(baseName: string, attributesNames: string[], uniformsNames: string[], samplers: WebGLUniformLocation[], engine: Engine, defines: string);
  517. isReady(): bool;
  518. getProgram(): WebGLProgram;
  519. getAttribute(index: number): string;
  520. getAttributesCount(): number;
  521. getUniformIndex(uniformName: string): number;
  522. getUniform(uniformName: string): string;
  523. getSamplers(): WebGLUniformLocation[];
  524. _prepareEffect(vertexSourceCode: string, fragmentSourceCode: string, attributeNames: string[], defines: string): void;
  525. setTexture(channel: string, texture: Texture): void;
  526. setMatrix(uniformName: string, matrix: Matrix): void;
  527. setBool(uniformName: string, val: bool): void;
  528. setVector2(uniformName: string, x: number, y: number): void;
  529. setVector3(uniformName: string, val: Vector3): void;
  530. setVector4(uniformName: string, x: number, y: number, z: number, w: number): void;
  531. setColor3(uniformName: string, color: Color3): void;
  532. setColor4(uniformName: string, color: Color4): void;
  533. static ShadersStore: Object;
  534. }
  535. // babylon.material.d.ts
  536. class Material {
  537. name: string;
  538. id: string;
  539. private _scene: Scene;
  540. constructor(name: string, scene: Scene);
  541. alpha: number;
  542. wireframe: bool;
  543. backFaceCulling: bool;
  544. _effect: Effect;
  545. onDispose: () => void;
  546. isReady(): bool;
  547. getEffect(): Effect;
  548. needAlphaBlending(): bool;
  549. needAlphaTesting(): bool;
  550. _preBind(): void;
  551. bind(world: Matrix, mesh: Mesh): void;
  552. unbind(): void;
  553. dispose(): void;
  554. }
  555. class MultiMaterial extends Material {
  556. constructor(name: string, scene: Scene);
  557. getSubMaterial(index: number): Material;
  558. }
  559. class StandardMaterial extends Material {
  560. diffuseTexture: Texture;
  561. ambientTexture: Texture;
  562. opacityTexture: Texture;
  563. reflectionTexture: Texture;
  564. emissiveTexture: Texture;
  565. specularTexture: Texture;
  566. ambientColor: Color3;
  567. diffuseColor: Color3;
  568. specularColor: Color3;
  569. specularPower: number;
  570. emissiveColor: Color3;
  571. getRenderTargetTextures(): Texture[];
  572. getAnimatables(): Texture[];
  573. }
  574. // babylon.texture.d.ts
  575. class BaseTexture {
  576. _scene: Scene;
  577. constructor(url: string, scene: Scene);
  578. hasAlpha: bool;
  579. level: number;
  580. onDispose: () => void;
  581. getInternalTexture(): BaseTexture;
  582. isReady(): bool;
  583. getSize(): Size2D;
  584. getBaseSize(): Size2D;
  585. _getFromCache(url: string, noMipmap: bool): BaseTexture;
  586. dispose(): void;
  587. }
  588. class Texture extends BaseTexture {
  589. name: string;
  590. constructor(url: string, scene: Scene, noMipmap: bool, invertY: bool);
  591. static EXPLICIT_MODE: number;
  592. static SPHERICAL_MODE: number;
  593. static PLANAR_MODE: number;
  594. static CUBIC_MODE: number;
  595. static PROJECTION_MODE: number;
  596. uOffset: number;
  597. vOffset: number;
  598. uScale: number;
  599. vScale: number;
  600. uAng: number;
  601. vAng: number;
  602. wAng: number;
  603. wrapU: bool;
  604. wrapV: bool;
  605. coordinatesIndex: number;
  606. coordinatesMode: number;
  607. _prepareRowForTextureGeneration(t: Vector3): Vector3;
  608. _computeTextureMatrix(): Matrix;
  609. }
  610. class CubeTexture extends BaseTexture {
  611. constructor(rootUrl: string, scene: Scene);
  612. }
  613. class DynamicTexture extends Texture {
  614. wrapU: bool;
  615. wrapV: bool;
  616. _canvas: HTMLCanvasElement;
  617. _context: CanvasRenderingContext2D;
  618. constructor(name: string, size: Size2D, scene: Scene, generateMipMaps: bool);
  619. getContext(): CanvasRenderingContext2D;
  620. update(): void;
  621. }
  622. class RenderTargetTexture extends Texture {
  623. constructor(name: string, size: Size2D, scene: Scene, generateMipMaps: bool);
  624. renderList: any[];
  625. isRenderTarget: bool;
  626. coordinatesMode: number;
  627. _onBeforeRender: () => void;
  628. _onAfterRender: () => void;
  629. render(): void;
  630. }
  631. class MirrorTexture extends RenderTargetTexture {
  632. constructor(name: string, size: Size2D, scene: Scene, generateMipMaps: bool);
  633. mirrorPlane: Plane;
  634. _onBeforeRender: () => void;
  635. _onAfterRender: () => void;
  636. }
  637. // babylon.mesh.d.ts
  638. interface MeshRayHitTest { hit: bool; distance: number }
  639. class Mesh {
  640. name: string;
  641. id: string;
  642. private _scene: Scene;
  643. private _vertexDeclaration: number[];
  644. private _vertexStrideSize: number;
  645. private _totalVertices: number;
  646. private _worldMatrix: Matrix;
  647. position: Vector3;
  648. rotation: Vector3;
  649. scaling: Vector3;
  650. subMeshes: SubMesh[];
  651. animations: Animation[];
  652. constructor(name: string, vertexDeclaration: number[], scene: Scene);
  653. static BILLBOARDMODE_NONE: number;
  654. static BILLBOARDMODE_X: number;
  655. static BILLBOARDMODE_Y: number;
  656. static BILLBOARDMODE_Z: number;
  657. static BILLBOARDMODE_ALL: number;
  658. material: Material;
  659. parent: Mesh;
  660. _isEnabled: bool;
  661. isVisible: bool;
  662. visibility: number;
  663. billboardMode: number;
  664. checkCollisions: bool;
  665. onDispose: () => void;
  666. getScene(): Scene;
  667. getWorldMatrix: Matrix;
  668. getTotalVertices: number;
  669. getVertices: VertexBuffer;
  670. getVertexStride(): number;
  671. getFloatVertexStrideSize(): number;
  672. _needToSynchronizeChildren(): bool;
  673. isSynchronized(): bool;
  674. isEnabled(): bool;
  675. setEnabled(value: bool): void;
  676. isAnimated(): bool;
  677. computeWorldMatrix(): Matrix;
  678. _createGlobalSubMesh(): SubMesh;
  679. setVertices(vertices: VertexBuffer, uvCount: number): void;
  680. setIndices(indices: number[]): void;
  681. render(subMesh: SubMesh): void;
  682. isDescendantOf(ancestor: Mesh): bool;
  683. getDescendants(): Mesh[];
  684. getEmittedParticleSystems(): ParticleSystem[];
  685. getHierarchyEmittedParticleSystems(): ParticleSystem[];
  686. getChildren(): Mesh[];
  687. isInFrustrum(frustumPlanes: Plane[]): bool;
  688. setMaterialByID(id: string);
  689. getAnimatables(): Material;
  690. intersectsMesh(mesh: Mesh, precise: bool): bool;
  691. intersectsPoint(point: Vector3): bool;
  692. intersects(ray: Ray): MeshRayHitTest;
  693. clone(name: string, newParent: Mesh): Mesh;
  694. dispose(): void;
  695. static createBox(name: string, size: number, scene: Scene): Mesh;
  696. static createSphere(name: string, segments: number, diameter: number, scene: Scene): Mesh;
  697. static createPlane(name: string, size: number, scene: Scene): Mesh;
  698. }
  699. class SubMesh {
  700. materialIndex: number;
  701. verticesStart: number;
  702. verticesCount: number;
  703. indexStart: number;
  704. indexCount: number;
  705. constructor(materialIndex: number, verticesStart: number, verticesCount: number, indexStart: number, indexCount: number, mesh: Mesh);
  706. getMaterial(): Material;
  707. updateBoundingInfo(world: Matrix, scale: Vector3): void;
  708. isInFrustrum(frustumPlanes: Plane[]): bool;
  709. render(): void;
  710. getLinesIndexBuffer(indices: number[], engine: Engine): IndexBuffer;
  711. canIntersects(ray: Ray): bool;
  712. intersects(ray: Ray, positions: Vector3[], indices: number[]): MeshRayHitTest;
  713. clone(newMesh: Mesh): SubMesh;
  714. }
  715. // babylon.particle.d.ts
  716. class Particle {
  717. position: Vector3;
  718. direction: Vector3;
  719. lifetime: number;
  720. age: number;
  721. size: number;
  722. angle: number;
  723. angularSpeed: number;
  724. color: Color4;
  725. colorStep: Color4;
  726. constructor();
  727. }
  728. class ParticleSystem {
  729. name: string;
  730. id: string;
  731. gravity: Vector3;
  732. direction1: Vector3;
  733. direction2: Vector3;
  734. minEmitBox: Vector3;
  735. maxEmitBox: Vector3;
  736. color1: Color4;
  737. color2: Color4;
  738. colorDead: Color4;
  739. deadAlpha: number;
  740. textureMask: Color4;
  741. particles: Particle[];
  742. emitter: any; // needs update
  743. emitRate: number;
  744. manualEmitCount: number;
  745. updateSpeed: number;
  746. targetStopDuration: number;
  747. disposeOnStop: bool;
  748. minEmitPower: number;
  749. maxEmitPower: number;
  750. minLifeTime: number;
  751. maxLifeTime: number;
  752. minSize: number;
  753. maxSize: number;
  754. minAngularSpeed: number;
  755. maxAngularSpeed: number;
  756. particleTexture: Texture;
  757. onDispose: () => void;
  758. blendMode: number;
  759. constructor(name: string, capacity: number, scene: Scene);
  760. isAlive(): bool;
  761. start(): void;
  762. stop(): void;
  763. animate(): void;
  764. render(): number;
  765. dispose(): void;
  766. clone(name: string, newEmitter: any): ParticleSystem; // needs update (newEmitter)
  767. static BLENDMODE_ONEONE: number;
  768. static BLENDMODE_STANDARD: number;
  769. }
  770. // babylon.sprite.d.ts
  771. class Sprite {
  772. name: string;
  773. position: Vector3;
  774. size: number;
  775. angle: number;
  776. cellIndex: number;
  777. invertU: number;
  778. invertV: number;
  779. constructor(name: string, manager: SpriteManager);
  780. playAnimation(from: number, to: number, loop: bool, delay: number);
  781. stopAnimation(): void;
  782. }
  783. class SpriteManager {
  784. name: string;
  785. cellSize: number;
  786. constructor(name: string, imgUrl: string, capacity: number, cellSize: number, scene: Scene, epsilon: number);
  787. onDispose: () => void;
  788. render(): void;
  789. dispose(): void;
  790. }
  791. }