Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
// Automatically generated - do not modify!
@file:JsModule("cesium")
package cesium
/**
* A 3x3 matrix, indexable as a column-major order array.
* Constructor parameters are in row-major order for code readability.
* @see Online Documentation
*
* @constructor
* @param [column0Row0] The value for column 0, row 0.
* Default value - `0.0`
* @param [column1Row0] The value for column 1, row 0.
* Default value - `0.0`
* @param [column2Row0] The value for column 2, row 0.
* Default value - `0.0`
* @param [column0Row1] The value for column 0, row 1.
* Default value - `0.0`
* @param [column1Row1] The value for column 1, row 1.
* Default value - `0.0`
* @param [column2Row1] The value for column 2, row 1.
* Default value - `0.0`
* @param [column0Row2] The value for column 0, row 2.
* Default value - `0.0`
* @param [column1Row2] The value for column 1, row 2.
* Default value - `0.0`
* @param [column2Row2] The value for column 2, row 2.
* Default value - `0.0`
* @see Online Documentation
*/
external class Matrix3(
column0Row0: Double? = definedExternally,
column1Row0: Double? = definedExternally,
column2Row0: Double? = definedExternally,
column0Row1: Double? = definedExternally,
column1Row1: Double? = definedExternally,
column2Row1: Double? = definedExternally,
column0Row2: Double? = definedExternally,
column1Row2: Double? = definedExternally,
column2Row2: Double? = definedExternally,
) {
/**
* Gets the number of items in the collection.
* @see Online Documentation
*/
var length: Int
/**
* Duplicates the provided Matrix3 instance.
* @param [result] The object onto which to store the result.
* @return The modified result parameter or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun clone(result: Matrix3? = definedExternally): Matrix3
/**
* Compares this matrix to the provided matrix componentwise and returns
* `true` if they are within the provided epsilon,
* `false` otherwise.
* @param [right] The right hand side matrix.
* @param [epsilon] The epsilon to use for equality testing.
* Default value - `0`
* @return `true` if they are within the provided epsilon, `false` otherwise.
* @see Online Documentation
*/
fun equalsEpsilon(
right: Matrix3? = definedExternally,
epsilon: Double? = definedExternally,
): Boolean
companion object : Packable {
/**
* The number of elements used to pack the object into an array.
* @see Online Documentation
*/
override val packedLength: Int
/**
* Stores the provided instance into the provided array.
* @param [value] The value to pack.
* @param [array] The array to pack into.
* @param [startingIndex] The index into the array at which to start packing the elements.
* Default value - `0`
* @return The array that was packed into
* @see Online Documentation
*/
override fun pack(
value: Matrix3,
array: Array,
startingIndex: Int?,
): Array
/**
* Retrieves an instance from a packed array.
* @param [array] The packed array.
* @param [startingIndex] The starting index of the element to be unpacked.
* Default value - `0`
* @param [result] The object into which to store the result.
* @return The modified result parameter or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
override fun unpack(
array: Array,
startingIndex: Int?,
result: Matrix3?,
): Matrix3
/**
* Duplicates a Matrix3 instance.
* @param [matrix] The matrix to duplicate.
* @param [result] The object onto which to store the result.
* @return The modified result parameter or a new Matrix3 instance if one was not provided. (Returns undefined if matrix is undefined)
* @see Online Documentation
*/
fun clone(
matrix: Matrix3,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Creates a Matrix3 from 9 consecutive elements in an array.
* ```
* // Create the Matrix3:
* // [1.0, 2.0, 3.0]
* // [1.0, 2.0, 3.0]
* // [1.0, 2.0, 3.0]
*
* const v = [1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
* const m = Matrix3.fromArray(v);
*
* // Create same Matrix3 with using an offset into an array
* const v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
* const m2 = Matrix3.fromArray(v2, 2);
* ```
* @param [array] The array whose 9 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
* @param [startingIndex] The offset into the array of the first element, which corresponds to first column first row position in the matrix.
* Default value - `0`
* @param [result] The object onto which to store the result.
* @return The modified result parameter or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromArray(
array: Array,
startingIndex: Int? = definedExternally,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Creates a Matrix3 instance from a column-major order array.
* @param [values] The column-major order array.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The modified result parameter, or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromColumnMajorArray(
values: Array,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Creates a Matrix3 instance from a row-major order array.
* The resulting matrix will be in column-major order.
* @param [values] The row-major order array.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The modified result parameter, or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromRowMajorArray(
values: Array,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Computes a 3x3 rotation matrix from the provided quaternion.
* @param [quaternion] the quaternion to use.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The 3x3 rotation matrix from this quaternion.
* @see Online Documentation
*/
fun fromQuaternion(
quaternion: Quaternion,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Computes a 3x3 rotation matrix from the provided headingPitchRoll. (see http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles )
* @param [headingPitchRoll] the headingPitchRoll to use.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The 3x3 rotation matrix from this headingPitchRoll.
* @see Online Documentation
*/
fun fromHeadingPitchRoll(
headingPitchRoll: HeadingPitchRoll,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Computes a Matrix3 instance representing a non-uniform scale.
* ```
* // Creates
* // [7.0, 0.0, 0.0]
* // [0.0, 8.0, 0.0]
* // [0.0, 0.0, 9.0]
* const m = Matrix3.fromScale(new Cartesian3(7.0, 8.0, 9.0));
* ```
* @param [scale] The x, y, and z scale factors.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The modified result parameter, or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromScale(
scale: Cartesian3,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Computes a Matrix3 instance representing a uniform scale.
* ```
* // Creates
* // [2.0, 0.0, 0.0]
* // [0.0, 2.0, 0.0]
* // [0.0, 0.0, 2.0]
* const m = Matrix3.fromUniformScale(2.0);
* ```
* @param [scale] The uniform scale factor.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The modified result parameter, or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromUniformScale(
scale: Double,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Computes a Matrix3 instance representing the cross product equivalent matrix of a Cartesian3 vector.
* ```
* // Creates
* // [0.0, -9.0, 8.0]
* // [9.0, 0.0, -7.0]
* // [-8.0, 7.0, 0.0]
* const m = Matrix3.fromCrossProduct(new Cartesian3(7.0, 8.0, 9.0));
* ```
* @param [vector] the vector on the left hand side of the cross product operation.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The modified result parameter, or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromCrossProduct(
vector: Cartesian3,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Creates a rotation matrix around the x-axis.
* ```
* // Rotate a point 45 degrees counterclockwise around the x-axis.
* const p = new Cartesian3(5, 6, 7);
* const m = Matrix3.fromRotationX(Math.toRadians(45.0));
* const rotated = Matrix3.multiplyByVector(m, p, new Cartesian3());
* ```
* @param [angle] The angle, in radians, of the rotation. Positive angles are counterclockwise.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The modified result parameter, or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromRotationX(
angle: Double,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Creates a rotation matrix around the y-axis.
* ```
* // Rotate a point 45 degrees counterclockwise around the y-axis.
* const p = new Cartesian3(5, 6, 7);
* const m = Matrix3.fromRotationY(Math.toRadians(45.0));
* const rotated = Matrix3.multiplyByVector(m, p, new Cartesian3());
* ```
* @param [angle] The angle, in radians, of the rotation. Positive angles are counterclockwise.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The modified result parameter, or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromRotationY(
angle: Double,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Creates a rotation matrix around the z-axis.
* ```
* // Rotate a point 45 degrees counterclockwise around the z-axis.
* const p = new Cartesian3(5, 6, 7);
* const m = Matrix3.fromRotationZ(Math.toRadians(45.0));
* const rotated = Matrix3.multiplyByVector(m, p, new Cartesian3());
* ```
* @param [angle] The angle, in radians, of the rotation. Positive angles are counterclockwise.
* @param [result] The object in which the result will be stored, if undefined a new instance will be created.
* @return The modified result parameter, or a new Matrix3 instance if one was not provided.
* @see Online Documentation
*/
fun fromRotationZ(
angle: Double,
result: Matrix3? = definedExternally,
): Matrix3
/**
* Creates an Array from the provided Matrix3 instance.
* The array will be in column-major order.
* @param [matrix] The matrix to use..
* @param [result] The Array onto which to store the result.
* @return The modified Array parameter or a new Array instance if one was not provided.
* @see Online Documentation
*/
fun toArray(
matrix: Matrix3,
result: Array? = definedExternally,
): Array
/**
* Computes the array index of the element at the provided row and column.
* ```
* const myMatrix = new Matrix3();
* const column1Row0Index = Matrix3.getElementIndex(1, 0);
* const column1Row0 = myMatrix[column1Row0Index]
* myMatrix[column1Row0Index] = 10.0;
* ```
* @param [column] The zero-based index of the column.
* @param [row] The zero-based index of the row.
* @return The index of the element at the provided row and column.
* @see Online Documentation
*/
fun getElementIndex(
column: Int,
row: Int,
): Int
/**
* Retrieves a copy of the matrix column at the provided index as a Cartesian3 instance.
* @param [matrix] The matrix to use.
* @param [index] The zero-based index of the column to retrieve.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun getColumn(
matrix: Matrix3,
index: Int,
result: Cartesian3,
): Cartesian3
/**
* Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian3 instance.
* @param [matrix] The matrix to use.
* @param [index] The zero-based index of the column to set.
* @param [cartesian] The Cartesian whose values will be assigned to the specified column.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun setColumn(
matrix: Matrix3,
index: Int,
cartesian: Cartesian3,
result: Matrix3,
): Matrix3
/**
* Retrieves a copy of the matrix row at the provided index as a Cartesian3 instance.
* @param [matrix] The matrix to use.
* @param [index] The zero-based index of the row to retrieve.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun getRow(
matrix: Matrix3,
index: Int,
result: Cartesian3,
): Cartesian3
/**
* Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian3 instance.
* @param [matrix] The matrix to use.
* @param [index] The zero-based index of the row to set.
* @param [cartesian] The Cartesian whose values will be assigned to the specified row.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun setRow(
matrix: Matrix3,
index: Int,
cartesian: Cartesian3,
result: Matrix3,
): Matrix3
/**
* Extracts the non-uniform scale assuming the matrix is an affine transformation.
* @param [matrix] The matrix.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun getScale(
matrix: Matrix3,
result: Cartesian3,
): Cartesian3
/**
* Computes the maximum scale assuming the matrix is an affine transformation.
* The maximum scale is the maximum length of the column vectors.
* @param [matrix] The matrix.
* @return The maximum scale.
* @see Online Documentation
*/
fun getMaximumScale(matrix: Matrix3): Double
/**
* Computes the product of two matrices.
* @param [left] The first matrix.
* @param [right] The second matrix.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun multiply(
left: Matrix3,
right: Matrix3,
result: Matrix3,
): Matrix3
/**
* Computes the sum of two matrices.
* @param [left] The first matrix.
* @param [right] The second matrix.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun add(
left: Matrix3,
right: Matrix3,
result: Matrix3,
): Matrix3
/**
* Computes the difference of two matrices.
* @param [left] The first matrix.
* @param [right] The second matrix.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun subtract(
left: Matrix3,
right: Matrix3,
result: Matrix3,
): Matrix3
/**
* Computes the product of a matrix and a column vector.
* @param [matrix] The matrix.
* @param [cartesian] The column.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun multiplyByVector(
matrix: Matrix3,
cartesian: Cartesian3,
result: Cartesian3,
): Cartesian3
/**
* Computes the product of a matrix and a scalar.
* @param [matrix] The matrix.
* @param [scalar] The number to multiply by.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun multiplyByScalar(
matrix: Matrix3,
scalar: Double,
result: Matrix3,
): Matrix3
/**
* Computes the product of a matrix times a (non-uniform) scale, as if the scale were a scale matrix.
* ```
* // Instead of Matrix3.multiply(m, Matrix3.fromScale(scale), m);
* Matrix3.multiplyByScale(m, scale, m);
* ```
* @param [matrix] The matrix on the left-hand side.
* @param [scale] The non-uniform scale on the right-hand side.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun multiplyByScale(
matrix: Matrix3,
scale: Cartesian3,
result: Matrix3,
): Matrix3
/**
* Creates a negated copy of the provided matrix.
* @param [matrix] The matrix to negate.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun negate(
matrix: Matrix3,
result: Matrix3,
): Matrix3
/**
* Computes the transpose of the provided matrix.
* @param [matrix] The matrix to transpose.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun transpose(
matrix: Matrix3,
result: Matrix3,
): Matrix3
/**
* Extracts the rotation assuming the matrix is an affine transformation.
* @param [matrix] The matrix.
* @param [result] The object onto which to store the result.
* @return The modified result parameter
* @see Online Documentation
*/
fun getRotation(
matrix: Matrix3,
result: Matrix3,
): Matrix3
/**
* Computes the eigenvectors and eigenvalues of a symmetric matrix.
*
* Returns a diagonal matrix and unitary matrix such that:
* `matrix = unitary matrix * diagonal matrix * transpose(unitary matrix)`
*
* The values along the diagonal of the diagonal matrix are the eigenvalues. The columns
* of the unitary matrix are the corresponding eigenvectors.
* ```
* const a = //... symetric matrix
* const result = {
* unitary : new Matrix3(),
* diagonal : new Matrix3()
* };
* Matrix3.computeEigenDecomposition(a, result);
*
* const unitaryTranspose = Matrix3.transpose(result.unitary, new Matrix3());
* const b = Matrix3.multiply(result.unitary, result.diagonal, new Matrix3());
* Matrix3.multiply(b, unitaryTranspose, b); // b is now equal to a
*
* const lambda = Matrix3.getColumn(result.diagonal, 0, new Cartesian3()).x; // first eigenvalue
* const v = Matrix3.getColumn(result.unitary, 0, new Cartesian3()); // first eigenvector
* const c = Cartesian3.multiplyByScalar(v, lambda, new Cartesian3()); // equal to Matrix3.multiplyByVector(a, v)
* ```
* @param [matrix] The matrix to decompose into diagonal and unitary matrix. Expected to be symmetric.
* @param [result] An object with unitary and diagonal properties which are matrices onto which to store the result.
* @return An object with unitary and diagonal properties which are the unitary and diagonal matrices, respectively.
* @see Online Documentation
*/
fun computeEigenDecomposition(
matrix: Matrix3,
result: Any? = definedExternally,
): Any
/**
* Computes a matrix, which contains the absolute (unsigned) values of the provided matrix's elements.
* @param [matrix] The matrix with signed elements.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun abs(
matrix: Matrix3,
result: Matrix3,
): Matrix3
/**
* Computes the determinant of the provided matrix.
* @param [matrix] The matrix to use.
* @return The value of the determinant of the matrix.
* @see Online Documentation
*/
fun determinant(matrix: Matrix3): Double
/**
* Computes the inverse of the provided matrix.
* @param [matrix] The matrix to invert.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun inverse(
matrix: Matrix3,
result: Matrix3,
): Matrix3
/**
* Computes the inverse transpose of a matrix.
* @param [matrix] The matrix to transpose and invert.
* @param [result] The object onto which to store the result.
* @return The modified result parameter.
* @see Online Documentation
*/
fun inverseTranspose(
matrix: Matrix3,
result: Matrix3,
): Matrix3
/**
* Compares the provided matrices componentwise and returns
* `true` if they are equal, `false` otherwise.
* @param [left] The first matrix.
* @param [right] The second matrix.
* @return `true` if left and right are equal, `false` otherwise.
* @see Online Documentation
*/
fun equals(
left: Matrix3? = definedExternally,
right: Matrix3? = definedExternally,
): Boolean
/**
* Compares the provided matrices componentwise and returns
* `true` if they are within the provided epsilon,
* `false` otherwise.
* @param [left] The first matrix.
* @param [right] The second matrix.
* @param [epsilon] The epsilon to use for equality testing.
* Default value - `0`
* @return `true` if left and right are within the provided epsilon, `false` otherwise.
* @see Online Documentation
*/
fun equalsEpsilon(
left: Matrix3? = definedExternally,
right: Matrix3? = definedExternally,
epsilon: Double? = definedExternally,
): Boolean
/**
* An immutable Matrix3 instance initialized to the identity matrix.
* @see Online Documentation
*/
val IDENTITY: Matrix3
/**
* An immutable Matrix3 instance initialized to the zero matrix.
* @see Online Documentation
*/
val ZERO: Matrix3
/**
* The index into Matrix3 for column 0, row 0.
* @see Online Documentation
*/
val COLUMN0ROW0: Double
/**
* The index into Matrix3 for column 0, row 1.
* @see Online Documentation
*/
val COLUMN0ROW1: Double
/**
* The index into Matrix3 for column 0, row 2.
* @see Online Documentation
*/
val COLUMN0ROW2: Double
/**
* The index into Matrix3 for column 1, row 0.
* @see Online Documentation
*/
val COLUMN1ROW0: Double
/**
* The index into Matrix3 for column 1, row 1.
* @see Online Documentation
*/
val COLUMN1ROW1: Double
/**
* The index into Matrix3 for column 1, row 2.
* @see Online Documentation
*/
val COLUMN1ROW2: Double
/**
* The index into Matrix3 for column 2, row 0.
* @see Online Documentation
*/
val COLUMN2ROW0: Double
/**
* The index into Matrix3 for column 2, row 1.
* @see Online Documentation
*/
val COLUMN2ROW1: Double
/**
* The index into Matrix3 for column 2, row 2.
* @see Online Documentation
*/
val COLUMN2ROW2: Double
}
}