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

gov.nasa.worldwind.Movable Maven / Gradle / Ivy

The 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;

import gov.nasa.worldwind.geom.Position;

/**
 * An interface provided by objects that can be moved geographically. Typically, implementing objects move the entire
 * object as a whole in response to the methods in this interface. See the documentation for each implementing class to
 * determine whether the class deviates from this.
 *
 * @author tag
 * @version $Id: Movable.java 1171 2013-02-11 21:45:02Z dcollins $
 */
public interface Movable
{
    /**
     * A position associated with the object that indicates its aggregate geographic position. The chosen position
     * varies among implementers of this interface. For objects defined by a list of positions, the reference position
     * is typically the first position in the list. For symmetric objects the reference position is often the center of
     * the object. In many cases the object's reference position may be explicitly specified by the application.
     *
     * @return the object's reference position, or null if no reference position is available.
     */
    Position getReferencePosition();

    /**
     * Shift the shape over the globe's surface while maintaining its original azimuth, its orientation relative to
     * North.
     *
     * @param position the latitude and longitude to add to the shape's reference position.
     */
    void move(Position position);

    /**
     * Move the shape over the globe's surface while maintaining its original azimuth, its orientation relative to
     * North.
     *
     * @param position the new position of the shape's reference position.
     */
    void moveTo(Position position);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy