xl-pano
Version:
一个基于 Typescript 的,同时支持立方体和球体场景的轻量开源库。
106 lines (105 loc) • 2.85 kB
TypeScript
import { WebGLRenderingContextWithProgram } from "../types/index";
import Scene from "./interface/Scene";
declare type SceneChangeCallback = (scene: Scene, index: number) => void;
declare type ListenerType = 'sceneChange';
declare type ListenerCallback = SceneChangeCallback;
/**
* 容器
* */
export default class Pano {
/**
* @static {WebGLProgram} CubeGLProgram 立方体 WebGL 程序对象
* */
static CubeGLProgram: WebGLProgram;
/**
* @static {WebGLProgram} SphereGLProgram 球体 WebGL 程序对象
* */
static SphereGLProgram: WebGLProgram;
/**
* 初始化着色器程序
* */
initShader(): void;
/**
* @property {HTMLElement} container 容器
* */
container: HTMLElement;
/**
* @property {HTMLCanvasElement} canvas canvas节点
* */
canvas: HTMLCanvasElement;
/**
* @property {WebGLRenderingContextWithProgram} gl WebGL绘制上下文
* */
gl: WebGLRenderingContextWithProgram;
/**
* @property {Scene[]} scenes 场景列表
* */
scenes: Scene[];
/**
* @property {number} sceneIndex 当前场景
* */
sceneIndex: number;
/**
* 是否已经渲染
* */
rendered: boolean;
/**
* 设置样式
* */
setStyle(): void;
/**
* container 尺寸变化监听,重新渲染
* */
onContainerResize(): void;
/**
* @constructor
* @param {string} containerId 容器节点id
* @param {boolean} debug 是否开启debug
* */
constructor(containerId: string, debug?: boolean);
/**
* 场景变化的回调函数
* */
sceneChangeCallbacks: SceneChangeCallback[];
/**
* 添加回调函数
* @param {ListenerType} type 监听类型,预定义好的
* @param {ListenerCallback} callback 回调函数
* */
addListener(type: ListenerType, callback: ListenerCallback): void;
/**
* 添加回调函数
* @param {ListenerType} type 监听类型,预定义好的
* @param {ListenerCallback} callback 回调函数
* */
removeListener(type: ListenerType, callback: ListenerCallback): void;
/**
* 移除所有监听
* */
removeAllListeners(): void;
/**
* 添加场景
* @param {Scene} scene 场景
* */
addScene(scene: Scene): void;
/**
* 切换场景
* @param {number} sceneIndex 切换后的场景
* */
switchScene: (sceneIndex: number) => void;
/**
* 渲染当前 Scene 到 canvas
* */
render(): void;
/**
* 获取当前场景索引
* @return {Scene} 当前场景
* */
getCurrentScene(): Scene;
/**
* 设置当前场景
* @param {Scene | number} scene 场景实例,或者场景索引
* */
setScene(scene: Scene | number): void;
}
export {};