protected override object ParseValue(IValue value)
        {
            var vObject = (VObject)value;

            var floatParameter = new FloatParameter("float");
            var floats         = vObject.Variables.Select(value1 => (float)floatParameter.Parse(value1)).ToArray();

            return(new Vector3(floats[0], floats[1], floats[2]));
        }
        public override bool CanParse(IValue value)
        {
            var vObject = value as VObject;

            if (vObject == null || vObject.Variables.Count != 4)
            {
                return(false);
            }

            var floatParameter = new FloatParameter("dummy");

            return(vObject.Variables.All(floatParameter.CanParse));
        }
        protected override object ParseValue(IValue value)
        {
            var vObject = (VObject)value;

            if (vObject == null)
            {
                throw new ParameterException("Cannot parse to color when it is not an Object", this);
            }

            var floatParameter = new FloatParameter("dummy");
            var channels       = vObject.Variables.Select(value1 => (float)floatParameter.Parse(value1)).ToArray();

            return(new Color(channels[0], channels[1], channels[2], channels[3]));
        }