Проблемы с размещением матрицы преобразования при загрузке нескольких моделей в Autodesk Forge - PullRequest
0 голосов
/ 14 января 2020

При загрузке нескольких моделей я использую параметры placeTransform. проблемы, с которыми я сталкиваюсь, это то, что ротация работает, а перевод - нет.

var Rmat = new THREE.Matrix4();
Tmat=new THREE.Matrix4().makeTranslation(X,Y,Z);
Rmat.makeRotationZ(Angle);
Rmat.multiply(Tmat);

var modelOptions = {
        placementTransform: Rmat,
        sharedPropertyDbPath: doc.getRoot().getPropertyDbManifest()
    };

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Я перепробовал все комбинации, единственное сработавшее использовало globalOffset, и прокомментировал this._firstGlobalOffset код, который работал следующим образом:

//this._firstGlobalOffset = {x:0,y:0,z:0}; // Commented

var Rmat = new THREE.Matrix4();
Rmat.makeRotationZ(Angle);


var modelOptions = {
        placementTransform: Rmat,
        globalOffset:{x:X,y:X,z:Z},
        sharedPropertyDbPath: doc.getRoot().getPropertyDbManifest()
    };
0 голосов
/ 14 января 2020

Насколько я знаю, placementTransform должен поддерживать как перевод, так и ротацию. Попробуйте применить преобразования по отдельности (только перевод или только вращение), посмотрите, применяются ли оба, как ожидалось. А также дважды проверьте, умножаете ли вы матрицы в правильном порядке.

Более того, если вы можете воспроизвести проблему в примере приложения, поделитесь им с нами через forge (dot) help (at) autodesk (dot) com, и мы примем посмотрите на это.

...