恢复时保存的相机参数在 Autodesk Forge Viewer 中显示不同的视图
Saved camera parameters when restored shows different view in Autodesk Forge Viewer
我们使用类似的代码如下 -
// Get camera params from viewer and save it
let camParams = oViewer.getViewArrayFromCamera();
// Do something - rotate, zoom, pan etc
// Restore the view as it was
oViewer.setViewFromArray(camParams);
这适用于某些视图,但在某些情况下无法恢复准确的视图。
我们在从 http://extract.autodesk.io 中提取的模型之一中编写了示例代码,它显示了这个问题。
我们可以在支持邮件中发送示例代码。
保存和恢复视图的最简单方法是使用 navigation
界面:
const pos = NOP_VIEWER.navigation.getPosition(); //save current camera position
const target = NOP_VIEWER.navigation.getTarget(); //save current camera target
NOP_VIEWER.navigation.setView(pos,target) //restore
或者,如果您不介意其他状态通过,则只需恢复 Viewer 的状态
根据 Bryan Huang 的建议,我尝试使用 viewer state 并且效果很好
// Get viewer state and save it
let viewerState = oViewer.getState();
// Do something - rotate, zoom, pan etc
// Restore the view as it was
oViewer.restoreState(viewerState);
我们使用类似的代码如下 -
// Get camera params from viewer and save it
let camParams = oViewer.getViewArrayFromCamera();
// Do something - rotate, zoom, pan etc
// Restore the view as it was
oViewer.setViewFromArray(camParams);
这适用于某些视图,但在某些情况下无法恢复准确的视图。
我们在从 http://extract.autodesk.io 中提取的模型之一中编写了示例代码,它显示了这个问题。 我们可以在支持邮件中发送示例代码。
保存和恢复视图的最简单方法是使用 navigation
界面:
const pos = NOP_VIEWER.navigation.getPosition(); //save current camera position
const target = NOP_VIEWER.navigation.getTarget(); //save current camera target
NOP_VIEWER.navigation.setView(pos,target) //restore
或者,如果您不介意其他状态通过,则只需恢复 Viewer 的状态
根据 Bryan Huang 的建议,我尝试使用 viewer state 并且效果很好
// Get viewer state and save it
let viewerState = oViewer.getState();
// Do something - rotate, zoom, pan etc
// Restore the view as it was
oViewer.restoreState(viewerState);