three.js 源码注释(九十)extras/SceneUtils.js

102 篇文章 13 订阅
100 篇文章 3 订阅

商域无疆 (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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值