public Matrix rotationM(float angle){
		float c = (float) Math.cos(angle);
		float s = (float) Math.sin(angle);
		float t = 1 - c;
		
//		Matrix m = new Matrix(4, 4, new float[] {t * x * x + c, t * x * y + s * z, t * x * z - s * y, 0,
//												 t * x * y - s * z, t * y * y + c, t * y * z + s * x, 0,
//												 t * x * z + s * y, t * y * z - s * x, t * z * z + c, 0,
//												 0, 0, 0, 1});
		
		Matrix m = new Matrix(4, 4, new float[] {t * x * x + c, t * x * y - s * z, t * x * z + s * y, 0,
												 t * x * y + s * z, t * y * y + c, t * y * z - s * x, 0,
												 t * x * z - s * y, t * y * z + s * x, t * z * z + c, 0,
												 0, 0, 0, 1});
		//[tx^2 + c, txy - sz, txz + sy]
		//[txy + sz, ty^2 + c, tyz - sx]
		//[txz - sy, tyz + sx, tz^2 + c]
		return m;
	}