public void LoadSettings()
        {
            var userSettings = DefaultFactory.GetDefaultUserSettings();

            LinkedProgramsData            = new ObservableCollection <LinkedProgramData>(userSettings.GetSettingSerialized <List <LinkedProgramData> >(UserSettingEnum.ConfigLinkedProgramsList) ?? new List <LinkedProgramData>());
            EnableDebugLogs               = userSettings.GetSettingBool(UserSettingEnum.EnableDebugLogs);
            CachePath                     = (CacheEnums.CachePathType)userSettings.GetSettingInt(UserSettingEnum.PreferredCachePath);
            SelectedThumbnailRenderAspec  = (RenderAspectEnum)userSettings.GetSettingInt(UserSettingEnum.Thumbnails3DAspect);
            EnableThumnailColorsByShaders = userSettings.GetSettingBool(UserSettingEnum.EnableThumnailColorsByShaders);
            EnableChangingViewColorChangesThumnailColor = userSettings.GetSettingBool(UserSettingEnum.EnableChangingViewColorChangesThumnailColor);

            EnableMeshDecimation            = userSettings.GetSettingBool(UserSettingEnum.EnableMeshDecimation);
            MinTrianglesForMeshDecimation   = userSettings.GetSettingInt(UserSettingEnum.MinTrianglesForMeshDecimation);
            EnableMaxSizeMBToLoadMeshInView = userSettings.GetSettingBool(UserSettingEnum.EnableMaxSizeMBToLoadMeshInView);
            MaxSizeMBToLoadMeshInView       = userSettings.GetSettingInt(UserSettingEnum.MaxSizeMBToLoadMeshInView);

            EnableReduceThumbnailResolution = userSettings.GetSettingBool(UserSettingEnum.EnableReduceThumbnailResolution);
            EnableReduceThumbnailQuality    = userSettings.GetSettingBool(UserSettingEnum.EnableReduceThumbnailQuality);


            NotifyPropertyChanged(nameof(LinkedProgramsData));
            NotifyPropertyChanged(nameof(EnableDebugLogs));
            NotifyPropertyChanged(nameof(CachePath));
            NotifyPropertyChanged(nameof(SelectedThumbnailRenderAspec));
            NotifyPropertyChanged(nameof(EnableThumnailColorsByShaders));
            NotifyPropertyChanged(nameof(EnableChangingViewColorChangesThumnailColor));
            NotifyPropertyChanged(nameof(EnableMeshDecimation));
            NotifyPropertyChanged(nameof(MinTrianglesForMeshDecimation));
            NotifyPropertyChanged(nameof(EnableMaxSizeMBToLoadMeshInView));
            NotifyPropertyChanged(nameof(MaxSizeMBToLoadMeshInView));
            NotifyPropertyChanged(nameof(EnableReduceThumbnailResolution));
            NotifyPropertyChanged(nameof(EnableReduceThumbnailQuality));
        }
Beispiel #2
0
        public ModelItemListData()
        {
            var userSettings = DefaultFactory.GetDefaultUserSettings();

            _FileOnlyFoldersFilter = userSettings.GetSettingBool(Shared.Enums.UserSettingEnum.EnableTreeOnlyFolders);
            _FileCollectionMode    = userSettings.GetSettingBool(Shared.Enums.UserSettingEnum.EnableTreeCollections);
        }
        public bool LoadDirectories(IEnumerable <string> paths)
        {
            IsLoading               = false;
            MainDispatcher          = Dispatcher.CurrentDispatcher;
            cancellationTokenSource = new CancellationTokenSource();
            cancellationToken       = cancellationTokenSource.Token;

            cache        = DefaultFactory.GetDefaultThumbnailCache();
            userSettings = DefaultFactory.GetDefaultUserSettings();
            renderType   = (RenderAspectEnum)userSettings.GetSettingInt(UserSettingEnum.Thumbnails3DAspect);

            logger.Info("Loading paths: Received: [{0}]", string.Join("] [", paths));
            paths = paths.Where(p1 => !paths.Any(p2 => !p1.Equals(p2) && p1.Contains(p2))).ToArray(); // Remove selected subdirectories of other selected paths.
            logger.Info("Loading paths: After removed subdirs: [{0}]", string.Join("] [", paths));

            try
            {
                IEnumerable <string> pathsFound = new List <string>();
                for (int i = 0; i < SupportedExtensionsFilter.Length; i++)
                {
                    foreach (string path in paths)
                    {
                        pathsFound = pathsFound.Concat(UtilMethods.EnumerateFiles(path, SupportedExtensionsFilter[i], SearchOption.AllDirectories, cancellationToken));
                    }
                }
                pathsFound = pathsFound.ToArray();

                if (cancellationToken.IsCancellationRequested)
                {
                    return(false);
                }

                if (pathsFound.Count() > 0)
                {
                    CalculateThumnailSizes(pathsFound.Count());
                    InitializeFoundFilesObjects(pathsFound);
                    return(true);
                }
                else
                {
                    FilesFound = new ModelFileData[0];
                }
            }
            catch (Exception ex)
            {
                logger.Trace(ex, "Unable to load: {ex}", ex.Message);
            }
            return(false);
        }
Beispiel #4
0
        public void SetLanguage(string newLanguage)
        {
            CultureInfo ci = CultureInfo.CurrentUICulture;

            if (!LoadedLanguages.Contains(newLanguage))
            {
                return;
            }

            IUserSettings settings = DefaultFactory.GetDefaultUserSettings();

            settings.SetSettingString(Shared.Enums.UserSettingEnum.Language, newLanguage);

            CurrentLanguage = newLanguage;
            OnLanguageChanged?.Invoke(newLanguage);
        }
 private int GetFileSizeFromFileName(string fileName)
 {
     if (DefaultFactory.GetDefaultUserSettings().GetSettingBool(UserSettingEnum.EnableThumnailColorsByShaders))
     {
         if (int.TryParse(Regex.Match(fileName, @"\.N\.(\d+)\.png*").Groups[1].Value, out int matched))
         {
             return(matched);
         }
     }
     else
     {
         if (int.TryParse(Regex.Match(fileName, @"\.\d+\.(\d+)\.png*").Groups[1].Value, out int matched))
         {
             return(matched);
         }
     }
     return(0);
 }
        public void SaveSettings()
        {
            var userSettings = DefaultFactory.GetDefaultUserSettings();

            userSettings.SetSettingSerialized <List <LinkedProgramData> >(UserSettingEnum.ConfigLinkedProgramsList, LinkedProgramsData.ToList());
            userSettings.SetSettingBool(UserSettingEnum.EnableDebugLogs, EnableDebugLogs);
            userSettings.SetSettingInt(UserSettingEnum.PreferredCachePath, (int)CachePath);
            userSettings.SetSettingInt(UserSettingEnum.Thumbnails3DAspect, (int)SelectedThumbnailRenderAspec);
            userSettings.SetSettingBool(UserSettingEnum.EnableThumnailColorsByShaders, EnableThumnailColorsByShaders);
            userSettings.SetSettingBool(UserSettingEnum.EnableChangingViewColorChangesThumnailColor, EnableChangingViewColorChangesThumnailColor);

            userSettings.SetSettingBool(UserSettingEnum.EnableMeshDecimation, EnableMeshDecimation);
            userSettings.SetSettingInt(UserSettingEnum.MinTrianglesForMeshDecimation, MinTrianglesForMeshDecimation);
            userSettings.SetSettingBool(UserSettingEnum.EnableMaxSizeMBToLoadMeshInView, EnableMaxSizeMBToLoadMeshInView);
            userSettings.SetSettingInt(UserSettingEnum.MaxSizeMBToLoadMeshInView, MaxSizeMBToLoadMeshInView);

            userSettings.SetSettingBool(UserSettingEnum.EnableReduceThumbnailResolution, EnableReduceThumbnailResolution);
            userSettings.SetSettingBool(UserSettingEnum.EnableReduceThumbnailQuality, EnableReduceThumbnailQuality);
        }
Beispiel #7
0
        private Loc()
        {
            _Ins = this;
            CultureInfo ci = CultureInfo.CurrentUICulture;

            LoadTexts();

            IUserSettings settings = DefaultFactory.GetDefaultUserSettings();

            CurrentLanguage = settings.GetSettingString(Shared.Enums.UserSettingEnum.Language);

            if (string.IsNullOrEmpty(CurrentLanguage))
            {
                logger.Info("Localization: Missing saved language. Setting system language '{0}'", ci.TwoLetterISOLanguageName);
                CurrentLanguage = ci.TwoLetterISOLanguageName;
            }

            if (!LoadedLanguages.Contains(CurrentLanguage))
            {
                logger.Info("Localization: Missing current language '{0}'", CurrentLanguage);
                CurrentLanguage = DefaultLanguage;
            }
        }
        private string GetComposedFileNameForFilter(string fileName, string filePath, RenderAspectEnum renderType)
        {
            bool useNormalMap = DefaultFactory.GetDefaultUserSettings().GetSettingBool(UserSettingEnum.EnableThumnailColorsByShaders);

            return(string.Format($"{fileName}{(uint)filePath.GetHashCode()}.cached.{(useNormalMap ? "N" : ((int)renderType).ToString())}.*.png"));
        }
 private ThumbnailCacheInFolder()
 {
     settings = DefaultFactory.GetDefaultUserSettings();
 }
Beispiel #10
0
        public void SetEnviorementOptions(RenderAspectEnum renderAspect)
        {
            GL.Disable(EnableCap.Light0);
            GL.Disable(EnableCap.Light1);
            GL.Disable(EnableCap.Light2);
            GL.Disable(EnableCap.Light3);

            // InitializeFloorGrid();

            //// Lighting
            {
                float highLight = 1f;

                mat_diffuse1 = null;
                mat_diffuse2 = null;
                mat_diffuse3 = null;
                mat_diffuse4 = null;

                if (DefaultFactory.GetDefaultUserSettings().GetSettingBool(UserSettingEnum.EnableThumnailColorsByShaders))
                {
                    mat_diffuse1    = new float[] { 0f, 1f, 0f };
                    light_position1 = new float[] { 1f, 0f, 0f, 0f };

                    mat_diffuse2    = new float[] { 0f, 0f, 1f };
                    light_position2 = new float[] { 0f, 0f, 1f, 0f };

                    mat_diffuse3    = new float[] { 1f, 0f, 0f };
                    light_position3 = new float[] { 0f, -1f, 0f, 0f };
                }
                else
                {
                    if (renderAspect == RenderAspectEnum.VioletBlue)
                    {
                        mat_diffuse1    = new float[] { Colors.Violet.R / 256f, Colors.Violet.G / 256f, Colors.Violet.B / 256f };
                        light_position1 = new float[] { 0.5f, -1f, 0.5f, 0f };

                        mat_diffuse2    = new float[] { Colors.Blue.R / 256f, Colors.Blue.G / 256f, Colors.Blue.B / 256f };
                        light_position2 = new float[] { 1f, -0.5f, 0.5f, 0f };
                    }
                    else if (renderAspect == RenderAspectEnum.RedOrangeYellow)
                    {
                        mat_diffuse1    = new float[] { 1f, 0f, 0f };
                        light_position1 = new float[] { 1f, 0f, 0f, 0f };

                        mat_diffuse2    = new float[] { 1, 1f, 0f };
                        light_position2 = new float[] { -0f, -1f, 0f, 0f };

                        mat_diffuse3    = new float[] { Colors.Orange.R / 256f, Colors.Orange.G / 256f, Colors.Orange.B / 256f };
                        light_position3 = new float[] { 0f, 0f, 1f, 0f };
                    }
                    else if (renderAspect == RenderAspectEnum.GreenLimeYellow)
                    {
                        mat_diffuse1    = new float[] { 0f, 0.5f, 0f };
                        light_position1 = new float[] { 1f, 0f, 0f, 0f };

                        mat_diffuse2    = new float[] { 1, 1f, 0f };
                        light_position2 = new float[] { -0f, -1f, 0f, 0f };

                        mat_diffuse3    = new float[] { Colors.LimeGreen.R / 256f, Colors.LimeGreen.G / 256f, Colors.LimeGreen.B / 256f };
                        light_position3 = new float[] { 0f, 0f, 1f, 0f };
                    }
                    else if (renderAspect == RenderAspectEnum.PinkFucsiaViolet)
                    {
                        mat_diffuse1    = new float[] { 1f, 0.75f, 0.795f };
                        light_position1 = new float[] { 1f, 0f, 0f, 0f };

                        mat_diffuse2    = new float[] { 0.58f, 0.155f, 0.31f };
                        light_position2 = new float[] { -0f, -1f, 0f, 0f };

                        mat_diffuse3    = new float[] { 0.93f, 0.51f, 0.93f };
                        light_position3 = new float[] { 0f, 0f, 1f, 0f };
                    }
                    else if (renderAspect == RenderAspectEnum.CyanBlue)
                    {
                        mat_diffuse1    = new float[] { 0f, 0f, 1f };
                        light_position1 = new float[] { 1f, 0f, 0f, 0f };

                        mat_diffuse2    = new float[] { 0.39f, 0.58f, 0.92f };
                        light_position2 = new float[] { -0f, -1f, 0f, 0f };

                        mat_diffuse3    = new float[] { 0f, 1f, 1f };
                        light_position3 = new float[] { 0f, 0f, 1f, 0f };
                    }
                    else if (renderAspect == RenderAspectEnum.RedRedish)
                    {
                        mat_diffuse1    = new float[] { 1f, 0f, 0f };
                        light_position1 = new float[] { 1f, 0f, 0f, 0f };

                        mat_diffuse2    = new float[] { 0.5f, 0f, 0f };
                        light_position2 = new float[] { -0f, -1f, 0f, 0f };

                        mat_diffuse3    = new float[] { 0.85f, 0.44f, 0.57f };
                        light_position3 = new float[] { 0f, 0f, 1f, 0f };
                    }
                    else if (renderAspect == RenderAspectEnum.Yellow)
                    {
                        mat_diffuse1    = new float[] { 1f, 1f, 0f };
                        light_position1 = new float[] { 1f, 0f, 0f, 0f };

                        mat_diffuse2    = new float[] { 0.6f, 0.8f, 0.195f };
                        light_position2 = new float[] { -0f, -1f, 0f, 0f };

                        mat_diffuse3    = new float[] { 1f, 1f, 0.87f };
                        light_position3 = new float[] { 0f, 0f, 1f, 0f };
                    }
                    else
                    {
                        if (renderAspect == RenderAspectEnum.PerNormal)
                        {
                            mat_diffuse1    = new float[] { 0f, 0.39f, 0f };
                            light_position1 = new float[] { 1f, 0f, 0f, 0f };

                            mat_diffuse2    = new float[] { 0f, 0f, 0.54f };
                            light_position2 = new float[] { 0f, 0f, 1f, 0f };

                            mat_diffuse3    = new float[] { 0.54f, 0f, 0f };
                            light_position3 = new float[] { 0f, -1f, 0f, 0f };
                        }

                        mat_diffuse4    = new float[] { highLight, highLight, highLight };
                        light_position4 = new float[] { 1f, -1f, 1f, 0f };
                    }
                }
            }
        }