testing built in obj to mesh conversion

This commit is contained in:
Bitl 2021-09-10 18:09:05 -07:00
parent 637bb1f4a5
commit e27b073ceb
7 changed files with 118 additions and 2 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAU
EwAAAk1TRnQBSQFMAgEBCgEAARgBAAEYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
EwAAAk1TRnQBSQFMAgEBCgEAASABAAEgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@ -73,6 +73,9 @@
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="CjClutter.ObjLoader.LoaderNet4">
<HintPath>Dependencies\CjClutter.ObjLoader.LoaderNet4.dll</HintPath>
</Reference>
<Reference Include="DotNetZip, Version=1.11.0.0, Culture=neutral, PublicKeyToken=6583c7c814667745, processorArchitecture=MSIL">
<HintPath>..\packages\DotNetZip.1.11.0\lib\net20\DotNetZip.dll</HintPath>
</Reference>
@ -95,6 +98,12 @@
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.7.2\lib\net40-client\NLog.dll</HintPath>
</Reference>
<Reference Include="SharpGL, Version=3.1.1.0, Culture=neutral, PublicKeyToken=27fc851303210b27, processorArchitecture=MSIL">
<HintPath>..\packages\SharpGL.3.1.1\lib\net40\SharpGL.dll</HintPath>
</Reference>
<Reference Include="SharpGL.SceneGraph, Version=3.1.1.0, Culture=neutral, PublicKeyToken=27fc851303210b27, processorArchitecture=MSIL">
<HintPath>..\packages\SharpGL.SceneGraph.3.1.1\lib\net40\SharpGL.SceneGraph.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core">
@ -153,6 +162,7 @@
<Compile Include="Classes\Launcher\SplashLoader.cs" />
<Compile Include="Classes\LocalVars.cs" />
<Compile Include="Classes\SDK\Downloader.cs" />
<Compile Include="Classes\SDK\OBJConverter.cs" />
<Compile Include="Classes\SDK\ROBLOXFileTypes.cs" />
<Compile Include="Forms\Decoder.cs">
<SubType>Form</SubType>

View File

@ -6,4 +6,6 @@
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net40" />
<package id="Mono.Nat" version="1.2.24.0" targetFramework="net40" />
<package id="NLog" version="4.7.2" targetFramework="net40" />
<package id="SharpGL" version="3.1.1" targetFramework="net40" />
<package id="SharpGL.SceneGraph" version="3.1.1" targetFramework="net40" />
</packages>