Сечения OBJ в three.js с использованием ThreeCSG

Я пытаюсь сделать сеченияOBJ загружен стри.js OBJ загрузчик с использованиемthreeCSG обертка для JavaScriptконструктивная геометрия твердого тела библиотека.

Когда я использую обычную сетку (например, сферу / куб), операция пересечения csg работает прекрасно. Я также могу сделать хорошо выглядящие сечения с obj в исходном положении (белый объект, сечение, отображаемое красным внизу):

Однако, когда я поворачиваю объект, поперечное сечение остается неизменным независимо от того, как я изменяю его вращение:

Как я могу получить операцию пересечения CSG, чтобы принять во внимание вращение объекта? Он работает, как и ожидалось, с обычной сеткой three.js (куб).

Это может быть как-то связано с тем, как three.js загружает файлы OBJ - похоже, он хранит связку мешей в родительском объекте, который затем можно добавлять / манипулировать в сцене. Вот как я делаю операции csg:

threeOBJ.traverse( function ( child ) {
    if (child instanceof THREE.Mesh) {
        cc = crossSection( child );
        scene.add( cc );
    }
} );

crossSection() Функция выполняет операцию пересечения csg с прозрачной синей плоскостью, видимой на изображениях и каждой дочерней сетке. Он возвращает ТРИ. Меш, который я затем добавляю к сцене.

Я чувствую, что, должно быть, я ссылаюсь на что-то неправильно, поскольку это не учитывает ротацию, но я понятия не имею, что. Есть ли лучший способ использовать csg с тремя.js-загруженными OBJs; Было бы лучше / возможно объединить все дочерние сетки в одну родительскую сетку и затем выполнить логические операции?

Ответы на вопрос(1)

Ваш ответ на вопрос