print line numbers when failing to load material library, bugfix "next"
This commit is contained in:
parent
63695755b0
commit
505bdf9f4b
20
wfobj.py
20
wfobj.py
@ -118,39 +118,43 @@ class WFObj(object):
|
||||
fh = open(name, 'r')
|
||||
material = None
|
||||
material_name = ''
|
||||
lineno = 0
|
||||
for line in iter(fh.readline, ''):
|
||||
lineno += 1
|
||||
line = line.strip()
|
||||
if line.startswith('#'):
|
||||
next
|
||||
continue
|
||||
parts = line.split()
|
||||
if len(parts) < 1:
|
||||
next
|
||||
continue
|
||||
if parts[0] == 'newmtl':
|
||||
if len(parts[1:]) < 1:
|
||||
raise ValueError('newmtl directive requires argument')
|
||||
raise ValueError('newmtl directive requires argument on line %d' % lineno)
|
||||
material = Material()
|
||||
material_name = parts[1]
|
||||
self.materials[material_name] = material
|
||||
else:
|
||||
if material is None:
|
||||
raise ValueError('Material directive preceeding "newmtl"')
|
||||
print line
|
||||
print repr(parts)
|
||||
raise ValueError('Material directive preceeding "newmtl" on line %d' % lineno)
|
||||
if parts[0] == 'Ns':
|
||||
material.shininess = float(parts[1])
|
||||
elif parts[0] == 'Ka':
|
||||
if len(parts[1:]) < 3:
|
||||
raise ValueError('Ka requires 3 arguments')
|
||||
raise ValueError('Ka requires 3 arguments on line %d' % lineno)
|
||||
material.ambient = map(float, parts[1:])
|
||||
if len(material.ambient) < 4:
|
||||
material.ambient.append(1.0)
|
||||
elif parts[0] == 'Kd':
|
||||
if len(parts[1:]) < 3:
|
||||
raise ValueError('Kd requires 3 arguments')
|
||||
raise ValueError('Kd requires 3 arguments on line %d' % lineno)
|
||||
material.diffuse = map(float, parts[1:])
|
||||
if len(material.diffuse) < 4:
|
||||
material.diffuse.append(1.0)
|
||||
elif parts[0] == 'Ks':
|
||||
if len(parts[1:]) < 3:
|
||||
raise ValueError('Ks requires 3 arguments')
|
||||
raise ValueError('Ks requires 3 arguments on line %d' % lineno)
|
||||
material.specular = map(float, parts[1:])
|
||||
if len(material.specular) < 4:
|
||||
material.specular.append(1.0)
|
||||
@ -166,7 +170,7 @@ class WFObj(object):
|
||||
elif parts[0] == 'map_Kd':
|
||||
material.texture = parts[1]
|
||||
else:
|
||||
raise ValueError('Unknown material directive "%s"' % parts[0])
|
||||
raise ValueError('Unknown material directive "%s" on line %d' % (parts[0], lineno))
|
||||
|
||||
if self.fileloader is None:
|
||||
fh.close()
|
||||
|
Loading…
x
Reference in New Issue
Block a user