UNPKG

xl-pano

Version:

一个基于 Typescript 的,同时支持立方体和球体场景的轻量开源库。

51 lines (50 loc) 1.6 kB
import { TextureSource, WebGLRenderingContextWithProgram } from "../types/index"; import BaseScene from "./interface/BaseScene"; import Pano from "./Pano"; import { SceneAngle } from "./interface/Scene"; export default class SphereScene extends BaseScene { /** * @static {number} sections 球体经纬被切分的份数 * */ static sections: number; /** * @static * @return {{vertices, texs, indices}} 顶点坐标,纹理坐标,顶点索引 * */ static get verticeTexIndices(): { vertices: Float32Array; texs: Float32Array; indices: Uint32Array; }; /** * 将每个面的纹理贴图赋值给每个面的 sampler * @param {WebGLRenderingContextWithProgram} gl WebGL 上下文 * @param {TexImageSource} image 图像资源 * */ static initTexture(gl: WebGLRenderingContextWithProgram, image: TexImageSource): void; /** * @property {TextureSource} textures 2:1球体纹理图 * */ textures: TextureSource; /** * @constructor 构造函数 * @param {string} texture 宽高比2:1的纹理图片 * @param {SceneAngle} defaultAngle 默认展示角度 * */ constructor(texture: TextureSource, defaultAngle?: SceneAngle); /** * 渲染球体 * */ drawModel(): void; /** * 加载纹理贴图 * @return {Promise<TexImageSource>} 图像资源 * */ private loadTextures; replaceTextures(texture: TextureSource): void; /** * 渲染到 pano * @param {Pano} pano 父容器 * */ render(pano: Pano): void; }