@realsee/five
Version:
Realsee Renderer SDK
148 lines (147 loc) • 5.47 kB
TypeScript
import { Pose, Pano, PanoId } from "@realsee/five";
/**
* Five 命令集合
*/
interface FiveActionReactCallbacks {
/**
* 移动相机。(不触发点位移动)
* @description
* 如果动画中途被打断(用户触发行为,或者调用 setState, load, changeMode)的等
* 会 Promise.reject。运动完成则 Promise.resolve
* @param pose - 相机目标位置
* @param duration - 动画触发的时常
* @returns Promise 是否移动成功
*/
updateCamera(pose: Pose, duration: number): Promise<void>;
/**
* 获取画面中的像素颜色
* @param x - 获取像素区域的起始坐标 x
* @param y - 获取像素区域的起始坐标 y
* @param width - 获取像素区域的宽度
* @param height - 获取像素区域的高度
* @param pixelRatio - 获取区域的像素比
* @param flipY - 是否Y轴翻转
* @param buffer - 存储数组
* @returns rgba颜色平铺的 Uint8Array
*/
getPixels<T extends Uint8Array | Uint8ClampedArray = Uint8Array>(x: number, y: number, width: number, height: number, pixelRatio?: number, flipY?: boolean, buffer?: T): T;
/**
* 获取画面中的像素颜色
* @param options - 参数
* @returns
*/
getPixels<T extends Uint8Array | Uint8ClampedArray = Uint8Array>(options: {
/** 获取像素区域的起始坐标 x */
x: number;
/** 获取像素区域的起始坐标 y */
y: number;
/** 获取像素区域的宽度 */
width: number;
/** 获取像素区域的高度 */
height: number;
/** 获取区域的像素比 */
pixelRatio?: number;
helperVisible?: boolean;
skipPanorama?: boolean;
/** 是否Y轴翻转 */
flipY?: boolean;
/** 存储数组 */
buffer?: T;
}): T;
/**
* 强制渲染
* @description
* 调用 `render()` 和 `needsRender()` 均可在按需渲染时,使得画面渲染一次
* 区别在于:
* - `needsRender()` 为在下帧渲染画面
* - `render()` 在当前帧渲染画面
* 推荐使用 `needsRender()`, 可以更加流畅。但是如果需要截图等同步操作,可以使用 `render()`
*
* @param callback - 渲染完成回调
*/
render(callback?: () => void): void;
/**
* 下一帧渲染
* @description
* 调用 `render()` 和 `needsRender()` 均可在按需渲染时,使得画面渲染一次
* 区别在于:
* - `needsRender()` 为在下帧渲染画面
* - `render()` 在当前帧渲染画面
* 推荐使用 `needsRender()`, 可以更加流畅。但是如果需要截图等同步操作,可以使用 `render()`
*/
needsRender(): void;
/**
* 预加载点位图片资源
* @param pano - 观察点
* @param callback - 加载完成回调, 并传递加载用时。
* @returns 加载完成的 Promise 参数同 callback
*/
preloadPano(pano: Pano | PanoId | number, callback?: (costs: number) => void): Promise<number>;
}
/**
* Five React Hooks: 使用 Five 的命令
*
* @function updateCamera
* ```
* 移动相机。(不触发点位移动)
* 如果动画中途被打断(用户触发行为,或者调用 setState, load, changeMode)的等
* 会 Promise.reject。运动完成则 Promise.resolve
*
* // params pose - 相机目标位置
* // params duration - 动画触发的时常
* // params Promise - 是否移动成功
* updateCamera(pose: Pose, duration: number): Promise<void>
* ```
*
* @function 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,
* ```
*
* @function render
* ```
* 强制渲染
* 调用 render() 和 needsRender() 均可在按需渲染时,使得画面渲染一次
* 区别在于:
* - needsRender() 为在下帧渲染画面
* - render() 在当前帧渲染画面
* 推荐使用 needsRender(), 可以更加流畅。但是如果需要截图等同步操作,可以使用 render()
*
* // param callback 渲染完成回调
* render(callback?: () => void): void,
* ```
*
* @function needsRender
* ```
* 下一帧渲染
* 调用 render() 和 needsRender() 均可在按需渲染时,使得画面渲染一次
* 区别在于:
* - needsRender() 为在下帧渲染画面
* - render() 在当前帧渲染画面
* 推荐使用 needsRender(), 可以更加流畅。但是如果需要截图等同步操作,可以使用 render()
* needsRender(): void,
* ```
*
* @function preloadPano
* ```
* 预加载点位图片资源
* // param panoIndex - 观察点序号
* // param callback - 加载完成回调, 并传递加载用时。
* // returns 加载完成的 Promise 参数同 callback
* preloadPano(panoIndex: number, callback?: (costs: number) => void): Promise<number>
* ```
*
* @example
* ```
* const { updateCamera, initBasisLoader, getPixels, render, needsRender, preloadPano } = useFiveAction();
* ```
*/
declare function useFiveAction(): FiveActionReactCallbacks;
export { useFiveAction, FiveActionReactCallbacks };