简介
与节点属性相关的几个核心变量_trs、_matrix、_worldMatrix、_localMatDirty、_worldMatDirty。
_trs:存储节点的position、rotation、scale
_matrix:存储节点的缩放、位移、旋转三者合一的变化矩陈(仿射矩陈)
_worldMatrix:存储节点的世界矩陈。本地矩陈与父节点的世界矩陈相乘而来
_localMatDirty:本地脏数据的标记 当你修改position、rotation、scale、anchor时会进行对应的标记。它是个二进制数表示。根据标记更新_matrix。
_worldMatDirty:当你修改节点的position、rotation、scale、anchor属性时 都会标记为true。它是个Boolean值。true 时,会重新计算时间矩阵,并所有子节点的世界矩阵也会标记为脏
这些值的初始化:
Mat4.identity(this._matrix); //单位向量
Mat4.identity(this._worldMatrix);//单位向量
this._localMatDirty = LocalDirtyFlag.ALL;
this._worldMatDirty = true;
let trs = this._trs = spaceInfo.trs;
trs[0] = 0; // position.x
trs[1] = 0; // position.y