Как повернуть в Autodesk Viewer - PullRequest
0 голосов
/ 07 августа 2020

Я использую GuiViewer3D для просмотра 3D-файлов в моем приложении angular. Он загружается правильно, но я могу вращать его только в виде куба в правом верхнем углу. Перетаскивание в другое место на экране ничего не дает (как в онлайн-программе просмотра). Я попытался написать расширение и поместить его в метод загрузки, но все равно ничего не сделал. Я не уверен, что это должна быть функция, а если нет, правильно ли я реализую вращение:

    let nav = this.viewer.navigation;
    let up = nav.getCameraUpVector();
    let axis = new THREE.Vector3(0, 0, 1);
    let speed = 10.0 * Math.PI / 180;
    let matrix = new THREE.Matrix4().makeRotationAxis(axis, speed * 0.1);

    let pos = nav.getPosition();
    pos.applyMatrix4(matrix);
    up.applyMatrix4(matrix);
    nav.setView(pos, new THREE.Vector3(0, 0, 0));
    nav.setCameraUpVector(up);

Кроме того, я видел в онлайн-средстве просмотра панель инструментов (на внизу пи c), что позволяет вам делать разные вещи. Предоставляет ли Autodesk эти кнопки / функции (ie базовая c панель инструментов) или мы должны создавать свои собственные функции? Мне не удалось найти никакой документации по этому поводу.

введите описание изображения здесь

РЕДАКТИРОВАТЬ: Вот мой код в файле .ts для средства просмотра (без настройки расширения):

 let  viewerOptions = {
      env: 'AutodeskProduction',
      api: 'derivativeV2',  // for models uploaded to EMEA change this option to 'derivativeV2_EU'
      getAccessToken: function(onTokenReady) {
          var token = 'TOKEN';
          var timeInSeconds = 3600; // Use value provided by Forge Authentication (OAuth) API
          onTokenReady(token, timeInSeconds);
      }
    };
      Autodesk.Viewing.Initializer(viewerOptions, () => {
        let config3d = {
          extensions: ['MyExtension'],
        }
        let viewer = new Autodesk.Viewing.GuiViewer3D(this.container.nativeElement, config3d);
        viewer.start();
        Autodesk.Viewing.Document.load(this.urn, function (doc) {
          let viewables = doc.getRoot().search({ 'type': 'geometry' });
          viewer.loadDocumentNode(doc, viewables[1]);
          
        }, this.onDocumentLoadFailure);
        
      });

1 Ответ

1 голос
/ 07 августа 2020

Средство просмотра должно иметь вращение и панель инструментов по умолчанию ( согласно этому руководству ). Из вашего описания кажется, что у вас есть базовая c Три. js программа просмотра.

...