private void addAnimation(Animation animation, int frame) throws LowDurationException, DuplicateFrameElementException, FrameOutOfBoundsException, DuplicateNameException
	{
		
		actualDuration += animation.getDuration();
		checkDuration(animation, frame);
		
		if(frame > (duration-1))
			throw new FrameOutOfBoundsException("Animation: " + animation.getName() + " is out of animation " + name + " frame bounds");
				
		for(int i=0; i<animation.getDuration(); i++)
		{
			if(frames.get(frame+i) != null)
				throw new DuplicateFrameElementException("Animation: " + name + ", Duplicated element at frame: " + (frame+i));
		}
		
		animation.setFrame(frame);
		for(int i=0; i<animation.getDuration(); i++)
		{
			frames.put(frame+i, animation);
		}
		
		//Se sono la root tengo traccia di tutte le animation
		if(!hasParent())
			animationsList.add(animation);
		
	}