Options
All
  • Public
  • Public/Protected
  • All
Menu

Index

Namespaces

Classes

Interfaces

Type Aliases

Variables

Functions

Type Aliases

ControllerEventTypes: { cameraDirectionUpdate: any; cameraFovUpdate: any; cameraPositionUpdate: any; cameraUpdate: any; error: any; gesture: any; initAnimationEnded: any; initAnimationWillStart: any; interiaPan: any; intersectionHidden: any; intersectionOnModelUpdate: any; mouseWheel: any; moveToPano: any; moveToPanoCanceled: any; movingToPano: any; panGesture: any; panoArrived: any; panoLoadError: any; panoLoaded: any; panoSelected: any; panoWillArrive: any; panoWillLoad: any; pinchGesture: any; pressGesture: any; tapGesture: any; textureAbort: any; textureError: any; textureLoaded: any; textureLoading: any; textureStartLoad: any; vrWantsToExit: any; wantsChangeCameraFov: any; wantsGesture: any; wantsInteriaPan: any; wantsMouseWheel: any; wantsMoveToPano: any; wantsPanGesture: any; wantsPinchGesture: any; wantsPressGesture: any; wantsShowIntersectionOnModel: any; wantsTapGesture: any; webXRSelected: any; webXRSessionEnd: any; webXRSessionStart: any }

Type declaration

  • cameraDirectionUpdate:function
    • cameraDirectionUpdate(coordinates: Pick<Pose, "longitude" | "latitude">, userAction: boolean): void
    • 相机姿态中相机方向变化

      Parameters

      • coordinates: Pick<Pose, "longitude" | "latitude">

        相机姿态的俯仰角和偏航角

      • userAction: boolean

        是否用户触发

      Returns void

  • cameraFovUpdate:function
    • cameraFovUpdate(fov: number, userAction: boolean): void
    • 相机姿态中可视角度变化

      Parameters

      • fov: number

        相机的可视角度

      • userAction: boolean

        是否用户触发

      Returns void

  • cameraPositionUpdate:function
    • cameraPositionUpdate(offset: Vector3, userAction: boolean): void
    • 相机姿态中相机位置变化

      Parameters

      • offset: Vector3

        相机位置

      • userAction: boolean

        是否用户触发

      Returns void

  • cameraUpdate:function
    • cameraUpdate(pose: Pose, userAction: boolean): void
    • 相机姿态变化

      Parameters

      • pose: Pose

        相机姿态

      • userAction: boolean

        是否用户触发

      Returns void

  • error:function
    • error(error: Error): void
    • 抛出错误

      Parameters

      • error: Error

        抛出错误

      Returns void

  • gesture:function
    • gesture(type: GestureTypes, pointers: { delta?: number; x: number; y: number }[], final: boolean): void
    • 手势 触发

      Parameters

      • type: GestureTypes

        手势类型

      • pointers: { delta?: number; x: number; y: number }[]

        手指位置

      • final: boolean

        是否手势结束

      Returns void

  • initAnimationEnded:function
    • initAnimationEnded(panoIndex: number, pose: Pose, userAction: boolean): void
    • 模态间切换动画结束

      Parameters

      • panoIndex: number

        当前点位

      • pose: Pose

        相机姿态

      • userAction: boolean

        是否用户触发

      Returns void

  • initAnimationWillStart:function
    • initAnimationWillStart(panoIndex: number, pose: Pose, userAction: boolean): void
    • 模态间切换动画开始

      Parameters

      • panoIndex: number

        当前点位

      • pose: Pose

        相机姿态

      • userAction: boolean

        是否用户触发

      Returns void

  • interiaPan:function
    • interiaPan(pose: Pose, final: boolean): void
    • pan 手势(滑动屏幕) 的惯性运动

      Parameters

      • pose: Pose

        意图的相机姿态

      • final: boolean

        是否手势结束

      Returns void

  • intersectionHidden:function
    • intersectionHidden(): void
    • 鼠标焦点环被隐藏

      Returns void

  • intersectionOnModelUpdate:function
    • 鼠标焦点环位置被重新计算

      Parameters

      Returns void

  • mouseWheel:function
    • mouseWheel(delta: number, fov: number, final: boolean): void
    • 鼠标滚轮被触发

      Parameters

      • delta: number

        滚轮数值

      • fov: number
      • final: boolean

        是否手势结束

      Returns void

  • moveToPano:function
    • moveToPano(panoIndex: number, userAction: boolean): void
    • 开始加载并移动到某个观察点位

      description

      可 panoWillArrive 相比

      • moveToPano 在加载全景图资源前触发
      • panoWillArrive 在加载全景图资源后触发

      Parameters

      • panoIndex: number

        移动到的点位下标

      • userAction: boolean

        是否用户触发

      Returns void

  • moveToPanoCanceled:function
    • moveToPanoCanceled(panoIndex: number): void
    • 移动到某个观察点位被取消

      description

      这个有一些情况会导致

      • 移动过程中切换模态
      • 移动过程中 five 被析构
      • 移动过程点击切换到另一个点位

      Parameters

      • panoIndex: number

        对应的点位下标

      Returns void

  • movingToPano:function
    • movingToPano(panoIndex: number, prevPanoIndex: number, progress: number): void
    • 移动中, 会告知移动状态(耗时百分比)

      Parameters

      • panoIndex: number

        将要移动到的点位下标

      • prevPanoIndex: number

        上一个点位下标

      • progress: number

        整个过程经度 [0-1]

      Returns void

  • panGesture:function
    • panGesture(pose: Pose, final: boolean): void
    • pan 手势(滑动屏幕) 被触发

      Parameters

      • pose: Pose

        相机姿态

      • final: boolean

        是否手势结束

      Returns void

  • panoArrived:function
    • panoArrived(panoIndex: number, pose: Pose, userAction: boolean): void
    • 移动到某个观察点位

      Parameters

      • panoIndex: number

        移动到点位下标

      • pose: Pose

        相机姿态

      • userAction: boolean

        是否用户触发

      Returns void

  • panoLoadError:function
    • panoLoadError(error: Error, panoIndex: number): void
    • 某个观察点的全景资源加载失败

      Parameters

      • error: Error

        错误对象

      • panoIndex: number

        对应的点位下标

      Returns void

  • panoLoaded:function
    • panoLoaded(panoIndex: number): void
    • 某个观察点的全景资源加载完成

      Parameters

      • panoIndex: number

        对应的点位下标

      Returns void

  • panoSelected:function
    • panoSelected(panoIndex: number): void
    • 观察点位被选择

      Parameters

      • panoIndex: number

        选择的点位

      Returns void

  • panoWillArrive:function
    • panoWillArrive(panoIndex: number, pose: Pose, userAction: boolean): void
    • 开始移动到某个观察点位

      description

      和 moveToPano 相比

      • moveToPano 在加载全景图资源前触发
      • panoWillArrive 在加载全景图资源后触发

      Parameters

      • panoIndex: number

        移动到点位下标

      • pose: Pose

        相机姿态

      • userAction: boolean

        是否用户触发

      Returns void

  • panoWillLoad:function
    • panoWillLoad(panoIndex: number): void
    • 开始加载某个观察点的全景资源

      Parameters

      • panoIndex: number

        移动到的点位下标

      Returns void

  • pinchGesture:function
    • pinchGesture(scale: number, fov: number, final: boolean): void
    • pinch 手势(双指缩放) 被触发

      Parameters

      • scale: number

        缩放数值

      • fov: number
      • final: boolean

        是否手势结束

      Returns void

  • pressGesture:function
    • pressGesture(raycaster: Raycaster, tapPosition: Vector2, duration: number, isFinal: boolean): void
    • tap 手势(点击屏幕) 被触发

      Parameters

      • raycaster: Raycaster

        点击对应的三维射线

      • tapPosition: Vector2

        点击对应的屏幕位置

      • duration: number

        长按持续时间

      • isFinal: boolean

      Returns void

  • tapGesture:function
    • tapGesture(raycaster: Raycaster, tapPosition: Vector2, final: boolean): void
    • tap 手势(点击屏幕) 被触发

      Parameters

      • raycaster: Raycaster

        点击对应的三维射线

      • tapPosition: Vector2

        点击对应的屏幕位置

      • final: boolean

        是否手势结束

      Returns void

  • textureAbort:function
    • textureAbort(panoIndex: number, observer: WorkObserver): void
    • 观察点的全景资源加载被中止

      Parameters

      • panoIndex: number

        加载点位下标

      • observer: WorkObserver

        对应的 observer 详情

      Returns void

  • textureError:function
    • textureError(error: Error, panoIndex: number, observer: WorkObserver): void
    • 观察点的全景资源加载失败

      Parameters

      • error: Error

        错误对象

      • panoIndex: number

        加载点位下标

      • observer: WorkObserver

        对应的 observer 详情

      Returns void

  • textureLoaded:function
    • 观察点的全景资源加载完成

      Parameters

      Returns void

  • textureLoading:function
    • textureLoading(progress: number, panoIndex: number, observer: WorkObserver): void
    • 观察点的全景资源加载中,可获取到进度

      Parameters

      • progress: number

        加载进度 [0-1]

      • panoIndex: number

        加载点位下标

      • observer: WorkObserver

        对应的 observer 详情

      Returns void

  • textureStartLoad:function
    • textureStartLoad(panoIndex: number, observer: WorkObserver): void
    • 观察点的全景资源开始加载

      Parameters

      • panoIndex: number

        加载点位下标

      • observer: WorkObserver

        对应的 observer 详情

      Returns void

  • vrWantsToExit:function
    • vrWantsToExit(): void
    • 意图要退出VR眼镜模式

      Returns void

  • wantsChangeCameraFov:function
    • wantsChangeCameraFov(fov: number): false | void
    • 意图要变化相机的可视角度 可以通过 return false 阻止

      deprecated

      建议通过 初始化设置的 defaultFov, maxFov, minFov 来限制

      Parameters

      • fov: number

        意图要变化相机的可视角度

      Returns false | void

      可以通过 return false 阻止

  • wantsGesture:function
    • wantsGesture(type: GestureTypes, pointers: { delta?: number; x: number; y: number }[], final: boolean): false | void
    • 意图要触发手势, 可以通过 return false 阻止

      Parameters

      • type: GestureTypes

        手势类型

      • pointers: { delta?: number; x: number; y: number }[]

        手指位置

      • final: boolean

        是否手势结束

      Returns false | void

      可以通过 return false 阻止

  • wantsInteriaPan:function
    • wantsInteriaPan(pose: Pose): false | void
    • 意图要触发 pan 手势(滑动屏幕) 的惯性运动, 可以通过 return false 阻止

      Parameters

      • pose: Pose

        意图的相机姿态

      Returns false | void

      可以通过 return false 阻止

  • wantsMouseWheel:function
    • wantsMouseWheel(delta: number, nextFov: number, final: boolean): false | void
    • 意图要触发 鼠标滚轮 可以通过 return false 阻止

      Parameters

      • delta: number

        滚轮数值

      • nextFov: number

        意图的fov变更

      • final: boolean

        是否手势结束

      Returns false | void

      可以通过 return false 阻止

  • wantsMoveToPano:function
    • wantsMoveToPano(panoIndex: number, options: MovePanoOptions, userAction: boolean): false | void
    • 意图要移动到某个点位 可以通过 return false 阻止

      Parameters

      • panoIndex: number

        图要移动到的点位下标

      • options: MovePanoOptions

        移动参数

      • userAction: boolean

        是否用户触发

      Returns false | void

      可以通过 return false 阻止

  • wantsPanGesture:function
    • wantsPanGesture(pose: Pose, final: boolean): false | void
    • 意图要触发 pan 手势(滑动屏幕), 可以通过 return false 阻止

      Parameters

      • pose: Pose

        意图的相机姿态

      • final: boolean

        是否手势结束

      Returns false | void

      可以通过 return false 阻止

  • wantsPinchGesture:function
    • wantsPinchGesture(scale: number, nextFov: number, final: boolean): false | void
    • 意图要触发 pinch 手势(双指缩放),可以通过 return false 阻止

      Parameters

      • scale: number

        缩放数值

      • nextFov: number

        意图的fov变更

      • final: boolean

        是否手势结束

      Returns false | void

      可以通过 return false 阻止

  • wantsPressGesture:function
    • wantsPressGesture(raycaster: Raycaster, tapPosition: Vector2, duration: number, isFinal: boolean): false | void
    • 意图要触发 press 手势(长按屏幕), 可以通过 return false 阻止

      Parameters

      • raycaster: Raycaster

        长按对应的三维射线

      • tapPosition: Vector2

        长按对应的屏幕位置

      • duration: number

        长按持续时间

      • isFinal: boolean

      Returns false | void

      可以通过 return false 阻止

  • wantsShowIntersectionOnModel:function
    • wantsShowIntersectionOnModel(raycaster: Raycaster): false | void
    • 意图要展示鼠标焦点环,可以通过 return false 阻止

      Parameters

      • raycaster: Raycaster

      Returns false | void

      可以通过 return false 阻止

  • wantsTapGesture:function
    • wantsTapGesture(raycaster: Raycaster, tapPosition: Vector2, final: boolean): false | void
    • 意图要触发 tap 手势(点击屏幕), 可以通过 return false 阻止

      Parameters

      • raycaster: Raycaster

        点击对应的三维射线

      • tapPosition: Vector2

        点击对应的屏幕位置

      • final: boolean

        是否手势结束

      Returns false | void

      可以通过 return false 阻止

  • webXRSelected:function
    • webXR模式结束,webxr session销毁

      Parameters

      Returns void

  • webXRSessionEnd:function
    • webXRSessionEnd(): void
    • webXR模式结束,webxr session销毁

      Returns void

  • webXRSessionStart:function
    • webXRSessionStart(): void
    • webXR模式开始,webxr session完成坐标系矫正

      Returns void

EventTypes: Pick<ControllerEventTypes, typeof PROXY_CONTROLLER_EVENT_NAMES[number]> & { currentStateChange: any; dispose: any; error: any; fps: any; helpersVisibleChange: any; load: any; loaded: any; modeChange: any; modelBvhLoaded: any; modelGeometryLoaded: any; modelLoadError: any; modelLoaded: any; modelMaterialLoaded: any; modelShownFloorChange: any; modelWillLoad: any; network: any; renderFrame: any; setState: any; stateChange: any; stateSynced: any; wantsChangeMode: any; wantsMoveToPano: any; wantsToMoveToPano: any; willLoad: any }

Five 事件列表

description

具体事件列表 请查看 EventCallback

FivePlugin<Parameters, Returns>: Parameters extends void ? ((five: Five) => Returns) : ((five: Five, parameters: Parameters) => Returns)

Five 插件

插件 Plugins

Five 提供了工厂模式的插件机制, 提供了 FivePlugin FivePluginInstance FivePluginInits 接口来帮助创建和使用插件

插件的作用

  1. 插件即是将一些通用的对于 five 的操作的一些复用的抽象。
  2. 可以通过插件来组织代码,减少逻辑依赖。

创建插件

mkdir a-five-plugin
npm init -y
npm install @realsee/five
npx five-plugin-init

项目目录

.
├── README.md
├── devtools
│ ├── external-five.js
│ ├── external-three.js
│ ├── tsconfig.build.json
│ ├── webpack.bundle.js
│ └── webpack.example.js
├── docs
├── examples
│ ├── data.json
│ ├── index.html
│ └── index.ts
├── lib
│ └── index.ts
├── package.json
└── tsconfig.json

npm script

  • example: 开发环境,编译 example 下的 index.ts, 监听变化,并且开启端口监听,可以通过 localhost:8080 访问
  • build:doc: 通过 typedoc 生成项目文档,生成目标在 docs 目录下
  • build:typescript: 通过 tsc 编译 ts 代码,生成目标在 build 目录下
  • build:bundle: 通过 webpack 编译 unpack 包, 生成目标在 bundle 目录下
  • build:all: npm run build:doc && npm run build:typescript && && npm run build:example && npm run build:bundle

编译配置

编译配置均在 devtools 目录下, 可以自行修改配置

  • ts 的编译参数在 devtools/tsconfig.build.json
  • bundle 的 webpack 配置在 devtools/webpack.bundle.js

发布

  • 往 npm 发布,默认发布的入口文件在 build/index.js, 即通过 tsc 编译得到的代码。你可以在 package.json 中修改。
  • bundle 包发布,可以直接使用 build:bundle 生成的结果。

类型说明

type FivePlugin<Parameters, Returns>;
  • Parameters 插件定义的参数
  • Returns 插件返回的实例

简单例子

这是一个在当five显示界面被点击时 打印 "tap!" 的一个简单插件, 并且可以拉取历史列表

import { FivePlugin } from "@realsee/five";

// 打印的内容
type TapRecordPluginParameter = string;

// 实例方法
type TapRecordPluginReturns = {
// 一个返回历史列表的防范
getHistory: () => string[]
};

const TapRecordPlugin: FivePlugin<
TapRecordPluginParameter,
TapRecordPluginReturns
> = (five, message = "tap!") => {

const list: string[] = [];

five.on("tapGesture", () => {
console.log(message);
list.push(`${new Date().toUTCString()} ${message}`);
});

return { getHistory: () => list.slice() };
};
  • 工厂函数的参数是 five 实例 以及对应的插件需要的参数, 参数使用后面在插件初始化中详细说明。
  • 工厂函数的返回将在 five.plugis 中取到,后面会详细说明。

插件初始化

类型说明

type FivePluginInit<FivePlugin>

简单例子

就上面 TapRecordPlugin 的例子来初始化插件

import Five, { FivePluginInits } from "@realsee/five";

const five = new Five({
plugins: [
[
// 插件
TapRecordPlugin,

// 插件对象在 five.plugins 中的命名实例名称,
// 比如这个就是通过 five.plguins.tapRecord 获取到插件实例
"tapRecord",

// 插件参数,必须符合 TapRecordPluginParameter 的生命
"tap!"
] as FivePluginInit<typeof TapRecordPlugin>
]
});

// five.load(...)
  • 需要使用 as FivePluginInit 的方法声明,否则无法约束参数
  • 第一个参数必须唯一的,不要出现插件间冲突

使用插件实例

type FivePluginInstance<FivePlugin>;

简单例子 就上面 TapRecordPlugin 的例子来获取历时点击列表

import { FivePluginInstance } from "@realsee/five";

// five.plugins.tapRecord 可以获取到插件实例 "tapRecord" 是插件初始化声明确定的
// 通过 FivePluginInstance 在约束类型,否则均为 any
const tapRecord: FivePluginInstance<typeof TapRecordPlugin> = five.plugins.tapRecord;

// 现在就可以获取到历时列表了
const getHistory: string[] = tapRecord.getHistory();

console.log(getHistory);

回顾整体的例子

import Five, { FivePlugin, FivePluginInit, FivePluginInstance } from "@realsee/five";

// 打印的内容
type TapRecordPluginParameter = string;

// 实例方法
type TapRecordPluginReturns = {
// 一个返回历史列表的防范
getHistory: () => string[]
};

const TapRecordPlugin: FivePlugin<
TapRecordPluginParameter,
TapRecordPluginReturns
> = (five, message = "tap!") => {

const list: string[] = [];

five.on("tapGesture", () => {
console.log(message);
list.push(`${new Date().toUTCString()} ${message}`);
});

return { getHistory: () => list.slice() };
};

const five = new Five({
plugins: [
[
// 插件对象在 five.plugins 中的命名实例名称,
// 比如这个就是通过 five.plguins.tapRecord 获取到插件实例
"tapRecord",

// 插件
TapRecordPlugin,

// 插件参数,必须符合 TapRecordPluginParameter 的生命
"tap!"
] as FivePluginInit<typeof TapRecordPlugin>
]
});

// five.load(...)

// five.plugins.tapRecord 可以获取到插件实例 "tapRecord" 是插件初始化声明确定的
// 通过 FivePluginInstance 在约束类型,否则均为 any
const tapRecord: FivePluginInstance<typeof TapRecordPlugin> = five.plugins.tapRecord;

// 现在就可以获取到历时列表了
const getHistory: string[] = tapRecord.getHistory();

console.log(getHistory);

其他注意的问题

  1. 插件初始化的时机在 new Five 时,Five 并没有调用 load 来创建VR,请通过监听事件的方式,在合适的时机获取模型。
  2. 如果插件内容需要有 five 销毁同时销毁的内容,请监听 five.on("dispose") 事件来处理。
  3. 不要出现初始化插件同名的现象,会出现插件间冲突。

Type Parameters

  • Parameters = void

    插件参数, 没有参数则为 void

  • Returns = void

    如果有参数则插件暴露的 api,没有参数则不传

FivePluginInit<T>: Parameters<T>[1] extends undefined ? [Plugin: T, instanceName: null | string] : [Plugin: T, instanceName: null | string, parameters: Parameters<T>[1]]

获取插件在Five中的初始化结构

Type Parameters

FivePluginInstance<T>: ReturnType<T>

获取插件暴露的 api

Type Parameters

GestureTypes: "pan" | "tap" | "pinch" | "press" | "mouseWheel"
LooseWork: { base_url?: string; bvh?: boolean; initial?: LooseWorkInitial; model?: LooseWorkModel; modelAsync?: boolean; observers: LooseWorkObserver[]; panorama: { base_url?: string; info?: LooseWorkPanorama[]; list?: LooseWorkPanorama[]; pano_high_cube_base_url?: string } }

Type declaration

LooseWorkInitial: { heading?: number; latitude?: number; longitude?: number; pano?: number; pano_index?: number }

Type declaration

  • Optional heading?: number
  • Optional latitude?: number
  • Optional longitude?: number
  • Optional pano?: number
  • Optional pano_index?: number
LooseWorkModel: { file_url: string; material_base_url?: string; material_textures?: string[] }

Type declaration

  • file_url: string
  • Optional material_base_url?: string
  • Optional material_textures?: string[]
LooseWorkObserver: { accessible_nodes: number[]; active?: boolean; floor?: number; floor_index?: number; index?: number; position: number[]; quaternion: { w: number; x: number; y: number; z: number }; standing_position: number[]; visible_nodes: number[] }

Type declaration

  • accessible_nodes: number[]
  • Optional active?: boolean
  • Optional floor?: number
  • Optional floor_index?: number
  • Optional index?: number
  • position: number[]
  • quaternion: { w: number; x: number; y: number; z: number }
    • w: number
    • x: number
    • y: number
    • z: number
  • standing_position: number[]
  • visible_nodes: number[]
LooseWorkPanorama: { active?: boolean; back: string; down: string; front: string; index?: number; left: string; loadable?: boolean; luminance?: { back: string; down: string; front: string; left: string; right: string; up: string }; right: string; tiles?: number[]; up: string; video?: LooseWorkVideo }

Type declaration

  • Optional active?: boolean
  • back: string
  • down: string
  • front: string
  • Optional index?: number
  • left: string
  • Optional loadable?: boolean
  • Optional luminance?: { back: string; down: string; front: string; left: string; right: string; up: string }
    • back: string
    • down: string
    • front: string
    • left: string
    • right: string
    • up: string
  • right: string
  • Optional tiles?: number[]
  • up: string
  • Optional video?: LooseWorkVideo
LooseWorkVideo: { matrix: number[]; size: number[]; source: string }

Type declaration

  • matrix: number[]
  • size: number[]
  • source: string
Mirror<T>: Record<T, T>

Type Parameters

  • T extends string

Mode: "Floorplan" | "Topview" | "Mapview" | "Panorama" | "VRPanorama" | "Model" | "DepthPanorama" | "XRPanorama"

Five 的显示模式,可以通过 five.changeMode five.setState 来切换

  • Panorama: 全景图游走模式
  • Model: 模型游走模式
  • Floorplan: 模型查看模式
  • Topview: 户型图模式
  • Mapview: 地图模式
  • DepthPanorama: 深度图游走模式
  • VRPanorama: VR眼镜模式
ModelEventType: { bvhLoaded: any; error: any; geometryLoaded: any; loaded: any; materialLoaded: any; shownFloorChange: any }

模型事件列表

description

具体事件列表 请查看 ModelEventCallback

Type declaration

  • bvhLoaded:function
    • bvhLoaded(): void
    • 模型 bvh树 计算完成

      description

      bvh 树用于高效的碰撞检测,可以在 model.bvh 属性来设置是否开启。默认开启。 bvh 树计算需要一定时间,可能会暂时影响一些性能。计算完毕后,会对碰撞检测带来质的提升。

      Returns void

  • error:function
    • error(error: Error): void
    • 内部错误

      Parameters

      • error: Error

        错误对象

      Returns void

  • geometryLoaded:function
    • geometryLoaded(): void
    • 模型三角面片结构加载完成

      Returns void

  • loaded:function
    • loaded(): void
    • 模型加载完成

      Returns void

  • materialLoaded:function
    • materialLoaded(): void
    • 模型材质结构加载完成

      Returns void

  • shownFloorChange:function
    • shownFloorChange(shownFloor: number, totalFloorLength: number): void
    • 显示楼层改变

      Parameters

      • shownFloor: number

        显示的楼层

      • totalFloorLength: number

      Returns void

NetWorkMeta: { costs: number; headers: {}; origin: string; requestTime: number; responseTime: number; size?: number; source: string }

Type declaration

  • costs: number
  • headers: {}
    • [name: string]: string
  • origin: string
  • requestTime: number
  • responseTime: number
  • Optional size?: number
  • source: string
NetworkResponse<T, E>: { body: T; meta: E }

Type Parameters

Type declaration

  • body: T
  • meta: E
NetworkState: "ok" | "preload" | "error" | "proxy-error" | "timeout" | "forbidden"
NetworkType: "XMLHttpRequest" | "Script" | "Image" | "Link"
ParseWorkOptions: { baseURL?: string; jsonp?: boolean; modelBvh?: boolean; shortPath?: boolean }

Type declaration

  • Optional baseURL?: string

    重写 work 中的资源前缀

  • Optional jsonp?: boolean

    work 中的资源使用 jsonp 方式发布

  • Optional modelBvh?: boolean

    work 中模型是否计算bvh碰撞数,默认计算 true

  • Optional shortPath?: boolean

    work 中的资源地址使用短地址

SubscribeEventMap: {}

Type declaration

  • [name: string]: ((...args: any[]) => void | boolean)
      • (...args: any[]): void | boolean
      • Parameters

        • Rest ...args: any[]

        Returns void | boolean

TileFrameState: { camera: { direction: number[]; position: number[]; up: number[] }; cullingVolume: TileCullingVolume; frameNumber: number; height: number; sseDenominator: number }

Type declaration

  • camera: { direction: number[]; position: number[]; up: number[] }
    • direction: number[]
    • position: number[]
    • up: number[]
  • cullingVolume: TileCullingVolume
  • frameNumber: number
  • height: number
  • sseDenominator: number
TileRequest<Identiy>: { identiy: Identiy; priority: number; getPriority: any; resolve: any }

Tracks one request

Type Parameters

  • Identiy

Type declaration

  • identiy: Identiy
  • priority: number
  • getPriority:function
    • getPriority(identiy: Identiy): number
    • Parameters

      • identiy: Identiy

      Returns number

  • resolve:function
    • resolve(requestResult: { done: any }): void
    • Parameters

      • requestResult: { done: any }
        • done:function
          • done(): void
          • Returns void

      Returns void

TileRequestResult: null | { done: any }
TileRequestSchedulerOptions: { maxRequests?: number; throttleRequests?: boolean }

RequestScheduler Options

Type declaration

  • Optional maxRequests?: number
  • Optional throttleRequests?: boolean
TilesetTraverserProps: { loadSiblings: boolean; maxDepth?: number; maxScreenSpaceError: number; skipLevelOfDetail: boolean; onTraversalEnd: any }

Type declaration

  • loadSiblings: boolean
  • Optional maxDepth?: number
  • maxScreenSpaceError: number
  • skipLevelOfDetail: boolean
  • onTraversalEnd:function
    • Parameters

      Returns any

WebXREventTypes: { webXRSessionEnd: any; webXRSessionStart: any }

Type declaration

  • webXRSessionEnd:function
    • webXRSessionEnd(): void
    • WebXR模式结束,销毁session

      Returns void

  • webXRSessionStart:function
    • webXRSessionStart(): void
    • WebXR模式开始,session完成坐标系设置

      Returns void

WebXRSelectType: "Select" | "Squeeze"

Variables

PROXY_CONTROLLER_EVENT_NAMES: readonly ["cameraDirectionUpdate", "cameraUpdate", "cameraPositionUpdate", "panoSelected", "moveToPano", "moveToPanoCanceled", "panoWillArrive", "movingToPano", "panoArrived", "panoWillLoad", "panoLoaded", "panoLoadError", "initAnimationEnded", "initAnimationWillStart", "wantsGesture", "gesture", "wantsTapGesture", "tapGesture", "wantsPressGesture", "pressGesture", "wantsPanGesture", "wantsInteriaPan", "panGesture", "interiaPan", "wantsPinchGesture", "pinchGesture", "wantsMouseWheel", "mouseWheel", "wantsShowIntersectionOnModel", "intersectionOnModelUpdate", "intersectionHidden", "textureStartLoad", "textureLoading", "textureAbort", "textureLoaded", "textureError", "webXRSessionStart", "webXRSessionEnd", "webXRSelected"] = ...

Functions

  • URL 地址的转换

    Parameters

    Returns string

    url 转换结果

  • getViewportScale(): number
  • Returns number

  • imageSupport(): Promise<{ avif: boolean; webp: boolean }>
  • Returns Promise<{ avif: boolean; webp: boolean }>

  • parseWork(obj: any, options?: ParseWorkOptions, urlTransform?: ((origin: string, absolute: string, relative: string, type: "texture" | "panorama" | "model") => void)): Work
  • 解析 Work 数据

    Parameters

    • obj: any

      work 数据,从如数开发者平台获取

    • Optional options: ParseWorkOptions

      配置参数, 可以在此二次设置 baseURL 等参数

    • Optional urlTransform: ((origin: string, absolute: string, relative: string, type: "texture" | "panorama" | "model") => void)

      配置参数, URL 解析规则

        • (origin: string, absolute: string, relative: string, type: "texture" | "panorama" | "model"): void
        • Parameters

          • origin: string
          • absolute: string
          • relative: string
          • type: "texture" | "panorama" | "model"

          Returns void

    Returns Work

    • 签署过的 Work 数据结构