<commit_before>package aerys.minko.type.animation.timeline
{
	import aerys.minko.ns.minko_animation;
	import aerys.minko.scene.node.ISceneNode;
	import aerys.minko.type.math.Matrix4x4;

	use namespace minko_animation;
	
	public final class MatrixSegmentTimeline extends AbstractTimeline
	{
		private var _timeTable	: Vector.<uint>			= null;
		private var _matrices	: Vector.<Matrix4x4>	= null;

		public function MatrixSegmentTimeline(propertyPath		: String,
											  timeTable 		: Vector.<uint>,
											  values			: Vector.<Matrix4x4>)
		{
			super(propertyPath, timeTable[int(timeTable.length - 1)]);
			
			_timeTable = timeTable;
			_matrices = values;
		}

		override public function updateAt(t : int, target : Object) : void
		{
			super.updateAt(t, target);
			
			var reverse		: Boolean	= t < 0;
			var timeId		: uint 		= getIndexForTime(reverse ? duration - t : t);
			var timeCount	: uint 		= _timeTable.length;

			// change matrix value
			var out : Matrix4x4 = currentTarget[propertyName];
			
			if (!out)
			{
				throw new Error(
					"'" + propertyName
					+ "' could not be found in '"
					+ currentTarget + "'."
				);
			}

			if (timeId == 0)<commit_msg>fix array access cast to uint instead of int in MatrixSegmentTimeline<commit_after>package aerys.minko.type.animation.timeline
{
	import aerys.minko.ns.minko_animation;
	import aerys.minko.scene.node.ISceneNode;
	import aerys.minko.type.math.Matrix4x4;

	use namespace minko_animation;
	
	public final class MatrixSegmentTimeline extends AbstractTimeline
	{
		private var _timeTable	: Vector.<uint>			= null;
		private var _matrices	: Vector.<Matrix4x4>	= null;

		public function MatrixSegmentTimeline(propertyPath		: String,
											  timeTable 		: Vector.<uint>,
											  values			: Vector.<Matrix4x4>)
		{
			super(propertyPath, timeTable[uint(timeTable.length - 1)]);
			
			_timeTable = timeTable;
			_matrices = values;
		}

		override public function updateAt(t : int, target : Object) : void
		{
			super.updateAt(t, target);
			
			var reverse		: Boolean	= t < 0;
			var timeId		: uint 		= getIndexForTime(reverse ? duration - t : t);
			var timeCount	: uint 		= _timeTable.length;

			// change matrix value
			var out : Matrix4x4 = currentTarget[propertyName];
			
			if (!out)
			{
				throw new Error(
					"'" + propertyName
					+ "' could not be found in '"
					+ currentTarget + "'."
				);
			}

			if (timeId == 0)
{'fraction_non_alphanumeric': 0.1046559538524928, 'fraction_numerical': 0.009064688916357644, 'mean_word_length': 2.986863711001642, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5325056', 'n_tokens_mistral': 998, 'n_tokens_neox': 806, 'n_words': 189}