Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
4b0ff5df
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,发现更多精彩内容 >>
提交
4b0ff5df
编写于
12月 26, 2013
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
e5b64af0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
14 deletion
+15
-14
build/three.js
build/three.js
+10
-10
build/three.min.js
build/three.min.js
+5
-4
未找到文件。
build/three.js
浏览文件 @
4b0ff5df
...
...
@@ -34198,7 +34198,7 @@ THREE.BoxHelper.prototype.update = function ( object ) {
THREE.BoundingBoxHelper = function ( object, hex ) {
var color =
hex ||
0x888888;
var color =
( hex !== undefined ) ? hex :
0x888888;
this.object = object;
...
...
@@ -34572,11 +34572,11 @@ THREE.FaceNormalsHelper = function ( object, size, hex, linewidth ) {
this.object = object;
this.size =
size ||
1;
this.size =
( size !== undefined ) ? size :
1;
var color =
hex ||
0xffff00;
var color =
( hex !== undefined ) ? hex :
0xffff00;
var width =
linewidth ||
1;
var width =
( linewidth !== undefined ) ? linewidth :
1;
var geometry = new THREE.Geometry();
...
...
@@ -34881,11 +34881,11 @@ THREE.VertexNormalsHelper = function ( object, size, hex, linewidth ) {
this.object = object;
this.size =
size ||
1;
this.size =
( size !== undefined ) ? size :
1;
var color =
hex ||
0xff0000;
var color =
( hex !== undefined ) ? hex :
0xff0000;
var width =
linewidth ||
1;
var width =
( linewidth !== undefined ) ? linewidth :
1;
var geometry = new THREE.Geometry();
...
...
@@ -34982,11 +34982,11 @@ THREE.VertexTangentsHelper = function ( object, size, hex, linewidth ) {
this.object = object;
this.size =
size ||
1;
this.size =
( size !== undefined ) ? size :
1;
var color =
hex ||
0x0000ff;
var color =
( hex !== undefined ) ? hex :
0x0000ff;
var width =
linewidth ||
1;
var width =
( linewidth !== undefined ) ? linewidth :
1;
var geometry = new THREE.Geometry();
...
...
build/three.min.js
浏览文件 @
4b0ff5df
...
...
@@ -640,23 +640,24 @@ THREE.AxisHelper.prototype=Object.create(THREE.Line.prototype);THREE.ArrowHelper
new
THREE
.
Mesh
(
b
,
new
THREE
.
MeshBasicMaterial
({
color
:
d
}));
this
.
cone
.
matrixAutoUpdate
=!
1
;
this
.
add
(
this
.
cone
);
this
.
setDirection
(
a
);
this
.
setLength
(
c
,
e
,
f
)};
THREE
.
ArrowHelper
.
prototype
=
Object
.
create
(
THREE
.
Object3D
.
prototype
);
THREE
.
ArrowHelper
.
prototype
.
setDirection
=
function
(){
var
a
=
new
THREE
.
Vector3
,
b
;
return
function
(
c
){
0.99999
<
c
.
y
?
this
.
quaternion
.
set
(
0
,
0
,
0
,
1
):
-
0.99999
>
c
.
y
?
this
.
quaternion
.
set
(
1
,
0
,
0
,
0
):(
a
.
set
(
c
.
z
,
0
,
-
c
.
x
).
normalize
(),
b
=
Math
.
acos
(
c
.
y
),
this
.
quaternion
.
setFromAxisAngle
(
a
,
b
))}}();
THREE
.
ArrowHelper
.
prototype
.
setLength
=
function
(
a
,
b
,
c
){
void
0
===
b
&&
(
b
=
0.2
*
a
);
void
0
===
c
&&
(
c
=
0.2
*
b
);
this
.
line
.
scale
.
set
(
1
,
a
,
1
);
this
.
line
.
updateMatrix
();
this
.
cone
.
scale
.
set
(
c
,
b
,
c
);
this
.
cone
.
position
.
y
=
a
;
this
.
cone
.
updateMatrix
()};
THREE
.
ArrowHelper
.
prototype
.
setColor
=
function
(
a
){
this
.
line
.
material
.
color
.
setHex
(
a
);
this
.
cone
.
material
.
color
.
setHex
(
a
)};
THREE
.
BoxHelper
=
function
(
a
){
var
b
=
[
new
THREE
.
Vector3
(
1
,
1
,
1
),
new
THREE
.
Vector3
(
-
1
,
1
,
1
),
new
THREE
.
Vector3
(
-
1
,
-
1
,
1
),
new
THREE
.
Vector3
(
1
,
-
1
,
1
),
new
THREE
.
Vector3
(
1
,
1
,
-
1
),
new
THREE
.
Vector3
(
-
1
,
1
,
-
1
),
new
THREE
.
Vector3
(
-
1
,
-
1
,
-
1
),
new
THREE
.
Vector3
(
1
,
-
1
,
-
1
)];
this
.
vertices
=
b
;
var
c
=
new
THREE
.
Geometry
;
c
.
vertices
.
push
(
b
[
0
],
b
[
1
],
b
[
1
],
b
[
2
],
b
[
2
],
b
[
3
],
b
[
3
],
b
[
0
],
b
[
4
],
b
[
5
],
b
[
5
],
b
[
6
],
b
[
6
],
b
[
7
],
b
[
7
],
b
[
4
],
b
[
0
],
b
[
4
],
b
[
1
],
b
[
5
],
b
[
2
],
b
[
6
],
b
[
3
],
b
[
7
]);
THREE
.
Line
.
call
(
this
,
c
,
new
THREE
.
LineBasicMaterial
({
color
:
16776960
}),
THREE
.
LinePieces
);
void
0
!==
a
&&
this
.
update
(
a
)};
THREE
.
BoxHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
BoxHelper
.
prototype
.
update
=
function
(
a
){
var
b
=
a
.
geometry
;
null
===
b
.
boundingBox
&&
b
.
computeBoundingBox
();
var
c
=
b
.
boundingBox
.
min
,
b
=
b
.
boundingBox
.
max
,
d
=
this
.
vertices
;
d
[
0
].
set
(
b
.
x
,
b
.
y
,
b
.
z
);
d
[
1
].
set
(
c
.
x
,
b
.
y
,
b
.
z
);
d
[
2
].
set
(
c
.
x
,
c
.
y
,
b
.
z
);
d
[
3
].
set
(
b
.
x
,
c
.
y
,
b
.
z
);
d
[
4
].
set
(
b
.
x
,
b
.
y
,
c
.
z
);
d
[
5
].
set
(
c
.
x
,
b
.
y
,
c
.
z
);
d
[
6
].
set
(
c
.
x
,
c
.
y
,
c
.
z
);
d
[
7
].
set
(
b
.
x
,
c
.
y
,
c
.
z
);
this
.
geometry
.
computeBoundingSphere
();
this
.
geometry
.
verticesNeedUpdate
=!
0
;
this
.
matrixAutoUpdate
=!
1
;
this
.
matrixWorld
=
a
.
matrixWorld
};
THREE
.
BoundingBoxHelper
=
function
(
a
,
b
){
var
c
=
b
||
8947848
;
this
.
object
=
a
;
this
.
box
=
new
THREE
.
Box3
;
THREE
.
Mesh
.
call
(
this
,
new
THREE
.
CubeGeometry
(
1
,
1
,
1
),
new
THREE
.
MeshBasicMaterial
({
color
:
c
,
wireframe
:
!
0
}))};
THREE
.
BoundingBoxHelper
.
prototype
=
Object
.
create
(
THREE
.
Mesh
.
prototype
);
THREE
.
BoundingBoxHelper
.
prototype
.
update
=
function
(){
this
.
box
.
setFromObject
(
this
.
object
);
this
.
box
.
size
(
this
.
scale
);
this
.
box
.
center
(
this
.
position
)};
THREE
.
CameraHelper
=
function
(
a
){
function
b
(
a
,
b
,
d
){
c
(
a
,
d
);
c
(
b
,
d
)}
function
c
(
a
,
b
){
d
.
vertices
.
push
(
new
THREE
.
Vector3
);
d
.
colors
.
push
(
new
THREE
.
Color
(
b
));
void
0
===
f
[
a
]
&&
(
f
[
a
]
=
[]);
f
[
a
].
push
(
d
.
vertices
.
length
-
1
)}
var
d
=
new
THREE
.
Geometry
,
e
=
new
THREE
.
LineBasicMaterial
({
color
:
16777215
,
vertexColors
:
THREE
.
FaceColors
}),
f
=
{};
b
(
"
n1
"
,
"
n2
"
,
16755200
);
b
(
"
n2
"
,
"
n4
"
,
16755200
);
b
(
"
n4
"
,
"
n3
"
,
16755200
);
b
(
"
n3
"
,
"
n1
"
,
16755200
);
b
(
"
f1
"
,
"
f2
"
,
16755200
);
b
(
"
f2
"
,
"
f4
"
,
16755200
);
b
(
"
f4
"
,
"
f3
"
,
16755200
);
b
(
"
f3
"
,
"
f1
"
,
16755200
);
b
(
"
n1
"
,
"
f1
"
,
16755200
);
THREE
.
BoxHelper
.
prototype
.
update
=
function
(
a
){
var
b
=
a
.
geometry
;
null
===
b
.
boundingBox
&&
b
.
computeBoundingBox
();
var
c
=
b
.
boundingBox
.
min
,
b
=
b
.
boundingBox
.
max
,
d
=
this
.
vertices
;
d
[
0
].
set
(
b
.
x
,
b
.
y
,
b
.
z
);
d
[
1
].
set
(
c
.
x
,
b
.
y
,
b
.
z
);
d
[
2
].
set
(
c
.
x
,
c
.
y
,
b
.
z
);
d
[
3
].
set
(
b
.
x
,
c
.
y
,
b
.
z
);
d
[
4
].
set
(
b
.
x
,
b
.
y
,
c
.
z
);
d
[
5
].
set
(
c
.
x
,
b
.
y
,
c
.
z
);
d
[
6
].
set
(
c
.
x
,
c
.
y
,
c
.
z
);
d
[
7
].
set
(
b
.
x
,
c
.
y
,
c
.
z
);
this
.
geometry
.
computeBoundingSphere
();
this
.
geometry
.
verticesNeedUpdate
=!
0
;
this
.
matrixAutoUpdate
=!
1
;
this
.
matrixWorld
=
a
.
matrixWorld
};
THREE
.
BoundingBoxHelper
=
function
(
a
,
b
){
var
c
=
void
0
!==
b
?
b
:
8947848
;
this
.
object
=
a
;
this
.
box
=
new
THREE
.
Box3
;
THREE
.
Mesh
.
call
(
this
,
new
THREE
.
CubeGeometry
(
1
,
1
,
1
),
new
THREE
.
MeshBasicMaterial
({
color
:
c
,
wireframe
:
!
0
}))};
THREE
.
BoundingBoxHelper
.
prototype
=
Object
.
create
(
THREE
.
Mesh
.
prototype
);
THREE
.
BoundingBoxHelper
.
prototype
.
update
=
function
(){
this
.
box
.
setFromObject
(
this
.
object
);
this
.
box
.
size
(
this
.
scale
);
this
.
box
.
center
(
this
.
position
)};
THREE
.
CameraHelper
=
function
(
a
){
function
b
(
a
,
b
,
d
){
c
(
a
,
d
);
c
(
b
,
d
)}
function
c
(
a
,
b
){
d
.
vertices
.
push
(
new
THREE
.
Vector3
);
d
.
colors
.
push
(
new
THREE
.
Color
(
b
));
void
0
===
f
[
a
]
&&
(
f
[
a
]
=
[]);
f
[
a
].
push
(
d
.
vertices
.
length
-
1
)}
var
d
=
new
THREE
.
Geometry
,
e
=
new
THREE
.
LineBasicMaterial
({
color
:
16777215
,
vertexColors
:
THREE
.
FaceColors
}),
f
=
{};
b
(
"
n1
"
,
"
n2
"
,
16755200
);
b
(
"
n2
"
,
"
n4
"
,
16755200
);
b
(
"
n4
"
,
"
n3
"
,
16755200
);
b
(
"
n3
"
,
"
n1
"
,
16755200
);
b
(
"
f1
"
,
"
f2
"
,
16755200
);
b
(
"
f2
"
,
"
f4
"
,
16755200
);
b
(
"
f4
"
,
"
f3
"
,
16755200
);
b
(
"
f3
"
,
"
f1
"
,
16755200
);
b
(
"
n1
"
,
"
f1
"
,
16755200
);
b
(
"
n2
"
,
"
f2
"
,
16755200
);
b
(
"
n3
"
,
"
f3
"
,
16755200
);
b
(
"
n4
"
,
"
f4
"
,
16755200
);
b
(
"
p
"
,
"
n1
"
,
16711680
);
b
(
"
p
"
,
"
n2
"
,
16711680
);
b
(
"
p
"
,
"
n3
"
,
16711680
);
b
(
"
p
"
,
"
n4
"
,
16711680
);
b
(
"
u1
"
,
"
u2
"
,
43775
);
b
(
"
u2
"
,
"
u3
"
,
43775
);
b
(
"
u3
"
,
"
u1
"
,
43775
);
b
(
"
c
"
,
"
t
"
,
16777215
);
b
(
"
p
"
,
"
c
"
,
3355443
);
b
(
"
cn1
"
,
"
cn2
"
,
3355443
);
b
(
"
cn3
"
,
"
cn4
"
,
3355443
);
b
(
"
cf1
"
,
"
cf2
"
,
3355443
);
b
(
"
cf3
"
,
"
cf4
"
,
3355443
);
THREE
.
Line
.
call
(
this
,
d
,
e
,
THREE
.
LinePieces
);
this
.
camera
=
a
;
this
.
matrixWorld
=
a
.
matrixWorld
;
this
.
matrixAutoUpdate
=!
1
;
this
.
pointMap
=
f
;
this
.
update
()};
THREE
.
CameraHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
CameraHelper
.
prototype
.
update
=
function
(){
var
a
=
new
THREE
.
Vector3
,
b
=
new
THREE
.
Camera
,
c
=
new
THREE
.
Projector
;
return
function
(){
function
d
(
d
,
h
,
g
,
i
){
a
.
set
(
h
,
g
,
i
);
c
.
unprojectVector
(
a
,
b
);
d
=
e
.
pointMap
[
d
];
if
(
void
0
!==
d
){
h
=
0
;
for
(
g
=
d
.
length
;
h
<
g
;
h
++
)
e
.
geometry
.
vertices
[
d
[
h
]].
copy
(
a
)}}
var
e
=
this
;
b
.
projectionMatrix
.
copy
(
this
.
camera
.
projectionMatrix
);
d
(
"
c
"
,
0
,
0
,
-
1
);
d
(
"
t
"
,
0
,
0
,
1
);
d
(
"
n1
"
,
-
1
,
-
1
,
-
1
);
d
(
"
n2
"
,
1
,
-
1
,
-
1
);
d
(
"
n3
"
,
-
1
,
1
,
-
1
);
d
(
"
n4
"
,
1
,
1
,
-
1
);
d
(
"
f1
"
,
-
1
,
-
1
,
1
);
d
(
"
f2
"
,
1
,
-
1
,
1
);
d
(
"
f3
"
,
-
1
,
1
,
1
);
d
(
"
f4
"
,
1
,
1
,
1
);
d
(
"
u1
"
,
0.7
,
1.1
,
-
1
);
d
(
"
u2
"
,
-
0.7
,
1.1
,
-
1
);
d
(
"
u3
"
,
0
,
2
,
-
1
);
d
(
"
cf1
"
,
-
1
,
0
,
1
);
d
(
"
cf2
"
,
1
,
0
,
1
);
d
(
"
cf3
"
,
0
,
-
1
,
1
);
d
(
"
cf4
"
,
0
,
1
,
1
);
d
(
"
cn1
"
,
-
1
,
0
,
-
1
);
d
(
"
cn2
"
,
1
,
0
,
-
1
);
d
(
"
cn3
"
,
0
,
-
1
,
-
1
);
d
(
"
cn4
"
,
0
,
1
,
-
1
);
this
.
geometry
.
verticesNeedUpdate
=!
0
}}();
THREE
.
DirectionalLightHelper
=
function
(
a
,
b
){
THREE
.
Object3D
.
call
(
this
);
this
.
light
=
a
;
this
.
light
.
updateMatrixWorld
();
this
.
matrixWorld
=
a
.
matrixWorld
;
this
.
matrixAutoUpdate
=!
1
;
var
b
=
b
||
1
,
c
=
new
THREE
.
PlaneGeometry
(
b
,
b
),
d
=
new
THREE
.
MeshBasicMaterial
({
wireframe
:
!
0
,
fog
:
!
1
});
d
.
color
.
copy
(
this
.
light
.
color
).
multiplyScalar
(
this
.
light
.
intensity
);
this
.
lightPlane
=
new
THREE
.
Mesh
(
c
,
d
);
this
.
add
(
this
.
lightPlane
);
c
=
new
THREE
.
Geometry
;
c
.
vertices
.
push
(
new
THREE
.
Vector3
);
c
.
vertices
.
push
(
new
THREE
.
Vector3
);
d
=
new
THREE
.
LineBasicMaterial
({
fog
:
!
1
});
d
.
color
.
copy
(
this
.
light
.
color
).
multiplyScalar
(
this
.
light
.
intensity
);
this
.
targetLine
=
new
THREE
.
Line
(
c
,
d
);
this
.
add
(
this
.
targetLine
);
this
.
update
()};
THREE
.
DirectionalLightHelper
.
prototype
=
Object
.
create
(
THREE
.
Object3D
.
prototype
);
THREE
.
DirectionalLightHelper
.
prototype
.
dispose
=
function
(){
this
.
lightPlane
.
geometry
.
dispose
();
this
.
lightPlane
.
material
.
dispose
();
this
.
targetLine
.
geometry
.
dispose
();
this
.
targetLine
.
material
.
dispose
()};
THREE
.
DirectionalLightHelper
.
prototype
.
update
=
function
(){
var
a
=
new
THREE
.
Vector3
,
b
=
new
THREE
.
Vector3
,
c
=
new
THREE
.
Vector3
;
return
function
(){
a
.
setFromMatrixPosition
(
this
.
light
.
matrixWorld
);
b
.
setFromMatrixPosition
(
this
.
light
.
target
.
matrixWorld
);
c
.
subVectors
(
b
,
a
);
this
.
lightPlane
.
lookAt
(
c
);
this
.
lightPlane
.
material
.
color
.
copy
(
this
.
light
.
color
).
multiplyScalar
(
this
.
light
.
intensity
);
this
.
targetLine
.
geometry
.
vertices
[
1
].
copy
(
c
);
this
.
targetLine
.
geometry
.
verticesNeedUpdate
=!
0
;
this
.
targetLine
.
material
.
color
.
copy
(
this
.
lightPlane
.
material
.
color
)}}();
THREE
.
EdgesHelper
=
function
(
a
,
b
){
var
c
=
void
0
!==
b
?
b
:
16777215
,
d
=
[
0
,
0
],
e
=
{},
f
=
function
(
a
,
b
){
return
a
-
b
},
h
=
[
"
a
"
,
"
b
"
,
"
c
"
],
g
=
new
THREE
.
BufferGeometry
,
i
=
a
.
geometry
.
clone
();
i
.
mergeVertices
();
i
.
computeFaceNormals
();
for
(
var
k
=
i
.
vertices
,
i
=
i
.
faces
,
l
=
0
,
p
=
0
,
m
=
i
.
length
;
p
<
m
;
p
++
)
for
(
var
t
=
i
[
p
],
r
=
0
;
3
>
r
;
r
++
){
d
[
0
]
=
t
[
h
[
r
]];
d
[
1
]
=
t
[
h
[(
r
+
1
)
%
3
]];
d
.
sort
(
f
);
var
n
=
d
.
toString
();
void
0
===
e
[
n
]?(
e
[
n
]
=
{
vert1
:
d
[
0
],
vert2
:
d
[
1
],
face1
:
p
,
face2
:
void
0
},
l
++
):
e
[
n
].
face2
=
p
}
g
.
addAttribute
(
"
position
"
,
Float32Array
,
2
*
l
,
3
);
d
=
g
.
attributes
.
position
.
array
;
f
=
0
;
for
(
n
in
e
)
if
(
h
=
e
[
n
],
void
0
===
h
.
face2
||
0.9999
>
i
[
h
.
face1
].
normal
.
dot
(
i
[
h
.
face2
].
normal
))
l
=
k
[
h
.
vert1
],
d
[
f
++
]
=
l
.
x
,
d
[
f
++
]
=
l
.
y
,
d
[
f
++
]
=
l
.
z
,
l
=
k
[
h
.
vert2
],
d
[
f
++
]
=
l
.
x
,
d
[
f
++
]
=
l
.
y
,
d
[
f
++
]
=
l
.
z
;
THREE
.
Line
.
call
(
this
,
g
,
new
THREE
.
LineBasicMaterial
({
color
:
c
}),
THREE
.
LinePieces
);
this
.
matrixAutoUpdate
=!
1
;
this
.
matrixWorld
=
a
.
matrixWorld
};
THREE
.
EdgesHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
FaceNormalsHelper
=
function
(
a
,
b
,
c
,
d
){
this
.
object
=
a
;
this
.
size
=
b
||
1
;
for
(
var
a
=
c
||
16776960
,
d
=
d
||
1
,
b
=
new
THREE
.
Geometry
,
c
=
0
,
e
=
this
.
object
.
geometry
.
faces
.
length
;
c
<
e
;
c
++
)
b
.
vertices
.
push
(
new
THREE
.
Vector3
),
b
.
vertices
.
push
(
new
THREE
.
Vector3
);
THREE
.
Line
.
call
(
this
,
b
,
new
THREE
.
LineBasicMaterial
({
color
:
a
,
linewidth
:
d
}),
THREE
.
LinePieces
);
this
.
matrixAutoUpdate
=!
1
;
this
.
normalMatrix
=
new
THREE
.
Matrix3
;
this
.
update
()};
THREE
.
FaceNormalsHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
f
=
0
;
for
(
n
in
e
)
if
(
h
=
e
[
n
],
void
0
===
h
.
face2
||
0.9999
>
i
[
h
.
face1
].
normal
.
dot
(
i
[
h
.
face2
].
normal
))
l
=
k
[
h
.
vert1
],
d
[
f
++
]
=
l
.
x
,
d
[
f
++
]
=
l
.
y
,
d
[
f
++
]
=
l
.
z
,
l
=
k
[
h
.
vert2
],
d
[
f
++
]
=
l
.
x
,
d
[
f
++
]
=
l
.
y
,
d
[
f
++
]
=
l
.
z
;
THREE
.
Line
.
call
(
this
,
g
,
new
THREE
.
LineBasicMaterial
({
color
:
c
}),
THREE
.
LinePieces
);
this
.
matrixAutoUpdate
=!
1
;
this
.
matrixWorld
=
a
.
matrixWorld
};
THREE
.
EdgesHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
FaceNormalsHelper
=
function
(
a
,
b
,
c
,
d
){
this
.
object
=
a
;
this
.
size
=
void
0
!==
b
?
b
:
1
;
for
(
var
a
=
void
0
!==
c
?
c
:
16776960
,
d
=
void
0
!==
d
?
d
:
1
,
b
=
new
THREE
.
Geometry
,
c
=
0
,
e
=
this
.
object
.
geometry
.
faces
.
length
;
c
<
e
;
c
++
)
b
.
vertices
.
push
(
new
THREE
.
Vector3
),
b
.
vertices
.
push
(
new
THREE
.
Vector3
);
THREE
.
Line
.
call
(
this
,
b
,
new
THREE
.
LineBasicMaterial
({
color
:
a
,
linewidth
:
d
}),
THREE
.
LinePieces
);
this
.
matrixAutoUpdate
=!
1
;
this
.
normalMatrix
=
new
THREE
.
Matrix3
;
this
.
update
()};
THREE
.
FaceNormalsHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
FaceNormalsHelper
.
prototype
.
update
=
function
(){
var
a
=
new
THREE
.
Vector3
;
return
function
(){
this
.
object
.
updateMatrixWorld
(
!
0
);
this
.
normalMatrix
.
getNormalMatrix
(
this
.
object
.
matrixWorld
);
for
(
var
b
=
this
.
geometry
.
vertices
,
c
=
this
.
object
.
geometry
.
faces
,
d
=
this
.
object
.
matrixWorld
,
e
=
0
,
f
=
c
.
length
;
e
<
f
;
e
++
){
var
h
=
c
[
e
];
a
.
copy
(
h
.
normal
).
applyMatrix3
(
this
.
normalMatrix
).
normalize
().
multiplyScalar
(
this
.
size
);
var
g
=
2
*
e
;
b
[
g
].
copy
(
h
.
centroid
).
applyMatrix4
(
d
);
b
[
g
+
1
].
addVectors
(
b
[
g
],
a
)}
this
.
geometry
.
verticesNeedUpdate
=
!
0
;
return
this
}}();
THREE
.
GridHelper
=
function
(
a
,
b
){
var
c
=
new
THREE
.
Geometry
,
d
=
new
THREE
.
LineBasicMaterial
({
vertexColors
:
THREE
.
VertexColors
});
this
.
color1
=
new
THREE
.
Color
(
4473924
);
this
.
color2
=
new
THREE
.
Color
(
8947848
);
for
(
var
e
=-
a
;
e
<=
a
;
e
+=
b
){
c
.
vertices
.
push
(
new
THREE
.
Vector3
(
-
a
,
0
,
e
),
new
THREE
.
Vector3
(
a
,
0
,
e
),
new
THREE
.
Vector3
(
e
,
0
,
-
a
),
new
THREE
.
Vector3
(
e
,
0
,
a
));
var
f
=
0
===
e
?
this
.
color1
:
this
.
color2
;
c
.
colors
.
push
(
f
,
f
,
f
,
f
)}
THREE
.
Line
.
call
(
this
,
c
,
d
,
THREE
.
LinePieces
)};
THREE
.
GridHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
GridHelper
.
prototype
.
setColors
=
function
(
a
,
b
){
this
.
color1
.
set
(
a
);
this
.
color2
.
set
(
b
);
this
.
geometry
.
colorsNeedUpdate
=!
0
};
THREE
.
HemisphereLightHelper
=
function
(
a
,
b
){
THREE
.
Object3D
.
call
(
this
);
this
.
light
=
a
;
this
.
light
.
updateMatrixWorld
();
this
.
matrixWorld
=
a
.
matrixWorld
;
this
.
matrixAutoUpdate
=!
1
;
this
.
colors
=
[
new
THREE
.
Color
,
new
THREE
.
Color
];
var
c
=
new
THREE
.
SphereGeometry
(
b
,
4
,
2
);
c
.
applyMatrix
((
new
THREE
.
Matrix4
).
makeRotationX
(
-
Math
.
PI
/
2
));
for
(
var
d
=
0
;
8
>
d
;
d
++
)
c
.
faces
[
d
].
color
=
this
.
colors
[
4
>
d
?
0
:
1
];
d
=
new
THREE
.
MeshBasicMaterial
({
vertexColors
:
THREE
.
FaceColors
,
wireframe
:
!
0
});
this
.
lightSphere
=
new
THREE
.
Mesh
(
c
,
d
);
this
.
add
(
this
.
lightSphere
);
this
.
update
()};
THREE
.
HemisphereLightHelper
.
prototype
=
Object
.
create
(
THREE
.
Object3D
.
prototype
);
THREE
.
HemisphereLightHelper
.
prototype
.
dispose
=
function
(){
this
.
lightSphere
.
geometry
.
dispose
();
this
.
lightSphere
.
material
.
dispose
()};
THREE
.
HemisphereLightHelper
.
prototype
.
update
=
function
(){
var
a
=
new
THREE
.
Vector3
;
return
function
(){
this
.
colors
[
0
].
copy
(
this
.
light
.
color
).
multiplyScalar
(
this
.
light
.
intensity
);
this
.
colors
[
1
].
copy
(
this
.
light
.
groundColor
).
multiplyScalar
(
this
.
light
.
intensity
);
this
.
lightSphere
.
lookAt
(
a
.
setFromMatrixPosition
(
this
.
light
.
matrixWorld
).
negate
());
this
.
lightSphere
.
geometry
.
colorsNeedUpdate
=!
0
}}();
THREE
.
PointLightHelper
=
function
(
a
,
b
){
this
.
light
=
a
;
this
.
light
.
updateMatrixWorld
();
var
c
=
new
THREE
.
SphereGeometry
(
b
,
4
,
2
),
d
=
new
THREE
.
MeshBasicMaterial
({
wireframe
:
!
0
,
fog
:
!
1
});
d
.
color
.
copy
(
this
.
light
.
color
).
multiplyScalar
(
this
.
light
.
intensity
);
THREE
.
Mesh
.
call
(
this
,
c
,
d
);
this
.
matrixWorld
=
this
.
light
.
matrixWorld
;
this
.
matrixAutoUpdate
=!
1
};
THREE
.
PointLightHelper
.
prototype
=
Object
.
create
(
THREE
.
Mesh
.
prototype
);
THREE
.
PointLightHelper
.
prototype
.
dispose
=
function
(){
this
.
geometry
.
dispose
();
this
.
material
.
dispose
()};
THREE
.
PointLightHelper
.
prototype
.
update
=
function
(){
this
.
material
.
color
.
copy
(
this
.
light
.
color
).
multiplyScalar
(
this
.
light
.
intensity
)};
THREE
.
SpotLightHelper
=
function
(
a
){
THREE
.
Object3D
.
call
(
this
);
this
.
light
=
a
;
this
.
light
.
updateMatrixWorld
();
this
.
matrixWorld
=
a
.
matrixWorld
;
this
.
matrixAutoUpdate
=!
1
;
a
=
new
THREE
.
CylinderGeometry
(
0
,
1
,
1
,
8
,
1
,
!
0
);
a
.
applyMatrix
((
new
THREE
.
Matrix4
).
makeTranslation
(
0
,
-
0.5
,
0
));
a
.
applyMatrix
((
new
THREE
.
Matrix4
).
makeRotationX
(
-
Math
.
PI
/
2
));
var
b
=
new
THREE
.
MeshBasicMaterial
({
wireframe
:
!
0
,
fog
:
!
1
});
this
.
cone
=
new
THREE
.
Mesh
(
a
,
b
);
this
.
add
(
this
.
cone
);
this
.
update
()};
THREE
.
SpotLightHelper
.
prototype
=
Object
.
create
(
THREE
.
Object3D
.
prototype
);
THREE
.
SpotLightHelper
.
prototype
.
dispose
=
function
(){
this
.
cone
.
geometry
.
dispose
();
this
.
cone
.
material
.
dispose
()};
THREE
.
SpotLightHelper
.
prototype
.
update
=
function
(){
var
a
=
new
THREE
.
Vector3
,
b
=
new
THREE
.
Vector3
;
return
function
(){
var
c
=
this
.
light
.
distance
?
this
.
light
.
distance
:
1
E4
,
d
=
c
*
Math
.
tan
(
this
.
light
.
angle
);
this
.
cone
.
scale
.
set
(
d
,
d
,
c
);
a
.
setFromMatrixPosition
(
this
.
light
.
matrixWorld
);
b
.
setFromMatrixPosition
(
this
.
light
.
target
.
matrixWorld
);
this
.
cone
.
lookAt
(
b
.
sub
(
a
));
this
.
cone
.
material
.
color
.
copy
(
this
.
light
.
color
).
multiplyScalar
(
this
.
light
.
intensity
)}}();
THREE
.
VertexNormalsHelper
=
function
(
a
,
b
,
c
,
d
){
this
.
object
=
a
;
this
.
size
=
b
||
1
;
for
(
var
b
=
c
||
16711680
,
d
=
d
||
1
,
c
=
new
THREE
.
Geometry
,
a
=
a
.
geometry
.
faces
,
e
=
0
,
f
=
a
.
length
;
e
<
f
;
e
++
)
for
(
var
h
=
0
,
g
=
a
[
e
].
vertexNormals
.
length
;
h
<
g
;
h
++
)
c
.
vertices
.
push
(
new
THREE
.
Vector3
),
c
.
vertices
.
push
(
new
THREE
.
Vector3
);
THREE
.
Line
.
call
(
this
,
c
,
new
THREE
.
LineBasicMaterial
({
color
:
b
,
linewidth
:
d
}),
THREE
.
LinePieces
);
this
.
matrixAutoUpdate
=!
1
;
this
.
normalMatrix
=
new
THREE
.
Matrix3
;
this
.
update
()};
THREE
.
VertexNormalsHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
SpotLightHelper
.
prototype
.
dispose
=
function
(){
this
.
cone
.
geometry
.
dispose
();
this
.
cone
.
material
.
dispose
()};
THREE
.
SpotLightHelper
.
prototype
.
update
=
function
(){
var
a
=
new
THREE
.
Vector3
,
b
=
new
THREE
.
Vector3
;
return
function
(){
var
c
=
this
.
light
.
distance
?
this
.
light
.
distance
:
1
E4
,
d
=
c
*
Math
.
tan
(
this
.
light
.
angle
);
this
.
cone
.
scale
.
set
(
d
,
d
,
c
);
a
.
setFromMatrixPosition
(
this
.
light
.
matrixWorld
);
b
.
setFromMatrixPosition
(
this
.
light
.
target
.
matrixWorld
);
this
.
cone
.
lookAt
(
b
.
sub
(
a
));
this
.
cone
.
material
.
color
.
copy
(
this
.
light
.
color
).
multiplyScalar
(
this
.
light
.
intensity
)}}();
THREE
.
VertexNormalsHelper
=
function
(
a
,
b
,
c
,
d
){
this
.
object
=
a
;
this
.
size
=
void
0
!==
b
?
b
:
1
;
for
(
var
b
=
void
0
!==
c
?
c
:
16711680
,
d
=
void
0
!==
d
?
d
:
1
,
c
=
new
THREE
.
Geometry
,
a
=
a
.
geometry
.
faces
,
e
=
0
,
f
=
a
.
length
;
e
<
f
;
e
++
)
for
(
var
h
=
0
,
g
=
a
[
e
].
vertexNormals
.
length
;
h
<
g
;
h
++
)
c
.
vertices
.
push
(
new
THREE
.
Vector3
),
c
.
vertices
.
push
(
new
THREE
.
Vector3
);
THREE
.
Line
.
call
(
this
,
c
,
new
THREE
.
LineBasicMaterial
({
color
:
b
,
linewidth
:
d
}),
THREE
.
LinePieces
);
this
.
matrixAutoUpdate
=!
1
;
this
.
normalMatrix
=
new
THREE
.
Matrix3
;
this
.
update
()};
THREE
.
VertexNormalsHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
VertexNormalsHelper
.
prototype
.
update
=
function
(){
var
a
=
new
THREE
.
Vector3
;
return
function
(){
var
b
=
[
"
a
"
,
"
b
"
,
"
c
"
,
"
d
"
];
this
.
object
.
updateMatrixWorld
(
!
0
);
this
.
normalMatrix
.
getNormalMatrix
(
this
.
object
.
matrixWorld
);
for
(
var
c
=
this
.
geometry
.
vertices
,
d
=
this
.
object
.
geometry
.
vertices
,
e
=
this
.
object
.
geometry
.
faces
,
f
=
this
.
object
.
matrixWorld
,
h
=
0
,
g
=
0
,
i
=
e
.
length
;
g
<
i
;
g
++
)
for
(
var
k
=
e
[
g
],
l
=
0
,
p
=
k
.
vertexNormals
.
length
;
l
<
p
;
l
++
){
var
m
=
k
.
vertexNormals
[
l
];
c
[
h
].
copy
(
d
[
k
[
b
[
l
]]]).
applyMatrix4
(
f
);
a
.
copy
(
m
).
applyMatrix3
(
this
.
normalMatrix
).
normalize
().
multiplyScalar
(
this
.
size
);
a
.
add
(
c
[
h
]);
h
+=
1
;
c
[
h
].
copy
(
a
);
h
+=
1
}
this
.
geometry
.
verticesNeedUpdate
=!
0
;
return
this
}}();
THREE
.
VertexTangentsHelper
=
function
(
a
,
b
,
c
,
d
){
this
.
object
=
a
;
this
.
size
=
b
||
1
;
for
(
var
b
=
c
||
255
,
d
=
d
||
1
,
c
=
new
THREE
.
Geometry
,
a
=
a
.
geometry
.
faces
,
e
=
0
,
f
=
a
.
length
;
e
<
f
;
e
++
)
for
(
var
h
=
0
,
g
=
a
[
e
].
vertexTangents
.
length
;
h
<
g
;
h
++
)
c
.
vertices
.
push
(
new
THREE
.
Vector3
),
c
.
vertices
.
push
(
new
THREE
.
Vector3
);
THREE
.
Line
.
call
(
this
,
c
,
new
THREE
.
LineBasicMaterial
({
color
:
b
,
linewidth
:
d
}),
THREE
.
LinePieces
);
this
.
matrixAutoUpdate
=!
1
;
this
.
update
()};
THREE
.
VertexTangentsHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
a
.
add
(
c
[
h
]);
h
+=
1
;
c
[
h
].
copy
(
a
);
h
+=
1
}
this
.
geometry
.
verticesNeedUpdate
=!
0
;
return
this
}}();
THREE
.
VertexTangentsHelper
=
function
(
a
,
b
,
c
,
d
){
this
.
object
=
a
;
this
.
size
=
void
0
!==
b
?
b
:
1
;
for
(
var
b
=
void
0
!==
c
?
c
:
255
,
d
=
void
0
!==
d
?
d
:
1
,
c
=
new
THREE
.
Geometry
,
a
=
a
.
geometry
.
faces
,
e
=
0
,
f
=
a
.
length
;
e
<
f
;
e
++
)
for
(
var
h
=
0
,
g
=
a
[
e
].
vertexTangents
.
length
;
h
<
g
;
h
++
)
c
.
vertices
.
push
(
new
THREE
.
Vector3
),
c
.
vertices
.
push
(
new
THREE
.
Vector3
);
THREE
.
Line
.
call
(
this
,
c
,
new
THREE
.
LineBasicMaterial
({
color
:
b
,
linewidth
:
d
}),
THREE
.
LinePieces
);
this
.
matrixAutoUpdate
=!
1
;
this
.
update
()};
THREE
.
VertexTangentsHelper
.
prototype
=
Object
.
create
(
THREE
.
Line
.
prototype
);
THREE
.
VertexTangentsHelper
.
prototype
.
update
=
function
(){
var
a
=
new
THREE
.
Vector3
;
return
function
(){
var
b
=
[
"
a
"
,
"
b
"
,
"
c
"
,
"
d
"
];
this
.
object
.
updateMatrixWorld
(
!
0
);
for
(
var
c
=
this
.
geometry
.
vertices
,
d
=
this
.
object
.
geometry
.
vertices
,
e
=
this
.
object
.
geometry
.
faces
,
f
=
this
.
object
.
matrixWorld
,
h
=
0
,
g
=
0
,
i
=
e
.
length
;
g
<
i
;
g
++
)
for
(
var
k
=
e
[
g
],
l
=
0
,
p
=
k
.
vertexTangents
.
length
;
l
<
p
;
l
++
){
var
m
=
k
.
vertexTangents
[
l
];
c
[
h
].
copy
(
d
[
k
[
b
[
l
]]]).
applyMatrix4
(
f
);
a
.
copy
(
m
).
transformDirection
(
f
).
multiplyScalar
(
this
.
size
);
a
.
add
(
c
[
h
]);
h
+=
1
;
c
[
h
].
copy
(
a
);
h
+=
1
}
this
.
geometry
.
verticesNeedUpdate
=!
0
;
return
this
}}();
THREE
.
WireframeHelper
=
function
(
a
,
b
){
var
c
=
void
0
!==
b
?
b
:
16777215
,
d
=
[
0
,
0
],
e
=
{},
f
=
function
(
a
,
b
){
return
a
-
b
},
h
=
[
"
a
"
,
"
b
"
,
"
c
"
],
g
=
new
THREE
.
BufferGeometry
;
if
(
a
.
geometry
instanceof
THREE
.
Geometry
){
for
(
var
i
=
a
.
geometry
.
vertices
,
k
=
a
.
geometry
.
faces
,
l
=
0
,
p
=
new
Uint32Array
(
6
*
k
.
length
),
m
=
0
,
t
=
k
.
length
;
m
<
t
;
m
++
)
for
(
var
r
=
k
[
m
],
n
=
0
;
3
>
n
;
n
++
){
d
[
0
]
=
r
[
h
[
n
]];
d
[
1
]
=
r
[
h
[(
n
+
1
)
%
3
]];
d
.
sort
(
f
);
var
q
=
d
.
toString
();
void
0
===
e
[
q
]
&&
(
p
[
2
*
l
]
=
d
[
0
],
p
[
2
*
l
+
1
]
=
d
[
1
],
e
[
q
]
=!
0
,
l
++
)}
g
.
addAttribute
(
"
position
"
,
Float32Array
,
2
*
l
,
3
);
d
=
g
.
attributes
.
position
.
array
;
m
=
0
;
for
(
t
=
l
;
m
<
t
;
m
++
)
for
(
n
=
0
;
2
>
n
;
n
++
)
l
=
i
[
p
[
2
*
m
+
n
]],
h
=
6
*
m
+
3
*
n
,
d
[
h
+
0
]
=
l
.
x
,
d
[
h
+
1
]
=
l
.
y
,
d
[
h
+
2
]
=
l
.
z
}
else
if
(
a
.
geometry
instanceof
THREE
.
BufferGeometry
&&
void
0
!==
a
.
geometry
.
attributes
.
index
){
for
(
var
i
=
a
.
geometry
.
attributes
.
position
.
array
,
t
=
a
.
geometry
.
attributes
.
index
.
array
,
k
=
a
.
geometry
.
offsets
,
l
=
0
,
p
=
new
Uint32Array
(
2
*
t
.
length
),
r
=
0
,
u
=
k
.
length
;
r
<
u
;
++
r
)
for
(
var
n
=
k
[
r
].
start
,
q
=
k
[
r
].
count
,
h
=
k
[
r
].
index
,
m
=
n
,
s
=
n
+
q
;
m
<
s
;
m
+=
3
)
for
(
n
=
0
;
3
>
n
;
n
++
)
d
[
0
]
=
h
+
t
[
m
+
n
],
d
[
1
]
=
h
+
t
[
m
+
(
n
+
1
)
%
3
],
d
.
sort
(
f
),
q
=
d
.
toString
(),
void
0
===
e
[
q
]
&&
(
p
[
2
*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录