未验证 提交 620fe4b9 编写于 作者: M Mr.doob 提交者: GitHub

Merge pull request #17320 from vlaube-de/dev

TS: add more fromArray and toArray function types
...@@ -152,8 +152,35 @@ export class Color { ...@@ -152,8 +152,35 @@ export class Color {
lerp( color: Color, alpha: number ): this; lerp( color: Color, alpha: number ): this;
lerpHSL( color: Color, alpha: number ): this; lerpHSL( color: Color, alpha: number ): this;
equals( color: Color ): boolean; equals( color: Color ): boolean;
fromArray( rgb: number[], offset?: number ): this;
/**
* Sets this color's red, green and blue value from the provided array.
* @param array the source array.
* @param offset (optional) offset into the array. Default is 0.
*/
fromArray( array: number[], offset?: number ): this;
/**
* Sets this color's red, green and blue value from the provided array-like.
* @param array the source array-like.
* @param offset (optional) offset into the array-like. Default is 0.
*/
fromArray( array: ArrayLike<number>, offset?: number ): this;
/**
* Returns an array [red, green, blue], or copies red, green and blue into the provided array.
* @param array (optional) array to store the color to. If this is not provided, a new array will be created.
* @param offset (optional) optional offset into the array.
* @return The created or provided array.
*/
toArray( array?: number[], offset?: number ): number[]; toArray( array?: number[], offset?: number ): number[];
/**
* Copies red, green and blue into the provided array-like.
* @param array array-like to store the color to.
* @param offset (optional) optional offset into the array-like.
* @return The provided array-like.
*/
toArray( xyz: ArrayLike<number>, offset?: number ): ArrayLike<number>; toArray( xyz: ArrayLike<number>, offset?: number ): ArrayLike<number>;
} }
...@@ -111,10 +111,36 @@ export class Matrix3 implements Matrix { ...@@ -111,10 +111,36 @@ export class Matrix3 implements Matrix {
equals( matrix: Matrix3 ): boolean; equals( matrix: Matrix3 ): boolean;
/**
* Sets the values of this matrix from the provided array.
* @param array the source array.
* @param offset (optional) offset into the array. Default is 0.
*/
fromArray( array: number[], offset?: number ): Matrix3; fromArray( array: number[], offset?: number ): Matrix3;
/**
* Sets the values of this matrix from the provided array-like.
* @param array the source array-like.
* @param offset (optional) offset into the array-like. Default is 0.
*/
fromArray( array: ArrayLike<number>, offset?: number ): Matrix3;
/**
* Returns an array with the values of this matrix, or copies them into the provided array.
* @param array (optional) array to store the matrix to. If this is not provided, a new array will be created.
* @param offset (optional) optional offset into the array.
* @return The created or provided array.
*/
toArray( array?: number[], offset?: number ): number[]; toArray( array?: number[], offset?: number ): number[];
/**
* Copies he values of this matrix into the provided array-like.
* @param array array-like to store the matrix to.
* @param offset (optional) optional offset into the array-like.
* @return The provided array-like.
*/
toArray( array?: ArrayLike<number>, offset?: number ): ArrayLike<number>;
/** /**
* Multiplies this matrix by m. * Multiplies this matrix by m.
*/ */
......
...@@ -226,10 +226,37 @@ export class Matrix4 implements Matrix { ...@@ -226,10 +226,37 @@ export class Matrix4 implements Matrix {
far: number far: number
): Matrix4; ): Matrix4;
equals( matrix: Matrix4 ): boolean; equals( matrix: Matrix4 ): boolean;
/**
* Sets the values of this matrix from the provided array.
* @param array the source array.
* @param offset (optional) offset into the array. Default is 0.
*/
fromArray( array: number[], offset?: number ): Matrix4; fromArray( array: number[], offset?: number ): Matrix4;
/**
* Sets the values of this matrix from the provided array-like.
* @param array the source array-like.
* @param offset (optional) offset into the array-like. Default is 0.
*/
fromArray( array: ArrayLike<number>, offset?: number ): Matrix4;
/**
* Returns an array with the values of this matrix, or copies them into the provided array.
* @param array (optional) array to store the matrix to. If this is not provided, a new array will be created.
* @param offset (optional) optional offset into the array.
* @return The created or provided array.
*/
toArray( array?: number[], offset?: number ): number[]; toArray( array?: number[], offset?: number ): number[];
/**
* Copies he values of this matrix into the provided array-like.
* @param array array-like to store the matrix to.
* @param offset (optional) optional offset into the array-like.
* @return The provided array-like.
*/
toArray( array?: ArrayLike<number>, offset?: number ): ArrayLike<number>;
/** /**
* @deprecated Use {@link Matrix4#copyPosition .copyPosition()} instead. * @deprecated Use {@link Matrix4#copyPosition .copyPosition()} instead.
*/ */
......
...@@ -94,11 +94,36 @@ export class Quaternion { ...@@ -94,11 +94,36 @@ export class Quaternion {
slerp( qb: Quaternion, t: number ): Quaternion; slerp( qb: Quaternion, t: number ): Quaternion;
equals( v: Quaternion ): boolean; equals( v: Quaternion ): boolean;
fromArray( n: number[] ): Quaternion;
toArray(): number[];
fromArray( xyzw: number[], offset?: number ): Quaternion; /**
toArray( xyzw?: number[], offset?: number ): number[]; * Sets this quaternion's x, y, z and w value from the provided array.
* @param array the source array.
* @param offset (optional) offset into the array. Default is 0.
*/
fromArray( array: number[], offset?: number ): this;
/**
* Sets this quaternion's x, y, z and w value from the provided array-like.
* @param array the source array-like.
* @param offset (optional) offset into the array-like. Default is 0.
*/
fromArray( array: ArrayLike<number>, offset?: number ): this;
/**
* Returns an array [x, y, z, w], or copies x, y, z and w into the provided array.
* @param array (optional) array to store the quaternion to. If this is not provided, a new array will be created.
* @param offset (optional) optional offset into the array.
* @return The created or provided array.
*/
toArray( array?: number[], offset?: number ): number[];
/**
* Copies x, y, z and w into the provided array-like.
* @param array array-like to store the quaternion to.
* @param offset (optional) optional offset into the array.
* @return The provided array-like.
*/
toArray( array: ArrayLike<number>, offset?: number ): ArrayLike<number>;
_onChange( callback: Function ): Quaternion; _onChange( callback: Function ): Quaternion;
_onChangeCallback: Function; _onChangeCallback: Function;
......
...@@ -15,8 +15,36 @@ export class SphericalHarmonics3 { ...@@ -15,8 +15,36 @@ export class SphericalHarmonics3 {
equals( sh: SphericalHarmonics3 ): boolean; equals( sh: SphericalHarmonics3 ): boolean;
copy( sh: SphericalHarmonics3 ): SphericalHarmonics3; copy( sh: SphericalHarmonics3 ): SphericalHarmonics3;
clone(): SphericalHarmonics3; clone(): SphericalHarmonics3;
fromArray( array: number[] ): SphericalHarmonics3;
toArray(): number[]; /**
* Sets the values of this spherical harmonics from the provided array.
* @param array the source array.
* @param offset (optional) offset into the array. Default is 0.
*/
fromArray( array: number[], offset?: number ): this;
/**
* Sets the values of this spherical harmonics from the provided array-like.
* @param array the source array-like.
* @param offset (optional) offset into the array-like. Default is 0.
*/
fromArray( array: ArrayLike<number>, offset?: number ): this;
/**
* Returns an array with the values of this spherical harmonics, or copies them into the provided array.
* @param array (optional) array to store the spherical harmonics to. If this is not provided, a new array will be created.
* @param offset (optional) optional offset into the array.
* @return The created or provided array.
*/
toArray( array?: number[], offset?: number ): number[];
/**
* Returns an array with the values of this spherical harmonics, or copies them into the provided array-like.
* @param array array-like to store the spherical harmonics to.
* @param offset (optional) optional offset into the array-like.
* @return The provided array-like.
*/
toArray( array: ArrayLike<number>, offset?: number ): ArrayLike<number>;
getAt( normal: Vector3, target: Vector3 ) : Vector3; getAt( normal: Vector3, target: Vector3 ) : Vector3;
getIrradianceAt( normal: Vector3, target: Vector3 ) : Vector3; getIrradianceAt( normal: Vector3, target: Vector3 ) : Vector3;
......
...@@ -177,13 +177,15 @@ Object.assign( SphericalHarmonics3.prototype, { ...@@ -177,13 +177,15 @@ Object.assign( SphericalHarmonics3.prototype, {
}, },
fromArray: function ( array ) { fromArray: function ( array, offset ) {
if ( offset === undefined ) offset = 0;
var coefficients = this.coefficients; var coefficients = this.coefficients;
for ( var i = 0; i < 9; i ++ ) { for ( var i = 0; i < 9; i ++ ) {
coefficients[ i ].fromArray( array, i * 3 ); coefficients[ i ].fromArray( array, offset + ( i * 3 ) );
} }
...@@ -191,14 +193,16 @@ Object.assign( SphericalHarmonics3.prototype, { ...@@ -191,14 +193,16 @@ Object.assign( SphericalHarmonics3.prototype, {
}, },
toArray: function () { toArray: function ( array, offset ) {
if ( array === undefined ) array = [];
if ( offset === undefined ) offset = 0;
var array = [];
var coefficients = this.coefficients; var coefficients = this.coefficients;
for ( var i = 0; i < 9; i ++ ) { for ( var i = 0; i < 9; i ++ ) {
coefficients[ i ].toArray( array, i * 3 ); coefficients[ i ].toArray( array, offset + ( i * 3 ) );
} }
......
...@@ -256,7 +256,7 @@ export class Vector3 implements Vector { ...@@ -256,7 +256,7 @@ export class Vector3 implements Vector {
fromArray( array: number[], offset?: number ): this; fromArray( array: number[], offset?: number ): this;
/** /**
* Sets this vector's x, y and z value from the provided array-lik. * Sets this vector's x, y and z value from the provided array-like.
* @param array the source array-like. * @param array the source array-like.
* @param offset (optional) offset into the array-like. Default is 0. * @param offset (optional) offset into the array-like. Default is 0.
*/ */
...@@ -273,7 +273,7 @@ export class Vector3 implements Vector { ...@@ -273,7 +273,7 @@ export class Vector3 implements Vector {
/** /**
* Copies x, y and z into the provided array-like. * Copies x, y and z into the provided array-like.
* @param array array-like to store the vector to. * @param array array-like to store the vector to.
* @param offset (optional) optional offset into the array. * @param offset (optional) optional offset into the array-like.
* @return The provided array-like. * @return The provided array-like.
*/ */
toArray( array: ArrayLike<number>, offset?: number ): ArrayLike<number>; toArray( array: ArrayLike<number>, offset?: number ): ArrayLike<number>;
......
...@@ -199,7 +199,7 @@ export class Vector4 implements Vector { ...@@ -199,7 +199,7 @@ export class Vector4 implements Vector {
/** /**
* Copies x, y, z and w into the provided array-like. * Copies x, y, z and w into the provided array-like.
* @param array array-like to store the vector to. * @param array array-like to store the vector to.
* @param offset (optional) optional offset into the array. * @param offset (optional) optional offset into the array-like.
* @return The provided array-like. * @return The provided array-like.
*/ */
toArray( array: ArrayLike<number>, offset?: number ): ArrayLike<number>; toArray( array: ArrayLike<number>, offset?: number ): ArrayLike<number>;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册