﻿using System;

namespace Oni.Dae
{
    internal class TransformScale : Transform
    {
        private static readonly string[] valueNames = new[] { "X", "Y", "Z" };

        public TransformScale()
            : base(3)
        {
        }

        public TransformScale(string sid, Vector3 scale)
            : base(sid, 3)
        {
            Scale = scale;
        }

        public Vector3 Scale
        {
            get { return new Vector3(Values); }
            set { value.CopyTo(Values); }
        }

        public override Matrix ToMatrix() => Matrix.CreateScale(Scale);

        public override int ValueNameToValueIndex(string name) => Array.FindIndex(valueNames, x => string.Equals(x, name, StringComparison.OrdinalIgnoreCase));
        public override string ValueIndexToValueName(int index) => valueNames[index];
    }
}
