public void loadMesh(Vec3 pos, string filename) { hGPUMesh loadedMesh = LoadMeshFromFile(pos, filename); if (loadedMesh.triangleCount > 0) { worldBuffer.addMaterial(MaterialData.makeDiffuse(new Vec3(0.5f, 0.5f, 0.5f))); worldBuffer.addGPUMesh(loadedMesh); Console.WriteLine("Loaded: " + filename); } }
public int addGPUMesh(hGPUMesh toAdd) { if (meshes.Contains(toAdd)) { return(meshes.IndexOf(toAdd)); } else { meshes.Add(toAdd); updateMeshData(toAdd); return(meshes.Count - 1); } }
private void updateMeshData(hGPUMesh toAdd) { int vertIndex = verticies.Count; verticies.AddRange(toAdd.verticies); int triangleIndex = triangles.Count; triangles.AddRange(toAdd.triangles); int matIndex = triangleMaterials.Count; triangleMaterials.AddRange(toAdd.triangleMaterials); dmeshes.Add(new dGPUMesh(toAdd.aabb, toAdd.position, vertIndex, triangleIndex, matIndex, toAdd.triangleCount)); }