updateCamera
移动相机。(不触发点位移动)
如果动画中途被打断(用户触发行为,或者调用 setState, load, changeMode)的等
会 Promise.reject。运动完成则 Promise.resolve
// params pose - 相机目标位置
// params duration - 动画触发的时常
// params Promise - 是否移动成功
updateCamera(pose: Pose, duration: number): Promise<void>
getPixels
获取画面中的像素颜色
// param x - 获取像素区域的起始坐标 x
// param y - 获取像素区域的起始坐标 y
// param width - 获取像素区域的宽度
// param height - 获取像素区域的高度
// param pixelRatio - 获取区域的像素比
// returns rgba颜色平铺的 Uint8Array
getPixels(x: number, y: number, width: number, height: number, pixelRatio?: number): Uint8Array,
render
强制渲染
调用 render() 和 needsRender() 均可在按需渲染时,使得画面渲染一次
区别在于:
- needsRender() 为在下帧渲染画面
- render() 在当前帧渲染画面
推荐使用 needsRender(), 可以更加流畅。但是如果需要截图等同步操作,可以使用 render()
// param callback 渲染完成回调
render(callback?: () => void): void,
needsRender
下一帧渲染
调用 render() 和 needsRender() 均可在按需渲染时,使得画面渲染一次
区别在于:
- needsRender() 为在下帧渲染画面
- render() 在当前帧渲染画面
推荐使用 needsRender(), 可以更加流畅。但是如果需要截图等同步操作,可以使用 render()
needsRender(): void,
preloadPano
预加载点位图片资源
// param panoIndex - 观察点序号
// param callback - 加载完成回调, 并传递加载用时。
// returns 加载完成的 Promise 参数同 callback
preloadPano(panoIndex: number, callback?: (costs: number) => void): Promise<number>
const { updateCamera, initBasisLoader, getPixels, render, needsRender, preloadPano } = useFiveAction();
Five React Hooks: 使用 Five 的命令