three.js 源码注释(二十六)Core/BufferAttribute.js

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

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

俺也是刚开始学,好多地儿肯定不对还请见谅.

以下代码是THREE.JS 源码文件中Core/BufferAttribute.js文件的注释.

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

/**
 * @author mrdoob / http://mrdoob.com/
 */
/*
///BufferAttribute类用来存储于bufferGeometry相关联的属性数据,更多细节可以参考官方的样例http://threejs.org/
/// 这个类用来存储内置属性例如顶点位置,法线,颜色,等,但也可以用于存储bufferGeometry对象的自定义属性.
///BufferAttribute对象的功能函数采用定义构造的函数原型对象来实现.
/// TODO:增加一个基类setAttr(index,item,itemSize)根据跟多不同的属性相长度设置属性
///
*/
///<summary>BufferAttribute</summary>
///<param name ="array" type="Array">属性数组</param>
///<param name ="itemSize" type="number">属性相长度</param>
///<returns type="BufferAttribute">返回新的属性数组</returns>
THREE.BufferAttribute = function ( array, itemSize ) {

	this.array = array;		//BufferAttribute的array属性
	this.itemSize = itemSize;	//BufferAttribute的itemSize属性

};

/****************************************
****下面是BufferAttribute对象提供的功能函数.
****************************************/
THREE.BufferAttribute.prototype = {

	constructor: THREE.BufferAttribute,		//构造器,返回对创建此对象BufferAttribute函数的引用.

	/*
	///get length 方法用来获取BufferAttribute的数组长度
	///NOTE: get length()BufferAttribute.prototype.length(),这种用法在除ie浏览器以外的浏览器上可以使用.
	*/
	///<summary>get length</summary>
	///<returns type="number">返回BufferAttribute的数组长度</returns>
	get length () {	

		return this.array.length;	//返回BufferAttribute的数组长度

	},

	/*
	///set方法用来重新设置BufferAttribute的属性数组
	*/
	///<summary>set</summary>
	///<param name ="value" type="Array">属性数组</param>
	///<returns type="BufferAttribute">返回新的BufferAttribute属性对象</returns>
	set: function ( value ) {

		this.array.set( value );	

		return this;	//返回新的BufferAttribute属性对象

	},

	/*
	///setX方法用来重新设置含有3个属性相的BufferAttribute属性数组的第一个分量
	/// NOTE:setX方法中,属性数组的长度是属性相的长度乘以属性的个数.比如要存放100个点的坐标,坐标有3个属性相,那么属性数组的长度是300,如果想改变第30个点的x坐标就将index设为30
	*/
	///<summary>setX</summary>
	///<param name ="index" type="Number">属性数组的索引</param>
	///<param name ="x" type="Number">属性数组的第一个分量</param>
	///<returns type="BufferAttribute">返回新的BufferAttribute属性对象</returns>
	setX: function ( index, x ) {

		this.array[ index * this.itemSize ] = x;

		return this;	//返回新的BufferAttribute属性对象

	},

	/*
	///setY方法用来重新设置含有3个属性相的BufferAttribute属性数组的第二个分量
	/// NOTE:setY方法中,属性数组的长度是属性相的长度乘以属性的个数.比如要存放100个点的坐标,坐标有3个属性相,那么属性数组的长度是300,如果想改变第30个点的Y坐标就将index设为30
	*/
	///<summary>setY</summary>
	///<param name ="index" type="Number">属性数组的索引</param>
	///<param name ="y" type="Number">属性数组的第一个分量</param>
	///<returns type="BufferAttribute">返回新的BufferAttribute属性对象</returns>
	setY: function ( index, y ) {

		this.array[ index * this.itemSize + 1 ] = y;

		return this;	//返回新的BufferAttribute属性对象

	},

	/*
	///setZ方法用来重新设置含有3个属性相的BufferAttribute属性数组的第三个分量
	/// NOTE:setY方法中,属性数组的长度是属性相的长度乘以属性的个数.比如要存放100个点的坐标,坐标有3个属性相,那么属性数组的长度是300,如果想改变第30个点的Z坐标就将index设为30
	*/
	///<summary>setZ</summary>
	///<param name ="index" type="Number">属性数组的索引</param>
	///<param name ="z" type="Number">属性数组的第一个分量</param>
	///<returns type="BufferAttribute">返回新的BufferAttribute属性对象</returns>
	setZ: function ( index, z ) {

		this.array[ index * this.itemSize + 2 ] = z;

		return this;	//返回新的BufferAttribute属性对象

	},

	/*
	///setXY方法用来重新设置含有3个属性相的BufferAttribute属性数组的第一个和第二个分量
	/// NOTE:setXY方法中,属性数组的长度是属性相的长度乘以属性的个数.比如要存放100个点的坐标,坐标有3个属性相,那么属性数组的长度是300,如果想改变第30个点的x,y坐标就将index设为30
	*/
	///<summary>setXY</summary>
	///<param name ="index" type="Number">属性数组的索引</param>
	///<param name ="x" type="Number">属性数组的第一个分量</param>
	///<param name ="y" type="Number">属性数组的第二个分量</param>
	///<returns type="BufferAttribute">返回新的BufferAttribute属性对象</returns>
	setXY: function ( index, x, y ) {

		index *= this.itemSize;

		this.array[ index     ] = x;
		this.array[ index + 1 ] = y;

		return this;	//返回新的BufferAttribute属性对象

	},

	/*
	///setXYZ方法用来重新设置含有3个属性相的BufferAttribute属性数组的第一个,第二个和第三个分量
	/// NOTE:setXY方法中,属性数组的长度是属性相的长度乘以属性的个数.比如要存放100个点的坐标,坐标有3个属性相,那么属性数组的长度是300,如果想改变第30个点的x,y,z坐标就将index设为30
	*/
	///<summary>setXYZ</summary>
	///<param name ="index" type="Number">属性数组的索引</param>
	///<param name ="x" type="Number">属性数组的第一个分量</param>
	///<param name ="y" type="Number">属性数组的第二个分量</param>
	///<param name ="z" type="Number">属性数组的第三个分量</param>
	///<returns type="BufferAttribute">返回新的BufferAttribute属性对象</returns>
	setXYZ: function ( index, x, y, z ) {

		index *= this.itemSize;

		this.array[ index     ] = x;
		this.array[ index + 1 ] = y;
		this.array[ index + 2 ] = z;

		return this;	//返回新的BufferAttribute属性对象

	},

	/*
	///setXYZW方法用来重新设置含有3个属性相的BufferAttribute属性数组的第一个,第二个和第三个,第四个分量
	/// NOTE:setXYZW方法中,属性数组的长度是属性相的长度乘以属性的个数.比如要存放100个点的坐标,坐标有4个属性相,那么属性数组的长度是400,如果想改变第30个点的x,y,z,w坐标就将index设为30
	*/
	///<summary>setXYZW</summary>
	///<param name ="index" type="Number">属性数组的索引</param>
	///<param name ="x" type="Number">属性数组的第一个分量</param>
	///<param name ="y" type="Number">属性数组的第二个分量</param>
	///<param name ="z" type="Number">属性数组的第三个分量</param>
	///<param name ="w" type="Number">属性数组的第四个分量</param>
	///<returns type="BufferAttribute">返回新的BufferAttribute属性对象</returns>
	setXYZW: function ( index, x, y, z, w ) {

		index *= this.itemSize;

		this.array[ index     ] = x;
		this.array[ index + 1 ] = y;
		this.array[ index + 2 ] = z;
		this.array[ index + 3 ] = w;

		return this;	//返回新的BufferAttribute属性对象

	}

};

/**********************************************************************************
****下面这些方法是定义不同数据类型的属性,已经在新版本中删除,这里保留是为了向后兼容.
***********************************************************************************/
THREE.Int8Attribute = function ( data, itemSize ) {

	console.warn( 'THREE.Int8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

THREE.Uint8Attribute = function ( data, itemSize ) {

	console.warn( 'THREE.Uint8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

THREE.Uint8ClampedAttribute = function ( data, itemSize ) {

	console.warn( 'THREE.Uint8ClampedAttribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

THREE.Int16Attribute = function ( data, itemSize ) {

	console.warn( 'THREE.Int16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

THREE.Uint16Attribute = function ( data, itemSize ) {

	console.warn( 'THREE.Uint16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

THREE.Int32Attribute = function ( data, itemSize ) {

	console.warn( 'THREE.Int32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

THREE.Uint32Attribute = function ( data, itemSize ) {

	console.warn( 'THREE.Uint32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

THREE.Float32Attribute = function ( data, itemSize ) {

	console.warn( 'THREE.Float32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

THREE.Float64Attribute = function ( data, itemSize ) {

	console.warn( 'THREE.Float64Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
	return new THREE.BufferAttribute( data, itemSize );

};

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

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

以下代码是THREE.JS 源码文件中Core/BufferAttribute.js文件的注释.

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

时间: 2024-09-28 10:04:36

three.js 源码注释(二十六)Core/BufferAttribute.js的相关文章

three.js 源码注释(十六)Math/Frustum.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 俺也是刚开始学,好多地儿肯定不对还请见谅. 以下代码是THREE.JS 源码文件中Math/Frustum.js文件的注释. 更多更新在 : https://githu

three.js 源码注释(十)Math/Line3.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 俺也是刚开始学,好多地儿肯定不对还请见谅. 以下代码是THREE.JS 源码文件中Math/Line3.js文件的注释. 更多更新在 : https://github.

Vue.js 源码分析(二十六) 高级应用 作用域插槽 详解

普通的插槽里面的数据是在父组件里定义的,而作用域插槽里的数据是在子组件定义的. 有时候作用域插槽很有用,比如使用Element-ui表格自定义模板时就用到了作用域插槽,Element-ui定义了每个单元格数据的显示格式,我们可以通过作用域插槽自定义数据的显示格式,对于二次开发来说具有很强的扩展性. 作用域插槽使用<template>来定义模板,可以带两个参数,分别是: slot-scope    ;模板里的变量,旧版使用scope属性 slot              ;该作用域插槽的nam

three.js 源码注释(十二)Math/Box3.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 俺也是刚开始学,好多地儿肯定不对还请见谅. 以下代码是THREE.JS 源码文件中Math/Box3.js文件的注释. 更多更新在 : https://github.c

three.js 源码注释(十八)Math/Triangle.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 俺也是刚开始学,好多地儿肯定不对还请见谅. 以下代码是THREE.JS 源码文件中Math/Triangle.js文件的注释. 更多更新在 : https://gith

three.js 源码注释(十五)Math/Plane.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 俺也是刚开始学,好多地儿肯定不对还请见谅. 以下代码是THREE.JS 源码文件中Math/Plane.js文件的注释. 更多更新在 : https://github.

three.js 源码注释(十四)Math/Sphere.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 俺也是刚开始学,好多地儿肯定不对还请见谅. 以下代码是THREE.JS 源码文件中Math/Sphere.js文件的注释. 更多更新在 : https://github

three.js 源码注释(十一)Math/Box2.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 俺也是刚开始学,好多地儿肯定不对还请见谅. 以下代码是THREE.JS 源码文件中Math/Box2.js文件的注释. 更多更新在 : https://github.c

three.js 源码注释(九)Math/Matrix4.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 今天把math库中最大的对象Matrix4注释完了,发现之前好多的注释理解的不太正确,还有好多的注释因为马虎,好多小错误.能改的都在github上更新了,不过大概意思,

three.js 源码注释(八)Math/Matrix3.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 以下代码是THREE.JS 源码文件中Math/Matrix3.js文件的注释. 更多更新在 : https://github.com/omni360/three.js