class AnimationsConstructor
{
	private var m_duration : Float;
	private var m_type : inkanimInterpolationType;
	private var m_mode : inkanimInterpolationMode;
	private var m_isAdditive : Bool;

	public function SetGenericSettings( animDuration : Float, animType : inkanimInterpolationType, animMode : inkanimInterpolationMode, isAdditive : Bool )
	{
		m_duration = animDuration;
		m_type = animType;
		m_mode = animMode;
		m_isAdditive = isAdditive;
	}

	public function NewMarginInterpolator( startMargin : inkMargin, endMargin : inkMargin ) : inkAnimMargin
	{
		var newInterpolator : inkAnimMargin;
		newInterpolator = new inkAnimMargin;
		newInterpolator.SetStartMargin( startMargin );
		newInterpolator.SetEndMargin( endMargin );
		newInterpolator.SetDuration( m_duration );
		newInterpolator.SetType( m_type );
		newInterpolator.SetMode( m_mode );
		newInterpolator.SetIsAdditive( m_isAdditive );
		return newInterpolator;
	}

	public function NewSizeInterpolator( startSize : Vector2, endSize : Vector2 ) : inkAnimSize
	{
		var newInterpolator : inkAnimSize;
		newInterpolator = new inkAnimSize;
		newInterpolator.SetStartSize( startSize );
		newInterpolator.SetEndSize( endSize );
		newInterpolator.SetDuration( m_duration );
		newInterpolator.SetType( m_type );
		newInterpolator.SetMode( m_mode );
		newInterpolator.SetIsAdditive( m_isAdditive );
		return newInterpolator;
	}

	public function NewRotationInterpolator( startRotation : Float, endRotation : Float ) : inkAnimRotation
	{
		var newInterpolator : inkAnimRotation;
		newInterpolator = new inkAnimRotation;
		newInterpolator.SetStartRotation( startRotation );
		newInterpolator.SetEndRotation( endRotation );
		newInterpolator.SetDuration( m_duration );
		newInterpolator.SetType( m_type );
		newInterpolator.SetMode( m_mode );
		newInterpolator.SetIsAdditive( m_isAdditive );
		return newInterpolator;
	}

	public function NewColorInterpolator( startColor : HDRColor, endColor : HDRColor ) : inkAnimColor
	{
		var newInterpolator : inkAnimColor;
		newInterpolator = new inkAnimColor;
		newInterpolator.SetStartColor( startColor );
		newInterpolator.SetEndColor( endColor );
		newInterpolator.SetDuration( m_duration );
		newInterpolator.SetType( m_type );
		newInterpolator.SetMode( m_mode );
		newInterpolator.SetIsAdditive( m_isAdditive );
		return newInterpolator;
	}

}

