bugfix [#22037] OBJ exporter produce wrong UV
authorCampbell Barton <ideasman42@gmail.com>
Fri, 13 Aug 2010 16:59:11 +0000 (16:59 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 13 Aug 2010 16:59:11 +0000 (16:59 +0000)
release/scripts/io/import_scene_obj.py
source/blender/makesrna/intern/rna_material_api.c

index 03adc8be395099704430863319288efb467f0df9..3827b3225b6d9a52e11e687ef848d70c299856ab 100644 (file)
@@ -375,38 +375,32 @@ def create_materials(filepath, material_libs, unique_materials, unique_material_
                 # Image has alpha
 
                 # XXX bitmask won't work?
-                blender_material.add_texture(texture, "UV", ("COLOR", "ALPHA"))
+                blender_material.add_texture(texture, 'UV', {'COLOR', 'ALPHA'})
                 texture.mipmap = True
                 texture.interpolation = True
                 texture.use_alpha = True
-                blender_material.z_transparency = True
+                blender_material.transparency = True
                 blender_material.alpha = 0.0
-
-#                              blender_material.setTexture(0, texture, Texture.TexCo.UV, Texture.MapTo.COL | Texture.MapTo.ALPHA)
-#                              texture.setImageFlags('MipMap', 'InterPol', 'UseAlpha')
-#                              blender_material.mode |= Material.Modes.ZTRANSP
-#                              blender_material.alpha = 0.0
             else:
-                blender_material.add_texture(texture, "UV", "COLOR")
-#                              blender_material.setTexture(0, texture, Texture.TexCo.UV, Texture.MapTo.COL)
+                blender_material.add_texture(texture, 'UV', 'COLOR')
 
             # adds textures to faces (Textured/Alt-Z mode)
             # Only apply the diffuse texture to the face if the image has not been set with the inline usemat func.
             unique_material_images[context_material_name]= image, has_data # set the texface image
 
         elif type == 'Ka':
-            blender_material.add_texture(texture, "UV", "AMBIENT")
+            blender_material.add_texture(texture, 'UV', 'AMBIENT')
 #                      blender_material.setTexture(1, texture, Texture.TexCo.UV, Texture.MapTo.CMIR) # TODO- Add AMB to BPY API
 
         elif type == 'Ks':
-            blender_material.add_texture(texture, "UV", "SPECULARITY")
+            blender_material.add_texture(texture, 'UV', 'SPECULARITY')
 #                      blender_material.setTexture(2, texture, Texture.TexCo.UV, Texture.MapTo.SPEC)
 
         elif type == 'Bump':
-            blender_material.add_texture(texture, "UV", "NORMAL")
+            blender_material.add_texture(texture, 'UV', 'NORMAL')
 #                      blender_material.setTexture(3, texture, Texture.TexCo.UV, Texture.MapTo.NOR)
         elif type == 'D':
-            blender_material.add_texture(texture, "UV", "ALPHA")
+            blender_material.add_texture(texture, 'UV', 'ALPHA')
             blender_material.z_transparency = True
             blender_material.alpha = 0.0
 #                      blender_material.setTexture(4, texture, Texture.TexCo.UV, Texture.MapTo.ALPHA)
@@ -415,7 +409,7 @@ def create_materials(filepath, material_libs, unique_materials, unique_material_
             # Todo, unset deffuse material alpha if it has an alpha channel
 
         elif type == 'refl':
-            blender_material.add_texture(texture, "UV", "REFLECTION")
+            blender_material.add_texture(texture, 'UV', 'REFLECTION')
 #                      blender_material.setTexture(5, texture, Texture.TexCo.UV, Texture.MapTo.REF)
 
 
index 03eba157bf3d65e9283d061ab8c637f5e8ee914d..43c1a9be7653aaeb02aff0284dc28a3e9104e2bb 100644 (file)
@@ -42,7 +42,7 @@
   Adds material to the first free texture slot.
   If all slots are busy, replaces the first.
 */
-static void rna_Material_add_texture(Material *ma, Tex *tex, int mapto, int texco)
+static void rna_Material_add_texture(Material *ma, Tex *tex, int texco, int mapto)
 {
        int i;
        MTex *mtex;
@@ -71,8 +71,8 @@ static void rna_Material_add_texture(Material *ma, Tex *tex, int mapto, int texc
        if (tex)
                id_us_plus(&tex->id);
        
-       mtex->texco= mapto;
-       mtex->mapto= texco;
+       mtex->texco= texco;
+       mtex->mapto= mapto;
 }
 
 #else
@@ -121,6 +121,7 @@ void RNA_api_material(StructRNA *srna)
        RNA_def_property_flag(parm, PROP_REQUIRED);
        parm= RNA_def_enum(func, "texture_coordinates", prop_texture_coordinates_items, TEXCO_UV, "", "Source of texture coordinate information."); /* optional */
        parm= RNA_def_enum(func, "map_to", prop_texture_mapto_items, MAP_COL, "", "Controls which material property the texture affects."); /* optional */
+       RNA_def_property_flag(parm, PROP_ENUM_FLAG);
 }
 
 #endif