xr-frame / Exports / GLTF

# Class: GLTF

将一个GLTF模型实例化并渲染出来。 xr-gltf标签会自动生成该组件。

会在当前元素下新建一系列子元素,作为GLTF模型的每个场景的根节点。 会在当前元素上新建Animator组件,并向其添加实例化生成的动画片段。

see IGLTFData

# Hierarchy

# Table of contents

# Constructors

# Events

# Properties

# Accessors

# Methods

# Constructors

# constructor

new GLTF()

# Inherited from

Component.constructor

# Events

# onAdd

onAdd(parent, data): void

所挂载的element被挂载到场景时触发的回调。

# Parameters

Name Type
parent Element
data IGLTFData

# Returns

void

# Inherited from

Component.onAdd


# onRelease

onRelease(data): void

从被挂载的element上被移除,或是element被销毁时,触发的回调。 一般用于释放持有的资源。

# Parameters

Name Type
data IGLTFData

# Returns

void

# Inherited from

Component.onRelease


# onRemove

onRemove(parent, data): void

所挂载的element从父节点parent被移除时,或者自己从element上被移除时,触发的回调。 一般用于消除功能的运作。 如果一个组件的元素直接被销毁了,那这个组件就不会经历onRemove而是直接进入onRelease。

# Parameters

Name Type
parent Element
data IGLTFData

# Returns

void

# Inherited from

Component.onRemove


# onTick

onTick(deltaTime, data): void

渲染每帧触发的回调。

# Parameters

Name Type Description
deltaTime number 单位为毫秒(ms)。
data IGLTFData -

# Returns

void

# Inherited from

Component.onTick


# onUpdate

onUpdate(data, preData): void

数据更新时触发的回调。

# Parameters

Name Type
data IGLTFData
preData IGLTFData

# Returns

void

# Inherited from

Component.onUpdate

# Properties

# priority

Readonly priority: number = 300

自定义组件的更新优先级。

# Overrides

Component.priority


# schema

Readonly schema: IComponentSchema

自定义组件的schema

# Overrides

Component.schema


# EVENTS

Static EVENTS: string[]

# Overrides

Component.EVENTS

# Accessors

# el

get el(): Element

挂载的元素。

# Returns

Element


# meshes

get meshes(): Mesh[]

获取GLTF模型实例化过程中生成的所有Mesh组件。

# Returns

Mesh[]


# scene

get scene(): Scene

当前场景。

# Returns

Scene


# version

get version(): number

当前版本,每次有数据更新都会增加,可以用作和其他组件合作的依据。

# Returns

number

# Methods

# calcTotalBoundBox

calcTotalBoundBox(): BoundBox

计算GLTF模型整体的包围盒,返回模型空间内的计算结果。 每次调用都会重新计算。

# Returns

BoundBox


# getData

getData<T>(key): IGLTFData[T]

获取一个当前值。

# Type parameters

Name Type
T extends keyof IGLTFData

# Parameters

Name Type
key T

# Returns

IGLTFData[T]

# Inherited from

Component.getData


# getInternalNodeByName

getInternalNodeByName(name): Element

根据GLTF模型中节点的name字段来获取内部元素。

# Parameters

Name Type
name string

# Returns

Element


# getPrimitivesByMeshName

getPrimitivesByMeshName(name): { nodeName: string ; primitives: Mesh[] }[]

根据GLTF模型中Mesh节点的name字段,来获取引用了该Mesh的所有Node节点下的所有Primitive。 在xr-frame实现中,每个引用了该Mesh的GLTFNode节点拥有独立的一份Primitives副本,每个Node节点下的每个Primitive对应一个xr-frame Mesh组件。 *如果没有引用了该Mesh的Node节点,会返回空数组。

# Parameters

Name Type Description
name string Mesh节点的name

# Returns

{ nodeName: string ; primitives: Mesh[] }[]

一个数组,数组中的一个元素对应一个引用了该Mesh的GLTFNode节点,元素中nodeName为GLTFNode节点的name字段。


# getPrimitivesByNodeName

getPrimitivesByNodeName(name): Mesh[]

根据GLTF模型中引用了Mesh的Node节点name字段,来获取对应Mesh下的所有Primitive。 一个GLTF模型中的Primitive节点对应返回中的一个xr-frame Mesh组件实例。 *如果没有该名字的节点,或者节点未引用Mesh,会返回空数组。

# Parameters

Name Type Description
name string Node节点的name(而非Mesh节点)

# Returns

Mesh[]


# setData

setData(data): void

不通过xml而是直接设置data,注意值的类型需要和schema中一致。

# Parameters

Name Type
data Partial<IGLTFData>

# Returns

void

# Inherited from

Component.setData


# setDataOne

setDataOne<T>(key, value): void

设置一个数据。

# Type parameters

Name Type
T extends keyof IGLTFData

# Parameters

Name Type
key T
value IGLTFData[T]

# Returns

void

# Inherited from

Component.setDataOne