public void SetMeshBoneList(BFRES.FMDL_Model mdl, BFRES.Mesh m, bool sb = false) { listView1.Items.Clear(); //This list is used for both viewing and also single binding for certain instances isSingleBinding = sb; msh = m; fmdl = mdl; foreach (var bn in m.BoneIndexList) { listView1.Items.Add(bn.Value.ToString()).SubItems.Add(bn.Key); } }
public BfresMeshEditor(BFRES.Mesh p, BFRES.FMDL_Model mdl, BFRES b) { InitializeComponent(); button1.Enabled = false; textBox1.Text = p.Text; VertCountlabel1.Text = VertCountlabel1.Text + " " + p.vertices.Count.ToString(); PolyCountlabel3.Text = PolyCountlabel3.Text + " " + p.lodMeshes[p.DisplayLODIndex].displayFaceSize.ToString(); skinCountLabel.Text = skinCountLabel.Text + " " + p.VertexSkinCount.ToString(); label3.Text = label3.Text + " " + mdl.skeleton.bones[p.boneIndx].ToString(); mesh = p; model = mdl; bfres = b; foreach (var lod in p.lodMeshes) { LODcomboBox3.Items.Add(lod); } LODcomboBox3.SelectedIndex = p.DisplayLODIndex; List <string> attributes = new List <string>(); foreach (Syroot.NintenTools.NSW.Bfres.GFX.AttribFormat attr in Enum.GetValues(typeof(Syroot.NintenTools.NSW.Bfres.GFX.AttribFormat))) { attributes.Add(attr.ToString()); } attributes.Sort(); foreach (string att in attributes) { comboBox2.Items.Add(att); } int height = 2; foreach (BFRES.Mesh.VertexAttribute att in p.vertexAttributes) { comboBox1.Items.Add(att); } }
public void SetVertexBufferList(BFRES.Mesh m, string attName, BFRES.FMDL_Model mdl) { listView1.Items.Clear(); //Set public variables so i can use it for other things this.attName = attName; model = mdl; //For updating meshes msh = m; //For updating meshes foreach (BFRES.Vertex v in msh.vertices) { if (attName == "_p0") { var item = new ListViewItem(v.pos.X.ToString()); item.SubItems.Add(v.pos.Y.ToString()); item.SubItems.Add(v.pos.Z.ToString()); listView1.Items.Add(item); } if (attName == "_p1") { var item = new ListViewItem(v.pos1.X.ToString()); item.SubItems.Add(v.pos1.Y.ToString()); item.SubItems.Add(v.pos1.Z.ToString()); listView1.Items.Add(item); } if (attName == "_p2") { var item = new ListViewItem(v.pos2.X.ToString()); item.SubItems.Add(v.pos2.Y.ToString()); item.SubItems.Add(v.pos2.Z.ToString()); listView1.Items.Add(item); } if (attName == "_n0") { var item = new ListViewItem(v.nrm.X.ToString()); item.SubItems.Add(v.nrm.Y.ToString()); item.SubItems.Add(v.nrm.Z.ToString()); listView1.Items.Add(item); } if (attName == "_u0") { var item = new ListViewItem(v.uv0.X.ToString()); item.SubItems.Add(v.uv0.Y.ToString()); listView1.Items.Add(item); } if (attName == "_u1") { var item = new ListViewItem(v.uv1.X.ToString()); item.SubItems.Add(v.uv1.Y.ToString()); listView1.Items.Add(item); } if (attName == "_u2") { var item = new ListViewItem(v.uv2.X.ToString()); item.SubItems.Add(v.uv2.Y.ToString()); listView1.Items.Add(item); } if (attName == "_w0") { float x = v.boneWeights.Count > 0 ? v.boneWeights[0] : 0; float y = v.boneWeights.Count > 1 ? v.boneWeights[1] : 0; float z = v.boneWeights.Count > 2 ? v.boneWeights[2] : 0; float w = v.boneWeights.Count > 3 ? v.boneWeights[3] : 0; var item = new ListViewItem(x.ToString()); item.SubItems.Add(y.ToString()); item.SubItems.Add(z.ToString()); item.SubItems.Add(w.ToString()); listView1.Items.Add(item); } if (attName == "_i0") { string x = ""; string y = ""; string z = ""; string w = ""; float iX = v.boneIds.Count > 0 ? v.boneIds[0] : 0; float iY = v.boneIds.Count > 1 ? v.boneIds[1] : 0; float iZ = v.boneIds.Count > 2 ? v.boneIds[2] : 0; float iW = v.boneIds.Count > 3 ? v.boneIds[3] : 0; //Set the bone in the skeleton of it's fmdl. try { if (iX != 0) { x = model.skeleton.bones[model.Node_Array[(int)iX]].Text; } if (iY != 0) { y = model.skeleton.bones[model.Node_Array[(int)iY]].Text; } if (iZ != 0) { z = model.skeleton.bones[model.Node_Array[(int)iZ]].Text; } if (iW != 0) { w = model.skeleton.bones[model.Node_Array[(int)iW]].Text; } } catch { x = iX.ToString(); y = iY.ToString(); z = iZ.ToString(); w = iW.ToString(); } var item = new ListViewItem(x); item.SubItems.Add(y); item.SubItems.Add(z); item.SubItems.Add(w); listView1.Items.Add(item); } if (attName == "_b0") { var item = new ListViewItem(v.bitan.X.ToString()); item.SubItems.Add(v.bitan.Y.ToString()); item.SubItems.Add(v.bitan.Z.ToString()); item.SubItems.Add(v.bitan.W.ToString()); listView1.Items.Add(item); } if (attName == "_t0") { var item = new ListViewItem(v.tan.X.ToString()); item.SubItems.Add(v.tan.Y.ToString()); item.SubItems.Add(v.tan.Z.ToString()); item.SubItems.Add(v.tan.W.ToString()); listView1.Items.Add(item); } if (attName == "_c0") { Color setColor = Color.White; int someIntX = (int)Math.Ceiling(v.col.X * 255); int someIntY = (int)Math.Ceiling(v.col.Y * 255); int someIntZ = (int)Math.Ceiling(v.col.Z * 255); int someIntW = (int)Math.Ceiling(v.col.W * 255); setColor = Color.FromArgb( 255, someIntX, someIntY, someIntZ ); var item = new ListViewItem(v.col.X.ToString()); item.BackColor = setColor; item.SubItems.Add(v.col.Y.ToString()); item.SubItems.Add(v.col.Z.ToString()); item.SubItems.Add(v.col.W.ToString()); listView1.Items.Add(item); } } }