private IGTextureGenerator GetActiveGenerator()
        {
            GTextureGenerationMode mode = GTextureToolParams.Instance.General.Mode;
            string className            = "G" + mode.ToString() + "Generator";
            Type   type = GCommon.GetAllLoadedTypes().Find(t => t.Name.Equals(className));

            if (type != null && type.GetInterface(typeof(IGTextureGenerator).Name) != null)
            {
                return(Activator.CreateInstance(type) as IGTextureGenerator);
            }

            return(null);
        }
        private void RecordAnalytics()
        {
            GTextureGenerationMode mode = GTextureToolParams.Instance.General.Mode;
            string url =
                mode == GTextureGenerationMode.HeightMap ? GAnalytics.TEXTURE_CREATOR_HEIGHT_MAP :
                mode == GTextureGenerationMode.HeightMapFromMesh ? GAnalytics.TEXTURE_CREATOR_HEIGHT_MAP_FROM_MESH :
                mode == GTextureGenerationMode.NormalMap ? GAnalytics.TEXTURE_CREATOR_NORMAL_MAP :
                mode == GTextureGenerationMode.SteepnessMap ? GAnalytics.TEXTURE_CREATOR_STEEPNESS_MAP :
                mode == GTextureGenerationMode.ColorMap ? GAnalytics.TEXTURE_CREATOR_COLOR_MAP :
                mode == GTextureGenerationMode.NoiseMap ? GAnalytics.TEXTURE_CREATOR_NOISE_MAP :
                mode == GTextureGenerationMode.BlendMap ? GAnalytics.TEXTURE_CREATOR_BLEND_MAP :
                mode == GTextureGenerationMode.FoliageDistributionMap ? GAnalytics.TEXTURE_CREATOR_FOLIAGE_DISTRIBUTION_MAP : string.Empty;

            GAnalytics.Record(url);
        }
        private void DrawSpecificParamsGUI()
        {
            string id    = "texture-editor-specific";
            string label = "Specific Parameters";

            GEditorCommon.Foldout(label, true, id, () =>
            {
                GTextureGenerationMode mode = GTextureToolParams.Instance.General.Mode;
                string methodName           = "Draw" + mode.ToString() + "Params";
                MethodInfo guiMethod        = typeof(GTextureEditorWindow).GetMethod(methodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
                if (guiMethod != null)
                {
                    guiMethod.Invoke(this, null);
                }
            });
        }