@realsee/five
Version:
Realsee Renderer SDK
58 lines (57 loc) • 2.86 kB
TypeScript
import * as THREE from "three";
import { Pano } from "../utils/pano";
import { Works } from "../work";
import { MovePanoOptions } from "../types/movePanoOptions";
import { State } from "../types/state";
import { Pose } from "../types/pose";
import { MovePanoEffect } from "../types/movePanoEffect";
import { GestureEvent } from "../utils/event";
import { BaseControllerInitArgs } from "./base";
import { PanoramaLikeController, PanoramaLikeControllerCustomInitArgs } from "./panoramaLike";
import { Motion } from "../utils/motion";
type LocationMotion = Motion<"x" | "y" | "z" | "distance">;
type ModelAlphaMotion = Motion<"modelAlpha">;
type PerspToOrthoMotion = Motion<"perspToOrtho">;
interface ModelControllerCustomInitArgs extends PanoramaLikeControllerCustomInitArgs {
}
declare const defaultModelControllerCustomInitArgs: Required<ModelControllerCustomInitArgs>;
type ModelControllerInitArgs = BaseControllerInitArgs & ModelControllerCustomInitArgs;
declare class ModelController extends PanoramaLikeController implements Required<ModelControllerInitArgs> {
static parseArgs(args: ModelControllerInitArgs): Required<ModelControllerInitArgs>;
static initAnimationEndState(args: ModelControllerInitArgs): State;
locationMotion: LocationMotion;
modelAlphaMotion: ModelAlphaMotion;
perspToOrthoMotion: PerspToOrthoMotion;
constructor(args: ModelControllerInitArgs);
updateConfiguration(args: ModelControllerCustomInitArgs): boolean;
/** 析构函数 */
destroy(): void;
/** 是否准备好,即不在用户操作中,并且不再动画中 */
isReady(): boolean;
/** 生命周期:更新模型 */
updateWork(works: Works, state: Partial<State>, options: {
duration: number;
effect: MovePanoEffect;
}, userAction: boolean): boolean;
/** 转动摄像头 */
updateCamera(pose: Partial<Pose>, duration: number, userAction: boolean): Promise<void>;
/** 通过帧动画转动摄像头 */
updateCameraWithKeyframes(keyframes: {
progress: number;
value: Pose;
key?: string;
}[], duration: number, userAction: boolean): Promise<void>;
/** 生命周期:时间迭代 */
updateTime(time: number, deltaTime: number, ...args: any[]): void;
/** 初始化动画 */
protected initAnimation(): Promise<void>;
/** 获取目标姿态 */
getTargetState(): State;
/** 移动点位 */
moveToPano(pano: Pano, options: MovePanoOptions | undefined, userAction: boolean): void;
/** 移动相机位置 */
moveToPosition(position: THREE.Vector3, options: MovePanoOptions | undefined, userAction: boolean): void;
/** 触摸 点击屏幕 */
protected onTapGesture(event: GestureEvent): void;
}
export { ModelController, ModelControllerInitArgs, ModelControllerCustomInitArgs, defaultModelControllerCustomInitArgs, };