2021SC@SDUSC ClayGL Camera类分析(六)
接上文
获取已安装的场景。
返回值:
类型 clay.Scene
getScene: function () {
return this._scene;
},
从世界变换中获取世界位置。
参数:
名称 | 类型 | 属性 |
---|---|---|
out | clay.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]);
}
},
事件处理是否已注册:
参数:
名称 | 类型 |
---|---|
name | string |
action | function |
返回值:
类型 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;
}
}
}
};
如果它是给定场景节点的祖先,则返回 true
参数:
名称 | 类型 |
---|---|
node | clay.Node |
isAncestor: function (node) {
var parent = node._parent;
while(parent) {
if (parent === this) {
return true;
}
parent = parent._parent;
}
return false;
},
如果它是可渲染的场景节点,如 Mesh 和 ParticleSystem,则返回 true
返回值:
类型 boolean
isRenderable: function () {
return false;
},
如果节点是蒙皮网格
返回值:
类型 boolean
isSkinnedMesh: function () {
return false;
},
获取相应的视角转换矩阵,从而将片元从世界坐标系转换到相机坐标系。
参数:
名称 | 类型 | 属性 |
---|---|---|
target | clay.Vector3 | |
up | clay.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;
};
})()
});