Skip to content

Commit 0c326b5

Browse files
committed
simplify some indexing increments
1 parent 6722f25 commit 0c326b5

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

src/marching_cubes.jl

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -310,9 +310,10 @@ function marching_cubes{ST,FT,M<:AbstractMesh}(sdf::SignedDistanceField{3,ST,FT}
310310
sdf[xi+1,yi,zi+1] < iso && (cubeindex |= 32)
311311
sdf[xi+1,yi+1,zi+1] < iso && (cubeindex |= 64)
312312
sdf[xi,yi+1,zi+1] < iso && (cubeindex |= 128)
313+
cubeindex += 1
313314

314315
# Cube is entirely in/out of the surface
315-
edge_table[cubeindex+1] == 0 && continue
316+
edge_table[cubeindex] == 0 && continue
316317

317318
points = (Point{3,Float64}(xi-1,yi-1,zi-1).*s,
318319
Point{3,Float64}(xi,yi-1,zi-1).*s,
@@ -324,61 +325,61 @@ function marching_cubes{ST,FT,M<:AbstractMesh}(sdf::SignedDistanceField{3,ST,FT}
324325
Point{3,Float64}(xi-1,yi,zi).*s)
325326

326327
# Find the vertices where the surface intersects the cube
327-
if (edge_table[cubeindex+1] & 1 != 0)
328+
if (edge_table[cubeindex] & 1 != 0)
328329
vertlist[1] =
329330
vertex_interp(iso,points[1],points[2],sdf[xi,yi,zi],sdf[xi+1,yi,zi])
330331
end
331-
if (edge_table[cubeindex+1] & 2 != 0)
332+
if (edge_table[cubeindex] & 2 != 0)
332333
vertlist[2] =
333334
vertex_interp(iso,points[2],points[3],sdf[xi+1,yi,zi],sdf[xi+1,yi+1,zi])
334335
end
335-
if (edge_table[cubeindex+1] & 4 != 0)
336+
if (edge_table[cubeindex] & 4 != 0)
336337
vertlist[3] =
337338
vertex_interp(iso,points[3],points[4],sdf[xi+1,yi+1,zi],sdf[xi,yi+1,zi])
338339
end
339-
if (edge_table[cubeindex+1] & 8 != 0)
340+
if (edge_table[cubeindex] & 8 != 0)
340341
vertlist[4] =
341342
vertex_interp(iso,points[4],points[1],sdf[xi,yi+1,zi],sdf[xi,yi,zi])
342343
end
343-
if (edge_table[cubeindex+1] & 16 != 0)
344+
if (edge_table[cubeindex] & 16 != 0)
344345
vertlist[5] =
345346
vertex_interp(iso,points[5],points[6],sdf[xi,yi,zi+1],sdf[xi+1,yi,zi+1])
346347
end
347-
if (edge_table[cubeindex+1] & 32 != 0)
348+
if (edge_table[cubeindex] & 32 != 0)
348349
vertlist[6] =
349350
vertex_interp(iso,points[6],points[7],sdf[xi+1,yi,zi+1],sdf[xi+1,yi+1,zi+1])
350351
end
351-
if (edge_table[cubeindex+1] & 64 != 0)
352+
if (edge_table[cubeindex] & 64 != 0)
352353
vertlist[7] =
353354
vertex_interp(iso,points[7],points[8],sdf[xi+1,yi+1,zi+1],sdf[xi,yi+1,zi+1])
354355
end
355-
if (edge_table[cubeindex+1] & 128 != 0)
356+
if (edge_table[cubeindex] & 128 != 0)
356357
vertlist[8] =
357358
vertex_interp(iso,points[8],points[5],sdf[xi,yi+1,zi+1],sdf[xi,yi,zi+1])
358359
end
359-
if (edge_table[cubeindex+1] & 256 != 0)
360+
if (edge_table[cubeindex] & 256 != 0)
360361
vertlist[9] =
361362
vertex_interp(iso,points[1],points[5],sdf[xi,yi,zi],sdf[xi,yi,zi+1])
362363
end
363-
if (edge_table[cubeindex+1] & 512 != 0)
364+
if (edge_table[cubeindex] & 512 != 0)
364365
vertlist[10] =
365366
vertex_interp(iso,points[2],points[6],sdf[xi+1,yi,zi],sdf[xi+1,yi,zi+1])
366367
end
367-
if (edge_table[cubeindex+1] & 1024 != 0)
368+
if (edge_table[cubeindex] & 1024 != 0)
368369
vertlist[11] =
369370
vertex_interp(iso,points[3],points[7],sdf[xi+1,yi+1,zi],sdf[xi+1,yi+1,zi+1])
370371
end
371-
if (edge_table[cubeindex+1] & 2048 != 0)
372+
if (edge_table[cubeindex] & 2048 != 0)
372373
vertlist[12] =
373374
vertex_interp(iso,points[4],points[8],sdf[xi,yi+1,zi],sdf[xi,yi+1,zi+1])
374375
end
375376

376377
# Create the triangle
377378
for i = 1:3:13
378-
tri_table[cubeindex+1][i] == -1 && break
379-
push!(vts, vertlist[tri_table[cubeindex+1][i ]])
380-
push!(vts, vertlist[tri_table[cubeindex+1][i+1]])
381-
push!(vts, vertlist[tri_table[cubeindex+1][i+2]])
379+
tri_table[cubeindex][i] == -1 && break
380+
push!(vts, vertlist[tri_table[cubeindex][i ]])
381+
push!(vts, vertlist[tri_table[cubeindex][i+1]])
382+
push!(vts, vertlist[tri_table[cubeindex][i+2]])
382383
fct = length(vts)
383384
push!(fcs, Face{3,Int,0}(fct, fct-1, fct-2))
384385
end

0 commit comments

Comments
 (0)