def setup_user_defined_post(self, o, post_x, post_y, post_z):
self.user_defined_post = o
x = o.bound_box[6][0] - o.bound_box[0][0]
y = o.bound_box[6][1] - o.bound_box[0][1]
z = o.bound_box[6][2] - o.bound_box[0][2]
self.user_defined_post_scale = Vector((post_x / x, post_y / -y, post_z / z))
m = o.data
# create vertex group lookup dictionary for names
vgroup_names = {vgroup.index: vgroup.name for vgroup in o.vertex_groups}
# create dictionary of vertex group assignments per vertex
self.vertex_groups = [[vgroup_names[g.group] for g in v.groups] for v in m.vertices]
# uvs
uv_act = m.uv_layers.active
if uv_act is not None:
uv_layer = uv_act.data
self.user_defined_uvs = [[uv_layer[li].uv for li in p.loop_indices] for p in m.polygons]
else:
self.user_defined_uvs = [[(0, 0) for i in p.vertices] for p in m.polygons]
# material ids
self.user_defined_mat = [p.material_index for p in m.polygons]
评论列表
文章目录