Dear mailing list readers For some reason the only doc I found yesterday on google about custom layers was "blah blah" in the the BMesh API<http://www.blender.org/documentation/blender_python_api_2_63_5/bmesh.types.html#bmesh.types.BMVertSeq.layers>. Now with the the help of CoDEmanX, I discovered custom layers in Bmesh.
Just for clarification for "dumb" readers like me (an extension to the BMesh API Doc<http://www.blender.org/documentation/blender_python_api_2_63_2/bmesh.html#customdata-access>): bm.verts, bm.edges, bm.faces are not just a lists but they are of type bmesh.types.BMVertSeq, bmesh.types.BMEdgeSeq, bmesh.types.BMFaceSeq The access to custom data of a vert for instance is implemented in bmesh.types.BMVert and bmesh.types.VertSeq together. Let's say you want to store the coordinates of a bounding box of a BMFace. What I wanted to do in the first place was: bm.faces[0].b_rect = [vmax,vmin,hmax,hmin] Now with layers it looks a bit different: bm.faces[0][b_rect] = "we will come to the bounding box later" Note that the following will not work: bm.faces[0]['b_rect'] = "something" The layer needs to be accessed with the key generated by the face sequence as follows: key = bm.faces.layers.int.new("b_rect") bm.faces[0][key] #read/write access You can retrieve the key by typing: key = bm.faces.layers.int['b_rect'] Now what Campbell suggested to my problem was storing my complex data in a list and adding the index of the data in that list to my face as an int layer: MyData = [] MyData.append([vmax,vmin,hmax,hmin]) index = len(MyData)-1 bm.faces[0][b_rect] = index I still hope that at some point I could extend the wrapper classes directly to store my data. Best, Lukas _______________________________________________ Bf-python mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-python
