OBJ update

This commit is contained in:
Thomas FORGIONE 2017-01-18 15:11:44 +01:00
parent a36402686c
commit 525ec741d9
No known key found for this signature in database
GPG Key ID: 2A210FFC062E00C3
1 changed files with 30 additions and 1 deletions

View File

@ -6,9 +6,16 @@ import sys
def is_obj(filename):
"""Checks that the file is a .obj file
Only checks the extension of the file
:param filename: path to the file
"""
return filename[-4:] == '.obj'
class OBJParser(TextModelParser):
"""Parser that parses a .obj file
"""
def __init__(self, up_conversion = None):
super().__init__(up_conversion)
@ -16,6 +23,10 @@ class OBJParser(TextModelParser):
self.mtl = None
def parse_line(self, string):
"""Parses a line of .obj file
:param string: the line to parse
"""
if string == '':
return
@ -64,13 +75,22 @@ class OBJParser(TextModelParser):
print('Face with more than 4 vertices are not supported', file=sys.stderr)
class MTLParser:
"""Parser that parses a .mtl material file
"""
def __init__(self, parent):
"""Creates a MTLParser bound to the OBJParser
:param parent: the OBJParser this MTLParser refers to
"""
self.parent = parent
self.materials = []
self.current_mtl = None
def parse_line(self, string):
"""Parses a line of .mtl file
:param string: line to parse
"""
if string == '':
return
@ -109,10 +129,19 @@ class MTLParser:
class OBJExporter(Exporter):
"""Exporter to .obj format
"""
def __init__(self, model):
"""Creates an exporter from the model
:param model: Model to export
"""
super().__init__(model)
def __str__(self):
"""Exports the model
"""
current_material = ''
string = ""