我一直在使用markups核心扩展来获取查看器状态,然后恢复它,这一直在工作,除了我遇到了一个反转问题(仅在3d中)。当客户端与特定的y轴进行交互时,并且基本上翻转模型以查看下面或上面,查看器反转自身,似乎在restoreState()函数期间或之后。值是相同的,只是反转,例如,客户端的{x:1,y:-1,z:-2}的getState()
值被恢复,然后被反转为{x:-1,y:1,z:2}。
为了进一步测试这一点,我使用了getCamera()
,取了位置、目标和up值,并使用setView()
以编程方式设置相机位置。我发现,在没有使用up的情况下,setView()函数中的可选值,反转重复了自己,同样的效果,收到了正确的值,设置它们,然后反转。然而,这一切都固定自己,只要我使用了向上值。现在的一个新问题是,setView()
功能似乎失去了相机自带的getState()
restoreState()
的平滑过渡,导致非常不稳定和快速的UX。现在知道问题在于向上值的某个地方,我试图回到setState()
restoreState()
并尝试直接设置,不幸的是这不起作用。我尝试使用orientCameraUp(true)
,setCameraUpVector()
与getState().viewport.up
和getState().viewport.worldUpVector
。
1.有没有可能用getState()
,restoreState()
来修复这个反转,这样我们就可以保持过渡的平滑性?
1.是否有可能复制restoreState()
的平滑过渡,以使用已经工作的方法,setView()
。
1条答案
按热度按时间r7s23pms1#
如果你想在控制向上矢量的同时复制平滑的相机过渡,你可以使用
viewer.navigation.setRequestTransitionWithUp
方法。由于某种原因,这个方法的文档和参数没有显示在documentation中,所以让我在这里添加它:字符串