def test_import_all_obj(self): tmp = self._get_tmp() for x in gather_files(self.root, filter='.obj'): try: converter = ObjConverter(tmp, x) converter.load_model() converter.brres.save(overwrite=True) except: print(f'ERROR importing {x}') raise
def test_export_all_obj(self): tmp = self._get_tmp('.obj') for x in gather_files(self.root): try: converter = ObjConverter(Brres(x), tmp) for model in converter.brres.models: converter.save_model(model) except: print(f'ERROR exporting {x}') raise
def test_load_map_model(self): mdl_file = self._get_test_fname('map_model.obj') converter = ObjConverter(self._get_tmp('.brres'), mdl_file) converter.load_model() map_bone = converter.mdl0.bones[0] self.assertEqual('map', map_bone.name) pos_ld = map_bone.child self.assertEqual('posLD', pos_ld.name) pos_ru = pos_ld.next self.assertEqual('posRU', pos_ru.name) for poly in converter.mdl0.objects: self.assertEqual(map_bone, poly.linked_bone) self.assertEqual(map_bone, poly.visible_bone)
def import_file(self, fname, brres_name=None, brres=None, mdl0=None): if mdl0 is not None: brres = mdl0.parent if not brres: if brres_name is not None: brres = self.get_brres_by_fname(brres_name) elif self.brres and os.path.splitext(os.path.basename(self.brres.name))[0] == \ os.path.splitext(os.path.basename(fname))[0]: brres = self.brres self.cwd, name = os.path.split(fname) base_name, ext = os.path.splitext(name) lower = ext.lower() if lower == '.dae': converter = DaeConverter2(brres, fname, mdl0=mdl0) elif lower == '.obj': converter = ObjConverter(brres, fname, mdl0=mdl0) # elif lower in ('.png', '.jpg', '.bmp', '.tga'): # return self.import_texture(fname) else: self.statusBar().showMessage('Unknown extension {}'.format(ext)) return # converter.load_model() # self.on_conversion_finish(converter) self.update_status('Added {} to queue...'.format(fname)) self.lock_file(converter.brres) self.converter.enqueue(converter)
def test_load_patch(self): original = self._get_brres('simple.brres') replace = original.models[0].objects[0] converter = ObjConverter(original, self._get_test_fname('3ds_simple.obj'), flags=ObjConverter.PATCH, include=[replace.name], ).convert() item = [x for x in converter.mdl0.objects if x.name == replace.name][0] self.assertIsNot(replace, item)
def test_save_load_eq(self): original = self._get_brres('beginner_course.brres') converter = ObjConverter(original, self._get_tmp('.obj'), encode=False).convert() encoder = ObjConverter(self._get_tmp('.brres'), converter.mdl_file).convert() self.assertTrue(CheckPositions.positions_equal(original.models[0].vertices, encoder.mdl0.vertices))