Now actually fixed the bug with the normals.
pyassimp returned a list instead of a numpy array when the normals were empty. This also applies to texture coordinates and other stuff which is explicitly converted in _finalize_mesh.pull/64/head
parent
853a5f9bbc
commit
945231ba94
|
@ -58,14 +58,14 @@ def make_tuple(ai_obj, type = None):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def call_init(obj, caller = None):
|
def call_init(obj, caller = None):
|
||||||
# init children
|
# init children
|
||||||
if helper.hasattr_silent(obj, '_init'):
|
if helper.hasattr_silent(obj, '_init'):
|
||||||
obj._init(parent = caller)
|
obj._init(parent = caller)
|
||||||
|
|
||||||
# pointers
|
# pointers
|
||||||
elif helper.hasattr_silent(obj, 'contents'):
|
elif helper.hasattr_silent(obj, 'contents'):
|
||||||
if helper.hasattr_silent(obj.contents, '_init'):
|
if helper.hasattr_silent(obj.contents, '_init'):
|
||||||
obj.contents._init(target = obj, parent = caller)
|
obj.contents._init(target = obj, parent = caller)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -313,7 +313,7 @@ def _finalize_mesh(mesh, target):
|
||||||
data = numpy.array([make_tuple(getattr(mesh, name)[i]) for i in range(nb_vertices)], dtype=numpy.float32)
|
data = numpy.array([make_tuple(getattr(mesh, name)[i]) for i in range(nb_vertices)], dtype=numpy.float32)
|
||||||
setattr(target, name[1:].lower(), data)
|
setattr(target, name[1:].lower(), data)
|
||||||
else:
|
else:
|
||||||
setattr(target, name[1:].lower(), [])
|
setattr(target, name[1:].lower(), numpy.array([], dtype="float32"))
|
||||||
|
|
||||||
def fillarray(name):
|
def fillarray(name):
|
||||||
mAttr = getattr(mesh, name)
|
mAttr = getattr(mesh, name)
|
||||||
|
|
|
@ -43,7 +43,7 @@ def main(filename=None):
|
||||||
print(" material id:" + str(mesh.materialindex+1))
|
print(" material id:" + str(mesh.materialindex+1))
|
||||||
print(" vertices:" + str(len(mesh.vertices)))
|
print(" vertices:" + str(len(mesh.vertices)))
|
||||||
print(" first 3 verts:\n" + str(mesh.vertices[:3]))
|
print(" first 3 verts:\n" + str(mesh.vertices[:3]))
|
||||||
if mesh.normals:
|
if mesh.normals.any():
|
||||||
print(" first 3 normals:\n" + str(mesh.normals[:3]))
|
print(" first 3 normals:\n" + str(mesh.normals[:3]))
|
||||||
else:
|
else:
|
||||||
print(" no normals")
|
print(" no normals")
|
||||||
|
|
Loading…
Reference in New Issue