diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py index 52cb0e50a8252978c02092d6ed94ec666dea5dbe..748b43550789617247731f6b6e6ff17087fa7733 100644 --- a/io_coat3D/__init__.py +++ b/io_coat3D/__init__.py @@ -83,6 +83,12 @@ def register(): default= "" ) + coat3D.path3b = StringProperty( + name="3B Path", + subtype="FILE_PATH", + default= "" + ) + class coat3D(bpy.types.IDPropertyGroup): pass diff --git a/io_coat3D/coat.py b/io_coat3D/coat.py index 0fc229c446bf76256979e88fed5eaa8200f94f8b..48a2c996ecba8c0cc2046f3c2ea87aaff6e21ca7 100644 --- a/io_coat3D/coat.py +++ b/io_coat3D/coat.py @@ -93,7 +93,16 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel): if(bpy.context.selected_objects): if(context.selected_objects[0].type == 'MESH'): - row.label(text="%s Path:"%(bpy.context.scene.objects.active.name)) + coa = context.selected_objects[0].coat3D + colL = row.column() + colR = row.column() + colL.label(text="Object Path:") + if(coa.path3b): + colR.active = True + else: + colR.active = False + + colR.operator("import_applink.pilgway_3d_coat_3b", text="Load 3b") row = layout.row() row.prop(coa,"objectdir",text="") @@ -102,6 +111,9 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel): if(coat['status'] == 1): Blender_folder = ("%s%sBlender"%(coat3D.exchangedir,os.sep)) Blender_export = Blender_folder + Blender_export = Blender_folder + path3b_now = coat3D.exchangedir + path3b_now += ('last_saved_3b_file.txt') Blender_export += ('%sexport.txt'%(os.sep)) if(not(os.path.isdir(Blender_folder))): @@ -117,12 +129,22 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel): obj_path = line break obj_pathh.close() - print("%s"%obj_path) export = obj_path mod_time = os.path.getmtime(obj_path) mtl_list = obj_path.replace('.obj','.mtl') if(os.path.isfile(mtl_list)): os.remove(mtl_list) + + if(os.path.isfile(path3b_now)): + path3b_file = open(path3b_now) + for lin in path3b_file: + path_export = lin + path_on = 1 + path3b_file.close() + os.remove(path3b_now) + else: + print("ei toimi") + path_on = 0 for palikka in bpy.context.scene.objects: if(palikka.type == 'MESH'): @@ -138,6 +160,9 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel): bpy.ops.import_scene.obj(filepath=obj_path) new_obj = scene.objects[0] scene.objects[0].coat3D.objectdir = export + if(path_on): + scene.objects[0].coat3D.path3b = path_export + os.remove(Blender_export) bpy.context.scene.objects.active = new_obj @@ -155,6 +180,7 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel): if(context.selected_objects): if(context.selected_objects[0].type == 'MESH'): + coa = bpy.context.selected_objects[0].coat3D row = layout.row() row.label(text="Texture output folder:") row = layout.row() @@ -175,12 +201,25 @@ class SCENE_PT_Settings(ObjectButtonsPanel,bpy.types.Panel): layout = self.layout scene = context.scene coat3D = bpy.context.scene.coat3D + + row = layout.row() + if(bpy.context.selected_objects): + if(context.selected_objects[0].type == 'MESH'): + row.active = True + else: + row.active = False + row.operator("import_applink.pilgway_3d_deltex",text="Delete Textures") row = layout.row() row.label(text="Exchange Folder:") row = layout.row() row.prop(coat3D,"exchangedir",text="") - row = layout.row() + if(bpy.context.scene.objects.active): + coa = bpy.context.scene.objects.active.coat3D + row = layout.row() + row.label(text="3b path:") + row = layout.row() + row.prop(coa,"path3b",text="") #colL = row.column() #colR = row.column() #colL.prop(coat3D,"export_box") @@ -201,12 +240,7 @@ class SCENE_PT_Settings(ObjectButtonsPanel,bpy.types.Panel): #row = layout.row() #colL = row.column() #colR = row.column() - if(bpy.context.selected_objects): - if(context.selected_objects[0].type == 'MESH'): - row.active = True - else: - row.active = False - row.operator("import_applink.pilgway_3d_deltex",text="Delete Textures") + @@ -302,6 +336,8 @@ class SCENE_OT_import(bpy.types.Operator): coa = bpy.context.scene.objects.active.coat3D exportfile = coat3D.exchangedir + path3b_n = coat3D.exchangedir + path3b_n += ('last_saved_3b_file.txt') exportfile += ('%sexport.txt'%(os.sep)) if(os.path.isfile(exportfile)): export_file = open(exportfile) @@ -335,6 +371,7 @@ class SCENE_OT_import(bpy.types.Operator): proxy_mat.user_clear() bpy.data.materials.remove(proxy_mat) bpy.ops.object.select_all(action='TOGGLE') + if(coat3D.export_pos): scene.objects.active = objekti objekti.select = True @@ -382,6 +419,7 @@ class SCENE_OT_import(bpy.types.Operator): bpy.ops.object.delete() objekti.select = True bpy.context.scene.objects.active = objekti + @@ -389,6 +427,13 @@ class SCENE_OT_import(bpy.types.Operator): bpy.ops.object.shade_smooth() else: bpy.ops.object.shade_flat() + + if(os.path.isfile(path3b_n)): + path3b_fil = open(path3b_n) + for lin in path3b_fil: + objekti.coat3D.path3b = lin + path3b_fil.close() + os.remove(path3b_n) if(coat3D.importmesh and not(os.path.isfile(coa.objectdir))): coat3D.importmesh = False @@ -427,19 +472,20 @@ class SCENE_OT_load3b(bpy.types.Operator): def invoke(self, context, event): checkname = '' - coat3D = bpy.context.scene.coat3D - scene = context.scene - importfile = coat3D.exchangedir - importfile += ('%simport.txt'%(os.sep)) - - coat_path = bpy.context.active_object.coat3D.coatpath - - file = open(importfile, "w") - file.write("%s"%(coat_path)) - file.write("\n%s"%(coat_path)) - file.write("\n[3B]") - file.close() - coat['active_coat'] = coat_path + coa = bpy.context.scene.objects.active.coat3D + if(coa.path3b): + coat3D = bpy.context.scene.coat3D + scene = context.scene + importfile = coat3D.exchangedir + importfile += ('%simport.txt'%(os.sep)) + + coat_path = bpy.context.active_object.coat3D.path3b + + file = open(importfile, "w") + file.write("%s"%(coat_path)) + file.write("\n%s"%(coat_path)) + file.write("\n[3B]") + file.close() return('FINISHED') diff --git a/io_coat3D/tex.py b/io_coat3D/tex.py index 49af82fb7666ed14d3138327750cfaa321102b36..fd1792f21c9856ce42a193d5ff67b84deec3eb8b 100644 --- a/io_coat3D/tex.py +++ b/io_coat3D/tex.py @@ -37,7 +37,7 @@ def find_index(objekti): def gettex(mat_list, objekti, scene,export): coat3D = bpy.context.scene.coat3D - coa = bpy.context.scene.objects.active.coat3D + if(bpy.context.scene.render.engine == 'VRAY_RENDER' or bpy.context.scene.render.engine == 'VRAY_RENDER_PREVIEW'): vray = True @@ -73,6 +73,7 @@ def gettex(mat_list, objekti, scene,export): if(tex_slot.texture.type == 'IMAGE'): tex_slot.texture.image.reload() else: + coa = bpy.context.scene.objects.active.coat3D nimi = objname(coa.objectdir) if(coa.texturefolder): osoite = os.path.dirname(coa.texturefolder) + os.sep @@ -235,6 +236,7 @@ def gettex(mat_list, objekti, scene,export): objekti.active_material.texture_slots[index].uv_layer = objekti.data.uv_textures.active.name objekti.active_material.texture_slots[index].use_map_color_diffuse = False objekti.active_material.texture_slots[index].use_map_normal = True + objekti.active_material.texture_slots[index].normal_factor = -1 if(bring_spec == 1 and texcoat['specular']):