All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.gov.nasa.worldwind.view.ViewPropertyLimits Maven / Gradle / Ivy

Go to download

World Wind is a collection of components that interactively display 3D geographic information within Java applications or applets.

There is a newer version: 2.0.0-986
Show newest version
/*
 * Copyright (C) 2012 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.*;
import gov.nasa.worldwind.util.RestorableSupport;

/**
 * @author jym
 * @version $Id: ViewPropertyLimits.java 1171 2013-02-11 21:45:02Z dcollins $
 */
public interface ViewPropertyLimits
{
    /**
     * Sets the Sector which will limit the View eye position latitude and longitude.
     *
     * @param sector Sector which will limit the eye position latitude and longitude.
     * @throws IllegalArgumentException if sector is null.
     */
    void setEyeLocationLimits(Sector sector);
    /**
     * Returns the Sector which limits the View eye position latitude and longitude.
     *
     * @return Sector which limits the eye position latitude and longitude.
     */
    Sector getEyeLocationLimits();

    /**
     * Returns the minimum and maximum values for the View elevation.
     *
     * @return minimum and maximum allowable values for the elevation.
     */
    double[] getEyeElevationLimits();

    /**
     * Sets the minimum and maximum values for the View elevation.
     *
     * @param minValue The minimum elevation.
     * @param maxValue The maximum elevation.
     */
    void setEyeElevationLimits(double minValue, double maxValue);

    /**
     * Returns the minimum and maximum Angles for the OrbitView heading property.
     *
     * @return minimum and maximum allowable Angles for heading.
     */
    Angle[] getHeadingLimits();

    /**
     * Sets the minimum and maximum Angles which will limit the OrbitView heading property.
     *
     * @param minAngle the minimum allowable angle for heading.
     * @param maxAngle the maximum allowable angle for heading.
     * @throws IllegalArgumentException if either minAngle or maxAngle is null.
     */
    void setHeadingLimits(Angle minAngle, Angle maxAngle);

    /**
     * Returns the minimum and maximum Angles for the OrbitView pitch property.
     *
     * @return minimum and maximum allowable Angles for pitch.
     */
    Angle[] getPitchLimits();

    /**
     * Sets the minimum and maximum Angles which will limit the OrbitView pitch property.
     *
     * @param minAngle the minimum allowable angle for pitch.
     * @param maxAngle the maximum allowable angle for pitch.
     * @throws IllegalArgumentException if either minAngle or maxAngle is null.
     */
    void setPitchLimits(Angle minAngle, Angle maxAngle);

    /**
     * Returns the minimum and maximum Angles for the OrbitView roll property.
     *
     * @return minimum and maximum allowable Angles for roll.
     */
    Angle[] getRollLimits();

    /**
     * Sets the minimum and maximum Angles which will limit the OrbitView roll property.
     *
     * @param minAngle the minimum allowable angle for roll.
     * @param maxAngle the maximum allowable angle for roll.
     *
     * @throws IllegalArgumentException if either minAngle or maxAngle is null.
     */
    void setRollLimits(Angle minAngle, Angle maxAngle);


    void getRestorableState(RestorableSupport rs, RestorableSupport.StateObject context);

    void restoreState(RestorableSupport rs, RestorableSupport.StateObject context);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy