📄 contoureditor.cs
字号:
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 + -