Esempio n. 1
0
    def parse_usemtl(self):
        self.material = self.wavefront.materials.get(self.values[1], None)

        if self.material is None:
            raise PywavefrontException('Unknown material: %s' % self.values[1])

        if self.mesh is not None:
            self.mesh.add_material(self.material)
Esempio n. 2
0
 def parse_fallback(self):
     """Fallback method when parser doesn't know the statement"""
     if self.strict:
         raise PywavefrontException("Unimplemented OBJ format statement '%s' on line '%s'"
                                    % (self.values[0], self.line.rstrip()))
     else:
         logger.warning("Unimplemented OBJ format statement '%s' on line '%s'"
                         % (self.values[0], self.line.rstrip()))
Esempio n. 3
0
    def parse_usemtl(self):
        name = " ".join(self.values[1:])
        self.material = self.wavefront.materials.get(name, None)

        if self.material is None:
            if not self.create_materials:
                raise PywavefrontException('Unknown material: %s' % name)

            # Create a new default material if configured to resolve missing ones
            self.material = Material(name, is_default=True, has_faces=self.collect_faces)
            self.wavefront.materials[name] = self.material

        if self.mesh is not None:
            self.mesh.add_material(self.material)
Esempio n. 4
0
    def __init__(self, path):
        self.image_name = path
        self.image = None

        if not os.path.exists(path):
            raise PywavefrontException("Requested file does not exist")