[ create a new paste ] login | about

Link: http://codepad.org/Zl7QsJtF    [ raw code | output | fork ]

Python, pasted on Oct 25:
# some dummy geometry generation

def build_vertices():
  result = []
  for i in xrange(255):
    for j in xrange(255):
      result.append( (i, j, 0) )
      result.append( (i+1, j, 0) )
      result.append( (i, j+1, 0) )
      result.append( (i+1, j, 0) )
      result.append( (i+1, j+1, 0) )
      result.append( (i, j+1, 0) )
  return result

# the actual algorithm

import time

src_vertices = build_vertices()

print "filtering..."
t0 = time.time()

# filter unique vertices using a 'dict' and create indices

vert_dict = dict()
indices = []
new_index = 0
for vert in src_vertices:
  index = vert_dict.get(vert, None)
  if index is None:
    index = new_index
    new_index += 1
    vert_dict[vert] = index
  indices.append(index)

# create an 'array' of unique vertices out of the dict

new_vertices = [None] * len(vert_dict)
for vert, index in vert_dict.iteritems():
  new_vertices[index] = vert

t1 = time.time()
print "  ", t1-t0, "sec."
print "%d vertices => %d vertices, %d indices" % (len(src_vertices), len(new_vertices), len(indices))


Output:
1
2
3
filtering...
   1.36482000351 sec.
390150 vertices => 65536 vertices, 390150 indices


Create a new paste based on this one


Comments: