void UMovieSceneVectorSection::AddKey( float Time, FName CurveName, const FVector4& Value )
{
	Modify();

	if( CurveName == NAME_None )
	{
		check(ChannelsUsed >= 2 && ChannelsUsed <= 4);

		for (int32 i = 0; i < ChannelsUsed; ++i)
		{
			Curves[i].UpdateOrAddKey(Time, Value[i]);
		}
	}
	else
	{
		AddKeyToNamedCurve( Time, CurveName, Value );
	}
}
void UMovieScene2DTransformSection::AddKey( float Time, const struct F2DTransformKey& TransformKey )
{
	Modify();

	if(TransformKey.CurveName == NAME_None)
	{
		AddKeyToCurve(Translation[0], Time, TransformKey.Value.Translation.X);
		AddKeyToCurve(Translation[1], Time, TransformKey.Value.Translation.Y);
		AddKeyToCurve(Scale[0], Time, TransformKey.Value.Scale.X);
		AddKeyToCurve(Scale[1], Time, TransformKey.Value.Scale.Y);
		AddKeyToCurve(Shear[0], Time, TransformKey.Value.Shear.X);
		AddKeyToCurve(Shear[1], Time, TransformKey.Value.Shear.Y);
		AddKeyToCurve(Rotation, Time, TransformKey.Value.Angle);
	}
	else
	{
		AddKeyToNamedCurve(Time, TransformKey);
	}
}