多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > three.js 源碼注釋(三十三)Scenes/Scene.js

three.js 源碼注釋(三十三)Scenes/Scene.js

來源:程序員人生   發布時間:2014-12-09 08:00:25 閱讀次數:2741次

商域無疆 (http://blog.csdn.net/omni360/)

本文遵守“署名-非商業用處-保持1致”創作公用協議

轉載請保存此句:商域無疆 -  本博客專注于 敏捷開發及移動和物聯裝備研究:數據可視化、GOLANG、Html5、WEBGL、THREE.JS否則,出自本博客的文章謝絕轉載或再轉載,謝謝合作。


俺也是剛開始學,好多地兒肯定不對還請見諒.

以下代碼是THREE.JS 源碼文件中Scenes/Scene.js文件的注釋.

更多更新在 : https://github.com/omni360/three.js.sourcecode


/** * @author mrdoob / http://mrdoob.com/ */ /* ///Scene是場景對象,所有的對象,燈光,動畫,骨骼等都需要放置在場景內.Scene對象的功能函數采取定義構造的函數原型對象來實現. */ ///<summary>Scene</summary> THREE.Scene = function () { THREE.Object3D.call( this ); //調用Object3D對象的call方法,將本來屬于Object3D的方法交給當前對象Scene來使用. this.fog = null; //場景的霧效屬性 this.overrideMaterial = null; //場景的材質屬性,默許為null,如果設置了這個屬性,場景中的所有對象渲染成這個材質. this.autoUpdate = true; // checked by the renderer //默許為true,表示渲染器每幀都會檢查場景和場景中的對象的矩陣的是不是更新,如果為false,場景中的對象將不會被自動更新. /***********************新版中已刪除******************************** this.matrixAutoUpdate = false; //默許為false,場景中的矩陣是不是自動更新,新版中已刪除這個屬性. **********************************************************************/ this.__lights = []; //場景中的所有燈光寄存在__lights屬性數組中,新版中已刪除這個屬性 /***********************新版中已刪除******************************** this.__objectsAdded = []; //場景中的添加的所有相機和骨骼寄存在__objectsAdded屬性數組中,新版中已刪除這個屬性 this.__objectsRemoved = []; //場景中的刪除的所有相機和骨骼寄存在__objectsRemoved屬性數組中,新版中已刪除這個屬性 //TODO: 這里的屬性啥意思?是新加的?添加的相機應當在children數組內呀?應當是這里為了提高效力將相機和骨骼單獨放到這個屬性數組中. **********************************************************************/ }; /************************************************* ****下面是Scene對象的方法屬性定義,繼承自Object3D **************************************************/ THREE.Scene.prototype = Object.create( THREE.Object3D.prototype ); //Scene對象從THREE.Objec3D的原型繼承所有屬性方法 /************************************下面的方法已在新版中刪除****************************************** // ///__addObject方法用來添加燈光對象到場景的__lights屬性數組中,添加相機和骨骼到場景的__objectsAdded /// NOTE:新版中已刪除這個方法 // ///<summary>__addObject</summary> ///<param name ="object" type="Light,Carmera,Bone">Light,Carmera,Bone,可以包括子對象</param> ///<returns type="Scene">返回新的Scene對象</returns> THREE.Scene.prototype.__addObject = function ( object ) { if ( object instanceof THREE.Light ) { //如果是燈光, if ( this.__lights.indexOf( object ) === - 1 ) { this.__lights.push( object ); //添加到__lights屬性數組中 } if ( object.target && object.target.parent === undefined ) { this.add( object.target ); } } else if ( ! ( object instanceof THREE.Camera || object instanceof THREE.Bone ) ) { //如果是骨骼或相機 this.__objectsAdded.push( object ); //添加到__objectsAdded屬性數組中 // check if previously removed // 檢查對象是不是已被刪除 var i = this.__objectsRemoved.indexOf( object ); //如果對象唄刪除過 if ( i !== - 1 ) { this.__objectsRemoved.splice( i, 1 ); //從__objectsRemoved數組中刪除. } } this.dispatchEvent( { type: 'objectAdded', object: object } ); //調度事件 object.dispatchEvent( { type: 'addedToScene', scene: this } ); //調度事件 for ( var c = 0; c < object.children.length; c ++ ) { //如果對象有子對象 this.__addObject( object.children[ c ] ); //將子對象也添加到__objectsAdded屬性數組中 } }; // ///__removeObject方法用來從場景的__lights屬性數組中刪除燈光對象,添加相機和骨骼從場景的__objectsRemoved /// NOTE:新版中已刪除這個方法 // ///<summary>__removeObject</summary> ///<param name ="object" type="Light,Carmera,Bone">Light,Carmera,Bone,可以包括子對象</param> ///<returns type="Scene">返回新的Scene對象</returns> THREE.Scene.prototype.__removeObject = function ( object ) { if ( object instanceof THREE.Light ) { var i = this.__lights.indexOf( object ); if ( i !== - 1 ) { this.__lights.splice( i, 1 ); } if ( object.shadowCascadeArray ) { for ( var x = 0; x < object.shadowCascadeArray.length; x ++ ) { this.__removeObject( object.shadowCascadeArray[ x ] ); } } } else if ( ! ( object instanceof THREE.Camera ) ) { this.__objectsRemoved.push( object ); // check if previously added // 檢查對象是不是已添加. var i = this.__objectsAdded.indexOf( object ); if ( i !== - 1 ) { this.__objectsAdded.splice( i, 1 ); } } this.dispatchEvent( { type: 'objectRemoved', object: object } ); object.dispatchEvent( { type: 'removedFromScene', scene: this } ); for ( var c = 0; c < object.children.length; c ++ ) { this.__removeObject( object.children[ c ] ); } }; **************************************************************************/ /*clone方法 ///clone方法克隆1個Scene對象,將屬性數組分別復制. */ ///<summary>clone</summary> ///<returns type="Scene">返回克隆的Scene對象</returns> THREE.Scene.prototype.clone = function ( object ) { if ( object === undefined ) object = new THREE.Scene(); THREE.Object3D.prototype.clone.call( this, object ); if ( this.fog !== null ) object.fog = this.fog.clone(); if ( this.overrideMaterial !== null ) object.overrideMaterial = this.overrideMaterial.clone(); object.autoUpdate = this.autoUpdate; /***********************新版中已刪除******************************** object.matrixAutoUpdate = this.matrixAutoUpdate; //新版中已刪除 **********************************************************************/ return object; //返回克隆的Scene對象 };


商域無疆 (http://blog.csdn.net/omni360/)

本文遵守“署名-非商業用處-保持1致”創作公用協議

轉載請保存此句:商域無疆 -  本博客專注于 敏捷開發及移動和物聯裝備研究:數據可視化、GOLANG、Html5、WEBGL、THREE.JS否則,出自本博客的文章謝絕轉載或再轉載,謝謝合作。


以下代碼是THREE.JS 源碼文件中Scenes/Scene.js文件的注釋.

更多更新在 : https://github.com/omni360/three.js.sourcecode

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲人成伊人成综合网久久久 | 成人在线免费小视频 | 最新欧美18videosex性欧美 | 91国语精品3p在线观看 | 狠狠躁 | 男女男精品视频网站在线观看 | 黄色福利网| 欧美高清在线精品一区二区不卡 | 久草精品视频 | 69视频在线观看 | 日本一二三区视频 | 一级毛片一级毛片一级级毛片 | 免费一看一级毛片 | 在线观看h网站 | 欧美xxxx极品流血 | 国产精品久久毛片蜜月 | 亚洲无线观看 | 欧美精品18videosex性俄罗斯 | 亚洲欧美日韩中文字幕一区二区三区 | 成 黄 色 激 情视频网站 | 久久国产精品久久精 | freexxx性欧美极品另类 | 高清 国产 日韩 欧美 | 亚洲欧美日韩国产综合久 | 亚洲国产精品日韩一线满 | 中文有码在线观看 | 欧美精品久久久久久久久大尺度 | 无码精品一区二区三区免费视频 | 国产精品久久久久久久免费大片 | 丁香五月好婷婷深深爱 | 亚洲精彩视频在线观看 | 91久久人澡人人添人人爽 | 一级毛片不卡免费看老司机 | 伊人网视频在线观看 | 亚洲欧美一二三区 | 亚洲小说图片 | 最新亚洲精品国自产在线 | 欧美图片另类小说综合 | 一区二区三区在线免费看 | 国产欧美精品一区二区三区 | 国产α片 |