GaelVanhalst

Unwrapper: PreviewScreen

Jan 25th, 2016
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.66 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using GalaSoft.MvvmLight;
  5. using GalaSoft.MvvmLight.CommandWpf;
  6. using Unwrapper.Elements;
  7. using Unwrapper.PreviewScreen;
  8. using Unwrapper.View;
  9.  
  10. namespace Unwrapper.ViewModel
  11. {
  12.     public class PreviewScreenViewModel : ViewModelBase
  13.     {
  14.  
  15.         private double _renderSize=double.NaN;
  16.  
  17.         public double RenderSize
  18.         {
  19.             get { return _renderSize; }
  20.             set
  21.             {
  22.                    _renderSize = value;
  23.                    RaisePropertyChanged(() => RenderSize);
  24.             }
  25.         }
  26.  
  27.         public RelayCommand ChangeRenderSizeCommand { get; set; }
  28.         public RelayCommand RenderCommand { get; set; }
  29.         public RelayCommand ResetRenderSizeCommand { get; set; }
  30.         public RelayCommand OpenTextureCommand { get; set; }
  31.        
  32.         public RelayCommand<CancelEventArgs> ClosingCommand { get; set; }
  33.  
  34.         public PreviewScreenViewModel()
  35.         {
  36.             ChangeRenderSizeCommand=new RelayCommand(ChangeRenderSize);
  37.             RenderCommand=new RelayCommand(Render);
  38.             ResetRenderSizeCommand=new RelayCommand(ResetRenderSize);
  39.             OpenTextureCommand= new RelayCommand(LoadTexture);
  40.  
  41.             ClosingCommand=new RelayCommand<CancelEventArgs>(Window_Closing);
  42.         }
  43.  
  44.         public DX10Viewport TheViewport { get; set; }
  45.  
  46.  
  47.         public void LoadModel(List<PolygonUW> polygons)
  48.         {
  49.             if (TheViewport == null) return;
  50.             TheViewport.LoadModel(polygons);
  51.         }
  52.  
  53.         private void ChangeRenderSize()
  54.         {
  55.             var window=new ChangeSizeWindow();
  56.             var locator = window.DataContext as ViewModelLocator;
  57.             if (locator != null) locator.ChangeSizeScreen.ParentWindow = this;
  58.             window.ShowDialog();
  59.         }
  60.  
  61.         private void Render()
  62.         {
  63.             if (TheViewport == null) return;
  64.             // Configure save file dialog box
  65.             Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
  66.             dlg.DefaultExt = ".dds"; // Default file extension
  67.             dlg.Filter = "(dds)|*.dds"; // Filter files by extension
  68.  
  69.             // Show save file dialog box
  70.             Nullable<bool> result = dlg.ShowDialog();
  71.  
  72.             // Process save file dialog box results
  73.             if (result == true)
  74.             {
  75.                 // Save document
  76.                 string filename = dlg.FileName;
  77.  
  78.                 TheViewport.RenderToImage(filename);
  79.             }
  80.            
  81.         }
  82.  
  83.         private void ResetRenderSize()
  84.         {
  85.             RenderSize = double.NaN;
  86.         }
  87.  
  88.         private void Window_Closing(CancelEventArgs e)
  89.         {
  90.             e.Cancel = true;
  91.         }
  92.  
  93.         private void LoadTexture()
  94.         {
  95.             if (TheViewport == null) return;
  96.             // Configure open file dialog box
  97.             Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
  98.             dlg.DefaultExt = ".png"; // Default file extension
  99.             dlg.Filter = "(png)|*.png|(jpeg)|*.jpg|(tga)|*.tga|(dds)|*.dds"; // Filter files by extension
  100.  
  101.             // Show save file dialog box
  102.             Nullable<bool> result = dlg.ShowDialog();
  103.  
  104.             // Process save file dialog box results
  105.             if (result == true)
  106.             {
  107.                 // Save document
  108.                 string filename = dlg.FileName;
  109.                
  110.                 TheViewport.LoadImage(filename);
  111.             }
  112.         }
  113.  
  114.         public void ChangeSizeRenderer(double size)
  115.         {
  116.             RenderSize = size;
  117.         }
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment