package simogl.collision;

/**
 * This class represents a hit of a picking procedure
 * @author Frank Bruns
 *
 */
public class PickingHit
{
	private int id = -1;
	private int nameCount = -1;
	private int minDepth = -1;
	private int maxDepth = -1;
	
	protected PickingHit()
	{
		
	}
	
	/**
	 * Sets the id of the hit to the specified value
	 * @param id id of the hit
	 */
	protected void setID(int id)
	{
		this.id = id;
	}
	
	/**
	 * Returns the id of the hit. This is the same as the index position
	 * of the object that the hit is representing in its list of game object.
	 * @return id of the hit
	 */
	protected int getID()
	{
		return this.id;
	}
	
	/**
	 * Sets the value for the number of names of the hit
	 * @param nameCount name count of the hit
	 */
	protected void setNameCount(int nameCount)
	{
		this.nameCount = nameCount;
	}
	
	/**
	 * Sets the minDepth value of the hit. This can be used for sorting
	 * different hits by there depth values and thus decide which hit is in
	 * front of the camera.
	 * @param minDepth minDepth value of the hit
	 */
	protected void setMinDepth(int minDepth)
	{
		this.minDepth = minDepth;
	}
	
	/**
	 * Returns the minDepth value of the hit, that can be used for sorting
	 * the hits
	 * @return minDepth value of the hit
	 */
	protected int getMinDepth()
	{
		return this.minDepth;
	}
	
	/**
	 * Sets the maxDepth value of the hit. This can be used for sorting
	 * different hits by there depth values and thus decide which hit is in
	 * front of the camera.
	 * @param maxDepth maxDepth value of the hit
	 */
	protected void setMaxDepth(int maxDepth)
	{
		this.maxDepth = maxDepth;
	}
	
	/**
	 * Returns the maxDepth value of the hit, that can be used for sorting
	 * the hits
	 * @return maxDepth value of the hit
	 */
	protected int getMaxDepth()
	{
		return this.maxDepth;
	}
}
