/** * @return A new spherical camera. */ public static JCameraSphericalType newCamera() { return new JCameraSpherical(); }
@Override public Matrix4x4D cameraMakeViewMatrix() { this.deriveVectors(); return JCameraViewMatrix.makeViewMatrix( this.cameraGetPosition(), this.cameraGetRight(), this.cameraGetUp(), this.cameraGetForward()); }
@Override public boolean cameraZoomOut( final double r) { return this.cameraZoomIn(-r); }
@Test(expected = IllegalArgumentException.class) public void testCameraIncorrect() { final JCameraSphericalType c0 = JCameraSpherical.newCamera(); final JCameraSphericalType c1 = JCameraSpherical.newCamera(); final JCameraSphericalInputType i = JCameraSphericalInput.newInput(); final JCameraSphericalAngularIntegratorType ai = JCameraSphericalAngularIntegrator.newIntegrator(c0, i); final JCameraSphericalLinearIntegratorType li = JCameraSphericalLinearIntegrator.newIntegrator(c1, i); JCameraSphericalIntegrator.newIntegratorWith(ai, li); }
@Override public VectorReadable3FType cameraGetUp() { this.deriveVectors(); return this.derived_up; }
@Test public void testEquality() { final JCameraSphericalType c0 = JCameraSpherical.newCamera(); c0.cameraSetAngleHeading((float) (Math.random() * 100.0f)); c0.cameraSetAngleIncline((float) (Math.random() * 100.0f)); c0.cameraSetTargetPosition3f( (float) (Math.random() * 100.0f), (float) (Math.random() * 100.0f), (float) (Math.random() * 100.0f)); c0.cameraSetZoom((float) (Math.random() * 100.0f)); final JCameraSphericalType c1 = JCameraSpherical.newCameraFrom(c0); System.out.println("c0: " + c0); System.out.println("c1: " + c1); Assert.assertEquals(c0, c1); Assert.assertEquals(c0.hashCode(), c1.hashCode()); Assert.assertEquals(c0.toString(), c1.toString()); this.compareSnapshot(c1); this.compareSnapshot(c0); }
@Override public boolean cameraOrbitIncline( final float r) { this.derived_current = false; this.input_incline += r; return this.clampIncline(); }
@Override public void cameraSetZoom( final double r) { this.derived_current = false; this.input_radius = r; this.clampRadius(); }
@Test public final void testCamera_0() { final JCameraSphericalType c = JCameraSpherical.newCamera(); final JCameraSphericalInputType i = JCameraSphericalInput.newInput(); final JCameraSphericalAngularIntegratorType d = this.newIntegrator(c, i); Assert.assertEquals(c, d.integratorGetCamera()); }
@Override public Vector3D cameraGetUp() { this.deriveVectors(); return this.derived_up; }
@Test public void testSnapshotEquality() { final JCameraSphericalType c0 = JCameraSpherical.newCamera(); c0.cameraOrbitHeading((float) (Math.random() * 100.0f)); c0.cameraOrbitIncline((float) (Math.random() * 100.0f)); c0.cameraMoveTargetRight((float) (Math.random() * 100.0f)); c0.cameraMoveTargetUp((float) (Math.random() * 100.0f)); c0.cameraMoveTargetForwardOnXZ((float) (Math.random() * 100.0f)); c0.cameraZoomOut((float) (Math.random() * 100.0f)); final JCameraSphericalType c1 = JCameraSpherical.newCameraFrom(c0); c1.cameraOrbitHeading((float) (Math.random() * 100.0f)); c1.cameraOrbitIncline((float) (Math.random() * 100.0f)); c1.cameraMoveTargetRight((float) (Math.random() * 100.0f)); c1.cameraMoveTargetUp((float) (Math.random() * 100.0f)); c1.cameraMoveTargetForwardOnXZ((float) (Math.random() * 100.0f)); c1.cameraZoomOut((float) (Math.random() * 100.0f)); System.out.println("c0: " + c0); System.out.println("c1: " + c1); final JCameraSphericalSnapshot snap_0 = c0.cameraMakeSnapshot(); final JCameraSphericalSnapshot snap_1 = c1.cameraMakeSnapshot(); Assert.assertEquals(snap_0, snap_0); Assert.assertNotEquals(snap_0, snap_1); Assert.assertNotEquals(snap_0, null); Assert.assertNotEquals(snap_0, Integer.valueOf(23)); Assert.assertEquals(snap_0.hashCode(), snap_0.hashCode()); Assert.assertNotEquals(snap_0.hashCode(), snap_1.hashCode()); Assert.assertEquals(snap_0.toString(), snap_0.toString()); Assert.assertNotEquals(snap_0.toString(), snap_1.toString()); }
@Override public void cameraSetAngleIncline( final double h) { this.input_incline = h; this.derived_current = false; this.clampIncline(); }
@Override public boolean cameraZoomIn( final double r) { this.derived_current = false; this.input_radius -= r; return this.clampRadius(); }
@Override public <T0, T1> PMatrix4x4D<T0, T1> cameraMakeViewPMatrix() { this.deriveVectors(); return JCameraViewMatrix.makeViewPMatrix( this.cameraGetPosition(), this.cameraGetRight(), this.cameraGetUp(), this.cameraGetForward()); }
@Test public final void testInput_0() { final JCameraSphericalType c = JCameraSpherical.newCamera(); final JCameraSphericalInputType i = JCameraSphericalInput.newInput(); final JCameraSphericalLinearIntegratorType d = this.newIntegrator(c, i); Assert.assertEquals(i, d.integratorGetInput()); }
@Override public VectorReadable3FType cameraGetRight() { this.deriveVectors(); return this.derived_right; }
@Override public void cameraSetAngleIncline( final float h) { this.input_incline = h; this.derived_current = false; this.clampIncline(); }
/** * @return A new spherical camera. */ public static JCameraSphericalType newCamera() { return new JCameraSpherical(); }
@Override public void cameraSetZoom( final float r) { this.derived_current = false; this.input_radius = r; this.clampRadius(); }
@Override public boolean cameraZoomOut( final float r) { return this.cameraZoomIn(-r); }