Forge viewer应保留选定的Home视图

时间:2018-01-03 22:15:23

标签: autodesk-forge autodesk-viewer

当用户点击“将当前视图设为首页”时在3d立方体右下角的下拉箭头上,下次将模型加载到查看器时,不会保留所选视图。它仅为查看器中当前加载的会话保留。如何在负载之间保留此设置?

2 个答案:

答案 0 :(得分:0)

你可以做的就是让你的观众在重新加载时开始的当前视图的getState。下次加载时,可以使用从上一次调用获得的JSON对象添加restoreState,并且可以在geometry_load_event时触发它。

以下是我所说的步骤。

像这样使用viewer.getState函数

JSON.stringify(viewer.getState())

如果您控制日志或将其分配给变量,则会有一个完整的JSON对象,其中包含模型当前状态的所有信息。如果任何对象被隐藏,如果它被爆炸等等。

完成后,您可以再次移动相机进行测试,然后使用以下命令将状态恢复为您尝试过的状态。

viewer.restoreState(YOURSTATE)

如果您希望查看器以特定状态加载,则需要在GEOMETRY_LOADED_EVENT上传递该restoreState函数

你可以找到我刚才提到的所有3个文档 https://developer.autodesk.com/en/docs/viewer/v2/reference/javascript/viewer3d/

希望它有所帮助。

答案 1 :(得分:0)

您可以使用localStorage将您定义的视图存储为" home"并在新会话中重新加载该视图。沿着这些方向......:

localStorage.setItem('homeView', JSON.stringify(viewer.getState({viewport:true})))

// ...

var state = localStorage.getItem('homeView')

// restoreState (state, filter, immediate)
viewer.restoreState(JSON.parse(state), {viewport:true}, true)

viewer.autocam.setHomeViewFrom(viewer.navigation.getCamera()) 

或者,您当然可以使用更高级的存储策略,例如使用数据库......