Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
5479fb39
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,发现更多精彩内容 >>
提交
5479fb39
编写于
8月 19, 2012
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
More Ray clean up.
上级
b17defa8
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
51 addition
and
55 deletion
+51
-55
build/three.js
build/three.js
+17
-19
build/three.min.js
build/three.min.js
+17
-17
src/core/Projector.js
src/core/Projector.js
+1
-1
src/core/Ray.js
src/core/Ray.js
+16
-18
未找到文件。
build/three.js
浏览文件 @
5479fb39
...
...
@@ -2695,7 +2695,8 @@ THREE.Frustum.__v1 = new THREE.Vector3();
/**
* @author mrdoob / http://mrdoob.com/
*/
(function(THREE){
( function ( THREE ) {
THREE.Ray = function ( origin, direction, near, far ) {
...
...
@@ -2784,7 +2785,7 @@ THREE.Frustum.__v1 = new THREE.Vector3();
if ( distance > object.scale.x ) {
return
[]
;
return
intersects
;
}
...
...
@@ -2803,14 +2804,13 @@ THREE.Frustum.__v1 = new THREE.Vector3();
// Checking boundingSphere
//var scale = THREE.Frustum.__v1.set( object.matrixWorld.getColumnX().length(), object.matrixWorld.getColumnY().length(), object.matrixWorld.getColumnZ().length() );
var scaledRadius = object.geometry.boundingSphere.radius * object.matrixWorld.getMaxScaleOnAxis();
// Checking distance to ray
distance = distanceFromIntersection( this.origin, this.direction, object.matrixWorld.getPosition() );
if ( distance > scaledRadius) {
if ( distance > scaledRadius
) {
return intersects;
...
...
@@ -2836,13 +2836,13 @@ THREE.Frustum.__v1 = new THREE.Vector3();
//directionCopy.copy( this.direction );
objMatrix = object.matrixWorld;
inverseMatrix.getInverse(
objMatrix
);
inverseMatrix.getInverse(
objMatrix
);
localOriginCopy.copy(
originCopy
);
inverseMatrix.multiplyVector3(
localOriginCopy
);
localOriginCopy.copy(
originCopy
);
inverseMatrix.multiplyVector3(
localOriginCopy
);
localDirectionCopy.copy(
this.direction
);
inverseMatrix.rotateAxis(
localDirectionCopy
).normalize();
localDirectionCopy.copy(
this.direction
);
inverseMatrix.rotateAxis(
localDirectionCopy
).normalize();
for ( f = 0, fl = geometry.faces.length; f < fl; f ++ ) {
...
...
@@ -2880,11 +2880,10 @@ THREE.Frustum.__v1 = new THREE.Vector3();
if ( pointInFace3( intersectPoint, a, b, c ) ) {
point = object.matrixWorld.multiplyVector3(
intersectPoint.clone());
distance = originCopy.distanceTo( point);
point = object.matrixWorld.multiplyVector3(
intersectPoint.clone() );
distance = originCopy.distanceTo( point
);
if ( distance < this.near ) continue;
if ( distance > this.far ) continue;
if ( distance < this.near || distance > this.far ) continue;
intersect = {
...
...
@@ -2909,11 +2908,10 @@ THREE.Frustum.__v1 = new THREE.Vector3();
if ( pointInFace3( intersectPoint, a, b, d ) || pointInFace3( intersectPoint, b, c, d ) ) {
point = object.matrixWorld.multiplyVector3(
intersectPoint.clone());
distance = originCopy.distanceTo( point);
point = object.matrixWorld.multiplyVector3(
intersectPoint.clone() );
distance = originCopy.distanceTo( point
);
if ( distance < this.near ) continue;
if ( distance > this.far ) continue;
if ( distance < this.near || distance > this.far ) continue;
intersect = {
...
...
@@ -2959,7 +2957,7 @@ THREE.Frustum.__v1 = new THREE.Vector3();
};
}(
THREE)
);
}(
THREE )
);
/**
* @author mrdoob / http://mrdoob.com/
*/
...
...
@@ -3606,7 +3604,7 @@ THREE.Projector = function() {
};
function projectGraph
( root, sort ) {
var projectGraph = function
( root, sort ) {
_objectCount = 0;
...
...
build/three.min.js
浏览文件 @
5479fb39
此差异已折叠。
点击以展开。
src/core/Projector.js
浏览文件 @
5479fb39
...
...
@@ -68,7 +68,7 @@ THREE.Projector = function() {
};
function
projectGraph
(
root
,
sort
)
{
var
projectGraph
=
function
(
root
,
sort
)
{
_objectCount
=
0
;
...
...
src/core/Ray.js
浏览文件 @
5479fb39
/**
* @author mrdoob / http://mrdoob.com/
*/
(
function
(
THREE
){
(
function
(
THREE
)
{
THREE
.
Ray
=
function
(
origin
,
direction
,
near
,
far
)
{
...
...
@@ -90,7 +91,7 @@
if
(
distance
>
object
.
scale
.
x
)
{
return
[]
;
return
intersects
;
}
...
...
@@ -109,14 +110,13 @@
// Checking boundingSphere
//var scale = THREE.Frustum.__v1.set( object.matrixWorld.getColumnX().length(), object.matrixWorld.getColumnY().length(), object.matrixWorld.getColumnZ().length() );
var
scaledRadius
=
object
.
geometry
.
boundingSphere
.
radius
*
object
.
matrixWorld
.
getMaxScaleOnAxis
();
// Checking distance to ray
distance
=
distanceFromIntersection
(
this
.
origin
,
this
.
direction
,
object
.
matrixWorld
.
getPosition
()
);
if
(
distance
>
scaledRadius
)
{
if
(
distance
>
scaledRadius
)
{
return
intersects
;
...
...
@@ -142,13 +142,13 @@
//directionCopy.copy( this.direction );
objMatrix
=
object
.
matrixWorld
;
inverseMatrix
.
getInverse
(
objMatrix
);
inverseMatrix
.
getInverse
(
objMatrix
);
localOriginCopy
.
copy
(
originCopy
);
inverseMatrix
.
multiplyVector3
(
localOriginCopy
);
localOriginCopy
.
copy
(
originCopy
);
inverseMatrix
.
multiplyVector3
(
localOriginCopy
);
localDirectionCopy
.
copy
(
this
.
direction
);
inverseMatrix
.
rotateAxis
(
localDirectionCopy
).
normalize
();
localDirectionCopy
.
copy
(
this
.
direction
);
inverseMatrix
.
rotateAxis
(
localDirectionCopy
).
normalize
();
for
(
f
=
0
,
fl
=
geometry
.
faces
.
length
;
f
<
fl
;
f
++
)
{
...
...
@@ -186,11 +186,10 @@
if
(
pointInFace3
(
intersectPoint
,
a
,
b
,
c
)
)
{
point
=
object
.
matrixWorld
.
multiplyVector3
(
intersectPoint
.
clone
());
distance
=
originCopy
.
distanceTo
(
point
);
point
=
object
.
matrixWorld
.
multiplyVector3
(
intersectPoint
.
clone
()
);
distance
=
originCopy
.
distanceTo
(
point
);
if
(
distance
<
this
.
near
)
continue
;
if
(
distance
>
this
.
far
)
continue
;
if
(
distance
<
this
.
near
||
distance
>
this
.
far
)
continue
;
intersect
=
{
...
...
@@ -215,11 +214,10 @@
if
(
pointInFace3
(
intersectPoint
,
a
,
b
,
d
)
||
pointInFace3
(
intersectPoint
,
b
,
c
,
d
)
)
{
point
=
object
.
matrixWorld
.
multiplyVector3
(
intersectPoint
.
clone
());
distance
=
originCopy
.
distanceTo
(
point
);
point
=
object
.
matrixWorld
.
multiplyVector3
(
intersectPoint
.
clone
()
);
distance
=
originCopy
.
distanceTo
(
point
);
if
(
distance
<
this
.
near
)
continue
;
if
(
distance
>
this
.
far
)
continue
;
if
(
distance
<
this
.
near
||
distance
>
this
.
far
)
continue
;
intersect
=
{
...
...
@@ -265,4 +263,4 @@
};
}(
THREE
)
);
}(
THREE
)
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录