Merge branch 'develop' of github.com:MegaGlest/megaglest-source into develop
This commit is contained in:
commit
12bd61c218
|
@ -398,20 +398,21 @@ def createMesh(filename, header, data, toblender, operator):
|
||||||
# different values in any frame. That could still cause problems.
|
# different values in any frame. That could still cause problems.
|
||||||
# Figure out a better solution :p (e.g. moving verts to random
|
# Figure out a better solution :p (e.g. moving verts to random
|
||||||
# different positions).
|
# different positions).
|
||||||
|
# (We tried putting the verts in a line, to prevent merging.
|
||||||
|
# This was a problem because there are some verts that need merging.)
|
||||||
header_most_diff = 0 # This is the header we will use to define the mesh.
|
header_most_diff = 0 # This is the header we will use to define the mesh.
|
||||||
n_max_diff = 0 # Max number of "different" vertices found in a frame so far.
|
n_max_diff = 0 # Max number of "different" vertices found in the frame.
|
||||||
for x in range(0, header.framecount):
|
for x in range(0, header.framecount):
|
||||||
n_diff_verts = 0 # Current number of "different" vertices.
|
n_diff_verts = 0 # Current number of "different" vertices.
|
||||||
# Find nubmer of different verts
|
# Find nubmer of different verts
|
||||||
|
diff_verts = set()
|
||||||
|
n_diff_verts = 0
|
||||||
for i in range(0, header.vertexcount * 3, 3):
|
for i in range(0, header.vertexcount * 3, 3):
|
||||||
vert_cmp = data.vertices[x * header.vertexcount * 3 + i:x * header.vertexcount * 3 + i + 3]
|
vert = tuple(data.vertices[x * header.vertexcount * 3 + i:x * header.vertexcount * 3 + i + 3])
|
||||||
vert_diff = True
|
if (vert not in diff_verts):
|
||||||
for j in range(i + 3, header.vertexcount * 3, 3):
|
n_diff_verts += 1
|
||||||
if (data.vertices[x * header.vertexcount * 3 + j:x * header.vertexcount * 3 + j + 3] == vert_cmp):
|
diff_verts.add(vert)
|
||||||
vert_diff = False
|
|
||||||
break
|
|
||||||
n_diff_verts += vert_diff
|
|
||||||
|
|
||||||
if n_diff_verts == header.vertexcount:
|
if n_diff_verts == header.vertexcount:
|
||||||
# if we've found a frame where all the verts are different, we don't need to do anymore searching.
|
# if we've found a frame where all the verts are different, we don't need to do anymore searching.
|
||||||
header_most_diff = x
|
header_most_diff = x
|
||||||
|
@ -423,12 +424,12 @@ def createMesh(filename, header, data, toblender, operator):
|
||||||
# the previous match, this frame is the new max.
|
# the previous match, this frame is the new max.
|
||||||
n_max_diff = n_diff_verts
|
n_max_diff = n_diff_verts
|
||||||
header_most_diff = x
|
header_most_diff = x
|
||||||
|
|
||||||
# Get the Vertices and Normals into empty Mesh
|
# Get the Vertices and Normals into empty Mesh
|
||||||
for x in range(0, header.vertexcount * 3, 3):
|
for x in range(0, header.vertexcount * 3, 3):
|
||||||
vertsCO.append(tuple(data.vertices[header_most_diff*header.vertexcount*3+x:header_most_diff*header.vertexcount*3+x+3]))
|
vertsCO.append(tuple(data.vertices[header_most_diff*header.vertexcount*3+x:header_most_diff*header.vertexcount*3+x+3]))
|
||||||
vertsNormal.extend([(data.normals[x], data.normals[x + 1],
|
vertsNormal.extend([(data.normals[x], data.normals[x + 1],
|
||||||
data.normals[x + 2])])
|
data.normals[x + 2])])
|
||||||
|
|
||||||
faces = []
|
faces = []
|
||||||
faceuv = []
|
faceuv = []
|
||||||
|
@ -548,7 +549,7 @@ def createMesh(filename, header, data, toblender, operator):
|
||||||
|
|
||||||
# activate one shapekey per frame
|
# activate one shapekey per frame
|
||||||
for i in range(0, header.framecount):
|
for i in range(0, header.framecount):
|
||||||
shape = mesh.shape_keys.key_blocks[i]
|
shape = mesh.shape_keys.key_blocks[i+1]
|
||||||
shape.value = 0.0
|
shape.value = 0.0
|
||||||
shape.keyframe_insert("value", frame=i)
|
shape.keyframe_insert("value", frame=i)
|
||||||
shape.value = 1.0
|
shape.value = 1.0
|
||||||
|
|
Loading…
Reference in New Issue