public static int GetFreeLayer(LayerSearchDirection searchDirection)
        {
            if (searchDirection == LayerSearchDirection.FirstToLast)
            {
                for (int i = 7; i <= 31; i++)
                {
                    if (GetLayer(i) == "")
                    {
                        return(i);
                    }
                }
            }
            else
            {
                for (int i = 31; i >= 7; i--)
                {
                    if (GetLayer(i) == "")
                    {
                        return(i);
                    }
                }
            }

            return(-1);
        }
        public static void AddLayer(string layerName,
                                    LayerSearchDirection searchDirection = LayerSearchDirection.LastToFirst)
        {
            if (IsLayerExists(layerName))
            {
                return;
            }

            int freeLayer = GetFreeLayer(searchDirection);

            SetLayer(freeLayer, layerName);
        }
        public static void AddLayer(string layerName,
                                    LayerSearchDirection searchDirection = LayerSearchDirection.LastToFirst) {
            if (IsLayerExists(layerName)) {
                return;
            }

            int freeLayer = GetFreeLayer(searchDirection);
            SetLayer(freeLayer, layerName);
        }
        public static int GetFreeLayer(LayerSearchDirection searchDirection) {
            if (searchDirection == LayerSearchDirection.FirstToLast) {
                for (int i = 8; i <= 32; i++) {
                    if (GetLayer(i) == "") {
                        return i;
                    }
                }
            } else {
                for (int i = 32; i >= 8; i--) {
                    if (GetLayer(i) == "") {
                        return i;
                    }
                }
            }

            return -1;
        }