Я думаю, проверить не могу, что
1) referenceDirection - это направление, вдоль которого будет направлена ось z семейства. В обычных ситуациях должна быть нормаль к текущей поверхности.
2) очень похоже, что это базовая линия, вдоль которой нужно располагать семейства на основе линии.