@Override public void onNewFrame(HeadTransform headTransform) { headTransform.getHeadView(headView, 0); Matrix.invertM(inverseHeadView, 0, headView, 0); headTransform.getQuaternion(headRotation, 0); headTransform.getEulerAngles(headEulerAngles, 0); headEulerAngles[0] *= RAD2DEG; headEulerAngles[1] *= RAD2DEG; headEulerAngles[2] *= RAD2DEG; updateViewMatrix(); Util.checkGLError("onNewFrame"); }
@Override public void headTransform(HeadTransform headTransform) { headTransform.getQuaternion(quat, 0); headTransform.getEulerAngles(euler, 0); bank = degrees(euler[0]); heading = degrees(euler[1]); attitude = degrees(euler[2]); float zoomSpeedMax = .01f; //.01f; float TILT_FOR_ZOOM = 7.5f; // degrees float inc = -.020f; // X if (heading >= -90 && heading <= 90) { // 180 degrees swivel cameraPositionX = PI * 2 * heading * inc; } // Y inc = .04f; if (bank >= -90 && bank <= 90) { // 180 degrees swivel cameraPositionY = -2 * bank * inc; } // Z inc = 0.0f; if (attitude > TILT_FOR_ZOOM) { inc = zoomSpeedMax; } else if (attitude < -TILT_FOR_ZOOM) { inc = -zoomSpeedMax; } cameraPositionZ += inc; }
@Override public void headTransform(HeadTransform headTransform) { headTransform.getQuaternion(quat, 0); headTransform.getEulerAngles(euler, 0); bank = degrees(euler[0]); heading = degrees(euler[1]); attitude = degrees(euler[2]); float zoomSpeedMax = .01f; //.01f; float TILT_FOR_ZOOM = 7.5f; // degrees float inc = -.020f; // X if (heading >= -90 && heading <= 90) { // 180 degrees swivel cameraPositionX = PI * 2 * heading * inc; } // Y inc = .04f; if (bank >= -90 && bank <= 90) { // 180 degrees swivel cameraPositionY = -2 * bank * inc; } // Z inc = 0.0f; if (attitude > TILT_FOR_ZOOM) { inc = zoomSpeedMax; } else if (attitude < -TILT_FOR_ZOOM) { inc = -zoomSpeedMax; } cameraPositionZ += inc; }