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

gov.nasa.worldwind.animation.AnimationController 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.animation;

import java.util.*;

/**
 * The AnimationController class is a convenience class for managing a
 * group of Animators.
 *
 * @author jym
 * @version $Id: AnimationController.java 1171 2013-02-11 21:45:02Z dcollins $
 */
public class AnimationController extends
            HashMap
{

    /**
     * Starts all of the Animators in the map
     */
    public void startAnimations()
    {
        Collection animators = this.values();
        for (Animator a : animators)
        {
            a.start();
        }
    }

    /**
     * Stops all of the Animators in the map
     */
    public void stopAnimations()
    {
        Collection animators = this.values();
        for (Animator a : animators)
        {
            a.stop();
        }

    }

    /**
     * Starts the animation associated with animationName
     *
     * @param animationName the name of the animation to be started.
     */
    public void startAnimation(Object animationName)
    {
        this.get(animationName).start();
    }

    /**
     * Stops the Animator associated with animationName
     * @param animationName the name of the animation to be stopped
     */
    public void stopAnimation(Object animationName)
    {
        this.get(animationName).stop();
    }

    /**
     * Stops all Animators in the map.
     * @return true if any Animator was started, false otherwise
     */
    public boolean stepAnimators()
    {
        boolean didStep = false;
        Collection animators = this.values();
        for (Animator a : animators)
        {
            if (a.hasNext())
            {
                didStep = true;
                a.next();
            }
        }
        return didStep;

    }

    /**
     * Returns true if the controller has any active Animations
     * 
     * @return true if there are any active animations in this CompountAnimation
     */
    public boolean hasActiveAnimation()
    {

        Collection animators = this.values();
        for (Animator a : animators)
        {
            if (a.hasNext())
            {
                return true;
            }
        }
        return false;
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy