private void deleteVertex() { SoulsFormats.FLVER.Mesh m = Program.targetFlver.Meshes[targetVinfo.meshIndex]; uint index = targetVinfo.vertexIndex; deleteMeshVertexFaceset(m, index); targetV.Positions[0] = new System.Numerics.Vector3(0, 0, 0); Program.updateVertices(); }
private void deleteMeshVertexFaceset(SoulsFormats.FLVER.Mesh m, uint index) { foreach (var fs in m.FaceSets) { for (uint i = 0; i + 2 < fs.Vertices.Length; i += 3) { if (fs.Vertices[i] == index || fs.Vertices[i + 1] == index || fs.Vertices[i + 2] == index) { fs.Vertices[i] = index; fs.Vertices[i + 1] = index; fs.Vertices[i + 2] = index; } } } }
private void deleteVertexAbove() { SoulsFormats.FLVER.Mesh m = Program.targetFlver.Meshes[targetVinfo.meshIndex]; uint index = targetVinfo.vertexIndex; float yValue = targetV.Positions[0].Y; for (int i = 0; i < m.Vertices.Count; i++) { if (m.Vertices[i].Positions[0].Y > yValue) { deleteMeshVertexFaceset(m, (uint)i); m.Vertices[i].Positions[0] = new System.Numerics.Vector3(0, 0, 0); } } Program.updateVertices(); }