Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Primitive

Basic primitive mesh, this can be generate some primitive mesh at runtime.

Hierarchy

Index

Constructors

constructor

Properties

__asyncLoadAssets__

__asyncLoadAssets__: boolean = false

__depends__

__depends__: any = null

__nativeDepend__

__nativeDepend__: any = null

__onLoadedInvoked__

__onLoadedInvoked__: boolean = false

_native

_native: string = ""
en

Serializable url for native asset. For internal usage.

zh

用于本机资产的可序列化URL。供内部使用。

default

""

_nativeUrl

_nativeUrl: string = ""

_uuid

_uuid: string

info

info: Record<string, number>

The option for build the primitive mesh, set it before you call onLoaded.

loaded

loaded: boolean = true
en

Whether the asset is loaded or not

zh

该资源是否已经成功加载。

morphRendering

morphRendering: MorphRendering | null = null

type

type: number = PrimitiveType.BOX

The type of the primitive mesh, set it before you call onLoaded.

Static PrimitiveType

PrimitiveType: EnumAlias<typeof PrimitiveType> = PrimitiveType

Static preventDeferredLoadDependents

preventDeferredLoadDependents: boolean = false
en

Indicates whether its dependent native assets can support deferred load if the owner scene (or prefab) is marked as asyncLoadAssets.

zh

当场景或 Prefab 被标记为 asyncLoadAssets,禁止延迟加载该资源所依赖的其它原始资源。

default

false

Static preventPreloadNativeObject

preventPreloadNativeObject: boolean = false
en

Indicates whether its native object should be preloaded from native url.

zh

禁止预加载原生对象。

default

false

Accessors

nativeAsset

  • get nativeAsset(): ArrayBuffer
  • set nativeAsset(value: ArrayBuffer): void

nativeDep

  • get nativeDep(): undefined | { __isNative__: boolean; ext: string; uuid: string }

data

  • get data(): Uint8Array

hash

  • get hash(): number

jointBufferIndices

  • get jointBufferIndices(): number[]

maxPosition

  • get maxPosition(): undefined | Vec3
  • en

    The maximum position of all vertices in the mesh

    zh

    (各分量都)大于等于此网格任何顶点位置的最大位置。

    deprecated

    Please use [[struct.maxPosition]] instead

    Returns undefined | Vec3

minPosition

  • get minPosition(): undefined | Vec3
  • en

    The minimum position of all vertices in the mesh

    zh

    (各分量都)小于等于此网格任何顶点位置的最大位置。

    deprecated

    Please use [[struct.minPosition]] instead

    Returns undefined | Vec3

nativeUrl

  • get nativeUrl(): string
  • en

    Returns the url of this asset's native object, if none it will returns an empty string.

    zh

    返回该资源对应的目标平台资源的 URL,如果没有将返回一个空字符串。

    readonly

    Returns string

refCount

  • get refCount(): number

renderingSubMeshes

struct

subMeshCount

  • get subMeshCount(): number
  • en

    The sub meshes count of the mesh.

    zh

    此网格的子网格数量。

    deprecated

    Please use [[renderingSubMeshes.length]] instead

    Returns number

Methods

Private setRawAsset

  • setRawAsset(filename: string, inLibrary?: boolean): void
  • en

    Set native file name for this asset.

    zh

    为此资源设置原始文件名。

    seealso

    nativeUrl

    Parameters

    • filename: string
    • Default value inLibrary: boolean = true

    Returns void

addRef

assign

  • assign(struct: IStruct, data: Uint8Array): void
  • en

    Reset the struct and data of the mesh

    zh

    重置此网格的结构和数据。

    deprecated

    Will be removed in v3.0.0, please use reset instead

    Parameters

    • struct: IStruct

      The new struct

    • data: Uint8Array

      The new data

    Returns void

copyAttribute

  • copyAttribute(primitiveIndex: number, attributeName: AttributeName, buffer: ArrayBuffer, stride: number, offset: number): boolean
  • en

    Read the requested attribute of the given sub mesh and fill into the given buffer.

    zh

    读取子网格的指定属性到目标缓冲区中。

    Parameters

    • primitiveIndex: number

      Sub mesh index

    • attributeName: AttributeName

      Attribute name

    • buffer: ArrayBuffer

      The target array buffer

    • stride: number

      Byte distance between two attributes in the target buffer

    • offset: number

      The offset of the first attribute in the target buffer

    Returns boolean

    Return false if failed to access attribute, return true otherwise.

copyIndices

  • copyIndices(primitiveIndex: number, outputArray: number[] | ArrayBufferView): boolean
  • en

    Read the indices data of the given sub mesh and fill into the given array

    zh

    读取子网格的索引数据到目标数组中。

    Parameters

    • primitiveIndex: number

      Sub mesh index

    • outputArray: number[] | ArrayBufferView

      The target output array

    Returns boolean

    Return false if failed to access the indices data, return true otherwise.

Optional createNode

  • en

    Create a new node using this asset in the scene.
    If this type of asset dont have its corresponding node type, this method should be null.

    zh

    使用该资源在场景中创建一个新节点。
    如果这类资源没有相应的节点类型,该方法应该是空的。

    Parameters

    Returns void

decRef

  • decRef(autoRelease?: boolean): Asset
  • en

    Reduce references of asset and it will be auto released when refCount equals 0.

    zh

    减少资源的引用并尝试进行自动释放。

    Parameters

    • Default value autoRelease: boolean = true

    Returns Asset

    itself

destroy

  • destroy(): any
  • en

    Destroy the mesh and release all related GPU resources

    zh

    销毁此网格,并释放它占有的所有 GPU 资源。

    Returns any

destroyRenderingMesh

  • destroyRenderingMesh(): void

getBoneSpaceBounds

initialize

  • initialize(): void

merge

  • merge(mesh: Mesh, worldMatrix?: Mat4, validate?: undefined | false | true): boolean
  • en

    Merge the given mesh into the current mesh

    zh

    合并指定的网格到此网格中。

    Parameters

    • mesh: Mesh

      The mesh to be merged

    • Optional worldMatrix: Mat4

      The world matrix of the given mesh

    • Optional validate: undefined | false | true

    Returns boolean

    Check the mesh state and return the validation result.

onLoaded

  • onLoaded(): void

readAttribute

  • readAttribute(primitiveIndex: number, attributeName: AttributeName): TypedArray | null
  • en

    Read the requested attribute of the given sub mesh

    zh

    读取子网格的指定属性。

    Parameters

    • primitiveIndex: number

      Sub mesh index

    • attributeName: AttributeName

      Attribute name

    Returns TypedArray | null

    Return null if not found or can't read, otherwise, will create a large enough typed array to contain all data of the attribute, the array type will match the data type of the attribute.

readIndices

  • readIndices(primitiveIndex: number): null | Uint8Array | Uint16Array | Uint32Array
  • en

    Read the indices data of the given sub mesh

    zh

    读取子网格的索引数据。

    Parameters

    • primitiveIndex: number

      Sub mesh index

    Returns null | Uint8Array | Uint16Array | Uint32Array

    Return null if not found or can't read, otherwise, will create a large enough typed array to contain all indices data, the array type will use the corresponding stride size.

reset

Private serialize

  • serialize(): void

toString

  • toString(): string
  • en

    Returns the string representation of the object.
    The Asset object overrides the toString() method of the Object object.
    JavaScript calls the toString() method automatically
    when an asset is to be represented as a text value or when a texture is referred to in a string concatenation.

    For assets of the native type, it will return this.nativeUrl.
    Otherwise, an empty string is returned.
    This method may be overwritten by subclasses.

    zh

    返回对象的字符串表示形式。
    Asset 对象将会重写 Object 对象的 toString() 方法。
    当资源要表示为文本值时或在字符串连接时引用时,
    JavaScript 会自动调用 toString() 方法。

    对于原始类型的资源,它将返回this.nativeUrl
    否则,返回空字符串。
    子类可能会覆盖此方法。

    method

    toString

    Returns string

validateMergingMesh

  • validateMergingMesh(mesh: Mesh): boolean
  • en

    Validation for whether the given mesh can be merged into the current mesh. To pass the validation, it must satisfy either of these two requirements:

    • When the current mesh have no data
    • When the two mesh have the same vertex bundle count, the same sub meshes count, and the same sub mesh layout.

    Same mesh layout means:

    • They have the same primitive type and reference to the same amount vertex bundle with the same indices.
    • And they all have or don't have index view
    zh

    验证指定网格是否可以合并至当前网格。

    当满足以下条件之一时,指定网格可以合并至当前网格:

    • 当前网格无数据而待合并网格有数据;
    • 它们的顶点块数目相同且对应顶点块的布局一致,并且它们的子网格数目相同且对应子网格的布局一致。

    两个顶点块布局一致当且仅当:

    • 它们具有相同数量的顶点属性且对应的顶点属性具有相同的属性格式。

    两个子网格布局一致,当且仅当:

    • 它们具有相同的图元类型并且引用相同数量、相同索引的顶点块;并且,
    • 要么都需要索引绘制,要么都不需要索引绘制。

    Parameters

    • mesh: Mesh

      The other mesh to be validated

    Returns boolean

Static deserialize

  • deserialize(data: any): any

Generated using TypeDoc