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

com.badlogic.gdx.ai.utils.Location Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright 2014 See AUTHORS file.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.badlogic.gdx.ai.utils;

import org.mini2Dx.gdx.math.Vector;

/** The {@code Location} interface represents any game object having a position and an orientation.
 * 
 * @param  Type of vector, either 2D or 3D, implementing the {@link Vector} interface
 * 
 * @author davebaol */
public interface Location> {

	/** Returns the vector indicating the position of this location. */
	public T getPosition ();

	/** Returns the float value indicating the orientation of this location. The orientation is the angle in radians representing
	 * the direction that this location is facing. */
	public float getOrientation ();

	/** Sets the orientation of this location, i.e. the angle in radians representing the direction that this location is facing.
	 * @param orientation the orientation in radians */
	public void setOrientation (float orientation);

	/** Returns the angle in radians pointing along the specified vector.
	 * @param vector the vector */
	public float vectorToAngle (T vector);

	/** Returns the unit vector in the direction of the specified angle expressed in radians.
	 * @param outVector the output vector.
	 * @param angle the angle in radians.
	 * @return the output vector for chaining. */
	public T angleToVector (T outVector, float angle);

	/** Creates a new location.
	 * 

* This method is used internally to instantiate locations of the correct type parameter {@code T}. This technique keeps the API * simple and makes the API easier to use with the GWT backend because avoids the use of reflection. * @return the newly created location. */ public Location newLocation (); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy