本文整理汇总了Java中javax.vecmath.Matrix3f.invert方法的典型用法代码示例。如果您正苦于以下问题:Java Matrix3f.invert方法的具体用法?Java Matrix3f.invert怎么用?Java Matrix3f.invert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.vecmath.Matrix3f
的用法示例。
在下文中一共展示了Matrix3f.invert方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setEllipsoidMatrix
import javax.vecmath.Matrix3f; //导入方法依赖的package包/类
public static Matrix3f setEllipsoidMatrix(Vector3f[] unitAxes, float[] lengths, Vector3f vTemp, Matrix3f mat) {
/*
* Create a matrix that transforms cartesian coordinates
* into ellipsoidal coordinates, where in that system we
* are drawing a sphere.
*
*/
for (int i = 0; i < 3; i++) {
vTemp.set(unitAxes[i]);
vTemp.scale(lengths[i]);
mat.setColumn(i, vTemp);
}
mat.invert(mat);
return mat;
}
示例2: calcNormalMatrix
import javax.vecmath.Matrix3f; //导入方法依赖的package包/类
public static Matrix3f calcNormalMatrix(Matrix4f mv) {
Matrix3f result = new Matrix3f();
result.m00 = mv.m00;
result.m10 = mv.m10;
result.m20 = mv.m20;
result.m01 = mv.m01;
result.m11 = mv.m11;
result.m21 = mv.m21;
result.m02 = mv.m02;
result.m12 = mv.m12;
result.m22 = mv.m22;
result.invert(); result.transpose();
return result;
}
示例3: createTransformMethod
import javax.vecmath.Matrix3f; //导入方法依赖的package包/类
private static void createTransformMethod(MethodVisitor mv, boolean invert) {
// 0 - this (unused)
// 1 - orientation
// 2,3 - x
// 4,5 - y
// 6,7 - z
mv.visitCode();
mv.visitVarInsn(Opcodes.ALOAD, 1);
final String enumType = Type.getInternalName(Enum.class);
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, enumType, "ordinal", Type.getMethodDescriptor(Type.INT_TYPE), false);
final Orientation[] orientations = Orientation.values();
final Label defaultLabel = new Label();
final Label[] targets = new Label[orientations.length];
for (int i = 0; i < orientations.length; i++)
targets[i] = new Label();
mv.visitTableSwitchInsn(0, orientations.length - 1, defaultLabel, targets);
{
mv.visitLabel(defaultLabel);
final String excType = Type.getInternalName(IllegalArgumentException.class);
final Type stringType = Type.getType(String.class);
mv.visitTypeInsn(Opcodes.NEW, excType);
mv.visitInsn(Opcodes.DUP);
mv.visitVarInsn(Opcodes.ALOAD, 1);
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, Type.getInternalName(Object.class), "toString", Type.getMethodDescriptor(stringType), false);
mv.visitMethodInsn(Opcodes.INVOKESPECIAL, excType, "<init>", Type.getMethodDescriptor(Type.VOID_TYPE, stringType), false);
mv.visitInsn(Opcodes.ATHROW);
}
{
final String createVectorDesc = Type.getMethodDescriptor(Type.getType(Vec3d.class), Type.DOUBLE_TYPE, Type.DOUBLE_TYPE, Type.DOUBLE_TYPE);
final String selfType = Type.getInternalName(BlockSpaceTransform.class);
for (int i = 0; i < orientations.length; i++) {
mv.visitLabel(targets[i]);
final Orientation orientation = orientations[i];
final Matrix3f mat = orientation.getLocalToWorldMatrix();
if (invert) mat.invert();
createRowVectorMultiplication(mv, mat.m00, mat.m01, mat.m02);
createRowVectorMultiplication(mv, mat.m10, mat.m11, mat.m12);
createRowVectorMultiplication(mv, mat.m20, mat.m21, mat.m22);
mv.visitMethodInsn(Opcodes.INVOKESTATIC, selfType, "createVector", createVectorDesc, false);
mv.visitInsn(Opcodes.ARETURN);
}
}
mv.visitMaxs(0, 0);
mv.visitEnd();
}