Как я понял ArcBall тут не причем. Может тебе нужен Scena Graph? Граф сцены? В твоем случае тебе нужен не видимый объект, который находится в начале координат, и привязанный к нему визуальный объект. Ты поварачиваешь невидимый объект, а визуальный относительно его поварачивается вокруг него.
Вот примерный код для этого:
Код:
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(posv.v[0],posv.v[1],posv.v[2]);
glRotatef(rotv.v[0],rotv.v[1],rotv.v[2],rotv.v[3]);
glPushMatrix();
glScalef(scalev.v[0],scalev.v[1],scalev.v[2]);
draw_this_object();
draw_присоединеные_objects();
glPopMatrix();
glPopMatrix();
Делаешь перенос, поворот относительно головного объекта, потом масштабирование, рисуешь сам объект и связанные с ним. Это рекурсия ...