本文整理汇总了Java中org.rajawali3d.math.Matrix4.setTranslation方法的典型用法代码示例。如果您正苦于以下问题:Java Matrix4.setTranslation方法的具体用法?Java Matrix4.setTranslation怎么用?Java Matrix4.setTranslation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.rajawali3d.math.Matrix4
的用法示例。
在下文中一共展示了Matrix4.setTranslation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: matrixFromPointNormalUp
import org.rajawali3d.math.Matrix4; //导入方法依赖的package包/类
/**
* Calculates a transformation matrix based on a point, a normal and the up gravity vector.
* The coordinate frame of the target transformation will be Z forward, X left, Y up.
*/
public static Matrix4 matrixFromPointNormalUp(double[] point, double[] normal, Vector3 up) {
Vector3 zAxis = new Vector3(normal);
zAxis.normalize();
Vector3 xAxis = new Vector3();
xAxis.crossAndSet(up, zAxis);
xAxis.normalize();
Vector3 yAxis = new Vector3();
yAxis.crossAndSet(xAxis, zAxis);
yAxis.normalize();
double[] rot = new double[16];
rot[Matrix4.M00] = xAxis.x;
rot[Matrix4.M10] = xAxis.y;
rot[Matrix4.M20] = xAxis.z;
rot[Matrix4.M01] = yAxis.x;
rot[Matrix4.M11] = yAxis.y;
rot[Matrix4.M21] = yAxis.z;
rot[Matrix4.M02] = zAxis.x;
rot[Matrix4.M12] = zAxis.y;
rot[Matrix4.M22] = zAxis.z;
rot[Matrix4.M33] = 1;
Matrix4 m = new Matrix4(rot);
m.setTranslation(point[0], point[1], point[2]);
return m;
}
示例2: readMatrix3D
import org.rajawali3d.math.Matrix4; //导入方法依赖的package包/类
/**
* Read in 3D matrix. Passed array must be of size 16 Positions 3, 7, 11, and 15 are
* constants and not read.
*
* @param matrix
* @throws ParsingException
* @throws IOException
*/
public void readMatrix3D(Matrix4 matrix, boolean usePrecision, boolean convert) throws ParsingException, IOException {
final double[] m = matrix.getDoubleValues();
if (m == null || m.length != 16)
throw new ParsingException("Matrix array must be of size 16");
if (convert) {
m[Matrix4.M00] = readPrecisionNumber(usePrecision);
m[Matrix4.M01] = readPrecisionNumber(usePrecision);
m[Matrix4.M02] = readPrecisionNumber(usePrecision);
m[Matrix4.M10] = readPrecisionNumber(usePrecision);
m[Matrix4.M11] = readPrecisionNumber(usePrecision);
m[Matrix4.M12] = readPrecisionNumber(usePrecision);
m[Matrix4.M20] = readPrecisionNumber(usePrecision);
m[Matrix4.M21] = readPrecisionNumber(usePrecision);
m[Matrix4.M22] = readPrecisionNumber(usePrecision);
m[Matrix4.M03] = readPrecisionNumber(usePrecision);
m[Matrix4.M13] = readPrecisionNumber(usePrecision);
m[Matrix4.M23] = -readPrecisionNumber(usePrecision);
m[Matrix4.M30] = 0;
m[Matrix4.M31] = 0;
m[Matrix4.M32] = 0;
m[Matrix4.M33] = 1;
matrix.getTranslation(mTempVector3);
mTempQuaternion.fromMatrix(matrix);
mTempQuaternion.computeW();
mTempQuaternion.z = -mTempQuaternion.z;
mTempQuaternion.w = -mTempQuaternion.w;
matrix.setAll(mTempQuaternion);
matrix.setTranslation(mTempVector3);
} else {
m[0] = readPrecisionNumber(usePrecision);
m[1] = readPrecisionNumber(usePrecision);
m[2] = readPrecisionNumber(usePrecision);
m[3] = 0;
m[4] = readPrecisionNumber(usePrecision);
m[5] = readPrecisionNumber(usePrecision);
m[6] = readPrecisionNumber(usePrecision);
m[7] = 0;
m[8] = readPrecisionNumber(usePrecision);
m[9] = readPrecisionNumber(usePrecision);
m[10] = readPrecisionNumber(usePrecision);
m[11] = 0;
m[12] = readPrecisionNumber(usePrecision);
m[13] = readPrecisionNumber(usePrecision);
m[14] = readPrecisionNumber(usePrecision);
m[Matrix4.M33] = 1;
}
}