we
    Preparing search index...

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _id: number

    节点ID node ID

    _isDestroy: boolean = false
    _manager: undefined | ECSManager<RootGPU>
    _matrix: undefined | Float32Array<ArrayBufferLike>

    初始化矩阵

    _name: string

    节点名称 node name

    _position: Float32Array = ...
    _positionOld: undefined | Float32Array<ArrayBufferLike>
    _quaternion: undefined | Float32Array<ArrayBufferLike>

    四元数

    _quaternionOld: undefined | Float32Array<ArrayBufferLike>
    _readyForGPU: boolean

    节点是否以及GPU准备好 node is ready of GPU

    _rodriguesRotation:
        | undefined
        | [
            Float32Array<ArrayBufferLike>,
            Float32Array<ArrayBufferLike>,
            number,
            boolean,
        ]

    任意点的任意轴的罗德里格斯旋转(考虑_position位置) 1、数组第一个元素为旋转点,第二个元素为旋转轴 2、数组第三个元素为旋转角度 3、数组第四个元素为是否在世界坐标下旋转

    _rodriguesRotationOld:
        | undefined
        | [
            Float32Array<ArrayBufferLike>,
            Float32Array<ArrayBufferLike>,
            number,
            boolean,
        ]
    _rotate: undefined | weVec4

    旋转:自身原点为中心( 不,考虑_position位置)

    _rotateOld: undefined | Float32Array<ArrayBufferLike>
    _scale: Float32Array = ...
    _scaleOld: undefined | Float32Array<ArrayBufferLike>
    _state: E_lifeState = E_lifeState.unstart
    device: GPUDevice
    enable: boolean = true
    inputValues: I_Update
    lastUpdaeTime: number = 0
    mapList: { key: any; map?: string; type: string }[] = []
    matrix: Float32Array = ...

    local matrix

    matrixWorld: Float32Array = ...

    当前entity在世界坐标(层级的到root),可以动态更新 1、在directInWorldSpace为true时,matrixWorld与matrix相同 2、在directInWorldSpace为false时,matrixWorld为matrix的累计乘积

    needUpdateLocalMatrix: boolean = true

    是否需要更新本地矩阵

    needUpdateuserDefine: boolean = false

    是否用户自定义更新函数

    needUpdateuserDefineAtEnd: boolean = false

    是否用户自定义更新函数,在update()函数最后调用

    resourcesGPU: ResourceManagerOfGPU
    scene: Scene
    type: string

    节点类型 node type

    UUID: string

    节点UUID node UUID

    visible: boolean = true
    worldPosition: Float32Array = ...

    在世界坐标下的位置(x,y,z)

    Accessors

    • get RodriguesAnyPoint(): | undefined
      | [
          Float32Array<ArrayBufferLike>,
          Float32Array<ArrayBufferLike>,
          number,
          boolean,
      ]

      Returns
          | undefined
          | [
              Float32Array<ArrayBufferLike>,
              Float32Array<ArrayBufferLike>,
              number,
              boolean,
          ]

    • set RodriguesAnyPoint(
          rodriguesRotation:
              | [
                  Float32Array<ArrayBufferLike>,
                  Float32Array<ArrayBufferLike>,
                  number,
                  boolean,
              ]
              | [weVec3, weVec3, number, boolean],
      ): void

      任意点的任意轴的罗德里格斯旋转 1、数组第一个元素为旋转点,第二个元素为旋转轴 2、数组第三个元素为旋转角度

      Parameters

      • rodriguesRotation:
            | [
                Float32Array<ArrayBufferLike>,
                Float32Array<ArrayBufferLike>,
                number,
                boolean,
            ]
            | [weVec3, weVec3, number, boolean]

      Returns void

    • set RodriguesZeroPoint(
          __namedParameters: [
              weVec3
              | Float32Array<ArrayBufferLike>,
              number,
              boolean,
          ],
      ): void

      旋转:以point(0,0,0)为原点为中心,考虑_position位置 1、数组第一个元素为旋转轴+旋转角度 2、数组第二个元素为是否在世界坐标下旋转

      Parameters

      • __namedParameters: [weVec3 | Float32Array<ArrayBufferLike>, number, boolean]

      Returns void

    Methods

    • 替换pos的位置(matrix的:12,13,14),其他的matrix数据不变, 将entity的位置变为POS,等价wgpu-matrix的mat4的translation,是替换,不是增加

      Parameters

      • pos: Float32Array

        :Vec3

      Returns void

    • 在现有matrix(原有的position)上增加pos的xyz, 将entity的矩阵应用POS的位置变换,是在原有矩阵上增加

      Parameters

      • pos: Float32Array

        :Vec3

      Returns void

    • 正常更新 1、更新空间属性

      2、调用super.update()更新

      Parameters

      • clock: Clock

        Clock 时钟

      • updateSelftFN: boolean = true

        是否调用自身的updateSelf(),默认=true 此参数可以方便子类重载时,决定调用的updateSelf()的时间顺序或是否调用updateSelft()

      • updateAtEndFN: boolean = true

        是否调用自身的updateAtEnd(),默认=true

      Returns boolean

    • 1、矩阵操作一般来说: CPU中:SRT(右乘),行向量列矩阵=行向量 GPU中: TRS(左乘),列矩阵列向量=列向量

      2、更新矩阵的顺序是先进行线性变换,再进行位置变换。其实是没有影响,线性工作在3x3矩阵,位置变换在[12,13,14],列优先。

      3、旋转部分,四元数优先,然后后轴旋转。 A、在模型gltf中,旋转使用四元数。

      Returns Float32Array