def plumbness_imperfection(z, length, delta_plumbness, oop_axis, **kwargs):
    """  Returns the out-of-plumbness imperfection of the node.

    :param float z: z coordinate of node
    :param float length: total length of the component
    :param float delta_plumbness: maximum amplitude of the out-of-plumbness global imperfection
    :param np.ndarray oop_axis: direction of out-of-plumbness wrt to the global coordinates
    :return list: [float] nodal imperfection [x, y, z] in the global coordinates
    """
    w = delta_plumbness * z / length
    return list(w * oop_axis)