Я использую 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);
});