if ("translate".equals(transform.getName())) { workingMat.setIdentity(); workingMat.setColumn(3, new Vector4(array[0], array[1], array[2], 1.0)); finalMat.multiplyLocal(workingMat); } else if ("rotate".equals(transform.getName())) { rot.lookAt(target.subtractLocal(pos), up); workingMat.set(rot); workingMat.setColumn(3, new Vector4(array[0], array[1], array[2], 1)); finalMat.multiplyLocal(workingMat); } else {
if (type == TransformElementType.Translation) { workingMat.setIdentity(); workingMat.setColumn(3, new Vector4(array[0], array[1], array[2], 1.0)); finalMat.multiplyLocal(workingMat); } else if (type == TransformElementType.Rotation) { rot.lookAt(target.subtractLocal(pos), up); workingMat.set(rot); workingMat.setColumn(3, new Vector4(array[0], array[1], array[2], 1.0)); finalMat.multiplyLocal(workingMat); } else {
@Test public void testColumns() { final Matrix4 mat4A = new Matrix4(); mat4A.setColumn(0, new Vector4(0, 4, 8, 12)); mat4A.setColumn(1, new Vector4(1, 5, 9, 13)); mat4A.setColumn(2, new Vector4(2, 6, 10, 14)); mat4A.setColumn(3, new Vector4(3, 7, 11, 15)); assertEquals(new Vector4(0, 4, 8, 12), mat4A.getColumn(0, new Vector4())); assertEquals(new Vector4(1, 5, 9, 13), mat4A.getColumn(1, null)); mat4A.setColumn(-1, new Vector4()); fail("setColumn(-1, double[]) should have thrown IllegalArgumentException."); } catch (final IllegalArgumentException e) { mat4A.setColumn(4, new Vector4()); fail("setColumn(4, double[]) should have thrown IllegalArgumentException."); } catch (final IllegalArgumentException e) {
@Test public void testTranslation() { final Matrix4 src = new Matrix4(); src.applyRotation(MathUtils.QUARTER_PI, 1, 0, 0); final Matrix4 trans = new Matrix4(); trans.setColumn(3, new Vector4(1, 2, 3, 1)); final Matrix4 transThenRotate = trans.multiply(src, null); final Matrix4 rotateThenTrans = src.multiply(trans, null); final Matrix4 pre1 = new Matrix4(src).applyTranslationPre(1, 2, 3); final Matrix4 post1 = new Matrix4(src).applyTranslationPost(1, 2, 3); assertEquals(transThenRotate, pre1); assertEquals(rotateThenTrans, post1); }