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