Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
39c1977c
T
three.js
项目概览
Ablesons
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
39c1977c
编写于
5月 25, 2013
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
7fd0b505
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
242 addition
and
47 deletion
+242
-47
build/three.js
build/three.js
+201
-9
build/three.min.js
build/three.min.js
+41
-38
未找到文件。
build/three.js
浏览文件 @
39c1977c
...
...
@@ -6441,6 +6441,8 @@ THREE.Object3D = function () {
this.frustumCulled = true;
this.boundingBox = null;
this.userData = {};
};
...
...
@@ -6842,6 +6844,53 @@ THREE.Object3D.prototype = {
},
computeBoundingBox: function() {
// computes the world-axis-aligned bounding box of object (including its children),
// accounting for both the object's and childrens' world transforms
var v1 = new THREE.Vector3();
return function() {
if ( this.boundingBox === null ) {
this.boundingBox = new THREE.Box3();
}
this.boundingBox.makeEmpty();
var scope = this.boundingBox;
this.updateMatrixWorld( true );
this.traverse( function ( node ) {
if ( node.geometry !== undefined && node.geometry.vertices !== undefined ) {
var vertices = node.geometry.vertices;
for ( var i = 0, il = vertices.length; i < il; i++ ) {
v1.copy( vertices[ i ] );
v1.applyMatrix4( node.matrixWorld );
scope.expandByPoint( v1 );
}
}
} );
return this.boundingBox;
};
}(),
clone: function ( object, recursive ) {
if ( object === undefined ) object = new THREE.Object3D();
...
...
@@ -6876,10 +6925,16 @@ THREE.Object3D.prototype = {
object.frustumCulled = this.frustumCulled;
if ( this.boundingBox instanceof THREE.Box3 ) {
object.boundingBox = this.boundingBox.clone();
}
object.userData = JSON.parse( JSON.stringify( this.userData ) );
if ( recursive ) {
if ( recursive
=== true
) {
for ( var i = 0; i < this.children.length; i ++ ) {
var child = this.children[ i ];
...
...
@@ -34258,6 +34313,36 @@ THREE.BoxHelper.prototype.update = function ( object ) {
};
/**
* @author WestLangley / http://github.com/WestLangley
*/
// a helper to show the world-axis-aligned bounding box for an object
THREE.BoundingBoxHelper = function ( object, hex ) {
var color = hex || 0x888888;
this.object = object;
this.box = new THREE.Box3();
THREE.Mesh.call( this, new THREE.CubeGeometry( 1, 1, 1 ), new THREE.MeshBasicMaterial( { color: color, wireframe: true } ) );
};
THREE.BoundingBoxHelper.prototype = Object.create( THREE.Mesh.prototype );
THREE.BoundingBoxHelper.prototype.update = function () {
this.object.computeBoundingBox();
this.object.boundingBox.size( this.scale );
this.object.boundingBox.center( this.position );
};
/**
* @author alteredq / http://alteredqualia.com/
*
...
...
@@ -34505,13 +34590,15 @@ THREE.DirectionalLightHelper.prototype.update = function () {
* @author WestLangley / http://github.com/WestLangley
*/
THREE.FaceNormalsHelper = function ( object, size, hex ) {
THREE.FaceNormalsHelper = function ( object, size, hex
, linewidth
) {
this.object = object;
this.size = size || 1;
var color = hex || 0x0000ff;
var color = hex || 0xffff00;
var width = linewidth || 1;
var geometry = new THREE.Geometry();
...
...
@@ -34524,7 +34611,7 @@ THREE.FaceNormalsHelper = function ( object, size, hex ) {
}
THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color } ), THREE.LinePieces );
THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color
, linewidth: width
} ), THREE.LinePieces );
this.matrixAutoUpdate = false;
...
...
@@ -34550,6 +34637,8 @@ THREE.FaceNormalsHelper.prototype.update = ( function ( object ) {
var faces = this.object.geometry.faces;
var worldMatrix = this.object.matrixWorld;
for ( var i = 0, l = faces.length; i < l; i ++ ) {
var face = faces[ i ];
...
...
@@ -34558,7 +34647,7 @@ THREE.FaceNormalsHelper.prototype.update = ( function ( object ) {
var idx = 2 * i;
vertices[ idx ].copy( face.centroid ).applyMatrix4(
this.object.matrixWorld
);
vertices[ idx ].copy( face.centroid ).applyMatrix4(
worldMatrix
);
vertices[ idx + 1 ].addVectors( vertices[ idx ], v1 );
...
...
@@ -34780,7 +34869,7 @@ THREE.SpotLightHelper.prototype.update = ( function () {
* @author WestLangley / http://github.com/WestLangley
*/
THREE.VertexNormalsHelper = function ( object, size, hex ) {
THREE.VertexNormalsHelper = function ( object, size, hex
, linewidth
) {
this.object = object;
...
...
@@ -34788,9 +34877,12 @@ THREE.VertexNormalsHelper = function ( object, size, hex ) {
var color = hex || 0xff0000;
var width = linewidth || 1;
var geometry = new THREE.Geometry();
var vertices = object.geometry.vertices;
var faces = object.geometry.faces;
for ( var i = 0, l = faces.length; i < l; i ++ ) {
...
...
@@ -34806,7 +34898,7 @@ THREE.VertexNormalsHelper = function ( object, size, hex ) {
}
THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color } ), THREE.LinePieces );
THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color
, linewidth: width
} ), THREE.LinePieces );
this.matrixAutoUpdate = false;
...
...
@@ -34833,8 +34925,11 @@ THREE.VertexNormalsHelper.prototype.update = ( function ( object ) {
var vertices = this.geometry.vertices;
var verts = this.object.geometry.vertices;
var faces = this.object.geometry.faces;
var worldMatrix = this.object.matrixWorld;
var idx = 0;
for ( var i = 0, l = faces.length; i < l; i ++ ) {
...
...
@@ -34848,7 +34943,7 @@ THREE.VertexNormalsHelper.prototype.update = ( function ( object ) {
var normal = face.vertexNormals[ j ];
vertices[ idx ].copy( vertex ).applyMatrix4(
this.object.matrixWorld
);
vertices[ idx ].copy( vertex ).applyMatrix4(
worldMatrix
);
v1.copy( normal ).applyMatrix3( this.normalMatrix ).normalize().multiplyScalar( this.size );
...
...
@@ -34870,6 +34965,103 @@ THREE.VertexNormalsHelper.prototype.update = ( function ( object ) {
}());
/**
* @author mrdoob / http://mrdoob.com/
* @author WestLangley / http://github.com/WestLangley
*/
THREE.VertexTangentsHelper = function ( object, size, hex, linewidth ) {
this.object = object;
this.size = size || 1;
var color = hex || 0x0000ff;
var width = linewidth || 1;
var geometry = new THREE.Geometry();
var vertices = object.geometry.vertices;
var faces = object.geometry.faces;
for ( var i = 0, l = faces.length; i < l; i ++ ) {
var face = faces[ i ];
for ( var j = 0, jl = face.vertexTangents.length; j < jl; j ++ ) {
geometry.vertices.push( new THREE.Vector3() );
geometry.vertices.push( new THREE.Vector3() );
}
}
THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color, linewidth: width } ), THREE.LinePieces );
this.matrixAutoUpdate = false;
this.update();
};
THREE.VertexTangentsHelper.prototype = Object.create( THREE.Line.prototype );
THREE.VertexTangentsHelper.prototype.update = ( function ( object ) {
var v1 = new THREE.Vector3();
return function( object ) {
var keys = [ 'a', 'b', 'c', 'd' ];
this.object.updateMatrixWorld( true );
var vertices = this.geometry.vertices;
var verts = this.object.geometry.vertices;
var faces = this.object.geometry.faces;
var worldMatrix = this.object.matrixWorld;
var idx = 0;
for ( var i = 0, l = faces.length; i < l; i ++ ) {
var face = faces[ i ];
for ( var j = 0, jl = face.vertexTangents.length; j < jl; j ++ ) {
var vertexId = face[ keys[ j ] ];
var vertex = verts[ vertexId ];
var tangent = face.vertexTangents[ j ];
vertices[ idx ].copy( vertex ).applyMatrix4( worldMatrix );
v1.copy( tangent ).transformDirection( worldMatrix ).multiplyScalar( this.size );
v1.add( vertices[ idx ] );
idx = idx + 1;
vertices[ idx ].copy( v1 );
idx = idx + 1;
}
}
this.geometry.verticesNeedUpdate = true;
return this;
}
}());
/**
* @author mrdoob / http://mrdoob.com/
*/
...
...
build/three.min.js
浏览文件 @
39c1977c
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录