Rename MeshExplorer to Triangle.Viewer (keeping old namespace for now).

This commit is contained in:
wo80
2022-03-05 01:07:05 +01:00
parent 23c2682c6e
commit 4484c6c31a
60 changed files with 3 additions and 2 deletions
+145
View File
@@ -0,0 +1,145 @@
namespace MeshExplorer.Views
{
partial class AboutView
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lbCodeplex = new System.Windows.Forms.Label();
this.label15 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label19 = new System.Windows.Forms.Label();
this.label18 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.lbShortcuts = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lbCodeplex
//
this.lbCodeplex.AutoSize = true;
this.lbCodeplex.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point);
this.lbCodeplex.ForeColor = System.Drawing.Color.White;
this.lbCodeplex.Location = new System.Drawing.Point(72, 82);
this.lbCodeplex.Name = "lbCodeplex";
this.lbCodeplex.Size = new System.Drawing.Size(166, 13);
this.lbCodeplex.TabIndex = 9;
this.lbCodeplex.Text = "github.com/wo80/Triangle.NET";
this.lbCodeplex.Click += new System.EventHandler(this.lbCodeplex_Clicked);
//
// label15
//
this.label15.AutoSize = true;
this.label15.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
this.label15.ForeColor = System.Drawing.Color.White;
this.label15.Location = new System.Drawing.Point(10, 17);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(72, 13);
this.label15.TabIndex = 7;
this.label15.Text = "Triangle.NET";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(10, 132);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(108, 13);
this.label1.TabIndex = 8;
this.label1.Text = "Keyboard shortcuts";
//
// label19
//
this.label19.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.label19.ForeColor = System.Drawing.Color.White;
this.label19.Location = new System.Drawing.Point(72, 42);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(134, 40);
this.label19.TabIndex = 6;
this.label19.Text = "Beta 5 (2022-03-05)\r\nChristian Woltering";
//
// label18
//
this.label18.ForeColor = System.Drawing.Color.White;
this.label18.Location = new System.Drawing.Point(15, 42);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(51, 40);
this.label18.TabIndex = 4;
this.label18.Text = "Version:\r\nAuthor:";
this.label18.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// label7
//
this.label7.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.label7.ForeColor = System.Drawing.Color.White;
this.label7.Location = new System.Drawing.Point(72, 155);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(134, 108);
this.label7.TabIndex = 5;
this.label7.Text = "File Open\r\nFile Save\r\nReload Input\r\n\r\nTriangulate / Refine\r\nSmooth\r\n\r\nShow Log";
//
// lbShortcuts
//
this.lbShortcuts.ForeColor = System.Drawing.Color.White;
this.lbShortcuts.Location = new System.Drawing.Point(24, 155);
this.lbShortcuts.Name = "lbShortcuts";
this.lbShortcuts.Size = new System.Drawing.Size(36, 108);
this.lbShortcuts.TabIndex = 3;
this.lbShortcuts.Text = "F3\r\nF4\r\nF5\r\n\r\nF8\r\nF9\r\n\r\nF12";
this.lbShortcuts.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// AboutView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.DimGray;
this.Controls.Add(this.lbCodeplex);
this.Controls.Add(this.label15);
this.Controls.Add(this.label1);
this.Controls.Add(this.label19);
this.Controls.Add(this.label18);
this.Controls.Add(this.label7);
this.Controls.Add(this.lbShortcuts);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.ForeColor = System.Drawing.Color.DarkGray;
this.Name = "AboutView";
this.Size = new System.Drawing.Size(272, 509);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lbCodeplex;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.Label label18;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label lbShortcuts;
}
}
+51
View File
@@ -0,0 +1,51 @@
using System;
using System.Diagnostics;
using System.Windows.Forms;
using TriangleNet;
using TriangleNet.Geometry;
namespace MeshExplorer.Views
{
public partial class AboutView : UserControl, IView
{
public AboutView()
{
InitializeComponent();
}
private void lbCodeplex_Clicked(object sender, EventArgs e)
{
try
{
var info = new ProcessStartInfo("https://github.com/wo80/Triangle.NET")
{
UseShellExecute = true
};
Process.Start(info);
}
catch (Exception)
{ }
}
#region IView
public void HandleNewInput(IPolygon geometry)
{
}
public void HandleMeshImport(IPolygon geometry, Mesh mesh)
{
}
public void HandleMeshUpdate(Mesh mesh)
{
}
public void HandleMeshChange(Mesh mesh)
{
}
#endregion
}
}
+60
View File
@@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+22
View File
@@ -0,0 +1,22 @@
// -----------------------------------------------------------------------
// <copyright file="IView.cs" company="">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------
namespace MeshExplorer.Views
{
using TriangleNet;
using TriangleNet.Geometry;
/// <summary>
/// TODO: Update summary.
/// </summary>
public interface IView
{
void HandleNewInput(IPolygon geometry);
void HandleMeshImport(IPolygon geometry, Mesh mesh);
void HandleMeshUpdate(Mesh mesh);
void HandleMeshChange(Mesh mesh);
}
}
+289
View File
@@ -0,0 +1,289 @@
namespace MeshExplorer.Views
{
partial class MeshControlView
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lbMaxArea = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.lbMinAngle = new System.Windows.Forms.Label();
this.label23 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.lbMaxAngle = new System.Windows.Forms.Label();
this.cbSweepline = new MeshExplorer.Controls.DarkCheckBox();
this.slMaxAngle = new MeshExplorer.Controls.DarkSlider();
this.slMaxArea = new MeshExplorer.Controls.DarkSlider();
this.slMinAngle = new MeshExplorer.Controls.DarkSlider();
this.cbConformDel = new MeshExplorer.Controls.DarkCheckBox();
this.cbConvex = new MeshExplorer.Controls.DarkCheckBox();
this.cbQuality = new MeshExplorer.Controls.DarkCheckBox();
this.SuspendLayout();
//
// lbMaxArea
//
this.lbMaxArea.AutoSize = true;
this.lbMaxArea.ForeColor = System.Drawing.Color.White;
this.lbMaxArea.Location = new System.Drawing.Point(227, 87);
this.lbMaxArea.Name = "lbMaxArea";
this.lbMaxArea.Size = new System.Drawing.Size(13, 13);
this.lbMaxArea.TabIndex = 20;
this.lbMaxArea.Text = "0";
//
// label6
//
this.label6.AutoSize = true;
this.label6.ForeColor = System.Drawing.Color.White;
this.label6.Location = new System.Drawing.Point(8, 86);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(81, 13);
this.label6.TabIndex = 23;
this.label6.Text = "Maximum area";
//
// lbMinAngle
//
this.lbMinAngle.AutoSize = true;
this.lbMinAngle.ForeColor = System.Drawing.Color.White;
this.lbMinAngle.Location = new System.Drawing.Point(227, 43);
this.lbMinAngle.Name = "lbMinAngle";
this.lbMinAngle.Size = new System.Drawing.Size(19, 13);
this.lbMinAngle.TabIndex = 22;
this.lbMinAngle.Text = "20";
//
// label23
//
this.label23.BackColor = System.Drawing.Color.DimGray;
this.label23.ForeColor = System.Drawing.Color.DarkGray;
this.label23.Location = new System.Drawing.Point(8, 173);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(251, 33);
this.label23.TabIndex = 24;
this.label23.Text = "Ensure that all triangles in the mesh are truly Delaunay, and not just constraine" +
"d Delaunay.";
//
// label9
//
this.label9.BackColor = System.Drawing.Color.DimGray;
this.label9.ForeColor = System.Drawing.Color.DarkGray;
this.label9.Location = new System.Drawing.Point(8, 237);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(258, 33);
this.label9.TabIndex = 26;
this.label9.Text = "Use the convex mesh option, if the convex hull should be included in the output.";
//
// label8
//
this.label8.BackColor = System.Drawing.Color.DimGray;
this.label8.ForeColor = System.Drawing.Color.DarkGray;
this.label8.Location = new System.Drawing.Point(8, 110);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(258, 33);
this.label8.TabIndex = 25;
this.label8.Text = "Hint: maximum area values of 0 or 1 will be irgnored (no area constraints are set" +
").";
//
// label5
//
this.label5.AutoSize = true;
this.label5.ForeColor = System.Drawing.Color.White;
this.label5.Location = new System.Drawing.Point(8, 42);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(87, 13);
this.label5.TabIndex = 21;
this.label5.Text = "Minimum angle";
//
// label1
//
this.label1.BackColor = System.Drawing.Color.DimGray;
this.label1.ForeColor = System.Drawing.Color.DarkGray;
this.label1.Location = new System.Drawing.Point(8, 304);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(258, 33);
this.label1.TabIndex = 26;
this.label1.Text = "Use Sweepline algorithm for triangulation instead of default Divide && Conquer.";
//
// label2
//
this.label2.AutoSize = true;
this.label2.ForeColor = System.Drawing.Color.White;
this.label2.Location = new System.Drawing.Point(8, 64);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(88, 13);
this.label2.TabIndex = 21;
this.label2.Text = "Maximum angle";
//
// lbMaxAngle
//
this.lbMaxAngle.AutoSize = true;
this.lbMaxAngle.ForeColor = System.Drawing.Color.White;
this.lbMaxAngle.Location = new System.Drawing.Point(227, 65);
this.lbMaxAngle.Name = "lbMaxAngle";
this.lbMaxAngle.Size = new System.Drawing.Size(25, 13);
this.lbMaxAngle.TabIndex = 22;
this.lbMaxAngle.Text = "180";
//
// cbSweepline
//
this.cbSweepline.BackColor = System.Drawing.Color.DimGray;
this.cbSweepline.Checked = false;
this.cbSweepline.Location = new System.Drawing.Point(11, 278);
this.cbSweepline.Name = "cbSweepline";
this.cbSweepline.Size = new System.Drawing.Size(181, 23);
this.cbSweepline.TabIndex = 27;
this.cbSweepline.Text = "Use Sweepline algorithm";
this.cbSweepline.UseVisualStyleBackColor = false;
//
// slMaxAngle
//
this.slMaxAngle.BackColor = System.Drawing.Color.Transparent;
this.slMaxAngle.CriticalPercent = ((uint)(89u));
this.slMaxAngle.Location = new System.Drawing.Point(102, 61);
this.slMaxAngle.Maximum = 100;
this.slMaxAngle.Minimum = 0;
this.slMaxAngle.Name = "slMaxAngle";
this.slMaxAngle.Size = new System.Drawing.Size(119, 18);
this.slMaxAngle.TabIndex = 18;
this.slMaxAngle.Text = "darkSlider1";
this.slMaxAngle.Value = 0;
this.slMaxAngle.ValueChanging += new System.EventHandler(this.slMaxAngle_ValueChanging);
//
// slMaxArea
//
this.slMaxArea.BackColor = System.Drawing.Color.Transparent;
this.slMaxArea.CriticalPercent = ((uint)(0u));
this.slMaxArea.Location = new System.Drawing.Point(102, 83);
this.slMaxArea.Maximum = 100;
this.slMaxArea.Minimum = 0;
this.slMaxArea.Name = "slMaxArea";
this.slMaxArea.Size = new System.Drawing.Size(119, 18);
this.slMaxArea.TabIndex = 19;
this.slMaxArea.Text = "darkSlider1";
this.slMaxArea.Value = 0;
this.slMaxArea.ValueChanging += new System.EventHandler(this.slMaxArea_ValueChanging);
//
// slMinAngle
//
this.slMinAngle.BackColor = System.Drawing.Color.Transparent;
this.slMinAngle.CriticalPercent = ((uint)(89u));
this.slMinAngle.Location = new System.Drawing.Point(102, 39);
this.slMinAngle.Maximum = 100;
this.slMinAngle.Minimum = 0;
this.slMinAngle.Name = "slMinAngle";
this.slMinAngle.Size = new System.Drawing.Size(119, 18);
this.slMinAngle.TabIndex = 18;
this.slMinAngle.Text = "darkSlider1";
this.slMinAngle.Value = 50;
this.slMinAngle.ValueChanging += new System.EventHandler(this.slMinAngle_ValueChanging);
//
// cbConformDel
//
this.cbConformDel.BackColor = System.Drawing.Color.DimGray;
this.cbConformDel.Checked = false;
this.cbConformDel.Location = new System.Drawing.Point(11, 153);
this.cbConformDel.Name = "cbConformDel";
this.cbConformDel.Size = new System.Drawing.Size(142, 17);
this.cbConformDel.TabIndex = 16;
this.cbConformDel.Text = "Conforming Delaunay";
this.cbConformDel.UseVisualStyleBackColor = false;
//
// cbConvex
//
this.cbConvex.BackColor = System.Drawing.Color.DimGray;
this.cbConvex.Checked = false;
this.cbConvex.Location = new System.Drawing.Point(11, 217);
this.cbConvex.Name = "cbConvex";
this.cbConvex.Size = new System.Drawing.Size(115, 17);
this.cbConvex.TabIndex = 15;
this.cbConvex.Text = "Convex mesh";
this.cbConvex.UseVisualStyleBackColor = false;
//
// cbQuality
//
this.cbQuality.BackColor = System.Drawing.Color.DimGray;
this.cbQuality.Checked = false;
this.cbQuality.Location = new System.Drawing.Point(11, 16);
this.cbQuality.Name = "cbQuality";
this.cbQuality.Size = new System.Drawing.Size(115, 17);
this.cbQuality.TabIndex = 17;
this.cbQuality.Text = "Quality mesh";
this.cbQuality.UseVisualStyleBackColor = false;
//
// MeshControlView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.DimGray;
this.Controls.Add(this.cbSweepline);
this.Controls.Add(this.lbMaxArea);
this.Controls.Add(this.label6);
this.Controls.Add(this.lbMaxAngle);
this.Controls.Add(this.lbMinAngle);
this.Controls.Add(this.label23);
this.Controls.Add(this.label1);
this.Controls.Add(this.label9);
this.Controls.Add(this.label8);
this.Controls.Add(this.label2);
this.Controls.Add(this.label5);
this.Controls.Add(this.slMaxAngle);
this.Controls.Add(this.slMaxArea);
this.Controls.Add(this.slMinAngle);
this.Controls.Add(this.cbConformDel);
this.Controls.Add(this.cbConvex);
this.Controls.Add(this.cbQuality);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ForeColor = System.Drawing.Color.DarkGray;
this.Name = "MeshControlView";
this.Size = new System.Drawing.Size(272, 509);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lbMaxArea;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label lbMinAngle;
private System.Windows.Forms.Label label23;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label5;
private Controls.DarkSlider slMaxArea;
private Controls.DarkSlider slMinAngle;
private Controls.DarkCheckBox cbConformDel;
private Controls.DarkCheckBox cbConvex;
private Controls.DarkCheckBox cbQuality;
private Controls.DarkCheckBox cbSweepline;
private System.Windows.Forms.Label label1;
private Controls.DarkSlider slMaxAngle;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label lbMaxAngle;
}
}
@@ -0,0 +1,91 @@
using System;
using System.Windows.Forms;
using TriangleNet;
using TriangleNet.Geometry;
namespace MeshExplorer.Views
{
public partial class MeshControlView : UserControl, IView
{
public MeshControlView()
{
InitializeComponent();
}
public bool ParamQualityChecked
{
get { return cbQuality.Checked; }
}
public bool ParamConvexChecked
{
get { return cbConvex.Checked; }
}
public bool ParamConformDelChecked
{
get { return cbConformDel.Checked; }
}
public bool ParamSweeplineChecked
{
get { return cbSweepline.Checked; }
}
public int ParamMinAngleValue
{
get { return (slMinAngle.Value * 40) / 100; }
}
public int ParamMaxAngleValue
{
get { return 80 + (100 - slMaxAngle.Value); }
}
public double ParamMaxAreaValue
{
get { return slMaxArea.Value * 0.01; }
}
private void slMinAngle_ValueChanging(object sender, EventArgs e)
{
// Between 0 and 40 (step 1)
int angle = (slMinAngle.Value * 40) / 100;
lbMinAngle.Text = angle.ToString();
}
private void slMaxAngle_ValueChanging(object sender, EventArgs e)
{
// Between 180 and 80 (step 1)
int angle = 80 + (100 - slMaxAngle.Value);
lbMaxAngle.Text = angle.ToString();
}
private void slMaxArea_ValueChanging(object sender, EventArgs e)
{
// Between 0 and 1 (step 0.01)
double area = slMaxArea.Value * 0.01;
lbMaxArea.Text = area.ToString(Util.Nfi);
}
#region IView
public void HandleNewInput(IPolygon geometry)
{
}
public void HandleMeshImport(IPolygon geometry, Mesh mesh)
{
}
public void HandleMeshUpdate(Mesh mesh)
{
}
public void HandleMeshChange(Mesh mesh)
{
}
#endregion
}
}
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+483
View File
@@ -0,0 +1,483 @@
namespace MeshExplorer.Views
{
partial class StatisticView
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label20 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.lbNumSeg = new System.Windows.Forms.Label();
this.lbNumSeg2 = new System.Windows.Forms.Label();
this.lbNumTri = new System.Windows.Forms.Label();
this.lbNumTri2 = new System.Windows.Forms.Label();
this.lbNumVert = new System.Windows.Forms.Label();
this.lbNumVert2 = new System.Windows.Forms.Label();
this.label32 = new System.Windows.Forms.Label();
this.label13 = new System.Windows.Forms.Label();
this.label31 = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.label16 = new System.Windows.Forms.Label();
this.label29 = new System.Windows.Forms.Label();
this.label14 = new System.Windows.Forms.Label();
this.lbAngleMax = new System.Windows.Forms.Label();
this.lbQualAspectAve = new System.Windows.Forms.Label();
this.lbEdgeMax = new System.Windows.Forms.Label();
this.lbQualAlphaAve = new System.Windows.Forms.Label();
this.lbAreaMax = new System.Windows.Forms.Label();
this.lbAngleMin = new System.Windows.Forms.Label();
this.lbQualAspectMin = new System.Windows.Forms.Label();
this.lbEdgeMin = new System.Windows.Forms.Label();
this.lbQualAlphaMin = new System.Windows.Forms.Label();
this.lbAreaMin = new System.Windows.Forms.Label();
this.label22 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.label17 = new System.Windows.Forms.Label();
this.label21 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.angleHistogram1 = new MeshExplorer.Controls.AngleHistogram();
this.SuspendLayout();
//
// label20
//
this.label20.AutoSize = true;
this.label20.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label20.ForeColor = System.Drawing.Color.White;
this.label20.Location = new System.Drawing.Point(8, 17);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(39, 13);
this.label20.TabIndex = 59;
this.label20.Text = "Mesh:";
//
// label4
//
this.label4.AutoSize = true;
this.label4.ForeColor = System.Drawing.Color.DarkGray;
this.label4.Location = new System.Drawing.Point(8, 57);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(60, 13);
this.label4.TabIndex = 56;
this.label4.Text = "Segments:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.ForeColor = System.Drawing.Color.DarkGray;
this.label3.Location = new System.Drawing.Point(8, 76);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(56, 13);
this.label3.TabIndex = 57;
this.label3.Text = "Triangles:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.ForeColor = System.Drawing.Color.DarkGray;
this.label2.Location = new System.Drawing.Point(8, 38);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(50, 13);
this.label2.TabIndex = 58;
this.label2.Text = "Vertices:";
//
// lbNumSeg
//
this.lbNumSeg.ForeColor = System.Drawing.Color.White;
this.lbNumSeg.Location = new System.Drawing.Point(98, 57);
this.lbNumSeg.Name = "lbNumSeg";
this.lbNumSeg.Size = new System.Drawing.Size(70, 13);
this.lbNumSeg.TabIndex = 53;
this.lbNumSeg.Text = "-";
this.lbNumSeg.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbNumSeg2
//
this.lbNumSeg2.ForeColor = System.Drawing.Color.DarkGray;
this.lbNumSeg2.Location = new System.Drawing.Point(188, 57);
this.lbNumSeg2.Name = "lbNumSeg2";
this.lbNumSeg2.Size = new System.Drawing.Size(70, 13);
this.lbNumSeg2.TabIndex = 52;
this.lbNumSeg2.Text = "-";
this.lbNumSeg2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbNumTri
//
this.lbNumTri.ForeColor = System.Drawing.Color.White;
this.lbNumTri.Location = new System.Drawing.Point(98, 76);
this.lbNumTri.Name = "lbNumTri";
this.lbNumTri.Size = new System.Drawing.Size(70, 13);
this.lbNumTri.TabIndex = 50;
this.lbNumTri.Text = "-";
this.lbNumTri.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbNumTri2
//
this.lbNumTri2.ForeColor = System.Drawing.Color.DarkGray;
this.lbNumTri2.Location = new System.Drawing.Point(188, 76);
this.lbNumTri2.Name = "lbNumTri2";
this.lbNumTri2.Size = new System.Drawing.Size(70, 13);
this.lbNumTri2.TabIndex = 51;
this.lbNumTri2.Text = "-";
this.lbNumTri2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbNumVert
//
this.lbNumVert.ForeColor = System.Drawing.Color.White;
this.lbNumVert.Location = new System.Drawing.Point(98, 38);
this.lbNumVert.Name = "lbNumVert";
this.lbNumVert.Size = new System.Drawing.Size(70, 13);
this.lbNumVert.TabIndex = 54;
this.lbNumVert.Text = "-";
this.lbNumVert.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbNumVert2
//
this.lbNumVert2.ForeColor = System.Drawing.Color.DarkGray;
this.lbNumVert2.Location = new System.Drawing.Point(188, 38);
this.lbNumVert2.Name = "lbNumVert2";
this.lbNumVert2.Size = new System.Drawing.Size(70, 13);
this.lbNumVert2.TabIndex = 55;
this.lbNumVert2.Text = "-";
this.lbNumVert2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label32
//
this.label32.AutoSize = true;
this.label32.ForeColor = System.Drawing.Color.DarkGray;
this.label32.Location = new System.Drawing.Point(210, 213);
this.label32.Name = "label32";
this.label32.Size = new System.Drawing.Size(48, 13);
this.label32.TabIndex = 41;
this.label32.Text = "Average";
//
// label13
//
this.label13.AutoSize = true;
this.label13.ForeColor = System.Drawing.Color.DarkGray;
this.label13.Location = new System.Drawing.Point(202, 114);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(56, 13);
this.label13.TabIndex = 42;
this.label13.Text = "Maximum";
//
// label31
//
this.label31.AutoSize = true;
this.label31.ForeColor = System.Drawing.Color.DarkGray;
this.label31.Location = new System.Drawing.Point(112, 213);
this.label31.Name = "label31";
this.label31.Size = new System.Drawing.Size(55, 13);
this.label31.TabIndex = 44;
this.label31.Text = "Minimum";
//
// label12
//
this.label12.AutoSize = true;
this.label12.ForeColor = System.Drawing.Color.DarkGray;
this.label12.Location = new System.Drawing.Point(113, 114);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(55, 13);
this.label12.TabIndex = 43;
this.label12.Text = "Minimum";
//
// label16
//
this.label16.AutoSize = true;
this.label16.ForeColor = System.Drawing.Color.DarkGray;
this.label16.Location = new System.Drawing.Point(8, 173);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(40, 13);
this.label16.TabIndex = 40;
this.label16.Text = "Angle:";
//
// label29
//
this.label29.AutoSize = true;
this.label29.ForeColor = System.Drawing.Color.DarkGray;
this.label29.Location = new System.Drawing.Point(8, 253);
this.label29.Name = "label29";
this.label29.Size = new System.Drawing.Size(71, 13);
this.label29.TabIndex = 47;
this.label29.Text = "Aspect ratio:";
//
// label14
//
this.label14.AutoSize = true;
this.label14.ForeColor = System.Drawing.Color.DarkGray;
this.label14.Location = new System.Drawing.Point(8, 154);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(73, 13);
this.label14.TabIndex = 48;
this.label14.Text = "Edge length:";
//
// lbAngleMax
//
this.lbAngleMax.ForeColor = System.Drawing.Color.White;
this.lbAngleMax.Location = new System.Drawing.Point(182, 173);
this.lbAngleMax.Name = "lbAngleMax";
this.lbAngleMax.Size = new System.Drawing.Size(76, 13);
this.lbAngleMax.TabIndex = 49;
this.lbAngleMax.Text = "-";
this.lbAngleMax.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbQualAspectAve
//
this.lbQualAspectAve.ForeColor = System.Drawing.Color.White;
this.lbQualAspectAve.Location = new System.Drawing.Point(182, 253);
this.lbQualAspectAve.Name = "lbQualAspectAve";
this.lbQualAspectAve.Size = new System.Drawing.Size(76, 13);
this.lbQualAspectAve.TabIndex = 46;
this.lbQualAspectAve.Text = "-";
this.lbQualAspectAve.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbEdgeMax
//
this.lbEdgeMax.ForeColor = System.Drawing.Color.White;
this.lbEdgeMax.Location = new System.Drawing.Point(182, 154);
this.lbEdgeMax.Name = "lbEdgeMax";
this.lbEdgeMax.Size = new System.Drawing.Size(76, 13);
this.lbEdgeMax.TabIndex = 45;
this.lbEdgeMax.Text = "-";
this.lbEdgeMax.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbQualAlphaAve
//
this.lbQualAlphaAve.ForeColor = System.Drawing.Color.White;
this.lbQualAlphaAve.Location = new System.Drawing.Point(182, 234);
this.lbQualAlphaAve.Name = "lbQualAlphaAve";
this.lbQualAlphaAve.Size = new System.Drawing.Size(76, 13);
this.lbQualAlphaAve.TabIndex = 30;
this.lbQualAlphaAve.Text = "-";
this.lbQualAlphaAve.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbAreaMax
//
this.lbAreaMax.ForeColor = System.Drawing.Color.White;
this.lbAreaMax.Location = new System.Drawing.Point(182, 135);
this.lbAreaMax.Name = "lbAreaMax";
this.lbAreaMax.Size = new System.Drawing.Size(76, 13);
this.lbAreaMax.TabIndex = 31;
this.lbAreaMax.Text = "-";
this.lbAreaMax.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbAngleMin
//
this.lbAngleMin.ForeColor = System.Drawing.Color.White;
this.lbAngleMin.Location = new System.Drawing.Point(100, 173);
this.lbAngleMin.Name = "lbAngleMin";
this.lbAngleMin.Size = new System.Drawing.Size(68, 13);
this.lbAngleMin.TabIndex = 32;
this.lbAngleMin.Text = "-";
this.lbAngleMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbQualAspectMin
//
this.lbQualAspectMin.ForeColor = System.Drawing.Color.White;
this.lbQualAspectMin.Location = new System.Drawing.Point(100, 253);
this.lbQualAspectMin.Name = "lbQualAspectMin";
this.lbQualAspectMin.Size = new System.Drawing.Size(68, 13);
this.lbQualAspectMin.TabIndex = 29;
this.lbQualAspectMin.Text = "-";
this.lbQualAspectMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbEdgeMin
//
this.lbEdgeMin.ForeColor = System.Drawing.Color.White;
this.lbEdgeMin.Location = new System.Drawing.Point(100, 154);
this.lbEdgeMin.Name = "lbEdgeMin";
this.lbEdgeMin.Size = new System.Drawing.Size(68, 13);
this.lbEdgeMin.TabIndex = 28;
this.lbEdgeMin.Text = "-";
this.lbEdgeMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbQualAlphaMin
//
this.lbQualAlphaMin.ForeColor = System.Drawing.Color.White;
this.lbQualAlphaMin.Location = new System.Drawing.Point(100, 234);
this.lbQualAlphaMin.Name = "lbQualAlphaMin";
this.lbQualAlphaMin.Size = new System.Drawing.Size(68, 13);
this.lbQualAlphaMin.TabIndex = 37;
this.lbQualAlphaMin.Text = "-";
this.lbQualAlphaMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lbAreaMin
//
this.lbAreaMin.ForeColor = System.Drawing.Color.White;
this.lbAreaMin.Location = new System.Drawing.Point(100, 135);
this.lbAreaMin.Name = "lbAreaMin";
this.lbAreaMin.Size = new System.Drawing.Size(68, 13);
this.lbAreaMin.TabIndex = 36;
this.lbAreaMin.Text = "-";
this.lbAreaMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label22
//
this.label22.AutoSize = true;
this.label22.ForeColor = System.Drawing.Color.DarkGray;
this.label22.Location = new System.Drawing.Point(8, 234);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(65, 13);
this.label22.TabIndex = 39;
this.label22.Text = "Min. angle:";
//
// label10
//
this.label10.AutoSize = true;
this.label10.ForeColor = System.Drawing.Color.DarkGray;
this.label10.Location = new System.Drawing.Point(8, 135);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(76, 13);
this.label10.TabIndex = 38;
this.label10.Text = "Triangle area:";
//
// label17
//
this.label17.AutoSize = true;
this.label17.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label17.ForeColor = System.Drawing.Color.White;
this.label17.Location = new System.Drawing.Point(8, 290);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(97, 13);
this.label17.TabIndex = 33;
this.label17.Text = "Angle histogram:";
//
// label21
//
this.label21.AutoSize = true;
this.label21.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label21.ForeColor = System.Drawing.Color.White;
this.label21.Location = new System.Drawing.Point(8, 213);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(47, 13);
this.label21.TabIndex = 35;
this.label21.Text = "Quality:";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label11.ForeColor = System.Drawing.Color.White;
this.label11.Location = new System.Drawing.Point(8, 114);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(50, 13);
this.label11.TabIndex = 34;
this.label11.Text = "Statistic:";
//
// angleHistogram1
//
this.angleHistogram1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(76)))), ((int)(((byte)(76)))));
this.angleHistogram1.Font = new System.Drawing.Font("Segoe UI", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.angleHistogram1.Location = new System.Drawing.Point(6, 308);
this.angleHistogram1.Name = "angleHistogram1";
this.angleHistogram1.Size = new System.Drawing.Size(260, 195);
this.angleHistogram1.TabIndex = 27;
this.angleHistogram1.Text = "angleHistogram1";
//
// StatisticView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.DimGray;
this.Controls.Add(this.label20);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.lbNumSeg);
this.Controls.Add(this.lbNumSeg2);
this.Controls.Add(this.lbNumTri);
this.Controls.Add(this.lbNumTri2);
this.Controls.Add(this.lbNumVert);
this.Controls.Add(this.lbNumVert2);
this.Controls.Add(this.label32);
this.Controls.Add(this.label13);
this.Controls.Add(this.label31);
this.Controls.Add(this.label12);
this.Controls.Add(this.label16);
this.Controls.Add(this.label29);
this.Controls.Add(this.label14);
this.Controls.Add(this.lbAngleMax);
this.Controls.Add(this.lbQualAspectAve);
this.Controls.Add(this.lbEdgeMax);
this.Controls.Add(this.lbQualAlphaAve);
this.Controls.Add(this.lbAreaMax);
this.Controls.Add(this.lbAngleMin);
this.Controls.Add(this.lbQualAspectMin);
this.Controls.Add(this.lbEdgeMin);
this.Controls.Add(this.lbQualAlphaMin);
this.Controls.Add(this.lbAreaMin);
this.Controls.Add(this.label22);
this.Controls.Add(this.label10);
this.Controls.Add(this.label17);
this.Controls.Add(this.label21);
this.Controls.Add(this.label11);
this.Controls.Add(this.angleHistogram1);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ForeColor = System.Drawing.Color.DarkGray;
this.Name = "StatisticView";
this.Size = new System.Drawing.Size(272, 509);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label20;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label lbNumSeg;
private System.Windows.Forms.Label lbNumSeg2;
private System.Windows.Forms.Label lbNumTri;
private System.Windows.Forms.Label lbNumTri2;
private System.Windows.Forms.Label lbNumVert;
private System.Windows.Forms.Label lbNumVert2;
private System.Windows.Forms.Label label32;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Label label31;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Label label29;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Label lbAngleMax;
private System.Windows.Forms.Label lbQualAspectAve;
private System.Windows.Forms.Label lbEdgeMax;
private System.Windows.Forms.Label lbQualAlphaAve;
private System.Windows.Forms.Label lbAreaMax;
private System.Windows.Forms.Label lbAngleMin;
private System.Windows.Forms.Label lbQualAspectMin;
private System.Windows.Forms.Label lbEdgeMin;
private System.Windows.Forms.Label lbQualAlphaMin;
private System.Windows.Forms.Label lbAreaMin;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.Label label11;
private Controls.AngleHistogram angleHistogram1;
}
}
+109
View File
@@ -0,0 +1,109 @@
using System.Linq;
using System.Windows.Forms;
using TriangleNet;
using TriangleNet.Geometry;
using TriangleNet.Tools;
namespace MeshExplorer.Views
{
public partial class StatisticView : UserControl, IView
{
Statistic statistic = new Statistic();
QualityMeasure quality;
public Statistic Statistic
{
get { return statistic; }
}
public StatisticView()
{
InitializeComponent();
}
public void UpdateStatistic(Mesh mesh)
{
statistic.Update(mesh, 10);
}
#region IView
public void HandleNewInput(IPolygon geometry)
{
// Reset labels
lbNumVert2.Text = "-";
lbNumTri2.Text = "-";
lbNumSeg2.Text = "-";
lbNumVert.Text = geometry.Points.Count.ToString();
lbNumSeg.Text = geometry.Segments.Count().ToString();
lbNumTri.Text = "0";
// Statistics labels
lbAreaMin.Text = "-";
lbAreaMax.Text = "-";
lbEdgeMin.Text = "-";
lbEdgeMax.Text = "-";
lbAngleMin.Text = "-";
lbAngleMax.Text = "-";
// Quality labels
lbQualAlphaMin.Text = "-";
lbQualAlphaAve.Text = "-";
lbQualAspectMin.Text = "-";
lbQualAspectAve.Text = "-";
angleHistogram1.SetData(null, null);
}
public void HandleMeshImport(IPolygon geometry, Mesh mesh)
{
// Previous mesh stats
lbNumVert2.Text = "-";
lbNumTri2.Text = "-";
lbNumSeg2.Text = "-";
}
public void HandleMeshUpdate(Mesh mesh)
{
// Previous mesh stats
lbNumVert2.Text = lbNumVert.Text;
lbNumTri2.Text = lbNumTri.Text;
lbNumSeg2.Text = lbNumSeg.Text;
}
public void HandleMeshChange(Mesh mesh)
{
// New mesh stats
lbNumVert.Text = mesh.Vertices.Count.ToString();
lbNumSeg.Text = mesh.Segments.Count.ToString();
lbNumTri.Text = mesh.Triangles.Count.ToString();
// Update statistics tab
angleHistogram1.SetData(statistic.MinAngleHistogram, statistic.MaxAngleHistogram);
lbAreaMin.Text = Util.DoubleToString(statistic.SmallestArea);
lbAreaMax.Text = Util.DoubleToString(statistic.LargestArea);
lbEdgeMin.Text = Util.DoubleToString(statistic.ShortestEdge);
lbEdgeMax.Text = Util.DoubleToString(statistic.LongestEdge);
lbAngleMin.Text = Util.AngleToString(statistic.SmallestAngle);
lbAngleMax.Text = Util.AngleToString(statistic.LargestAngle);
// Update quality
if (quality == null)
{
quality = new QualityMeasure();
}
quality.Update(mesh);
lbQualAlphaMin.Text = Util.DoubleToString(quality.AlphaMinimum);
lbQualAlphaAve.Text = Util.DoubleToString(quality.AlphaAverage);
lbQualAspectMin.Text = Util.DoubleToString(quality.Q_Minimum);
lbQualAspectAve.Text = Util.DoubleToString(quality.Q_Average);
}
#endregion
}
}
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>