73 lines
2.1 KiB
C#
73 lines
2.1 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Data;
|
|||
|
using System.Drawing;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using System.Windows.Forms;
|
|||
|
using Assimp;
|
|||
|
using Switch_Toolbox.Library.Rendering;
|
|||
|
using OpenTK;
|
|||
|
|
|||
|
namespace Switch_Toolbox.Library
|
|||
|
{
|
|||
|
public partial class AssimpMeshSelector : Form
|
|||
|
{
|
|||
|
public AssimpMeshSelector()
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
}
|
|||
|
AssimpData assimp;
|
|||
|
int index;
|
|||
|
public void LoadMeshes(AssimpData a, int i)
|
|||
|
{
|
|||
|
assimp = a;
|
|||
|
index = i;
|
|||
|
|
|||
|
foreach (Mesh msh in assimp.scene.Meshes)
|
|||
|
{
|
|||
|
listView1.Items.Add(msh.Name);
|
|||
|
}
|
|||
|
}
|
|||
|
public GenericObject GetSelectedMesh()
|
|||
|
{
|
|||
|
assimp.processNode();
|
|||
|
foreach (Mesh msh in assimp.scene.Meshes)
|
|||
|
{
|
|||
|
if (msh.Name == listView1.SelectedItems[0].Text)
|
|||
|
return assimp.CreateGenericObject(msh, index, Matrix4.Identity);
|
|||
|
}
|
|||
|
throw new Exception("This shouldn't happen???");
|
|||
|
}
|
|||
|
|
|||
|
private void listView1_DoubleClick(object sender, EventArgs e)
|
|||
|
{
|
|||
|
DialogResult = DialogResult.OK;
|
|||
|
}
|
|||
|
|
|||
|
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
|
|||
|
{
|
|||
|
using (SolidBrush backBrush = new SolidBrush(Color.FromArgb(50, 50, 50)))
|
|||
|
{
|
|||
|
e.Graphics.FillRectangle(backBrush, e.Bounds);
|
|||
|
}
|
|||
|
using (SolidBrush foreBrush = new SolidBrush(Color.FromArgb(255, 255, 255)))
|
|||
|
{
|
|||
|
e.Graphics.DrawString(e.Header.Text, e.Font, foreBrush, e.Bounds);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
|
|||
|
{
|
|||
|
e.DrawDefault = true;
|
|||
|
if ((e.ItemIndex % 2) == 1)
|
|||
|
{
|
|||
|
e.Item.BackColor = Color.FromArgb(50, 50, 50);
|
|||
|
e.Item.UseItemStyleForSubItems = true;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|