def doSaveTarget(context, filepath): ob = context.object if not utils.isTarget(ob): raise NameError("%s is not a target") bpy.ops.object.mode_set(mode='OBJECT') ob.active_shape_key_index = ob["NTargets"] if not checkValid(ob): return saveAll = not ob["SelectedOnly"] skey = ob.active_shape_key if skey.name[0:6] == "Target": skey.name = utils.nameFromPath(filepath) verts = evalVertLocations(ob) (fname,ext) = os.path.splitext(filepath) filepath = fname + ".target" fp = open(filepath, "w") print("Saving target %s to %s" % (ob, filepath)) for n,vco in verts.items(): bv = ob.data.vertices[n] vec = vco - bv.co if vec.length > the.Epsilon and (saveAll or bv.select): fp.write("%d %.6f %.6f %.6f\n" % (n, vec[0], vec[2], -vec[1])) fp.close() ob["FilePath"] = filepath
def doSaveTarget(context, filepath): ob = context.object settings = getSettings(ob) if not utils.isTarget(ob): raise NameError("%s is not a target") bpy.ops.object.mode_set(mode='OBJECT') ob.active_shape_key_index = ob["NTargets"] if not checkValid(ob): return saveAll = not ob.SelectedOnly skey = ob.active_shape_key if skey.name[0:6] == "Target": skey.name = utils.nameFromPath(filepath) verts = evalVertLocations(ob) (fname,ext) = os.path.splitext(filepath) filepath = fname + ".target" print("Saving target %s to %s" % (ob, filepath)) if False and ob.MhMeshVertsDeleted and ob.MhAffectOnly != 'All': first,last = settings.affectedVerts[ob.MhAffectOnly] before,after = readLines(filepath, first,last) fp = open(filepath, "w", encoding="utf-8", newline="\n") for line in before: fp.write(line) if ob.MhMeshVertsDeleted: offset = settings.offsetVerts[ob.MhAffectOnly] else: offset = 0 saveVerts(fp, ob, verts, saveAll, first, last, offset) for (vn, string) in after: fp.write("%d %s" % (vn, string)) else: fp = open(filepath, "w", encoding="utf-8", newline="\n") saveVerts(fp, ob, verts, saveAll, 0, len(verts), 0) fp.close() ob["FilePath"] = filepath
def doSaveTarget(context, filepath): ob = context.object settings = getSettings(ob) if not utils.isTarget(ob): raise NameError("%s is not a target") bpy.ops.object.mode_set(mode='OBJECT') ob.active_shape_key_index = ob["NTargets"] if not checkValid(ob): return saveAll = not ob.SelectedOnly skey = ob.active_shape_key if skey.name[0:6] == "Target": skey.name = utils.nameFromPath(filepath) verts = evalVertLocations(ob) (fname, ext) = os.path.splitext(filepath) filepath = fname + ".target" print("Saving target %s to %s" % (ob, filepath)) if False and ob.MhMeshVertsDeleted and ob.MhAffectOnly != 'All': first, last = settings.affectedVerts[ob.MhAffectOnly] before, after = readLines(filepath, first, last) fp = open(filepath, "w", encoding="utf-8", newline="\n") for line in before: fp.write(line) if ob.MhMeshVertsDeleted: offset = settings.offsetVerts[ob.MhAffectOnly] else: offset = 0 saveVerts(fp, ob, verts, saveAll, first, last, offset) for (vn, string) in after: fp.write("%d %s" % (vn, string)) else: fp = open(filepath, "w", encoding="utf-8", newline="\n") saveVerts(fp, ob, verts, saveAll, 0, len(verts), 0) fp.close() ob["FilePath"] = filepath