three.js 源碼註釋(九十)extras/SceneUtils.js

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

本文遵循“署名-非商業用途-保持一致”創作公用協議

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


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

以下代碼是THREE.JS 源碼文件中extras/SceneUtils.js文件的註釋.

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


/**
 * @author alteredq / http://alteredqualia.com/
 */

/**************************************************************
 *	SceneUtils scene對象的工具集
 **************************************************************/
THREE.SceneUtils = {
	/*
	///createMultiMaterialObject方法創建一種新的Objec3D對象,每個網格對象對應一種材質.
	///這裏和一個網格的每個面使用Meshfacematerial 材質不同.這種方式適用於網格對象在線框和着色幾種材質之間變換頻繁.
	*/
	///<summary>createMultiMaterialObject</summary>
	///<param name ="geometry" type="Geometry">幾何體對象.</param>
	///<param name ="materials" type="THREE.Material Array">材質對象的數組.</param>
	///<returns type="Object3d">返回Object3D對象</returns>	
	createMultiMaterialObject: function ( geometry, materials ) {

		var group = new THREE.Object3D();

		for ( var i = 0, l = materials.length; i < l; i ++ ) {

			group.add( new THREE.Mesh( geometry, materials[ i ] ) );

		}

		return group;	//返回Object3D對象

	},
	/*
	///detach方法將將子對象(參數child)從父對象中刪除(參數parent),並重新將子對象添加到場景中.
	*/
	///<summary>detach</summary>
	///<param name ="child" type="Geometry">將要被附着到parent對象的子對象.</param>
	///<param name ="parent" type="Objec3d">父對象</param>
	///<param name ="scene" type="THREE.Scene">THREE.Scene場景.</param>
	///<returns type="Geometry">返回合併後的幾何體對象</returns>	
	detach: function ( child, parent, scene ) {

		child.applyMatrix( parent.matrixWorld );  //子對象應用座標變換
		parent.remove( child ); 	//將子對象(參數child)從父對象中刪除(參數parent).
		scene.add( child ); //將子對象添加到場景中.其實是作爲場景的子對象.

	},
	/*
	///attach方法將子對象(參數child)附着到場景(scene)內的父對象(參數parent)之內.
	*/
	///<summary>attach</summary>
	///<param name ="child" type="Geometry">將要被附着到parent對象的子對象.</param>
	///<param name ="scene" type="THREE.Scene">THREE.Scene場景.</param>
	///<param name ="parent" type="Objec3d">父對象</param>
	///<returns type="Geometry">返回合併後的幾何體對象</returns>	
	attach: function ( child, scene, parent ) {

		var matrixWorldInverse = new THREE.Matrix4();
		matrixWorldInverse.getInverse( parent.matrixWorld ); //獲得父對象的世界座標的逆座標
		child.applyMatrix( matrixWorldInverse ); 	//子對象應用座標變換

		scene.remove( child );	//從場景內刪除child對象.
		parent.add( child );	//調用add方法用來將對象(參數child),設置爲父對象的子對象

	}

};


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

本文遵循“署名-非商業用途-保持一致”創作公用協議

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


以下代碼是THREE.JS 源碼文件中extras/SceneUtils.js文件的註釋.

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章