/** * Construct a new integrator. * * @param in_camera The camera to be integrated. * @param in_input The input to be sampled. * @param in_drag_scale The function used to produce a scaling factor for * mouse dragging. * @param in_linear_scale The function used to produce a scaling factor for * linear movement. * * @return A new integrator */ public static JCameraSphericalLinearIntegratorType newIntegratorWithFunctions( final JCameraSphericalType in_camera, final JCameraSphericalInput in_input, final JCameraScalingFunctionType in_drag_scale, final JCameraScalingFunctionType in_linear_scale) { return new JCameraSphericalLinearIntegratorZoomScaled( in_camera, in_input, in_drag_scale, in_linear_scale); }
@Override public void integrate( final float t) { this.speed_zoom = this.integrateZoom(t); final float linear_zoom_scale = this.linear_scale.evaluate(this.camera.cameraGetZoom()); final float drag_zoom_scale = this.drag_scale.evaluate(this.camera.cameraGetZoom()); this.speed_forward = this.integrateForward(t, linear_zoom_scale, drag_zoom_scale); this.speed_right = this.integrateRight(t, linear_zoom_scale, drag_zoom_scale); this.speed_up = this.integrateUp(t); }
private float integrateUp( final float time) { float s = this.speed_up; final boolean forward = this.input.isTargetMovingUp(); if (forward) { s += this.target_acceleration * time; } final boolean backward = this.input.isTargetMovingDown(); if (backward) { s -= this.target_acceleration * time; } s = Clamp.clamp(s, -this.target_maximum_speed, this.target_maximum_speed); this.camera.cameraMoveTargetUp(s * time); return JCameraSphericalLinearIntegratorZoomScaled.applyDrag( s, this.target_drag, time); }
this.camera, this.input), JCameraSphericalLinearIntegratorZoomScaled.newIntegrator( this.camera, this.input));
private float integrateZoom( final float time) { float s = this.speed_zoom; final boolean forward = this.input.isZoomingIn(); if (forward) { s += this.zoom_acceleration * time; } final boolean backward = this.input.isZoomingOut(); if (backward) { s -= this.zoom_acceleration * time; } s = Clamp.clamp(s, -this.zoom_maximum_speed, this.zoom_maximum_speed); this.camera.cameraZoomIn(s * time); return JCameraSphericalLinearIntegratorZoomScaled.applyDrag( s, this.zoom_drag, time); }
this.camera, this.input), JCameraSphericalLinearIntegratorZoomScaled.newIntegrator( this.camera, this.input));
@Override public void integrate( final double t) { this.speed_zoom = this.integrateZoom(t); final double linear_zoom_scale = this.linear_scale.evaluate(this.camera.cameraGetZoom()); final double drag_zoom_scale = this.drag_scale.evaluate(this.camera.cameraGetZoom()); this.speed_forward = this.integrateForward(t, linear_zoom_scale, drag_zoom_scale); this.speed_right = this.integrateRight(t, linear_zoom_scale, drag_zoom_scale); this.speed_up = this.integrateUp(t); }
private double integrateUp( final double time) { double s = this.speed_up; final boolean forward = this.input.isTargetMovingUp(); if (forward) { s += this.target_acceleration * time; } final boolean backward = this.input.isTargetMovingDown(); if (backward) { s -= this.target_acceleration * time; } s = Clamp.clamp(s, -this.target_maximum_speed, this.target_maximum_speed); this.camera.cameraMoveTargetUp(s * time); return JCameraSphericalLinearIntegratorZoomScaled.applyDrag( s, this.target_drag, time); }
/** * Construct a new integrator. * * @param in_camera The camera to be integrated. * @param in_input The input to be sampled. * @param in_drag_scale The function used to produce a scaling factor for * mouse dragging. * @param in_linear_scale The function used to produce a scaling factor for * linear movement. * * @return A new integrator */ public static JCameraSphericalLinearIntegratorType newIntegratorWithFunctions( final JCameraSphericalType in_camera, final JCameraSphericalInput in_input, final JCameraScalingFunctionType in_drag_scale, final JCameraScalingFunctionType in_linear_scale) { return new JCameraSphericalLinearIntegratorZoomScaled( in_camera, in_input, in_drag_scale, in_linear_scale); }
private double integrateZoom( final double time) { double s = this.speed_zoom; final boolean forward = this.input.isZoomingIn(); if (forward) { s += this.zoom_acceleration * time; } final boolean backward = this.input.isZoomingOut(); if (backward) { s -= this.zoom_acceleration * time; } s = Clamp.clamp(s, -this.zoom_maximum_speed, this.zoom_maximum_speed); this.camera.cameraZoomIn(s * time); return JCameraSphericalLinearIntegratorZoomScaled.applyDrag( s, this.zoom_drag, time); }
/** * Construct a new integrator. * * @param in_camera The camera to be integrated. * @param in_input The input to be sampled. * * @return A new integrator */ public static JCameraSphericalLinearIntegratorType newIntegrator( final JCameraSphericalType in_camera, final JCameraSphericalInputType in_input) { return new JCameraSphericalLinearIntegratorZoomScaled( in_camera, in_input, JCameraScalingFunctions.scaleIdentity(), JCameraScalingFunctions.scaleSquareRoot()); }
private double integrateRight( final double time, final double linear_zoom_scale, final double drag_zoom_scale) { double s = this.speed_right; final boolean forward = this.input.isTargetMovingRight(); if (forward) { s += this.target_acceleration * time * linear_zoom_scale; } final boolean backward = this.input.isTargetMovingLeft(); if (backward) { s -= this.target_acceleration * time * linear_zoom_scale; } s = Clamp.clamp( s, -this.target_maximum_speed * linear_zoom_scale, this.target_maximum_speed * linear_zoom_scale); s += this.input.takeTargetMovingRight() * this.target_acceleration * drag_zoom_scale * time; this.camera.cameraMoveTargetRight(s * time); return JCameraSphericalLinearIntegratorZoomScaled.applyDrag( s, this.target_drag, time); }
/** * Construct a new integrator. * * @param in_camera The camera to be integrated. * @param in_input The input to be sampled. * * @return A new integrator */ public static JCameraSphericalLinearIntegratorType newIntegrator( final JCameraSphericalType in_camera, final JCameraSphericalInputType in_input) { return new JCameraSphericalLinearIntegratorZoomScaled( in_camera, in_input, JCameraScalingFunctions.scaleIdentity(), JCameraScalingFunctions.scaleSquareRoot()); }
private float integrateForward( final float time, final float linear_zoom_scale, final float drag_zoom_scale) { float s = this.speed_forward; final boolean forward = this.input.isTargetMovingForward(); if (forward) { s += this.target_acceleration * time * linear_zoom_scale; } final boolean backward = this.input.isTargetMovingBackward(); if (backward) { s -= this.target_acceleration * time * linear_zoom_scale; } s = Clamp.clamp( s, -this.target_maximum_speed * linear_zoom_scale, this.target_maximum_speed * linear_zoom_scale); s += this.input.takeTargetMovingForward() * this.target_acceleration * drag_zoom_scale * time; this.camera.cameraMoveTargetForwardOnXZ(s * time); return JCameraSphericalLinearIntegratorZoomScaled.applyDrag( s, this.target_drag, time); }
private float integrateRight( final float time, final float linear_zoom_scale, final float drag_zoom_scale) { float s = this.speed_right; final boolean forward = this.input.isTargetMovingRight(); if (forward) { s += this.target_acceleration * time * linear_zoom_scale; } final boolean backward = this.input.isTargetMovingLeft(); if (backward) { s -= this.target_acceleration * time * linear_zoom_scale; } s = Clamp.clamp( s, -this.target_maximum_speed * linear_zoom_scale, this.target_maximum_speed * linear_zoom_scale); s += this.input.takeTargetMovingRight() * this.target_acceleration * drag_zoom_scale * time; this.camera.cameraMoveTargetRight(s * time); return JCameraSphericalLinearIntegratorZoomScaled.applyDrag( s, this.target_drag, time); }
private double integrateForward( final double time, final double linear_zoom_scale, final double drag_zoom_scale) { double s = this.speed_forward; final boolean forward = this.input.isTargetMovingForward(); if (forward) { s += this.target_acceleration * time * linear_zoom_scale; } final boolean backward = this.input.isTargetMovingBackward(); if (backward) { s -= this.target_acceleration * time * linear_zoom_scale; } s = Clamp.clamp( s, -this.target_maximum_speed * linear_zoom_scale, this.target_maximum_speed * linear_zoom_scale); s += this.input.takeTargetMovingForward() * this.target_acceleration * drag_zoom_scale * time; this.camera.cameraMoveTargetForwardOnXZ(s * time); return JCameraSphericalLinearIntegratorZoomScaled.applyDrag( s, this.target_drag, time); }