А мне кажется для ~100 часов опытов в с++ не такой уж и ужасный код
Перегрузку операторов, всякие там виртуальные функции, наследование, шаблоны и т.д. я еще не пробовал, но планирую освоить.
И да, дьявол кроется в деталях. Может смещения и получится унифицировать как получилось объединить деформацию и обновление нормалей, но вряд ли там довольно разные вещи в зависимости от направления происходят.