public static void ApplyThisAttributeValue(ref GameObjectData obj, ref PathOutline pO, string attribute, string value, float valueFloat)
        {
            Shapes?shape = null;

            if (attribute == "d")
            {
                D(ref obj, value, out shape);
                if (shape == null)
                {
                    Multi.PathOutline(ref pO, value);
                }
            }
            if (shape != null)
            {
                obj.Shape = shape.Value;
            }
            switch (attribute)
            {
            case "x":
            case "cx": X(ref obj, valueFloat); break;

            case "y":
            case "cy": Y(ref obj, valueFloat); break;

            case "width":
            case "rx": sizeX(ref obj, valueFloat, attribute); break;

            case "height":
            case "ry": sizeY(ref obj, valueFloat, attribute); break;

            case "transform": translate(ref obj, value); break;

            case "r": size(ref obj, valueFloat); break;

            case "stroke": fill(ref obj, value); stroke(ref obj); break;

            case "stroke-width": strokeWidth(ref pO, valueFloat); break;

            case "fill": fill(ref obj, value); break;

            case "x1": x1(ref pO, valueFloat); break;

            case "x2": x2(ref pO, valueFloat); break;

            case "y1": y1(ref pO, valueFloat); break;

            case "y2": y2(ref pO, valueFloat); break;

            case "points": points(ref pO, value); break;

            case "style": style(ref obj, ref pO, value); break;
            }
        }