# 	y_vec = cross_vectors(x_vec, [0.0, 0.0, 1.0])  # global Z
# 	y_vec = scale_vector(y_vec, y)
# 	vec_3 = normalize_vector(add_vectors(x_vec, y_vec))

# 	mesh.set_face_attribute(fkey, name=vector_tag, value=vec_3)

# ==========================================================================
# Average smooth vector field
# ==========================================================================

for _ in range(smooth_iters):
    averaged_vectors = {}
    for fkey in mesh.faces():
        nbrs = mesh.face_neighbors(fkey)
        vectors = mesh.get_faces_attribute(keys=nbrs, name=vector_tag)
        vectors.append(mesh.get_face_attribute(fkey, name=vector_tag))

        vectors = list(map(lambda x: ut.align_vector(x, vectors[0]), vectors))

        vectors = np.array(vectors)
        avg_vector = np.mean(vectors, axis=0).tolist()
        averaged_vectors[fkey] = avg_vector

    for fkey in mesh.faces():
        mesh.set_face_attribute(fkey,
                                name=vector_tag,
                                value=averaged_vectors[fkey])

# ==========================================================================
# Create PS vector lines
# ==========================================================================