Skip to content

@tripo3d/engine / Engine

Interface: Engine ​

Defined in: core/engine.ts:53

Engine 3.0 的唯一组合根与公共 mutation authority。

Engine 拥有 Canvas、renderer、默认 World/View、各领域 owner 以及终态释放流程。

Properties ​

PropertyModifierTypeDescriptionDefined in
camerareadonlyPerspectiveCamera构造时创建并由默认 View 借用的 PerspectiveCamera。core/engine.ts:63
canvasreadonlyHTMLCanvasElementEngine 创建并终身持有的唯一 Canvas。core/engine.ts:65
disposedreadonlybooleanEngine 是否已进入不可逆终态。core/engine.ts:105
pipelinereadonlyPipelineEngine 内唯一渲染管线的公共控制面。core/engine.ts:154
pointerreadonlyPointerEngine eager 创建且 identity 稳定的鼠标事件入口。core/engine.ts:156
rendererreadonlyWebGLRendererEngine 创建并暴露 identity 的原生 renderer;设备级 mutation 仍归 Engine。core/engine.ts:167
runningreadonlybooleanframe loop 当前是否运行。core/engine.ts:169
sizereadonlyReadonly<RenderSize>当前只读尺寸快照。core/engine.ts:178
viewreadonlyRenderView构造时创建的默认 RenderView。core/engine.ts:193
worldreadonlyWorld构造时创建的默认 World。core/engine.ts:195
worldsreadonlyreadonly World[]当前 Engine 拥有的全部存活 World 的只读投影。core/engine.ts:197

Methods ​

addSystem() ​

ts
addSystem<T>(definition): T;

Defined in: core/engine.ts:61

同步取得一个Engine-global System owner。

Type Parameters ​

Type Parameter
T

Parameters ​

ParameterTypeDescription
definitionSystemDefinition<T>作为owner唯一key且不会被Engine释放的System Definition。

Returns ​

T

首次setup返回的原始业务identity;重复添加返回同一结果。

Throws ​

setup、initial lifecycle失败,Engine终止或active frame中首次添加时同步抛出。


createEntity() ​

Call Signature ​

ts
createEntity(): Entity<Group<Object3DEventMap>>;

Defined in: core/engine.ts:72

创建并全量绑定一个Engine-owned Group Entity。

Returns ​

Entity<Group<Object3DEventMap>>

可保持floating或随后进入World的全新Entity。

Throws ​

Engine终止后调用时同步抛出。

Call Signature ​

ts
createEntity<TObject>(root): Entity<TObject>;

Defined in: core/engine.ts:80

全量绑定给定 Object3D 子树,并返回根 Entity。

Type Parameters ​
Type Parameter
TObject extends Object3D<Object3DEventMap>
Parameters ​
ParameterTypeDescription
rootTObject待绑定且当前未被任何 Engine 绑定的 Object3D 根。
Returns ​

Entity<TObject>

与 root 保持精确泛型 identity 的 Entity。

Throws ​

root有parent、subtree含foreign/mixed binding或Engine已终止时同步抛出。


createWorld() ​

ts
createWorld(root?): World;

Defined in: core/engine.ts:89

创建 World,可选择使用已经绑定的 Scene Entity 作为根。

Parameters ​

ParameterTypeDescription
root?Entity<Scene>可选的 Scene Entity;省略时由 Engine 创建。

Returns ​

World

当前 Engine 新拥有的 World。

Throws ​

root不是same-Engine、live、floating且parentless的Scene Entity,或active frame/终态调用时抛出。


destroyWorld() ​

ts
destroyWorld(world): boolean;

Defined in: core/engine.ts:97

销毁extra World及其完整Entity subtree。

Parameters ​

ParameterTypeDescription
worldWorld待销毁的World identity。

Returns ​

boolean

same-Engine live extra World被销毁时为true;foreign或已销毁时为false。

Throws ​

default World、active frame或业务terminal callback失败时同步抛出。


dispose() ​

ts
dispose(): void;

Defined in: core/engine.ts:103

先发布不可逆终态,再尽力释放全部Engine-owned能力;重复调用无副作用。

Returns ​

void

Throws ​

同步业务执行中拒绝抢占;清理单错原样、多错以primary-first AggregateError传播。


emitEvent() ​

ts
emitEvent<T>(event, ...payload): void;

Defined in: core/engine.ts:113

同步派发一个 Engine Event。

Type Parameters ​

Type Parameter
T

Parameters ​

ParameterTypeDescription
eventEngineEvent<T>作为唯一频道 identity 的 Event token。
...payload[T] extends [void] ? [] : [T extends void ? undefined : T]非 void Event 必须提供的 payload。

Returns ​

void

Throws ​

Engine终止或任一同步handler失败时原样抛出。


getEntity() ​

ts
getEntity<TObject>(object): Entity<TObject> | undefined;

Defined in: core/engine.ts:123

查询当前 Engine 中与原生 Object3D 一一对应的 Entity。

Type Parameters ​

Type Parameter
TObject extends Object3D<Object3DEventMap>

Parameters ​

ParameterTypeDescription
objectTObject待查询的原生 Object3D。

Returns ​

Entity<TObject> | undefined

已绑定 Entity;未绑定或已销毁时返回 undefined。


getSystem() ​

ts
getSystem<T>(definition): T | undefined;

Defined in: core/engine.ts:126

Type Parameters ​

Type Parameter
T

Parameters ​

ParameterTypeDescription
definitionSystemDefinition<T>System Definition。

Returns ​

T | undefined

已安装 setup 结果;不存在时返回 undefined。


hasSystem() ​

ts
hasSystem(definition): boolean;

Defined in: core/engine.ts:128

Parameters ​

ParameterTypeDescription
definitionSystemDefinition<unknown>System Definition。

Returns ​

boolean

当前 Engine 是否已安装该 identity。


hasWorld() ​

ts
hasWorld(world): boolean;

Defined in: core/engine.ts:130

Parameters ​

ParameterTypeDescription
worldWorld待查询的 World。

Returns ​

boolean

World 是否由当前 Engine 持有且存活。


isSystemEnabled() ​

ts
isSystemEnabled(definition): boolean;

Defined in: core/engine.ts:133

Parameters ​

ParameterTypeDescription
definitionSystemDefinition<unknown>System Definition。

Returns ​

boolean

已安装 System 自身的 enabled;不存在时返回 false。


onceEvent() ​

ts
onceEvent<T>(event, handler): () => void;

Defined in: core/engine.ts:142

注册最多执行一次的 Engine 级事件订阅。

Type Parameters ​

Type Parameter
T

Parameters ​

ParameterTypeDescription
eventEngineEvent<T>作为唯一频道 identity 的 Event token。
handler(payload) => void同步处理 payload 的业务函数。

Returns ​

幂等 unsubscribe。

() => void

Throws ​

Engine终止或handler不是函数时同步抛出。


onEvent() ​

ts
onEvent<T>(event, handler): () => void;

Defined in: core/engine.ts:151

注册 Engine 级事件订阅。

Type Parameters ​

Type Parameter
T

Parameters ​

ParameterTypeDescription
eventEngineEvent<T>作为唯一频道 identity 的 Event token。
handler(payload) => void同步处理 payload 的业务函数。

Returns ​

幂等 unsubscribe。

() => void

Throws ​

Engine终止或handler不是函数时同步抛出。


removeSystem() ​

ts
removeSystem(definition): boolean;

Defined in: core/engine.ts:164

同步删除一个System owner。

Parameters ​

ParameterTypeDescription
definitionSystemDefinition<unknown>System Definition identity。

Returns ​

boolean

owner存在并完成terminal publication时为true;不存在时为false。

Throws ​

active frame、Engine终态或业务terminal callback失败时同步抛出。


setSystemEnabled() ​

ts
setSystemEnabled(definition, enabled): boolean;

Defined in: core/engine.ts:176

Parameters ​

ParameterTypeDescription
definitionSystemDefinition<unknown>System Definition。
enabledboolean要提交的 enabled。

Returns ​

boolean

找到并处理该 System 时返回 true,否则返回 false。

Throws ​

enabled类型无效、Engine终态或同步lifecycle callback失败时抛出。


start() ​

ts
start(): void;

Defined in: core/engine.ts:184

重新测量Canvas并启动frame loop;重复启动无副作用。

Returns ​

void

Throws ​

construction setup、Engine终态、既有device错误或同步resize失败时抛出。


stop() ​

ts
stop(): void;

Defined in: core/engine.ts:190

停止后续frame调度;未运行或terminal后调用均无副作用。

Returns ​

void

Throws ​

construction setup期间调用时同步抛出。

基于 MIT 协议发布(内部使用)