首页 > 代码库 > three.js 源码注释(二十二)Core/Object3D.js
three.js 源码注释(二十二)Core/Object3D.js
商域无疆 (http://blog.csdn.net/omni360/)
本文遵循“署名-非商业用途-保持一致”创作公用协议
转载请保留此句:商域无疆 - 本博客专注于 敏捷开发及移动和物联设备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
俺也是刚开始学,好多地儿肯定不对还请见谅.
以下代码是THREE.JS 源码文件中Core/Object3D.js文件的注释.
更多更新在 : https://github.com/omni360/three.js.sourcecode
/** * @author mrdoob / http://mrdoob.com/ * @author mikael emtinger / http://gomo.se/ * @author alteredq / http://alteredqualia.com/ * @author WestLangley / http://github.com/WestLangley */ /* ///Object3D是场景中图形对象的基类.Object3D对象的功能函数采用定义构造的函数原型对象来实现. */ ///<summary>Object3D</summary> THREE.Object3D = function () { /**************************************** ****下面是Object3D对象的属性定义 ****************************************/ this.id = THREE.Object3DIdCount ++; //Object3D对象id属性. this.uuid = THREE.Math.generateUUID(); //调用THREE.Math.generateUUID()方法,Object3D对象uuid(通用唯一识别码)属性, this.name = ''; //Object3D对象name属性,可以为当前对象定义一个名称,初始化为'' this.parent = undefined; //Object3D对象parent属性,初始化为undefined. this.children = []; //Object3D对象children属性,初始化为[]. this.up = THREE.Object3D.DefaultUp.clone(); ////Object3D对象up属性,当前对象的上方,初始化为THREE.Vector3( 0, 1, 0 ) var scope = this; var position = new THREE.Vector3(); var rotation = new THREE.Euler(); var quaternion = new THREE.Quaternion(); var scale = new THREE.Vector3( 1, 1, 1 ); rotation.onChange( function () { quaternion.setFromEuler( rotation, false ); //给对象的rotation属性绑定setFromEuler()方法,当rotation属性值更改,调用setFromEuler()方法 } ); quaternion.onChange( function () { rotation.setFromQuaternion( quaternion, undefined, false ); //给对象的quaternion属性绑定setFromQuaternion()方法,当rotation属性值更改,调用setFromEuler()方法 } ); Object.defineProperties( this, { position: { //Object3D对象position属性 enumerable: true, value: position }, rotation: { //Object3D对象rotation属性,以弧度为单位 enumerable: true, value: rotation }, quaternion: { //Object3D对象quaternion属性,当useQuaternion属性为true,可用. enumerable: true, value: quaternion }, scale: { //Object3D对象scale属性 enumerable: true, value: scale }, } ); this.renderDepth = null; //Object3D对象renderDepth属性,初始化为null,如果设置了值将会覆盖渲染深度. this.rotationAutoUpdate = true; //Object3D对象rotationAutoUpdate属性,初始化为true,表示每帧都会重新计算. this.matrix = new THREE.Matrix4(); //Object3D对象matrix属性,变换矩阵 this.matrixWorld = new THREE.Matrix4(); //Object3D对象matrixWorld属性,如果当前对象是子对象,matrixWorld属性为上一级对象的变换矩阵,否则是自己的变换矩阵. this.matrixAutoUpdate = true; //Object3D对象matrixAutoUpdate属性,初始化为true,表示每帧都会重新计算缩放,位置,旋转或四元数矩阵.matrixWorld属性也会重新计算 this.matrixWorldNeedsUpdate = false; //Object3D对象matrixWorldNeedsUpdate属性,初始化为false this.visible = true; //Object3D对象visible属性,表示当前对象场景中是否可见,初始化为trure this.castShadow = false; //Object3D对象castShadow属性,初始化为false,表示不产生阴影 this.receiveShadow = false; //Object3D对象receiveShadow属性,初始化为false,表示材质不接受烘焙阴影 this.frustumCulled = true; //Object3D对象frustumCulled属性,初始化为true this.userData = http://www.mamicode.com/{}; //Object3D对象userData属性,初始化为{},用户自定义的其它属性,这里的数值不会被clone>商域无疆 (http://blog.csdn.net/omni360/)
本文遵循“署名-非商业用途-保持一致”创作公用协议
转载请保留此句:商域无疆 - 本博客专注于 敏捷开发及移动和物联设备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
以下代码是THREE.JS 源码文件中Core/Object3D.js文件的注释.
更多更新在 : https://github.com/omni360/three.js.sourcecode
three.js 源码注释(二十二)Core/Object3D.js
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。