Cycles: Fix regression introduced in c96a4c8
authorMai Lavelle <mai.lavelle@gmail.com>
Fri, 3 Jun 2016 00:57:04 +0000 (20:57 -0400)
committerMai Lavelle <mai.lavelle@gmail.com>
Tue, 7 Jun 2016 11:38:09 +0000 (07:38 -0400)
A few places still needed to be updated to use the new Mesh::num_triangles()
method; wrong number from triangles.size() was causing crashes.

intern/cycles/bvh/bvh_split.cpp
intern/cycles/render/mesh.cpp
intern/cycles/subd/subd_dice.cpp

index 3665fb42bc2f836fc128f9ec9ef97ed842e74771..bf68b41021fcd914c942ff1ccb351175e1631b12 100644 (file)
@@ -404,7 +404,7 @@ void BVHSpatialSplit::split_object_reference(const Object *object,
                                              BoundBox& right_bounds)
 {
        Mesh *mesh = object->mesh;
-       for(int tri_idx = 0; tri_idx < mesh->triangles.size(); ++tri_idx) {
+       for(int tri_idx = 0; tri_idx < mesh->num_triangles(); ++tri_idx) {
                split_triangle_primitive(mesh,
                                         &object->tfm,
                                         tri_idx,
index 755b16a51c7ff4c44a1d32eaefed2e942e3c2433..e25155630bd6e878b70d19323bf4bd93dd28162f 100644 (file)
@@ -1485,7 +1485,7 @@ bool Mesh::need_attribute(Scene * /*scene*/, ustring name)
 
 void Mesh::tessellate(DiagSplit *split)
 {
-       int num_faces = triangles.size();
+       int num_faces = num_triangles();
 
        add_face_normals();
        add_vertex_normals();
index 8dba1379855498700d708181d20d5dab291d6da8..7c74f21950e5b85077a82eea600308fd9fabe7ce 100644 (file)
@@ -46,7 +46,7 @@ void EdgeDice::reserve(int num_verts)
        Mesh *mesh = params.mesh;
 
        vert_offset = mesh->verts.size();
-       tri_offset = mesh->triangles.size();
+       tri_offset = mesh->num_triangles();
 
        mesh->resize_mesh(vert_offset + num_verts, tri_offset);
 
@@ -84,7 +84,7 @@ void EdgeDice::add_triangle(Patch *patch, int v0, int v1, int v2)
 
        /* todo: optimize so we can reserve in advance, this is like push_back_slow() */
        if(mesh->triangles.size() == mesh->triangles.capacity())
-               mesh->reserve_mesh(mesh->verts.size(), size_t(max(mesh->triangles.size() + 1, 1) * 1.2));
+               mesh->reserve_mesh(mesh->verts.size(), size_t(max(mesh->num_triangles() + 1, 1) * 1.2));
 
        mesh->add_triangle(v0, v1, v2, params.shader, params.smooth, false);