javascript Autodesk Viewer,可编程相机Y轴反转

qfe3c7zg  于 11个月前  发布在  Java
关注(0)|答案(1)|浏览(102)

我一直在使用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.upgetState().viewport.worldUpVector
1.有没有可能用getState()restoreState()来修复这个反转,这样我们就可以保持过渡的平滑性?
1.是否有可能复制restoreState()的平滑过渡,以使用已经工作的方法,setView()

r7s23pms

r7s23pms1#

如果你想在控制向上矢量的同时复制平滑的相机过渡,你可以使用viewer.navigation.setRequestTransitionWithUp方法。由于某种原因,这个方法的文档和参数没有显示在documentation中,所以让我在这里添加它:

/**
 * Issue a request to transition the current cameras view to that specified
 * by the parameters which inlude both the camera up direction and optionally
 * the world up direction.
 *
 *  @param {boolean} state - value of the requst. Set to true in order to request the change of view.
 *  @param {THREE.Vector3} pos - the new camera position in world space
 *  @param {THREE.Vector3} coi - the point in world space that the camera should look towards.
 *  @param {number} fov - vertical field of view in degrees
 *  @param {THREE.Vector3} up -  use this as the target camera up direction
 *  @param {THREE.Vector3} [worldUp] - (optional) use this as the target world up direction
 *  @param {THREE.Vector3} [pivot] - (optional) the new pivot point
 */

字符串

相关问题