'Update the location of the plotted points.'

@on_trait_change('trans,points')
def _update_points(self):

    if (not hasattr(self.src, 'data')):
        return
    trans = self.trans
    if np.any(trans):
        if ((trans.ndim == 0) or (trans.shape == (3,)) or (trans.shape == (1, 3))):
            pts = (self.points * trans)
        elif (trans.shape == (3, 3)):
            pts = np.dot(self.points, trans.T)
        elif (trans.shape == (4, 4)):
            pts = apply_trans(trans, self.points)
        else:
            err = ('trans    must    be    a    scalar,    a    length    3    sequence,    or    an    array    of    shape    (1,3),    (3,    3)    or    (4,    4).    Got    %s' % str(trans))
            error(None, err, 'Display    Error')
            raise ValueError(err)
    else:
        pts = self.points
    self.src.data.points = pts
    return True
