diff --git a/Novetus/NovetusLauncher/Classes/SDK/OBJConverter.cs b/Novetus/NovetusLauncher/Classes/SDK/OBJConverter.cs new file mode 100644 index 0000000..0a103da --- /dev/null +++ b/Novetus/NovetusLauncher/Classes/SDK/OBJConverter.cs @@ -0,0 +1,84 @@ +#region Usings +using ObjLoader.Loader.Data.VertexData; +using ObjLoader.Loader.Loaders; +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; +#endregion + +#region Icon Loader + +public class OBJConverter +{ + private OpenFileDialog openFileDialog1; + private string installOutcome = ""; + + public OBJConverter() + { + openFileDialog1 = new OpenFileDialog() + { + FileName = "Select an .obj file", + Filter = "Wavefront OBJ file (*.obj)|*.obj", + Title = "Open .obj" + }; + } + + public void setInstallOutcome(string text) + { + installOutcome = text; + } + + public string getInstallOutcome() + { + return installOutcome; + } + + public void ConvertOBJ() + { + if (openFileDialog1.ShowDialog() == DialogResult.OK) + { + using (Stream str = openFileDialog1.OpenFile()) + { + Directory.SetCurrentDirectory(Path.GetDirectoryName(openFileDialog1.FileName)); + var materialStreamProvider = new MaterialStreamProvider(); + var objLoaderFactory = new ObjLoaderFactory(); + var objLoader = objLoaderFactory.Create(materialStreamProvider); + var fileStream = materialStreamProvider.Open(openFileDialog1.FileName); + var result = objLoader.Load(fileStream); + + string testString = ""; + testString += "version 1.00\n"; + testString += result.Groups.First().Faces.Count + "\n"; + foreach (Vertex vert in result.Vertices) + { + testString += "[" + (vert.X * 0.5) + "," + (vert.Y * 0.5) + "," + (vert.Z * 0.5) + "]"; + foreach (Normal norm in result.Normals) + { + testString += "[" + norm.X + "," + norm.Y + "," + norm.Z + "]"; + + //this is dumb + if (result.Textures.Count > 0) + { + foreach (Texture tex in result.Textures) + { + testString += "[" + tex.X + "," + tex.Y + ",0]"; + } + } + else + { + testString += "[0,0,0]"; + } + } + } + + MessageBox.Show(testString); + Clipboard.SetText(testString); + + Directory.SetCurrentDirectory(GlobalPaths.RootPath); + str.Close(); + } + } + } +} +#endregion \ No newline at end of file diff --git a/Novetus/NovetusLauncher/Dependencies/CjClutter.ObjLoader.LoaderNet4.dll b/Novetus/NovetusLauncher/Dependencies/CjClutter.ObjLoader.LoaderNet4.dll new file mode 100644 index 0000000..d68f81f Binary files /dev/null and b/Novetus/NovetusLauncher/Dependencies/CjClutter.ObjLoader.LoaderNet4.dll differ diff --git a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs index 398ad54..727422a 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs @@ -53,6 +53,7 @@ this.listView1 = new System.Windows.Forms.ListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.imageList1 = new System.Windows.Forms.ImageList(this.components); + this.TestButton = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); this.SuspendLayout(); // @@ -120,12 +121,23 @@ this.imageList1.Images.SetKeyName(8, "splash.png"); this.imageList1.Images.SetKeyName(9, "XMLContentEditor.png"); // + // TestButton + // + this.TestButton.Location = new System.Drawing.Point(15, 364); + this.TestButton.Name = "TestButton"; + this.TestButton.Size = new System.Drawing.Size(75, 23); + this.TestButton.TabIndex = 16; + this.TestButton.Text = "OBJStats"; + this.TestButton.UseVisualStyleBackColor = true; + this.TestButton.Click += new System.EventHandler(this.TestButton_Click); + // // NovetusSDK // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.ClientSize = new System.Drawing.Size(438, 354); + this.ClientSize = new System.Drawing.Size(438, 399); + this.Controls.Add(this.TestButton); this.Controls.Add(this.listView1); this.Controls.Add(this.label1); this.Controls.Add(this.pictureBox2); @@ -149,4 +161,5 @@ private System.Windows.Forms.ListView listView1; private System.Windows.Forms.ColumnHeader columnHeader1; private System.Windows.Forms.ImageList imageList1; + private System.Windows.Forms.Button TestButton; } \ No newline at end of file diff --git a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.cs b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.cs index e8674b2..0481320 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.cs @@ -123,5 +123,12 @@ public partial class NovetusSDK : Form } } #endregion + + //remove upon test finish + private void TestButton_Click(object sender, EventArgs e) + { + OBJConverter objconv = new OBJConverter(); + objconv.ConvertOBJ(); + } } #endregion diff --git a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx index c02f628..c94778a 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx +++ b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAU - EwAAAk1TRnQBSQFMAgEBCgEAARgBAAEYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + EwAAAk1TRnQBSQFMAgEBCgEAASABAAEgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/Novetus/NovetusLauncher/Novetus.Launcher.csproj b/Novetus/NovetusLauncher/Novetus.Launcher.csproj index 21103f5..281f1ed 100644 --- a/Novetus/NovetusLauncher/Novetus.Launcher.csproj +++ b/Novetus/NovetusLauncher/Novetus.Launcher.csproj @@ -73,6 +73,9 @@ x86 + + Dependencies\CjClutter.ObjLoader.LoaderNet4.dll + ..\packages\DotNetZip.1.11.0\lib\net20\DotNetZip.dll @@ -95,6 +98,12 @@ ..\packages\NLog.4.7.2\lib\net40-client\NLog.dll + + ..\packages\SharpGL.3.1.1\lib\net40\SharpGL.dll + + + ..\packages\SharpGL.SceneGraph.3.1.1\lib\net40\SharpGL.SceneGraph.dll + @@ -153,6 +162,7 @@ + Form diff --git a/Novetus/NovetusLauncher/packages.config b/Novetus/NovetusLauncher/packages.config index d68baea..3e7ad67 100644 --- a/Novetus/NovetusLauncher/packages.config +++ b/Novetus/NovetusLauncher/packages.config @@ -6,4 +6,6 @@ + + \ No newline at end of file