forked from bartvdbraak/blender
Cycles: Fix regression introduced in c96a4c8
A few places still needed to be updated to use the new Mesh::num_triangles() method; wrong number from triangles.size() was causing crashes.
This commit is contained in:
parent
f08018f928
commit
b6954c8da1
@ -404,7 +404,7 @@ void BVHSpatialSplit::split_object_reference(const Object *object,
|
|||||||
BoundBox& right_bounds)
|
BoundBox& right_bounds)
|
||||||
{
|
{
|
||||||
Mesh *mesh = object->mesh;
|
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,
|
split_triangle_primitive(mesh,
|
||||||
&object->tfm,
|
&object->tfm,
|
||||||
tri_idx,
|
tri_idx,
|
||||||
|
@ -1485,7 +1485,7 @@ bool Mesh::need_attribute(Scene * /*scene*/, ustring name)
|
|||||||
|
|
||||||
void Mesh::tessellate(DiagSplit *split)
|
void Mesh::tessellate(DiagSplit *split)
|
||||||
{
|
{
|
||||||
int num_faces = triangles.size();
|
int num_faces = num_triangles();
|
||||||
|
|
||||||
add_face_normals();
|
add_face_normals();
|
||||||
add_vertex_normals();
|
add_vertex_normals();
|
||||||
|
@ -46,7 +46,7 @@ void EdgeDice::reserve(int num_verts)
|
|||||||
Mesh *mesh = params.mesh;
|
Mesh *mesh = params.mesh;
|
||||||
|
|
||||||
vert_offset = mesh->verts.size();
|
vert_offset = mesh->verts.size();
|
||||||
tri_offset = mesh->triangles.size();
|
tri_offset = mesh->num_triangles();
|
||||||
|
|
||||||
mesh->resize_mesh(vert_offset + num_verts, tri_offset);
|
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() */
|
/* todo: optimize so we can reserve in advance, this is like push_back_slow() */
|
||||||
if(mesh->triangles.size() == mesh->triangles.capacity())
|
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);
|
mesh->add_triangle(v0, v1, v2, params.shader, params.smooth, false);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user