private void createSkinningMatrices() { skinningMatrixes = new Matrix4f[boneList.length]; for (int i = 0; i < skinningMatrixes.length; i++) { skinningMatrixes[i] = new Matrix4f(); } }
public static Matrix4f toRowMajor(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33) { return new Matrix4f(m00, m10, m20, m30, m01, m11, m21, m31, m02, m12, m22, m32, m03, m13, m23, m33); }
private void createSkinningMatrices() { skinningMatrixes = new Matrix4f[jointList.length]; for (int i = 0; i < skinningMatrixes.length; i++) { skinningMatrixes[i] = new Matrix4f(); } }
private static Matrix4f buildTransform(double[] transform) { float[] m = new float[transform.length]; for(int i = 0; i < transform.length; ++i) m[i] = (float) transform[i]; Matrix4f matrix = new Matrix4f(); matrix.set(m, false); return matrix; } }
public Matrix4f transpose() { float[] tmp = new float[16]; get(tmp, true); Matrix4f mat = new Matrix4f(tmp); return mat; }
@Override public Matrix4f getHMDMatrixPoseLeftEye(){ if( hmdPoseLeftEye != null ) { return hmdPoseLeftEye; } else if(vrsystemFunctions == null) { return Matrix4f.IDENTITY; } else { HmdMatrix34_t mat = vrsystemFunctions.GetEyeToHeadTransform.apply(JOpenVRLibrary.EVREye.EVREye_Eye_Left); hmdPoseLeftEye = new Matrix4f(); return convertSteamVRMatrix3ToMatrix4f(mat, hmdPoseLeftEye); } }
@Override public Matrix4f getHMDMatrixPoseRightEye(){ if( hmdPoseRightEye != null ) { return hmdPoseRightEye; } else if(vrsystemFunctions == null) { return Matrix4f.IDENTITY; } else { HmdMatrix34_t mat = vrsystemFunctions.GetEyeToHeadTransform.apply(JOpenVRLibrary.EVREye.EVREye_Eye_Right); hmdPoseRightEye = new Matrix4f(); return convertSteamVRMatrix3ToMatrix4f(mat, hmdPoseRightEye); } }
public Matrix4f mult(float scalar) { Matrix4f out = new Matrix4f(); out.set(this); out.multLocal(scalar); return out; }
public Matrix4f toTransformMatrix(Matrix4f store) { if (store == null) { store = new Matrix4f(); } store.setTranslation(translation); rot.toTransformMatrix(store); store.setScale(scale); return store; }
@Override public Matrix4f getHMDMatrixPoseRightEye(){ if( hmdPoseRightEye != null ) { return hmdPoseRightEye; } else { HmdMatrix34 mat = HmdMatrix34.create(); VRSystem.VRSystem_GetEyeToHeadTransform(VR.EVREye_Eye_Right, mat); hmdPoseRightEye = new Matrix4f(); return convertSteamVRMatrix3ToMatrix4f(mat, hmdPoseRightEye); } }
@Override public Matrix4f getHMDMatrixPoseLeftEye(){ if( hmdPoseLeftEye != null ) { return hmdPoseLeftEye; } else { HmdMatrix34 mat = HmdMatrix34.create(); VRSystem.VRSystem_GetEyeToHeadTransform(VR.EVREye_Eye_Left, mat); hmdPoseLeftEye = new Matrix4f(); return convertSteamVRMatrix3ToMatrix4f(mat, hmdPoseLeftEye); } }
private Matrix4f calculateProjection(int eye, Camera cam) { Matrix4f mat = new Matrix4f(); // Get LibOVR to find the correct projection OVRUtil.ovrMatrix4f_Projection(fovPorts[eye], cam.getFrustumNear(), cam.getFrustumFar(), OVRUtil.ovrProjection_None, projections[eye]); matrixO2J(projections[eye], mat); return mat; }
@Override public Matrix4f getPose() { Matrix4f mat = new Matrix4f(); mat.setRotationQuaternion(getOrientation()); mat.setTranslation(getPosition()); return mat; } }
public void multLocal(Quaternion rotation) { Vector3f axis = new Vector3f(); float angle = rotation.toAngleAxis(axis); Matrix4f matrix4f = new Matrix4f(); matrix4f.fromAngleAxis(angle, axis); multLocal(matrix4f); }
@Override public Vector3f getSeatedToAbsolutePosition() { if( environment.isSeatedExperience() == false ) return Vector3f.ZERO; if( hmdSeatToStand == null ) { hmdSeatToStand = new Vector3f(); HmdMatrix34_t mat = vrsystemFunctions.GetSeatedZeroPoseToStandingAbsoluteTrackingPose.apply(); Matrix4f tempmat = new Matrix4f(); convertSteamVRMatrix3ToMatrix4f(mat, tempmat); tempmat.toTranslationVector(hmdSeatToStand); } return hmdSeatToStand; }
@Override public Matrix4f getHMDMatrixProjectionLeftEye(Camera cam){ if( hmdProjectionLeftEye != null ) { return hmdProjectionLeftEye; } else { HmdMatrix44 mat = HmdMatrix44.create(); mat = VRSystem.VRSystem_GetProjectionMatrix(VR.EVREye_Eye_Left, cam.getFrustumNear(), cam.getFrustumFar(), mat); hmdProjectionLeftEye = new Matrix4f(); convertSteamVRMatrix4ToMatrix4f(mat, hmdProjectionLeftEye); return hmdProjectionLeftEye; } }
@Override public Matrix4f getHMDMatrixProjectionRightEye(Camera cam){ if( hmdProjectionRightEye != null ) { return hmdProjectionRightEye; } else { HmdMatrix44 mat = HmdMatrix44.create(); mat = VRSystem.VRSystem_GetProjectionMatrix(VR.EVREye_Eye_Right, cam.getFrustumNear(), cam.getFrustumFar(), mat); hmdProjectionRightEye = new Matrix4f(); convertSteamVRMatrix4ToMatrix4f(mat, hmdProjectionRightEye); return hmdProjectionRightEye; } }
@Override public void write(JmeExporter ex) throws IOException { OutputCapsule output = ex.getCapsule(this); output.write(name, "name", null); output.write(attachedNode, "attachedNode", null); output.write(targetGeometry, "targetGeometry", null); output.write(initialTransform, "initialTransform", new Transform()); output.write(inverseModelBindMatrix, "inverseModelBindMatrix", new Matrix4f()); output.writeSavableArrayList(new ArrayList(children), "children", null); }
/** * Fetches the world matrix transformation of the given node. * @param node * the node * @return the node's world transformation matrix */ private Matrix4f getWorldMatrix(Node node) { Matrix4f result = new Matrix4f(); result.setTranslation(node.getWorldTranslation()); result.setRotationQuaternion(node.getWorldRotation()); result.setScale(node.getWorldScale()); return result; }
@Test public void testMatrixArray() { Matrix4f[] matrices = new Matrix4f[]{ new Matrix4f() }; material("Common/MatDefs/Light/Lighting.j3md"); inputMpo(mpoMatrix4Array("BoneMatrices", matrices)); outDefines(); outUniforms(uniform("BoneMatrices", VarType.Matrix4Array, matrices)); }