@Override Object get() { return new Matrix4f(value); }
@Override Object get() { Matrix4f[] arr = new Matrix4f[this.length]; for (int i = 0; i < this.length; i++) { int j = i * 16; arr[i] = new Matrix4f(); arr[i].m00 = this.value[j+0]; arr[i].m01 = this.value[j+1]; arr[i].m02 = this.value[j+2]; arr[i].m03 = this.value[j+3]; arr[i].m10 = this.value[j+4]; arr[i].m11 = this.value[j+5]; arr[i].m12 = this.value[j+6]; arr[i].m13 = this.value[j+7]; arr[i].m20 = this.value[j+8]; arr[i].m21 = this.value[j+9]; arr[i].m22 = this.value[j+10]; arr[i].m23 = this.value[j+11]; arr[i].m30 = this.value[j+12]; arr[i].m31 = this.value[j+13]; arr[i].m32 = this.value[j+14]; arr[i].m33 = this.value[j+15]; } return arr; }
public static Matrix4f createTransformationMatrix(Vector3f translation, float rx, float ry, float rz, float scale) { Matrix4f translations = new Matrix4f(); translations.setIdentity(); translations = Matrix4f.translate(translation.x, translation.y, translation.y); // Bug ... }
Matrix4f transform = new Matrix4f(new float[][] { new float[] { 1, 0, 0, vector.x }, new float[] { 0, 1, 0, vector.y }, Matrix4f matrix = new Matrix4f(new float[][] { new float[] { (matrixA.values[0] * matrixB.values[0]) + (matrixA.values[1] * matrixB.values[4]) + (matrixA.values[2] * matrixB.values[8]) + (matrixA.values[3] * matrixB.values[12]),
Vector4f vpos = new Vector4f(0, 0, 0, 1); // (0,0,0,1) because it's relative to the cam float mv[]=new float[16]; ByteBuffer temp = ByteBuffer.allocateDirect(64); temp.order(ByteOrder.nativeOrder()); GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, (FloatBuffer)temp.asFloatBuffer()); temp.asFloatBuffer().get(mv); Matrix4f m4 = new Matrix4f(); m4.load((FloatBuffer)temp.asFloatBuffer()); m4.invert(); vpos = Matrix4f.transform(m4, vpos, vpos);
@Override public void focusLost(final FocusEvent e) { final Matrix4f m = new Matrix4f(); try { fromString(matrixTA.getText(), m); if (m.determinant() != 0) setTransformation(m, origin, true); } catch (final Exception ex) { System.out.println(ex.getMessage()); } } });
@Override public void keyTyped(final KeyEvent e) { final Matrix4f m = new Matrix4f(); try { fromString(matrixTA.getText(), m); if (m.determinant() != 0) setTransformation(m, origin, false); } catch (final Exception ex) { System.out.println(ex.getMessage()); } } });
@Override public void actionPerformed(final ActionEvent e) { final float[] m = new TransformIO().openAffineTransform(); if (m != null) setTransformation(new Matrix4f(m), origin, true); } });
float rotY = (float) Math.toRadians(180); Matrix4f transMat = new Matrix4f(); transMat.rotate(rotY, new Vector3f(0.0f, 1.0f, 0.0f)); Vector4f vecPosMod = new Vector4f(1.0f, 0.0f, 0.0f, 1.0f); Matrix4f.transform(transMat, vecPosMod, vecPosMod);
@Override public void applyTranslations(int uniformLocation) { viewMatrix = new Matrix4f(); Matrix4f.rotate(MatrixUtils.degreesToRadians(pitch), new Vector3f(1, 0, 0), viewMatrix, viewMatrix); Matrix4f.rotate(MatrixUtils.degreesToRadians(yaw), new Vector3f(0, 1, 0), viewMatrix, viewMatrix); Matrix4f.rotate(MatrixUtils.degreesToRadians(roll), new Vector3f(0, 0, 1), viewMatrix, viewMatrix); Matrix4f.translate(new Vector3f(-x, -y, -z), viewMatrix, viewMatrix); viewMatrix.store(matrix44Buffer); matrix44Buffer.flip(); glUniformMatrix4(uniformLocation, false, matrix44Buffer); }
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.lenna); ScriptIntrinsicBlur scriptBlur = ScriptIntrinsicBlur.create(mRenderScript, Element.U8_4(mRenderScript)); scriptBlur.setRadius(5f); ScriptIntrinsicColorMatrix scriptColor = ScriptIntrinsicColorMatrix.create(mRenderScript, Element.U8_4(mRenderScript)); final Allocation input = Allocation.createFromBitmap(mRenderScript, bitmap, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT | Allocation.USAGE_SHARED); scriptBlur.setInput(input); Bitmap outBitmap = bitmap.copy(bitmap.getConfig(), true); final Allocation output = Allocation.createTyped(mRenderScript, input.getType()); scriptColor.setColorMatrix(new Matrix4f( new float[]{1, 0f, 0f, 0, 1, 1, 0f, 0, 1, 0f, 1, 0, 0, 0, 0, 1} )); ScriptGroup.Builder b = new ScriptGroup.Builder(mRenderScript); b.addKernel(scriptBlur.getKernelID()); b.addKernel(scriptColor.getKernelID()); b.addConnection(input.getType(), scriptBlur.getKernelID(), scriptColor.getKernelID()); ScriptGroup group = b.create(); // group.setInput(scriptBlur.getKernelID(),input); group.setOutput(scriptColor.getKernelID(), output); group.execute(); output.copyTo(outBitmap); return outBitmap;
Matrix4f rotationXMatrix = new Matrix4f(); rotationXMatrix.rotX(angleToRotX); Matrix4f rotationYMatrix = new Matrix4f(); rotationYMatrix.rotY(angleToRotY); Matrix4f rotationZMatrix = new Matrix4f(); rotationZMatrix.rotZ(angleToRotZ); Matrix4f translationMatrix = new Matrix4f(); translationMatrix.setTranslate(new Vector3f(1.5, 1, 1.5)); Matrix4f rotationMatrix = new Matrix4f(); rotationMatrix.mul(rotationXMatrix); rotationMatrix.mul(rotationYMatrix);
private static Point3f[] makeVertices(final Point3f from, final Point3f to, final float r, final int parallels) { final Point3f[] p = new Point3f[parallels + 2]; p[0] = new Point3f(from); p[1] = new Point3f(to); for (int i = 0; i < parallels; i++) { final double a = (i - 6) * (2 * Math.PI) / 12; final double c = r * Math.cos(a); final double s = r * Math.sin(a); p[i + 2] = new Point3f((float) c, (float) s, 0); } final Matrix4f ry = new Matrix4f(); final float ay = (float) Math.atan2((to.x - from.x), (to.z - from.z)); ry.rotY(ay); final Matrix4f rx = new Matrix4f(); final float ax = -(float) Math.asin((to.y - from.y) / from.distance(to)); rx.rotX(ax); rx.mul(ry, rx); for (int i = 2; i < p.length; i++) { final Point3f pi = p[i]; rx.transform(pi); pi.add(from); } return p; }
// Given xAxis and zAxis. Vector3f xAxis = new Vector3f(1, 0, 0); Vector3f zAxis = new Vector3f(0, 0, 1); // Create yAxis. Vector3f yAxis = new Vector3f(); yAxis.cross(zAxis, xAxis); // Create rotation matrix from axes. Matrix4f rotationMatrix = new Matrix4f(); rotationMatrix.setRow(0, new Vector4f(xAxis)); rotationMatrix.setRow(1, new Vector4f(yAxis)); rotationMatrix.setRow(2, new Vector4f(zAxis)); rotationMatrix.setRow(3, new Vector4f(0, 0, 0, 1)); // Create transform. Transform3D transform = new Transform3D(rotationMatrix); // Transform points. Vector3f vector = new Vector3f(0, 1, 0); transform.transform(vector); System.out.println(vector);
//the object's default forward size without any transformations Vector3f forward = new Vector3f(0.0f, 0.0f, 1.0f); //rotation axis Vector3f axis = new Vector3f(); axis.cross(forward, inter); axis.normalize(); //New rotation matrix to be applied Matrix4f rotationMatrix = new Matrix4f(); rotationMatrix.setIdentity(); rotationMatrix.setRotation(new AxisAngle4f(axis, forward.angle(inter)));
public Matrix4f mul(Matrix4f r) { Matrix4f res = new Matrix4f(); for(int i = 0; i < 4; i++) { for(int j = 0; j < 4; j++) { res.set(i, j, m[i][0]*r.get(0, j) + m[i][1]*r.get(1, j) + m[i][2]*r.get(2, j) + m[i][3]*r.get(3, j)); } } return res; }
private Matrix4f fromFields() { fromString(axisTF.getText(), axis); angle = (float) (Math.PI * Float.parseFloat(angleTF.getText()) / 180.0); fromString(originTF.getText(), origin); fromString(translationTF.getText(), translation); final Matrix4f m = new Matrix4f(); compose(new AxisAngle4f(axis, angle), origin, translation, m); return m; }
c.getLocalRotate().getTransform(t2); org.mul(t2); final Matrix4f m = new Matrix4f(); org.get(m);