babylon.math.d.ts 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. declare module BABYLON {
  2. class Color3 {
  3. public r: number;
  4. public g: number;
  5. public b: number;
  6. constructor(r?: number, g?: number, b?: number);
  7. public toString(): string;
  8. public toArray(array: number[], index?: number): void;
  9. public toColor4(alpha?: number): Color4;
  10. public asArray(): number[];
  11. public toLuminance(): number;
  12. public multiply(otherColor: Color3): Color3;
  13. public multiplyToRef(otherColor: Color3, result: Color3): void;
  14. public equals(otherColor: Color3): boolean;
  15. public scale(scale: number): Color3;
  16. public scaleToRef(scale: number, result: Color3): void;
  17. public add(otherColor: Color3): Color3;
  18. public addToRef(otherColor: Color3, result: Color3): void;
  19. public subtract(otherColor: Color3): Color3;
  20. public subtractToRef(otherColor: Color3, result: Color3): void;
  21. public clone(): Color3;
  22. public copyFrom(source: Color3): void;
  23. public copyFromFloats(r: number, g: number, b: number): void;
  24. static FromArray(array: number[]): Color3;
  25. static FromInts(r: number, g: number, b: number): Color3;
  26. static Lerp(start: Color3, end: Color3, amount: number): Color3;
  27. static Red(): Color3;
  28. static Green(): Color3;
  29. static Blue(): Color3;
  30. static Black(): Color3;
  31. static White(): Color3;
  32. static Purple(): Color3;
  33. static Magenta(): Color3;
  34. static Yellow(): Color3;
  35. static Gray(): Color3;
  36. }
  37. class Color4 {
  38. public r: number;
  39. public g: number;
  40. public b: number;
  41. public a: number;
  42. constructor(r: number, g: number, b: number, a: number);
  43. public addInPlace(right: any): void;
  44. public asArray(): number[];
  45. public toArray(array: number[], index?: number): void;
  46. public add(right: Color4): Color4;
  47. public subtract(right: Color4): Color4;
  48. public subtractToRef(right: Color4, result: Color4): void;
  49. public scale(scale: number): Color4;
  50. public scaleToRef(scale: number, result: Color4): void;
  51. public toString(): string;
  52. public clone(): Color4;
  53. static Lerp(left: Color4, right: Color4, amount: number): Color4;
  54. static LerpToRef(left: Color4, right: Color4, amount: number, result: Color4): void;
  55. static FromArray(array: number[], offset?: number): Color4;
  56. static FromInts(r: number, g: number, b: number, a: number): Color4;
  57. }
  58. class Vector2 {
  59. public x: number;
  60. public y: number;
  61. constructor(x: number, y: number);
  62. public toString(): string;
  63. public toArray(array: number[], index?: number): void;
  64. public asArray(): number[];
  65. public copyFrom(source: Vector2): void;
  66. public copyFromFloats(x: number, y: number): void;
  67. public add(otherVector: Vector2): Vector2;
  68. public addVector3(otherVector: Vector3): Vector2;
  69. public subtract(otherVector: Vector2): Vector2;
  70. public subtractInPlace(otherVector: Vector2): void;
  71. public multiplyInPlace(otherVector: Vector2): void;
  72. public multiply(otherVector: Vector2): Vector2;
  73. public multiplyToRef(otherVector: Vector2, result: Vector2): void;
  74. public multiplyByFloats(x: number, y: number): Vector2;
  75. public divide(otherVector: Vector2): Vector2;
  76. public divideToRef(otherVector: Vector2, result: Vector2): void;
  77. public negate(): Vector2;
  78. public scaleInPlace(scale: number): Vector2;
  79. public scale(scale: number): Vector2;
  80. public equals(otherVector: Vector2): boolean;
  81. public length(): number;
  82. public lengthSquared(): number;
  83. public normalize(): Vector2;
  84. public clone(): Vector2;
  85. static Zero(): Vector2;
  86. static FromArray(array: number[], offset?: number): Vector2;
  87. static FromArrayToRef(array: number[], offset: number, result: Vector2): void;
  88. static CatmullRom(value1: Vector2, value2: Vector2, value3: Vector2, value4: Vector2, amount: number): Vector2;
  89. static Clamp(value: Vector2, min: Vector2, max: Vector2): Vector2;
  90. static Hermite(value1: Vector2, tangent1: Vector2, value2: Vector2, tangent2: Vector2, amount: number): Vector2;
  91. static Lerp(start: Vector2, end: Vector2, amount: number): Vector2;
  92. static Dot(left: Vector2, right: Vector2): number;
  93. static Normalize(vector: Vector2): Vector2;
  94. static Minimize(left: Vector2, right: Vector2): Vector2;
  95. static Maximize(left: Vector2, right: Vector2): Vector2;
  96. static Transform(vector: Vector2, transformation: Matrix): Vector2;
  97. static Distance(value1: Vector2, value2: Vector2): number;
  98. static DistanceSquared(value1: Vector2, value2: Vector2): number;
  99. }
  100. class Vector3 {
  101. public x: number;
  102. public y: number;
  103. public z: number;
  104. constructor(x: number, y: number, z: number);
  105. public toString(): string;
  106. public asArray(): number[];
  107. public toArray(array: number[], index?: number): void;
  108. public addInPlace(otherVector: Vector3): void;
  109. public add(otherVector: Vector3): Vector3;
  110. public addToRef(otherVector: Vector3, result: Vector3): void;
  111. public subtractInPlace(otherVector: Vector3): void;
  112. public subtract(otherVector: Vector3): Vector3;
  113. public subtractToRef(otherVector: Vector3, result: Vector3): void;
  114. public subtractFromFloats(x: number, y: number, z: number): Vector3;
  115. public subtractFromFloatsToRef(x: number, y: number, z: number, result: Vector3): void;
  116. public negate(): Vector3;
  117. public scaleInPlace(scale: number): Vector3;
  118. public scale(scale: number): Vector3;
  119. public scaleToRef(scale: number, result: Vector3): void;
  120. public equals(otherVector: Vector3): boolean;
  121. public equalsWithEpsilon(otherVector: Vector3): boolean;
  122. public equalsToFloats(x: number, y: number, z: number): boolean;
  123. public multiplyInPlace(otherVector: Vector3): void;
  124. public multiply(otherVector: Vector3): Vector3;
  125. public multiplyToRef(otherVector: Vector3, result: Vector3): void;
  126. public multiplyByFloats(x: number, y: number, z: number): Vector3;
  127. public divide(otherVector: Vector3): Vector3;
  128. public divideToRef(otherVector: Vector3, result: Vector3): void;
  129. public MinimizeInPlace(other: Vector3): void;
  130. public MaximizeInPlace(other: Vector3): void;
  131. public length(): number;
  132. public lengthSquared(): number;
  133. public normalize(): Vector3;
  134. public clone(): Vector3;
  135. public copyFrom(source: Vector3): void;
  136. public copyFromFloats(x: number, y: number, z: number): void;
  137. static FromArray(array: number[], offset?: number): Vector3;
  138. static FromArrayToRef(array: number[], offset: number, result: Vector3): void;
  139. static FromFloatArrayToRef(array: Float32Array, offset: number, result: Vector3): void;
  140. static FromFloatsToRef(x: number, y: number, z: number, result: Vector3): void;
  141. static Zero(): Vector3;
  142. static Up(): Vector3;
  143. static TransformCoordinates(vector: Vector3, transformation: Matrix): Vector3;
  144. static TransformCoordinatesToRef(vector: Vector3, transformation: Matrix, result: Vector3): void;
  145. static TransformCoordinatesFromFloatsToRef(x: number, y: number, z: number, transformation: Matrix, result: Vector3): void;
  146. static TransformNormal(vector: Vector3, transformation: Matrix): Vector3;
  147. static TransformNormalToRef(vector: Vector3, transformation: Matrix, result: Vector3): void;
  148. static TransformNormalFromFloatsToRef(x: number, y: number, z: number, transformation: Matrix, result: Vector3): void;
  149. static CatmullRom(value1: Vector3, value2: Vector3, value3: Vector3, value4: Vector3, amount: number): Vector3;
  150. static Clamp(value: Vector3, min: Vector3, max: Vector3): Vector3;
  151. static Hermite(value1: Vector3, tangent1: Vector3, value2: Vector3, tangent2: Vector3, amount: number): Vector3;
  152. static Lerp(start: Vector3, end: Vector3, amount: number): Vector3;
  153. static Dot(left: Vector3, right: Vector3): number;
  154. static Cross(left: Vector3, right: Vector3): Vector3;
  155. static CrossToRef(left: Vector3, right: Vector3, result: Vector3): void;
  156. static Normalize(vector: Vector3): Vector3;
  157. static NormalizeToRef(vector: Vector3, result: Vector3): void;
  158. static Project(vector: Vector3, world: Matrix, transform: Matrix, viewport: Viewport): Vector3;
  159. static UnprojectFromTransform(source: Vector3, viewportWidth: number, viewportHeight: number, world: Matrix, transform: Matrix): Vector3;
  160. static Unproject(source: Vector3, viewportWidth: number, viewportHeight: number, world: Matrix, view: Matrix, projection: Matrix): Vector3;
  161. static Minimize(left: Vector3, right: Vector3): Vector3;
  162. static Maximize(left: Vector3, right: Vector3): Vector3;
  163. static Distance(value1: Vector3, value2: Vector3): number;
  164. static DistanceSquared(value1: Vector3, value2: Vector3): number;
  165. static Center(value1: Vector3, value2: Vector3): Vector3;
  166. }
  167. class Vector4 {
  168. public x: number;
  169. public y: number;
  170. public z: number;
  171. public w: number;
  172. constructor(x: number, y: number, z: number, w: number);
  173. public toString(): string;
  174. public asArray(): number[];
  175. public toArray(array: number[], index?: number): void;
  176. public addInPlace(otherVector: Vector4): void;
  177. public add(otherVector: Vector4): Vector4;
  178. public addToRef(otherVector: Vector4, result: Vector4): void;
  179. public subtractInPlace(otherVector: Vector4): void;
  180. public subtract(otherVector: Vector4): Vector4;
  181. public subtractToRef(otherVector: Vector4, result: Vector4): void;
  182. public subtractFromFloats(x: number, y: number, z: number, w: number): Vector4;
  183. public subtractFromFloatsToRef(x: number, y: number, z: number, w: number, result: Vector4): void;
  184. public negate(): Vector4;
  185. public scaleInPlace(scale: number): Vector4;
  186. public scale(scale: number): Vector4;
  187. public scaleToRef(scale: number, result: Vector4): void;
  188. public equals(otherVector: Vector4): boolean;
  189. public equalsWithEpsilon(otherVector: Vector4): boolean;
  190. public equalsToFloats(x: number, y: number, z: number, w: number): boolean;
  191. public multiplyInPlace(otherVector: Vector4): void;
  192. public multiply(otherVector: Vector4): Vector4;
  193. public multiplyToRef(otherVector: Vector4, result: Vector4): void;
  194. public multiplyByFloats(x: number, y: number, z: number, w: number): Vector4;
  195. public divide(otherVector: Vector4): Vector4;
  196. public divideToRef(otherVector: Vector4, result: Vector4): void;
  197. public MinimizeInPlace(other: Vector4): void;
  198. public MaximizeInPlace(other: Vector4): void;
  199. public length(): number;
  200. public lengthSquared(): number;
  201. public normalize(): Vector4;
  202. public clone(): Vector4;
  203. public copyFrom(source: Vector4): void;
  204. public copyFromFloats(x: number, y: number, z: number, w: number): void;
  205. static FromArray(array: number[], offset?: number): Vector4;
  206. static FromArrayToRef(array: number[], offset: number, result: Vector4): void;
  207. static FromFloatArrayToRef(array: Float32Array, offset: number, result: Vector4): void;
  208. static FromFloatsToRef(x: number, y: number, z: number, w: number, result: Vector4): void;
  209. static Zero(): Vector4;
  210. static Normalize(vector: Vector4): Vector4;
  211. static NormalizeToRef(vector: Vector4, result: Vector4): void;
  212. static Minimize(left: Vector4, right: Vector4): Vector4;
  213. static Maximize(left: Vector4, right: Vector4): Vector4;
  214. static Distance(value1: Vector4, value2: Vector4): number;
  215. static DistanceSquared(value1: Vector4, value2: Vector4): number;
  216. static Center(value1: Vector4, value2: Vector4): Vector4;
  217. }
  218. class Quaternion {
  219. public x: number;
  220. public y: number;
  221. public z: number;
  222. public w: number;
  223. constructor(x?: number, y?: number, z?: number, w?: number);
  224. public toString(): string;
  225. public asArray(): number[];
  226. public equals(otherQuaternion: Quaternion): boolean;
  227. public clone(): Quaternion;
  228. public copyFrom(other: Quaternion): void;
  229. public copyFromFloats(x: number, y: number, z: number, w: number): void;
  230. public add(other: Quaternion): Quaternion;
  231. public subtract(other: Quaternion): Quaternion;
  232. public scale(value: number): Quaternion;
  233. public multiply(q1: Quaternion): Quaternion;
  234. public multiplyToRef(q1: Quaternion, result: Quaternion): void;
  235. public length(): number;
  236. public normalize(): void;
  237. public toEulerAngles(): Vector3;
  238. public toEulerAnglesToRef(result: Vector3): void;
  239. public toRotationMatrix(result: Matrix): void;
  240. public fromRotationMatrix(matrix: Matrix): void;
  241. static Inverse(q: Quaternion): Quaternion;
  242. static RotationAxis(axis: Vector3, angle: number): Quaternion;
  243. static FromArray(array: number[], offset?: number): Quaternion;
  244. static RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Quaternion;
  245. static RotationYawPitchRollToRef(yaw: number, pitch: number, roll: number, result: Quaternion): void;
  246. static Slerp(left: Quaternion, right: Quaternion, amount: number): Quaternion;
  247. }
  248. class Matrix {
  249. private static _tempQuaternion;
  250. private static _xAxis;
  251. private static _yAxis;
  252. private static _zAxis;
  253. public m: Float32Array;
  254. public isIdentity(): boolean;
  255. public determinant(): number;
  256. public toArray(): Float32Array;
  257. public asArray(): Float32Array;
  258. public invert(): void;
  259. public invertToRef(other: Matrix): void;
  260. public setTranslation(vector3: Vector3): void;
  261. public multiply(other: Matrix): Matrix;
  262. public copyFrom(other: Matrix): void;
  263. public copyToArray(array: Float32Array, offset?: number): void;
  264. public multiplyToRef(other: Matrix, result: Matrix): void;
  265. public multiplyToArray(other: Matrix, result: Float32Array, offset: number): void;
  266. public equals(value: Matrix): boolean;
  267. public clone(): Matrix;
  268. static FromArray(array: number[], offset?: number): Matrix;
  269. static FromArrayToRef(array: number[], offset: number, result: Matrix): void;
  270. static FromValuesToRef(initialM11: number, initialM12: number, initialM13: number, initialM14: number, initialM21: number, initialM22: number, initialM23: number, initialM24: number, initialM31: number, initialM32: number, initialM33: number, initialM34: number, initialM41: number, initialM42: number, initialM43: number, initialM44: number, result: Matrix): void;
  271. static FromValues(initialM11: number, initialM12: number, initialM13: number, initialM14: number, initialM21: number, initialM22: number, initialM23: number, initialM24: number, initialM31: number, initialM32: number, initialM33: number, initialM34: number, initialM41: number, initialM42: number, initialM43: number, initialM44: number): Matrix;
  272. static Identity(): Matrix;
  273. static IdentityToRef(result: Matrix): void;
  274. static Zero(): Matrix;
  275. static RotationX(angle: number): Matrix;
  276. static Invert(source: Matrix): Matrix;
  277. static RotationXToRef(angle: number, result: Matrix): void;
  278. static RotationY(angle: number): Matrix;
  279. static RotationYToRef(angle: number, result: Matrix): void;
  280. static RotationZ(angle: number): Matrix;
  281. static RotationZToRef(angle: number, result: Matrix): void;
  282. static RotationAxis(axis: Vector3, angle: number): Matrix;
  283. static RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Matrix;
  284. static RotationYawPitchRollToRef(yaw: number, pitch: number, roll: number, result: Matrix): void;
  285. static Scaling(x: number, y: number, z: number): Matrix;
  286. static ScalingToRef(x: number, y: number, z: number, result: Matrix): void;
  287. static Translation(x: number, y: number, z: number): Matrix;
  288. static TranslationToRef(x: number, y: number, z: number, result: Matrix): void;
  289. static LookAtLH(eye: Vector3, target: Vector3, up: Vector3): Matrix;
  290. static LookAtLHToRef(eye: Vector3, target: Vector3, up: Vector3, result: Matrix): void;
  291. static OrthoLH(width: number, height: number, znear: number, zfar: number): Matrix;
  292. static OrthoOffCenterLH(left: number, right: number, bottom: number, top: number, znear: number, zfar: number): Matrix;
  293. static OrthoOffCenterLHToRef(left: number, right: any, bottom: number, top: number, znear: number, zfar: number, result: Matrix): void;
  294. static PerspectiveLH(width: number, height: number, znear: number, zfar: number): Matrix;
  295. static PerspectiveFovLH(fov: number, aspect: number, znear: number, zfar: number): Matrix;
  296. static PerspectiveFovLHToRef(fov: number, aspect: number, znear: number, zfar: number, result: Matrix): void;
  297. static GetFinalMatrix(viewport: Viewport, world: Matrix, view: Matrix, projection: Matrix, zmin: number, zmax: number): Matrix;
  298. static Transpose(matrix: Matrix): Matrix;
  299. static Reflection(plane: Plane): Matrix;
  300. static ReflectionToRef(plane: Plane, result: Matrix): void;
  301. }
  302. class Plane {
  303. public normal: Vector3;
  304. public d: number;
  305. constructor(a: number, b: number, c: number, d: number);
  306. public asArray(): number[];
  307. public clone(): Plane;
  308. public normalize(): void;
  309. public transform(transformation: Matrix): Plane;
  310. public dotCoordinate(point: any): number;
  311. public copyFromPoints(point1: Vector3, point2: Vector3, point3: Vector3): void;
  312. public isFrontFacingTo(direction: Vector3, epsilon: number): boolean;
  313. public signedDistanceTo(point: Vector3): number;
  314. static FromArray(array: number[]): Plane;
  315. static FromPoints(point1: any, point2: any, point3: any): Plane;
  316. static FromPositionAndNormal(origin: Vector3, normal: Vector3): Plane;
  317. static SignedDistanceToPlaneFromPositionAndNormal(origin: Vector3, normal: Vector3, point: Vector3): number;
  318. }
  319. class Viewport {
  320. public x: number;
  321. public y: number;
  322. public width: number;
  323. public height: number;
  324. constructor(x: number, y: number, width: number, height: number);
  325. public toGlobal(engine: any): Viewport;
  326. }
  327. class Frustum {
  328. static GetPlanes(transform: Matrix): Plane[];
  329. static GetPlanesToRef(transform: Matrix, frustumPlanes: Plane[]): void;
  330. }
  331. class Ray {
  332. public origin: Vector3;
  333. public direction: Vector3;
  334. public length: number;
  335. private _edge1;
  336. private _edge2;
  337. private _pvec;
  338. private _tvec;
  339. private _qvec;
  340. constructor(origin: Vector3, direction: Vector3, length?: number);
  341. public intersectsBoxMinMax(minimum: Vector3, maximum: Vector3): boolean;
  342. public intersectsBox(box: BoundingBox): boolean;
  343. public intersectsSphere(sphere: any): boolean;
  344. public intersectsTriangle(vertex0: Vector3, vertex1: Vector3, vertex2: Vector3): IntersectionInfo;
  345. static CreateNew(x: number, y: number, viewportWidth: number, viewportHeight: number, world: Matrix, view: Matrix, projection: Matrix): Ray;
  346. /**
  347. * Function will create a new transformed ray starting from origin and ending at the end point. Ray's length will be set, and ray will be
  348. * transformed to the given world matrix.
  349. * @param origin The origin point
  350. * @param end The end point
  351. * @param world a matrix to transform the ray to. Default is the identity matrix.
  352. */
  353. static CreateNewFromTo(origin: Vector3, end: Vector3, world?: Matrix): Ray;
  354. static Transform(ray: Ray, matrix: Matrix): Ray;
  355. }
  356. enum Space {
  357. LOCAL = 0,
  358. WORLD = 1,
  359. }
  360. class Axis {
  361. static X: Vector3;
  362. static Y: Vector3;
  363. static Z: Vector3;
  364. }
  365. class BezierCurve {
  366. static interpolate(t: number, x1: number, y1: number, x2: number, y2: number): number;
  367. }
  368. }