当用户点击“将当前视图设为首页”时在3d立方体右下角的下拉箭头上,下次将模型加载到查看器时,不会保留所选视图。它仅为查看器中当前加载的会话保留。如何在负载之间保留此设置?
答案 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())
或者,您当然可以使用更高级的存储策略,例如使用数据库......