Hi Campbell, what is the criteria to return or not the created object from a new() function? Or the real question: can bpy.data.textures.new() return the texture as well?
I wonder if to return the created object is something reserved to Direct Data while Lib Data * should be retrieved differently. Cheers, Dalai * I got my understanding from Lib Data and Direct Data from here http://www.blender.org/development/architecture/ - I hope I used it properly 2010/8/23 Campbell Barton <[email protected]>: > Revision: 31540 > > http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31540 > Author: campbellbarton > Date: 2010-08-24 00:16:45 +0200 (Tue, 24 Aug 2010) > > Log Message: > ----------- > - move more active properties into their collections: > scene.active_keying_set --> scene.keying_sets.active > ...same for active_uv_texture. active_vertex_color, active_keyconfig, > > - move mesh.add_uv_layer() and mesh.add_vertex_color() into their collections > also have them return the newly created layer and dont set the layer active. > > uvtex = mesh.uv_layers.new(name) > vcol = mesh.vertex_colors.new(name) > > Modified Paths: > -------------- > trunk/blender/release/scripts/io/export_3ds.py > trunk/blender/release/scripts/io/export_fbx.py > trunk/blender/release/scripts/io/export_obj.py > trunk/blender/release/scripts/io/export_ply.py > trunk/blender/release/scripts/io/export_x3d.py > trunk/blender/release/scripts/io/import_scene_3ds.py > trunk/blender/release/scripts/io/import_scene_obj.py > trunk/blender/release/scripts/op/object.py > trunk/blender/release/scripts/op/presets.py > trunk/blender/release/scripts/op/uv.py > trunk/blender/release/scripts/op/uvcalc_follow_active.py > trunk/blender/release/scripts/op/uvcalc_smart_project.py > trunk/blender/release/scripts/presets/interaction/maya.py > trunk/blender/release/scripts/templates/operator_uv.py > trunk/blender/release/scripts/ui/properties_data_armature.py > trunk/blender/release/scripts/ui/properties_data_mesh.py > trunk/blender/release/scripts/ui/properties_scene.py > trunk/blender/release/scripts/ui/space_image.py > trunk/blender/release/scripts/ui/space_outliner.py > trunk/blender/release/scripts/ui/space_time.py > trunk/blender/release/scripts/ui/space_userpref_keymap.py > trunk/blender/source/blender/blenkernel/BKE_customdata.h > trunk/blender/source/blender/blenkernel/intern/customdata.c > trunk/blender/source/blender/editors/include/ED_mesh.h > trunk/blender/source/blender/editors/mesh/editmesh_lib.c > trunk/blender/source/blender/editors/mesh/mesh_data.c > trunk/blender/source/blender/editors/object/object_vgroup.c > trunk/blender/source/blender/editors/uvedit/uvedit_ops.c > trunk/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c > trunk/blender/source/blender/makesrna/intern/rna_animation.c > trunk/blender/source/blender/makesrna/intern/rna_mesh.c > trunk/blender/source/blender/makesrna/intern/rna_mesh_api.c > trunk/blender/source/blender/makesrna/intern/rna_pose.c > trunk/blender/source/blender/makesrna/intern/rna_scene.c > trunk/blender/source/blender/makesrna/intern/rna_wm.c > > Modified: trunk/blender/release/scripts/io/export_3ds.py > =================================================================== > --- trunk/blender/release/scripts/io/export_3ds.py 2010-08-23 22:10:13 > UTC (rev 31539) > +++ trunk/blender/release/scripts/io/export_3ds.py 2010-08-23 22:16:45 > UTC (rev 31540) > @@ -567,7 +567,7 @@ > f_v = face.vertices > # f_v = face.v > > - uf = mesh.active_uv_texture.data[i] if do_uv else None > + uf = mesh.uv_textures.active.data[i] if do_uv else None > > if do_uv: > f_uv = uf.uv > @@ -998,7 +998,7 @@ > if not mat_ls: > mat = mat_name = None > > - for f, uf in zip(data.faces, > data.active_uv_texture.data): > + for f, uf in zip(data.faces, > data.uv_textures.active.data): > if mat_ls: > mat_index = f.material_index > # mat_index = f.mat > > Modified: trunk/blender/release/scripts/io/export_fbx.py > =================================================================== > --- trunk/blender/release/scripts/io/export_fbx.py 2010-08-23 22:10:13 > UTC (rev 31539) > +++ trunk/blender/release/scripts/io/export_fbx.py 2010-08-23 22:16:45 > UTC (rev 31540) > @@ -1630,7 +1630,7 @@ > # if me.vertexColors: > collayers = me.vertex_colors > # collayers = me.getColorLayerNames() > - collayer_orig = me.active_vertex_color > + collayer_orig = me.vertex_colors.active > # collayer_orig = me.activeColorLayer > for colindex, collayer in enumerate(collayers): > # me.activeColorLayer = collayer > @@ -1700,7 +1700,7 @@ > if do_uvs: > uvlayers = me.uv_textures > # uvlayers = me.getUVLayerNames() > - uvlayer_orig = me.active_uv_texture > + uvlayer_orig = me.uv_textures.active > # uvlayer_orig = me.activeUVLayer > for uvindex, uvlayer in enumerate(me.uv_textures): > # for uvindex, uvlayer in enumerate(uvlayers): > @@ -1834,8 +1834,8 @@ > > mats = my_mesh.blenMaterialList > > - if me.active_uv_texture: > - uv_faces = me.active_uv_texture.data > + if me.uv_textures.active: > + uv_faces = me.uv_textures.active.data > else: > uv_faces = [None] * len(me.faces) > > @@ -2103,7 +2103,7 @@ > material_mapping_local = {} > if len(me.uv_textures) > 0: > # if me.faceUV: > - uvlayer_orig = me.active_uv_texture > + uvlayer_orig = me.uv_textures.active > # uvlayer_orig = > me.activeUVLayer > for uvlayer in me.uv_textures: > # for uvlayer in > me.getUVLayerNames(): > > Modified: trunk/blender/release/scripts/io/export_obj.py > =================================================================== > --- trunk/blender/release/scripts/io/export_obj.py 2010-08-23 22:10:13 > UTC (rev 31539) > +++ trunk/blender/release/scripts/io/export_obj.py 2010-08-23 22:16:45 > UTC (rev 31540) > @@ -418,7 +418,7 @@ > > if EXPORT_UV: > faceuv = len(me.uv_textures) > 0 > - uv_layer = me.active_uv_texture.data[:] > + uv_layer = me.uv_textures.active.data[:] > else: > faceuv = False > > @@ -542,7 +542,7 @@ > uv_face_mapping = [[0,0,0,0] for i in > range(len(face_index_pairs))] # a bit of a waste for tri's :/ > > uv_dict = {} # could use a set() here > - uv_layer = me.active_uv_texture.data > + uv_layer = me.uv_textures.active.data > for f, f_index in face_index_pairs: > for uv_index, uv in enumerate(uv_layer[f_index].uv): > uvkey = veckey2d(uv) > > Modified: trunk/blender/release/scripts/io/export_ply.py > =================================================================== > --- trunk/blender/release/scripts/io/export_ply.py 2010-08-23 22:10:13 > UTC (rev 31539) > +++ trunk/blender/release/scripts/io/export_ply.py 2010-08-23 22:16:45 > UTC (rev 31540) > @@ -129,7 +129,7 @@ > vertexColors = False > > if faceUV: > - active_uv_layer = mesh.active_uv_texture > + active_uv_layer = mesh.uv_textures.active > if not active_uv_layer: > EXPORT_UV = False > faceUV = None > @@ -137,7 +137,7 @@ > active_uv_layer = active_uv_layer.data > > if vertexColors: > - active_col_layer = mesh.active_vertex_color > + active_col_layer = mesh.vertex_colors.active > if not active_col_layer: > EXPORT_COLORS = False > vertexColors = None > > Modified: trunk/blender/release/scripts/io/export_x3d.py > =================================================================== > --- trunk/blender/release/scripts/io/export_x3d.py 2010-08-23 22:10:13 > UTC (rev 31539) > +++ trunk/blender/release/scripts/io/export_x3d.py 2010-08-23 22:16:45 > UTC (rev 31540) > @@ -402,9 +402,9 @@ > if len(mesh.faces) == 0: return > mode = [] > # mode = 0 > - if mesh.active_uv_texture: > + if mesh.uv_textures.active: > # if mesh.faceUV: > - for face in mesh.active_uv_texture.data: > + for face in mesh.uv_textures.active.data: > # for face in mesh.faces: > if face.use_halo and 'HALO' not in mode: > mode += ['HALO'] > @@ -463,7 +463,7 @@ > hasImageTexture=0 > is_smooth = False > > - if len(maters) > 0 or mesh.active_uv_texture: > + if len(maters) > 0 or mesh.uv_textures.active: > # if len(maters) > 0 or mesh.faceUV: > self.writeIndented("<Appearance>\n", 1) > # right now this script can only handle a single material per > mesh. > @@ -480,9 +480,9 @@ > > #-- textures > face = None > - if mesh.active_uv_texture: > + if mesh.uv_textures.active: > # if mesh.faceUV: > - for face in mesh.active_uv_texture.data: > + for face in mesh.uv_textures.active.data: > # for face in mesh.faces: > if face.image: > # if (hasImageTexture == 0) and (face.image): > @@ -525,7 +525,7 @@ > self.file.write("creaseAngle=\"%s\" " % > (round(creaseAngle,self.cp))) > > #--- output textureCoordinates if UV texture used > - if mesh.active_uv_texture: > + if mesh.uv_textures.active: > # if mesh.faceUV: > if self.matonly == 1 and self.share == 1: > self.writeFaceColors(mesh) > @@ -540,7 +540,7 @@ > self.writeCoordinates(ob, mesh, meshName, EXPORT_TRI) > > #--- output textureCoordinates if UV texture used > - if mesh.active_uv_texture: > + if mesh.uv_textures.active: > # if mesh.faceUV: > if hasImageTexture == 1: > self.writeTextureCoordinates(mesh) > @@ -614,7 +614,7 @@ > texIndexList=[] > j=0 > > - for face in mesh.active_uv_texture.data: > + for face in mesh.uv_textures.active.data: > # for face in mesh.faces: > # workaround, since tface.uv iteration is wrong atm > uvs = face.uv > @@ -646,10 +646,10 @@ > def writeFaceColors(self, mesh): > if self.writingcolor == 0: > self.file.write("colorPerVertex=\"false\" ") > - elif mesh.active_vertex_color: > + elif mesh.vertex_colors.active: > # else: > self.writeIndented("<Color color=\"", 1) > - for face in mesh.active_vertex_color.data: > + for face in mesh.vertex_colors.active.data: > c = face.color1 > if self.verbose > 2: > print("Debug: face.col r=%d g=%d b=%d" % (c[0], c[1], > c[2])) > @@ -961,9 +961,9 @@ > faceMap={} > nFaceIndx=0 > > - if mesh.active_uv_texture: > + if mesh.uv_textures.active: > # if mesh.faceUV: > - for face in mesh.active_uv_texture.data: > + for face in mesh.uv_textures.active.data: > # for face in mesh.faces > sidename = "two" if face.use_twoside else "one" > > > Modified: trunk/blender/release/scripts/io/import_scene_3ds.py > =================================================================== > --- trunk/blender/release/scripts/io/import_scene_3ds.py 2010-08-23 > 22:10:13 UTC (rev 31539) > +++ trunk/blender/release/scripts/io/import_scene_3ds.py 2010-08-23 > 22:16:45 UTC (rev 31540) > @@ -346,8 +346,8 @@ > bmesh.faces.foreach_set("vertices_raw", eekadoodle_faces) > > if bmesh.faces and contextMeshUV: > - bmesh.add_uv_texture() > - uv_faces = bmesh.active_uv_texture.data[:] > + bmesh.uv_textures.new() > + uv_faces = bmesh.uv_textures.active.data[:] > else: > uv_faces = None > > > Modified: trunk/blender/release/scripts/io/import_scene_obj.py > =================================================================== > --- trunk/blender/release/scripts/io/import_scene_obj.py 2010-08-23 > 22:10:13 UTC (rev 31539) > +++ trunk/blender/release/scripts/io/import_scene_obj.py 2010-08-23 > 22:16:45 UTC (rev 31540) > @@ -692,9 +692,7 @@ > # face_mapping= me.faces.extend([f[0] for f in faces], indexList=True) > > if verts_tex and me.faces: > - me.add_uv_texture() > -# me.faceUV= 1 > - # TEXMODE= Mesh.FaceModes['TEX'] > + me.uv_textures.new() > > context_material_old= -1 # avoid a dict lookup > mat= 0 # rare case it may be un-initialized. > > Modified: trunk/blender/release/scripts/op/object.py > =================================================================== > --- trunk/blender/release/scripts/op/object.py 2010-08-23 22:10:13 UTC (rev > 31539) > +++ trunk/blender/release/scripts/op/object.py 2010-08-23 22:16:45 UTC (rev > 31540) > @@ -427,13 +427,13 @@ > if is_editmode: > bpy.ops.object.mode_set(mode='OBJECT', toggle=False) > > - if not mesh.active_uv_texture: > + if not mesh.uv_textures: > self.report({'WARNING'}, "Object: %s, Mesh: '%s' has no UVs\n" % > (obj.name, mesh.name)) > else: > len_faces = len(mesh.faces) > > uv_array = array.array('f', [0.0] * 8) * len_faces # seems to be > the fastest way to create an array > - mesh.active_uv_texture.data.foreach_get("uv_raw", uv_array) > > @@ Diff output truncated at 10240 characters. @@ > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
