Commit 762835ae781f665f05381b8b3f85643ba3ded9db
1 parent
bb368c35
Exists in
casmoothing_cython
Compiling in Windows
Showing
2 changed files
with
12 additions
and
5 deletions
Show diff stats
.gitignore
invesalius/data/cy_mesh.pyx
@@ -410,22 +410,23 @@ cdef void taubin_smooth(Mesh mesh, vector[weight_t]& weights, float l, float m, | @@ -410,22 +410,23 @@ cdef void taubin_smooth(Mesh mesh, vector[weight_t]& weights, float l, float m, | ||
410 | Signal Processing Approach To Fair Surface Design". His benefeat is it | 410 | Signal Processing Approach To Fair Surface Design". His benefeat is it |
411 | avoids surface shrinking. | 411 | avoids surface shrinking. |
412 | """ | 412 | """ |
413 | + cdef int s, i, nvertices | ||
414 | + nvertices = mesh.vertices.shape[0] | ||
413 | cdef vector[Point] D = vector[Point](mesh.vertices.shape[0]) | 415 | cdef vector[Point] D = vector[Point](mesh.vertices.shape[0]) |
414 | cdef vertex_t* vi | 416 | cdef vertex_t* vi |
415 | - cdef int s, i | ||
416 | for s in xrange(steps): | 417 | for s in xrange(steps): |
417 | - for i in prange(D.size(), nogil=True): | 418 | + for i in prange(nvertices, nogil=True): |
418 | D[i] = calc_d(mesh, i) | 419 | D[i] = calc_d(mesh, i) |
419 | 420 | ||
420 | - for i in prange(D.size(), nogil=True): | 421 | + for i in prange(nvertices, nogil=True): |
421 | mesh.vertices[i, 0] += weights[i]*l*D[i].x; | 422 | mesh.vertices[i, 0] += weights[i]*l*D[i].x; |
422 | mesh.vertices[i, 1] += weights[i]*l*D[i].y; | 423 | mesh.vertices[i, 1] += weights[i]*l*D[i].y; |
423 | mesh.vertices[i, 2] += weights[i]*l*D[i].z; | 424 | mesh.vertices[i, 2] += weights[i]*l*D[i].z; |
424 | 425 | ||
425 | - for i in prange(D.size(), nogil=True): | 426 | + for i in prange(nvertices, nogil=True): |
426 | D[i] = calc_d(mesh, i) | 427 | D[i] = calc_d(mesh, i) |
427 | 428 | ||
428 | - for i in prange(D.size(), nogil=True): | 429 | + for i in prange(nvertices, nogil=True): |
429 | mesh.vertices[i, 0] += weights[i]*m*D[i].x; | 430 | mesh.vertices[i, 0] += weights[i]*m*D[i].x; |
430 | mesh.vertices[i, 1] += weights[i]*m*D[i].y; | 431 | mesh.vertices[i, 1] += weights[i]*m*D[i].y; |
431 | mesh.vertices[i, 2] += weights[i]*m*D[i].z; | 432 | mesh.vertices[i, 2] += weights[i]*m*D[i].z; |