当前位置: 首页 > 工具软件 > ClayGL > 使用案例 >

2021SC@SDUSC ClayGL Camera类分析(三)

苏宜人
2023-12-01

2021SC@SDUSC ClayGL Camera类分析(三)

接上文

MEMBERS

1、获取包围盒getBoundingBox

获取节点的包围盒:
参数 {Function} [filter]
{clay.BoundingBox} [out]
返回值 {clay.BoundingBox}

    // TODO Skinning
    getBoundingBox: (function () {
        function defaultFilter (el) {
            return !el.invisible && el.geometry;
        }
        var tmpBBox = new BoundingBox();
        var tmpMat4 = new Matrix4();
        var invWorldTransform = new Matrix4();
        return function (filter, out) {
            out = out || new BoundingBox();
            filter = filter || defaultFilter;
            if (this._parent) {
                Matrix4.invert(invWorldTransform, this._parent.worldTransform);
            }
            else {
                Matrix4.identity(invWorldTransform);
            }
            this.traverse(function (mesh) {
                if (mesh.geometry && mesh.geometry.boundingBox) {
                    tmpBBox.copy(mesh.geometry.boundingBox);
                    Matrix4.multiply(tmpMat4, invWorldTransform, mesh.worldTransform);
                    tmpBBox.applyTransform(tmpMat4);
                    out.union(tmpBBox);
                }
            }, this, defaultFilter);
            return out;
        };
    })(),

2、可视化invisible

节点及其子节点不可见
类型:boolean(布尔)

    invisible: false,

3、投影逆矩阵invProjectionMatrix

相机投影矩阵的逆矩阵
类型: clay.Matrix4(4维矩阵)

        invProjectionMatrix: new Matrix4(),

4、局部变换localTransform

相对于其父节点的仿射变换矩阵,与位置、旋转和缩放相结合,局部变换初始值为 null。
类型: clay.Matrix4(4维矩阵)

如果每帧本地变换是从 SRT 更新的(缩放、旋转、平移,位于此处的位置),则自动更新局部变换为True

    localTransform: null,

    autoUpdateLocalTransform: true,

5、(场景)名name

场景节点名称
类型:字符串

    name: '',

6、位置 position

相对于其父节点node. aka的位置变换,初始值为 NULL。
类型:clay.Vector3(3维向量)

    position: null,

7、投影矩阵projectionMatrix

相机投影矩阵
类型:clay.Matrix4(4维矩阵)

        projectionMatrix: new Matrix4(),

8、旋转rotation

相对于其父节点的旋转。由四元数表示,初始值为 NULL。
类型:clay.Quaternion(四元数)

    rotation: null,
 类似资料: