Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
f220ce1d
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,发现更多精彩内容 >>
提交
f220ce1d
编写于
10月 25, 2015
作者:
M
Mugen87
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add plane/box and plane/sphere intersection test
上级
8d0dbb4a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
73 addition
and
0 deletion
+73
-0
src/math/Box3.js
src/math/Box3.js
+47
-0
src/math/Plane.js
src/math/Plane.js
+12
-0
src/math/Sphere.js
src/math/Sphere.js
+14
-0
未找到文件。
src/math/Box3.js
浏览文件 @
f220ce1d
...
...
@@ -281,6 +281,53 @@ THREE.Box3.prototype = {
},
intersectsPlane
:
function
(
plane
)
{
// We compute the minimum and maximum dot product values. If those values
// are on the same side (back or front) of the plane, then there is no intersection.
var
min
,
max
;
if
(
plane
.
normal
.
x
>
0
)
{
min
=
plane
.
normal
.
x
*
this
.
min
.
x
;
max
=
plane
.
normal
.
x
*
this
.
max
.
x
;
}
else
{
min
=
plane
.
normal
.
x
*
this
.
max
.
x
;
max
=
plane
.
normal
.
x
*
this
.
min
.
x
;
}
if
(
plane
.
normal
.
y
>
0
)
{
min
+=
plane
.
normal
.
y
*
this
.
min
.
y
;
max
+=
plane
.
normal
.
y
*
this
.
max
.
y
;
}
else
{
min
+=
plane
.
normal
.
y
*
this
.
max
.
y
;
max
+=
plane
.
normal
.
y
*
this
.
min
.
y
;
}
if
(
plane
.
normal
.
z
>
0
)
{
min
+=
plane
.
normal
.
z
*
this
.
min
.
z
;
max
+=
plane
.
normal
.
z
*
this
.
max
.
z
;
}
else
{
min
+=
plane
.
normal
.
z
*
this
.
max
.
z
;
max
+=
plane
.
normal
.
z
*
this
.
min
.
z
;
}
return
(
min
<=
plane
.
constant
&&
max
>=
plane
.
constant
);
},
clampPoint
:
function
(
point
,
optionalTarget
)
{
var
result
=
optionalTarget
||
new
THREE
.
Vector3
();
...
...
src/math/Plane.js
浏览文件 @
f220ce1d
...
...
@@ -181,6 +181,18 @@ THREE.Plane.prototype = {
},
intersectsBox
:
function
(
box
)
{
return
box
.
intersectsPlane
(
this
);
},
intersectsSphere
:
function
(
sphere
)
{
return
sphere
.
intersectsPlane
(
this
);
},
coplanarPoint
:
function
(
optionalTarget
)
{
var
result
=
optionalTarget
||
new
THREE
.
Vector3
();
...
...
src/math/Sphere.js
浏览文件 @
f220ce1d
...
...
@@ -104,6 +104,20 @@ THREE.Sphere.prototype = {
},
intersectsPlane
:
function
(
plane
)
{
// We use the following equation to compute the signed distance from
// the center of the sphere to the plane.
//
// distance = q * n - d
//
// If this distance is greater than the radius of the sphere,
// then there is no intersection.
return
(
(
this
.
center
.
dot
(
plane
.
normal
)
-
plane
.
constant
)
<=
this
.
radius
);
},
clampPoint
:
function
(
point
,
optionalTarget
)
{
var
deltaLengthSq
=
this
.
center
.
distanceToSquared
(
point
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录