def rotate_single_point(axis, angle, origin, pos, maxis):
    axis = numpy.asarray(axis, dtype = float)
    data = _create_rotation_matrix(axis, angle)

    if (numpy.allclose(pos, 0.0)):
        raxis = numpy.dot(maxis, data.T)
        return pos, raxis
    else:
        pos = pos - origin
        pos = numpy.dot(pos, data.T)
        pos = pos + origin
        raxis = pos/sqrt(numpy.inner(pos, pos))
        return pos, raxis
Ideally would get objects from form validation instead.
dataset/ETHPy150Open enthought/mayavi/tvtk/tools/visual.py/rotate_single_point--crossover with--dataset/ETHPy150Open cloudera/hue/apps/oozie/src/oozie/views/api.py/_update_workflow_nodes_json