⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contoureditor.cs

📁 游戏编程精粹6的光盘源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.Reflection;
using System.IO;

namespace BilevelTextureMagnification
{
	/// <summary>
	/// Main application class
	/// </summary>
	public class ContourEditor : System.Windows.Forms.Form
	{
		private System.ComponentModel.Container components = null;

		private System.Windows.Forms.MenuItem fileMenu;
		private System.Windows.Forms.MenuItem loadBitmapMenuItem;
		private System.Windows.Forms.MenuItem exportTextureMenuItem;
		private System.Windows.Forms.MenuItem exitMenuItem;
		private System.Windows.Forms.MenuItem saveProjectMenuItem;
		private System.Windows.Forms.MenuItem openProjectMenuItem;
		private System.Windows.Forms.MenuItem saveProjectAsMenuItem;
		private System.Windows.Forms.MainMenu mainMenu;
		private System.Windows.Forms.MenuItem viewMenu;
		private System.Windows.Forms.MenuItem viewInputMenuItem;
		private System.Windows.Forms.MenuItem viewOutputMenuItem;
		private System.Windows.Forms.MenuItem previewWithThresholdMenuItem;
		private System.Windows.Forms.MenuItem lineMenuItem1;
		private System.Windows.Forms.MenuItem lineMenuItem2;
		private System.Windows.Forms.MenuItem lineMenuItem3;
		private System.Windows.Forms.MenuItem showImageMenuItem;
		private System.Windows.Forms.MenuItem showSkeletonMenuItem;
		private System.Windows.Forms.MenuItem processMenu;
		private System.Windows.Forms.MenuItem downsampling4MenuItem;
		private System.Windows.Forms.MenuItem downsampling8MenuItem;
		private System.Windows.Forms.MenuItem downsampling16MenuItem;
		private System.Windows.Forms.MenuItem lineMenuItem4;
		private System.Windows.Forms.MenuItem zoomOffMenuItem;
		private System.Windows.Forms.MenuItem zoom2MenuItem;
		private System.Windows.Forms.MenuItem zoom4MenuItem;
		private System.Windows.Forms.MenuItem lineMenuItem5;
		private System.Windows.Forms.MenuItem adjustMetricMenuItem;
		private System.Windows.Forms.MenuItem lineMenuItem6;
		private System.Windows.Forms.MenuItem previewMenuItem;

		private OptimizedTexture myOptimizedTexture;
		private Bitmap displayBitmap;
		private bool displayBitmapIsDirty;
		private int oldBaseX;
		private int oldBaseY;
		private string theFile;

		private AdjustMetricForm myAdjustMetricForm;
		private System.Windows.Forms.MenuItem multicolorMenuItem;
		private System.Windows.Forms.MenuItem extrasMenu;
		private System.Windows.Forms.MenuItem helpMenu;
		private System.Windows.Forms.MenuItem infoMenuItelm;
		private RenderWindow myRenderWindow;

		public ContourEditor()
		{
			InitializeComponent();
			SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);

			Assembly assem = Assembly.GetAssembly(typeof(ContourEditor));
			Stream st = assem.GetManifestResourceStream("BilievelTextureMagnification.Curvy.jpg");
			myOptimizedTexture = new OptimizedTexture(st, getDownsampling());
			st.Close();
			st = null;

			myAdjustMetricForm = new AdjustMetricForm();
			myRenderWindow = RenderWindow.Create();
			myOptimizedTexture.SetEditor(this, myAdjustMetricForm, myRenderWindow);
			AutoScrollMinSize = myOptimizedTexture.GetSize(getZoom());
			Dirty();
		}

		protected override void Dispose( bool disposing )
		{
			if(myOptimizedTexture != null)
			{
				myOptimizedTexture.Dispose(); // first stop this one because it does the updating
			}
			myOptimizedTexture = null;

			if(myRenderWindow != null)
			{
				myRenderWindow.Kill();
			}
			myRenderWindow = null;

			if(myAdjustMetricForm != null)
			{
				myAdjustMetricForm.Dispose();
			}
			myAdjustMetricForm = null;

			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		private void InitializeComponent()
		{
			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ContourEditor));
			this.mainMenu = new System.Windows.Forms.MainMenu();
			this.fileMenu = new System.Windows.Forms.MenuItem();
			this.openProjectMenuItem = new System.Windows.Forms.MenuItem();
			this.saveProjectMenuItem = new System.Windows.Forms.MenuItem();
			this.saveProjectAsMenuItem = new System.Windows.Forms.MenuItem();
			this.lineMenuItem1 = new System.Windows.Forms.MenuItem();
			this.loadBitmapMenuItem = new System.Windows.Forms.MenuItem();
			this.exportTextureMenuItem = new System.Windows.Forms.MenuItem();
			this.lineMenuItem2 = new System.Windows.Forms.MenuItem();
			this.exitMenuItem = new System.Windows.Forms.MenuItem();
			this.processMenu = new System.Windows.Forms.MenuItem();
			this.downsampling4MenuItem = new System.Windows.Forms.MenuItem();
			this.downsampling8MenuItem = new System.Windows.Forms.MenuItem();
			this.downsampling16MenuItem = new System.Windows.Forms.MenuItem();
			this.lineMenuItem5 = new System.Windows.Forms.MenuItem();
			this.adjustMetricMenuItem = new System.Windows.Forms.MenuItem();
			this.viewMenu = new System.Windows.Forms.MenuItem();
			this.viewInputMenuItem = new System.Windows.Forms.MenuItem();
			this.viewOutputMenuItem = new System.Windows.Forms.MenuItem();
			this.previewWithThresholdMenuItem = new System.Windows.Forms.MenuItem();
			this.lineMenuItem3 = new System.Windows.Forms.MenuItem();
			this.showImageMenuItem = new System.Windows.Forms.MenuItem();
			this.showSkeletonMenuItem = new System.Windows.Forms.MenuItem();
			this.lineMenuItem4 = new System.Windows.Forms.MenuItem();
			this.zoomOffMenuItem = new System.Windows.Forms.MenuItem();
			this.zoom2MenuItem = new System.Windows.Forms.MenuItem();
			this.zoom4MenuItem = new System.Windows.Forms.MenuItem();
			this.lineMenuItem6 = new System.Windows.Forms.MenuItem();
			this.previewMenuItem = new System.Windows.Forms.MenuItem();
			this.extrasMenu = new System.Windows.Forms.MenuItem();
			this.multicolorMenuItem = new System.Windows.Forms.MenuItem();
			this.helpMenu = new System.Windows.Forms.MenuItem();
			this.infoMenuItelm = new System.Windows.Forms.MenuItem();
			// 
			// mainMenu
			// 
			this.mainMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					 this.fileMenu,
																					 this.processMenu,
																					 this.viewMenu,
																					 this.extrasMenu,
																					 this.helpMenu});
			// 
			// fileMenu
			// 
			this.fileMenu.Index = 0;
			this.fileMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					 this.openProjectMenuItem,
																					 this.saveProjectMenuItem,
																					 this.saveProjectAsMenuItem,
																					 this.lineMenuItem1,
																					 this.loadBitmapMenuItem,
																					 this.exportTextureMenuItem,
																					 this.lineMenuItem2,
																					 this.exitMenuItem});
			this.fileMenu.Text = "&File";
			// 
			// openProjectMenuItem
			// 
			this.openProjectMenuItem.Index = 0;
			this.openProjectMenuItem.Text = "&Open Project ...";
			this.openProjectMenuItem.Click += new System.EventHandler(this.openProject);
			// 
			// saveProjectMenuItem
			// 
			this.saveProjectMenuItem.Index = 1;
			this.saveProjectMenuItem.Text = "&Save Project";
			this.saveProjectMenuItem.Click += new System.EventHandler(this.saveProject);
			// 
			// saveProjectAsMenuItem
			// 
			this.saveProjectAsMenuItem.Index = 2;
			this.saveProjectAsMenuItem.Text = "Save Project &As ...";
			this.saveProjectAsMenuItem.Click += new System.EventHandler(this.saveProjectAs);
			// 
			// lineMenuItem1
			// 
			this.lineMenuItem1.Index = 3;
			this.lineMenuItem1.Text = "-";
			// 
			// loadBitmapMenuItem
			// 
			this.loadBitmapMenuItem.Index = 4;
			this.loadBitmapMenuItem.Text = "Load &Bitmap ...";
			this.loadBitmapMenuItem.Click += new System.EventHandler(this.loadBitmap);
			// 
			// exportTextureMenuItem
			// 
			this.exportTextureMenuItem.Index = 5;
			this.exportTextureMenuItem.Text = "Export &Texture ...";
			this.exportTextureMenuItem.Click += new System.EventHandler(this.exportTexture);
			// 
			// lineMenuItem2
			// 
			this.lineMenuItem2.Index = 6;
			this.lineMenuItem2.Text = "-";
			// 
			// exitMenuItem
			// 
			this.exitMenuItem.Index = 7;
			this.exitMenuItem.Text = "E&xit";
			this.exitMenuItem.Click += new System.EventHandler(this.exit);
			// 
			// processMenu
			// 
			this.processMenu.Index = 1;
			this.processMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																						this.downsampling4MenuItem,
																						this.downsampling8MenuItem,
																						this.downsampling16MenuItem,
																						this.lineMenuItem5,
																						this.adjustMetricMenuItem});
			this.processMenu.Text = "&Process";
			// 
			// downsampling4MenuItem
			// 
			this.downsampling4MenuItem.Index = 0;
			this.downsampling4MenuItem.RadioCheck = true;
			this.downsampling4MenuItem.Text = "Downsampling by &4";
			this.downsampling4MenuItem.Click += new System.EventHandler(this.changeDownsampling);
			// 
			// downsampling8MenuItem
			// 
			this.downsampling8MenuItem.Index = 1;
			this.downsampling8MenuItem.RadioCheck = true;
			this.downsampling8MenuItem.Text = "Downsampling by &8";
			this.downsampling8MenuItem.Click += new System.EventHandler(this.changeDownsampling);
			// 
			// downsampling16MenuItem
			// 
			this.downsampling16MenuItem.Checked = true;
			this.downsampling16MenuItem.Index = 2;
			this.downsampling16MenuItem.RadioCheck = true;
			this.downsampling16MenuItem.Text = "Downsampling by &16";
			this.downsampling16MenuItem.Click += new System.EventHandler(this.changeDownsampling);
			// 
			// lineMenuItem5
			// 
			this.lineMenuItem5.Index = 3;
			this.lineMenuItem5.Text = "-";
			// 
			// adjustMetricMenuItem
			// 
			this.adjustMetricMenuItem.Index = 4;
			this.adjustMetricMenuItem.Text = "Show/Hide &Adjust Metric Dialog";
			this.adjustMetricMenuItem.Click += new System.EventHandler(this.adjustMetric);
			// 
			// viewMenu
			// 
			this.viewMenu.Index = 2;
			this.viewMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					 this.viewInputMenuItem,
																					 this.viewOutputMenuItem,
																					 this.previewWithThresholdMenuItem,
																					 this.lineMenuItem3,
																					 this.showImageMenuItem,
																					 this.showSkeletonMenuItem,
																					 this.lineMenuItem4,
																					 this.zoomOffMenuItem,
																					 this.zoom2MenuItem,
																					 this.zoom4MenuItem,
																					 this.lineMenuItem6,
																					 this.previewMenuItem});
			this.viewMenu.RadioCheck = true;
			this.viewMenu.Text = "&View";
			// 
			// viewInputMenuItem
			// 
			this.viewInputMenuItem.Index = 0;
			this.viewInputMenuItem.RadioCheck = true;
			this.viewInputMenuItem.Text = "&Input";
			this.viewInputMenuItem.Click += new System.EventHandler(this.changeViewType);
			// 
			// viewOutputMenuItem
			// 
			this.viewOutputMenuItem.Index = 1;
			this.viewOutputMenuItem.RadioCheck = true;
			this.viewOutputMenuItem.Text = "&Output";
			this.viewOutputMenuItem.Click += new System.EventHandler(this.changeViewType);
			// 
			// previewWithThresholdMenuItem
			// 
			this.previewWithThresholdMenuItem.Checked = true;
			this.previewWithThresholdMenuItem.Index = 2;
			this.previewWithThresholdMenuItem.RadioCheck = true;
			this.previewWithThresholdMenuItem.Text = "&Thresholded Output";
			this.previewWithThresholdMenuItem.Click += new System.EventHandler(this.changeViewType);
			// 
			// lineMenuItem3
			// 
			this.lineMenuItem3.Index = 3;
			this.lineMenuItem3.Text = "-";
			// 
			// showImageMenuItem
			// 
			this.showImageMenuItem.Checked = true;
			this.showImageMenuItem.Index = 4;
			this.showImageMenuItem.Text = "Show &Image";
			this.showImageMenuItem.Click += new System.EventHandler(this.showImage);
			// 
			// showSkeletonMenuItem
			// 
			this.showSkeletonMenuItem.Checked = true;
			this.showSkeletonMenuItem.Index = 5;
			this.showSkeletonMenuItem.Text = "Show Skeleton";
			this.showSkeletonMenuItem.Click += new System.EventHandler(this.showSkeleton);
			// 
			// lineMenuItem4
			// 
			this.lineMenuItem4.Index = 6;
			this.lineMenuItem4.Text = "-";
			// 
			// zoomOffMenuItem
			// 
			this.zoomOffMenuItem.Checked = true;
			this.zoomOffMenuItem.Index = 7;
			this.zoomOffMenuItem.RadioCheck = true;
			this.zoomOffMenuItem.Text = "Zoom &Off";
			this.zoomOffMenuItem.Click += new System.EventHandler(this.changeZoom);
			// 
			// zoom2MenuItem
			// 
			this.zoom2MenuItem.Index = 8;
			this.zoom2MenuItem.RadioCheck = true;
			this.zoom2MenuItem.Text = "Zoom &2x";
			this.zoom2MenuItem.Click += new System.EventHandler(this.changeZoom);
			// 
			// zoom4MenuItem
			// 
			this.zoom4MenuItem.Index = 9;
			this.zoom4MenuItem.RadioCheck = true;
			this.zoom4MenuItem.Text = "Zoom &4x";
			this.zoom4MenuItem.Click += new System.EventHandler(this.changeZoom);
			// 
			// lineMenuItem6
			// 
			this.lineMenuItem6.Index = 10;
			this.lineMenuItem6.Text = "-";
			// 
			// previewMenuItem
			// 
			this.previewMenuItem.Index = 11;
			this.previewMenuItem.Text = "Show/Hide &3D Preview";
			this.previewMenuItem.Click += new System.EventHandler(this.showHidePreview);
			// 
			// extrasMenu
			// 
			this.extrasMenu.Index = 3;
			this.extrasMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					   this.multicolorMenuItem});
			this.extrasMenu.Text = "&Extras";
			// 
			// multicolorMenuItem
			// 
			this.multicolorMenuItem.Index = 0;
			this.multicolorMenuItem.Text = "&Multicolor ...";
			this.multicolorMenuItem.Click += new System.EventHandler(this.multicolor);
			// 
			// helpMenu
			// 
			this.helpMenu.Index = 4;
			this.helpMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
																					 this.infoMenuItelm});
			this.helpMenu.Text = "&Help";
			// 
			// infoMenuItelm
			// 
			this.infoMenuItelm.Index = 0;
			this.infoMenuItelm.Text = "Inf&o ...";
			this.infoMenuItelm.Click += new System.EventHandler(this.info);
			// 
			// ContourEditor
			// 
			this.AutoScale = false;
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.AutoScroll = true;
			this.BackColor = System.Drawing.Color.White;
			this.ClientSize = new System.Drawing.Size(904, 726);
			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
			this.KeyPreview = true;
			this.Menu = this.mainMenu;
			this.Name = "ContourEditor";
			this.Text = "Contour Editor";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -