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

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

祁飞飙
2023-12-01

2021SC@SDUSC ClayGL Camera类分析(六)
接上文

1.getScene() → {clay.Scene}

获取已安装的场景。

返回值:
类型 clay.Scene

    getScene: function () {
        return this._scene;
    },

2.getWorldPosition(outopt) → {clay.Vector3}

从世界变换中获取世界位置。
参数:

名称类型属性
outclay.Vector3可选

返回值:
类型 clay.Vector3

    getWorldPosition: function (out) {
        // PENDING
        if (this.transformNeedsUpdate()) {
            this.updateWorldTransform();
        }
        var m = this.worldTransform.array;
        if (out) {
            var arr = out.array;
            arr[0] = m[12];
            arr[1] = m[13];
            arr[2] = m[14];
            return out;
        }
        else {
            return new Vector3(m[12], m[13], m[14]);
        }
    },

3.has(name, action) → {boolean}

事件处理是否已注册:

参数:

名称类型
namestring
actionfunction

返回值:
类型 boolean


    has: function(name, action) {
        var handlers = this.__handlers__;
        if (! handlers ||
            ! handlers[name]) {
            return false;
        }
        var hdls = handlers[name];
        for (var i = 0; i < hdls.length; i++) {
            if (hdls[i].action === action) {
                return true;
            }
        }
    }
};

4.isAncestor(node)

如果它是给定场景节点的祖先,则返回 true
参数:

名称类型
nodeclay.Node
    isAncestor: function (node) {
        var parent = node._parent;
        while(parent) {
            if (parent === this) {
                return true;
            }
            parent = parent._parent;
        }
        return false;
    },

5.isRenderable() → {boolean}

如果它是可渲染的场景节点,如 Mesh 和 ParticleSystem,则返回 true
返回值:
类型 boolean

    isRenderable: function () {
        return false;
    },

6.isSkinnedMesh() → {boolean}

如果节点是蒙皮网格
返回值:
类型 boolean

    isSkinnedMesh: function () {
        return false;
    },

7.lookAt(target, upopt)

获取相应的视角转换矩阵,从而将片元从世界坐标系转换到相机坐标系。
参数:

名称类型属性
targetclay.Vector3
upclay.Vector3可选

    lookAt: (function () {
        var m = new Matrix4();
        return function (target, up) {
            m.lookAt(this.position, target, up || this.localTransform.y).invert();
            this.setLocalTransform(m);
            this.target = target;
        };
    })()
});
 类似资料: