Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
8821698a
T
three.js
项目概览
车家大少爷
/
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,发现更多精彩内容 >>
提交
8821698a
编写于
11月 30, 2012
作者:
B
Ben Houston
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Improvements as a result of code review by @chandlerp
上级
38563ecb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
40 addition
and
28 deletion
+40
-28
src/core/Box3.js
src/core/Box3.js
+14
-11
src/core/Plane.js
src/core/Plane.js
+11
-7
src/core/Sphere.js
src/core/Sphere.js
+15
-10
未找到文件。
src/core/Box3.js
浏览文件 @
8821698a
...
...
@@ -7,7 +7,7 @@
THREE
.
Box3
=
function
(
min
,
max
)
{
this
.
min
=
min
||
new
THREE
.
Vector3
();
this
.
max
=
max
||
new
THREE
.
Vector3
();
this
.
max
=
max
||
this
.
min
;
// This is done on purpose so you can make a box using a single point and then expand it.
};
...
...
@@ -19,6 +19,15 @@
return
this
;
};
THREE
.
Box3
.
prototype
.
copy
=
function
(
box
)
{
this
.
min
=
box
.
min
;
this
.
max
=
box
.
max
;
return
this
;
};
THREE
.
Box3
.
prototype
.
empty
=
function
()
{
// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes
return
...
...
@@ -35,13 +44,11 @@
};
THREE
.
Box3
.
prototype
.
center
=
function
()
{
var
c
=
new
THREE
.
Vector3
();
return
c
.
add
(
this
.
min
,
this
.
max
).
multiplyScalar
(
0.5
);
return
new
THREE
.
Vector3
().
add
(
this
.
min
,
this
.
max
).
multiplyScalar
(
0.5
);
};
THREE
.
Box3
.
prototype
.
size
=
function
()
{
var
s
=
new
THREE
.
Vector3
();
return
s
.
sub
(
this
.
max
,
this
.
min
);
return
new
THREE
.
Vector3
().
sub
(
this
.
max
,
this
.
min
);
};
THREE
.
Box3
.
prototype
.
extendByPoint
=
function
(
point
)
{
...
...
@@ -74,12 +81,8 @@
};
THREE
.
Box3
.
prototype
.
expandByScalar
=
function
(
scalar
)
{
this
.
min
.
x
-=
scalar
;
this
.
min
.
y
-=
scalar
;
this
.
min
.
z
-=
scalar
;
this
.
max
.
x
+=
scalar
;
this
.
max
.
y
+=
scalar
;
this
.
max
.
z
+=
scalar
;
this
.
min
.
addScalar
(
-
scalar
);
this
.
max
.
addScalar
(
scalar
);
return
this
;
};
...
...
src/core/Plane.js
浏览文件 @
8821698a
...
...
@@ -31,6 +31,14 @@
return
this
;
};
THREE
.
Plane
.
prototype
.
copy
=
function
(
plane
)
{
this
.
normal
=
plane
.
normal
;
this
.
constant
=
plane
.
constant
;
return
this
;
};
THREE
.
Plane
.
prototype
.
flip
=
function
()
{
// Note: can also be flipped by inverting constant, but I like constant to stay positive generally.
...
...
@@ -58,7 +66,7 @@
var
perpendicularMagnitude
=
this
.
distanceToPoint
(
point
);
return
new
THREE
.
Vector3
(
return
new
THREE
.
Vector3
(
point
.
x
-
this
.
normal
.
x
*
perpendicularMagnitude
,
point
.
y
-
this
.
normal
.
y
*
perpendicularMagnitude
,
point
.
z
-
this
.
normal
.
z
*
perpendicularMagnitude
...
...
@@ -69,11 +77,7 @@
var
perpendicularMagnitude
=
this
.
distanceToPoint
(
point
);
return
new
THREE
.
Vector3
(
this
.
normal
.
x
*
perpendicularMagnitude
,
this
.
normal
.
y
*
perpendicularMagnitude
,
this
.
normal
.
z
*
perpendicularMagnitude
);
return
new
THREE
.
Vector3
().
copy
(
this
.
normal
).
multipleByScalar
(
perpendicularMagnitude
);
};
THREE
.
Plane
.
prototype
.
intersectsLine
=
function
(
startPoint
,
endPoint
)
{
...
...
@@ -87,7 +91,7 @@
THREE
.
Plane
.
prototype
.
coplanarPoint
=
function
()
{
return
this
.
projectPoint
(
new
THREE
.
Vector3
(
0
,
0
,
0
)
);
return
this
.
projectPoint
(
new
THREE
.
Vector3
(
0
,
0
,
0
)
);
};
}(
THREE
)
);
src/core/Sphere.js
浏览文件 @
8821698a
...
...
@@ -19,6 +19,15 @@
return
this
;
};
THREE
.
Sphere
.
prototype
.
copy
=
function
(
sphere
)
{
this
.
center
=
sphere
.
center
;
this
.
radius
=
sphere
.
radius
;
return
this
;
};
THREE
.
Sphere
.
prototype
.
empty
=
function
()
{
return
(
this
.
radius
<=
0
);
...
...
@@ -28,33 +37,29 @@
THREE
.
Sphere
.
prototype
.
volume
=
function
()
{
// NOTE: would love to replace r*r*r with a helper cube(r), but may be much slower
return
Math
.
PI
*
4
/
3
*
this
.
radius
*
this
.
radius
*
this
.
radius
;
};
THREE
.
Sphere
.
prototype
.
containsPoint
=
function
(
point
)
{
var
delta
=
new
THREE
.
VEctor3
();
var
distanceSq
=
delta
.
sub
(
point
,
this
.
center
).
lengthSq
();
var
distanceSq
=
new
THREE
.
VEctor3
().
sub
(
point
,
this
.
center
).
lengthSq
();
return
(
distanceSq
<=
this
.
radius
*
this
.
radius
);
};
THREE
.
Sphere
.
prototype
.
distanceToPoint
=
function
(
point
)
{
var
delta
=
new
THREE
.
VEctor3
();
var
distanceSq
=
delta
.
sub
(
point
,
this
.
center
).
length
();
var
distanceSq
=
new
THREE
.
Vector3
().
sub
(
point
,
this
.
center
).
length
();
return
(
distanceSq
-
this
.
radius
);
return
(
distanceSq
-
this
.
radius
);
};
THREE
.
Sphere
.
prototype
.
clampPoint
=
function
(
point
)
{
// NOTE: There is likely a more optimal way of doing this.
var
delta
=
new
THREE
.
VEctor3
();
delta
.
sub
(
point
,
this
.
center
);
var
delta
=
new
THREE
.
Vector3
().
sub
(
point
,
this
.
center
);
var
deltaLengthSq
=
delta
.
lengthSq
();
...
...
@@ -70,7 +75,7 @@
THREE
.
Sphere
.
prototype
.
bounds
=
function
()
{
var
box
=
new
THREE
.
Box3
(
this
.
center
);
var
box
=
new
THREE
.
Box3
(
this
.
center
,
this
.
center
);
box
.
expandByScalar
(
this
.
radius
);
return
box
;
...
...
@@ -78,7 +83,7 @@
THREE
.
Sphere
.
prototype
.
translate
=
function
(
offset
)
{
this
.
center
.
add
(
this
.
center
,
this
.
offset
);
this
.
center
.
add
Self
(
this
.
offset
);
return
this
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录