/* Copyright (C) 2001, 2006 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. */ package gov.nasa.worldwind.view; import gov.nasa.worldwind.geom.*; /** * @author dcollins * @version $Id: OrbitViewPropertyAccessor.java 4100 2008-01-08 02:49:54Z dcollins $ */ public class OrbitViewPropertyAccessor { private OrbitViewPropertyAccessor() { } public static interface AngleAccessor { Angle getAngle(OrbitView orbitView); boolean setAngle(OrbitView orbitView, Angle value); } public static interface DoubleAccessor { Double getDouble(OrbitView orbitView); boolean setDouble(OrbitView orbitView, Double value); } public static interface PositionAccessor { Position getPosition(OrbitView orbitView); boolean setPosition(OrbitView orbitView, Position value); } //public static interface QuaternionAccessor //{ // Quaternion getQuaternion(OrbitView orbitView); // // boolean setQuaternion(OrbitView orbitView, Quaternion value); //} public static PositionAccessor createCenterPositionAccessor() { return new CenterPositionAccessor(); } public static AngleAccessor createHeadingAccessor() { return new HeadingAccessor(); } public static AngleAccessor createPitchAccessor() { return new PitchAccessor(); } public static DoubleAccessor createZoomAccessor() { return new ZoomAccessor(); } //public static RotationAccessor createRotationAccessor() //{ // return new RotationAccessor(); //} // ============== Implementation ======================= // // ============== Implementation ======================= // // ============== Implementation ======================= // private static class CenterPositionAccessor implements PositionAccessor { public Position getPosition(OrbitView orbitView) { if (orbitView == null) return null; return orbitView.getCenterPosition(); } public boolean setPosition(OrbitView orbitView, Position value) { //noinspection SimplifiableIfStatement if (orbitView == null || value == null) return false; try { orbitView.setCenterPosition(value); return true; } catch (Exception e) { return false; } } } private static class HeadingAccessor implements AngleAccessor { public final Angle getAngle(OrbitView orbitView) { if (orbitView == null) return null; return orbitView.getHeading(); } public final boolean setAngle(OrbitView orbitView, Angle value) { //noinspection SimplifiableIfStatement if (orbitView == null || value == null) return false; try { orbitView.setHeading(value); return true; } catch (Exception e) { return false; } } } private static class PitchAccessor implements AngleAccessor { public final Angle getAngle(OrbitView orbitView) { if (orbitView == null) return null; return orbitView.getPitch(); } public final boolean setAngle(OrbitView orbitView, Angle value) { //noinspection SimplifiableIfStatement if (orbitView == null || value == null) return false; try { orbitView.setPitch(value); return true; } catch (Exception e) { return false; } } } private static class ZoomAccessor implements DoubleAccessor { public final Double getDouble(OrbitView orbitView) { if (orbitView == null) return null; return orbitView.getZoom(); } public final boolean setDouble(OrbitView orbitView, Double value) { //noinspection SimplifiableIfStatement if (orbitView == null || value == null) return false; try { orbitView.setZoom(value); return true; } catch (Exception e) { return false; } } } //private static class RotationAccessor implements QuaternionAccessor //{ // public final Quaternion getQuaternion(OrbitView orbitView) // { // if (orbitView == null) // return null; // // return orbitView.getRotation(); // } // // public final boolean setQuaternion(OrbitView orbitView, Quaternion value) // { // if (orbitView == null || value == null) // return false; // // orbitView.setRotation(value); // return true; // } //} }