围绕Autodesk Forge中的模型旋转相机

时间:2018-11-14 11:44:15

标签: javascript autodesk-forge autodesk-viewer

我创建了一个扩展程序,该扩展程序使相机围绕Revit模型旋转,该Revit模型是在存储桶中上传的,但是如何在单击工具栏上的按钮后使相机不断围绕模型旋转。另外,如何再次单击同一按钮停止旋转?下面的代码是单击按钮后我用来旋转相机的代码。

var _this = this;
var _viewer = _this.viewer;
var turnTableToolbarButton = new Autodesk.Viewing.UI.Button('turnTableButton');
turnTableToolbarButton.onClick = function (e) { 

    const nav = _viewer.navigation;
    const up = nav.getCameraUpVector();
    var pos = nav.getPosition();
    const axis = new THREE.Vector3(0, 0, 1);
    const speed = 10.0 * Math.PI / 180;

    const matrix = new THREE.Matrix4().makeRotationAxis(axis, speed * 0.1);

    pos.applyMatrix4(matrix);
    up.applyMatrix4(matrix);

    nav.setView(pos, new THREE.Vector3(0, 0, 0));
    nav.setCameraUpVector(up);
    var viewState = _viewer.getState();
    _viewer.restoreState(viewState);
};

1 个答案:

答案 0 :(得分:0)

我认为您需要在这里使用requestAnimation,并且您的按钮将停止或启动对新框架的请求:

#include <iostream>

const int L = 30;

int main()
{
    int K[L];
    // int br =0; // unused
    int i;
    for (i = 0; i < L; i++) {
        std::cout << "Enter a number: ";
        std::cin >> K[i];
    }
}

根据您的代码段和现场插图检查my repo of extensions的完整代码。