Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
c5d707e8
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,发现更多精彩内容 >>
提交
c5d707e8
编写于
5月 10, 2014
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
09ba6f69
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
435 addition
and
296 deletion
+435
-296
build/three.js
build/three.js
+149
-12
build/three.min.js
build/three.min.js
+286
-284
未找到文件。
build/three.js
浏览文件 @
c5d707e8
...
...
@@ -7060,6 +7060,14 @@ THREE.EventDispatcher.prototype = {
this.near = near || 0;
this.far = far || Infinity;
this.params = {
Sprite: {},
Mesh: {},
PointCloud: { threshold: 1 },
LOD: {},
Line: {}
};
};
var sphere = new THREE.Sphere();
...
...
@@ -7105,30 +7113,157 @@ THREE.EventDispatcher.prototype = {
} else if ( object instanceof THREE.PointCloud ) {
var geometry = object.geometry;
var threshold = raycaster.params.PointCloud.threshold;
var vertices = object.geometry.vertices;
inverseMatrix.getInverse( object.matrixWorld );
localRay.copy( raycaster.ray ).applyMatrix4( inverseMatrix );
if ( geometry.boundingBox !== null ) {
if ( localRay.isIntersectionBox( geometry.boundingBox ) === false ) {
return intersects;
}
}
var localThreshold = threshold / ( ( object.scale.x + object.scale.y + object.scale.z ) / 3 );
var pos = new THREE.Vector3();
for ( var i = 0; i < vertices.length; i ++ ) {
if ( geometry instanceof THREE.BufferGeometry ) {
var attributes = geometry.attributes;
var positions = attributes.position.array;
if ( attributes.index !== undefined ) {
var indices = attributes.index.array;
var offsets = geometry.offsets;
if ( offsets.length === 0 ) {
var v = vertices[ i ];
var offset = {
start: 0,
count: indices.length,
index: 0
};
offsets = [ offset ];
matrixPosition.copy( v ).applyMatrix4( object.matrixWorld );
}
for ( var oi = 0, ol = offsets.length; oi < ol; ++oi ) {
var distance = raycaster.ray.distanceToPoint( matrixPosition );
var start = offsets[ oi ].start;
var count = offsets[ oi ].count;
var index = offsets[ oi ].index;
if ( distance < 1 ) { // needs a better test; particle size?
for ( var i = start, il = start + count; i < il; i++ ) {
var a = index + indices[ i ];
pos.set(
positions[ a * 3 ],
positions[ a * 3 + 1 ],
positions[ a * 3 + 2 ]
);
var rayPointDistance = localRay.distanceToPoint( pos );
intersects.push( {
if ( rayPointDistance < localThreshold ) {
var intersectPoint = localRay.closestPointToPoint( pos );
intersectPoint.applyMatrix4( object.matrixWorld );
var distance = raycaster.ray.origin.distanceTo( intersectPoint );
intersects.push( {
distance: distance,
distanceToRay: rayPointDistance,
point: intersectPoint.clone(),
index: a,
face: null,
object: object
} );
}
}
}
}else{
var pointCount = positions.length / 3;
distance: distance,
index: i,
face: null,
object: object
for (var i = 0; i < pointCount; i++ ) {
pos.set(
positions[ 3 * i ],
positions[ 3 * i + 1 ],
positions[ 3 * i + 2 ]
);
}
);
var rayPointDistance = localRay.distanceToPoint( pos
);
if ( rayPointDistance < localThreshold ) {
var intersectPoint = localRay.closestPointToPoint( pos );
intersectPoint.applyMatrix4( object.matrixWorld );
var distance = raycaster.ray.origin.distanceTo( intersectPoint );
intersects.push( {
distance: distance,
distanceToRay: rayPointDistance,
point: intersectPoint,
index: i,
face: null,
object: object
} );
}
}
}
} else {
var vertices = object.geometry.vertices;
for ( var i = 0; i < vertices.length; i ++ ) {
pos = vertices[ i ];
var rayPointDistance = localRay.distanceToPoint( pos );
if ( rayPointDistance < localThreshold ) {
var intersectPoint = localRay.closestPointToPoint( pos );
intersectPoint.applyMatrix4( object.matrixWorld );
var distance = raycaster.ray.origin.distanceTo( intersectPoint );
intersects.push( {
distance: distance,
distanceToRay: rayPointDistance,
point: intersectPoint.clone(),
index: i,
face: null,
object: object
} );
}
}
}
} else if ( object instanceof THREE.LOD ) {
...
...
@@ -35824,6 +35959,8 @@ THREE.LensFlarePlugin = function () {
flare = flares[ i ];
if ( flare.visible === false ) continue;
tempPosition.set( flare.matrixWorld.elements[12], flare.matrixWorld.elements[13], flare.matrixWorld.elements[14] );
tempPosition.applyMatrix4( camera.matrixWorldInverse );
...
...
build/three.min.js
浏览文件 @
c5d707e8
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录