Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
4989d029
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,发现更多精彩内容 >>
提交
4989d029
编写于
3月 29, 2012
作者:
A
alteredq
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixed Spline.getPoint(). Tweaked camera controls examples.
This white-on-white rendering wasn't really working.
上级
ff5d13d0
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
19 addition
and
19 deletion
+19
-19
build/Three.js
build/Three.js
+6
-6
build/custom/ThreeWebGL.js
build/custom/ThreeWebGL.js
+4
-4
examples/misc_camera_path.html
examples/misc_camera_path.html
+2
-2
examples/misc_camera_roll.html
examples/misc_camera_roll.html
+3
-3
examples/misc_camera_trackball.html
examples/misc_camera_trackball.html
+2
-2
src/core/Spline.js
src/core/Spline.js
+2
-2
未找到文件。
build/Three.js
浏览文件 @
4989d029
...
...
@@ -101,10 +101,10 @@ Q=new THREE.Vector3,L=new THREE.Vector3,B=new THREE.Vector3;for(b=0,c=this.verti
C
=
D
[
e
],
Q
.
copy
(
C
),
Q
.
subSelf
(
B
.
multiplyScalar
(
B
.
dot
(
C
))).
normalize
(),
L
.
cross
(
f
.
vertexNormals
[
d
],
C
),
e
=
L
.
dot
(
I
[
e
]),
e
=
0
>
e
?
-
1
:
1
,
f
.
vertexTangents
[
d
]
=
new
THREE
.
Vector4
(
Q
.
x
,
Q
.
y
,
Q
.
z
,
e
)}
this
.
hasTangents
=!
0
},
computeBoundingBox
:
function
(){
if
(
!
this
.
boundingBox
)
this
.
boundingBox
=
{
min
:
new
THREE
.
Vector3
,
max
:
new
THREE
.
Vector3
};
if
(
0
<
this
.
vertices
.
length
){
var
a
;
a
=
this
.
vertices
[
0
].
position
;
this
.
boundingBox
.
min
.
copy
(
a
);
this
.
boundingBox
.
max
.
copy
(
a
);
for
(
var
b
=
this
.
boundingBox
.
min
,
c
=
this
.
boundingBox
.
max
,
d
=
1
,
e
=
this
.
vertices
.
length
;
d
<
e
;
d
++
){
a
=
this
.
vertices
[
d
].
position
;
if
(
a
.
x
<
b
.
x
)
b
.
x
=
a
.
x
;
else
if
(
a
.
x
>
c
.
x
)
c
.
x
=
a
.
x
;
if
(
a
.
y
<
b
.
y
)
b
.
y
=
a
.
y
;
else
if
(
a
.
y
>
c
.
y
)
c
.
y
=
a
.
y
;
if
(
a
.
z
<
b
.
z
)
b
.
z
=
a
.
z
;
else
if
(
a
.
z
>
c
.
z
)
c
.
z
=
a
.
z
}}
else
this
.
boundingBox
.
min
.
set
(
0
,
0
,
0
),
this
.
boundingBox
.
max
.
set
(
0
,
0
,
0
)},
computeBoundingSphere
:
function
(){
if
(
!
this
.
boundingSphere
)
this
.
boundingSphere
=
{
radius
:
0
};
for
(
var
a
,
b
=
0
,
c
=
0
,
d
=
this
.
vertices
.
length
;
c
<
d
;
c
++
)
a
=
this
.
vertices
[
c
].
position
.
length
(),
a
>
b
&&
(
b
=
a
);
this
.
boundingSphere
.
radius
=
b
},
mergeVertices
:
function
(){
var
a
=
{},
b
=
[],
c
=
[],
d
,
e
=
Math
.
pow
(
10
,
4
),
f
,
g
;
for
(
f
=
0
,
g
=
this
.
vertices
.
length
;
f
<
g
;
f
++
)
d
=
this
.
vertices
[
f
].
position
,
d
=
[
Math
.
round
(
d
.
x
*
e
),
Math
.
round
(
d
.
y
*
e
),
Math
.
round
(
d
.
z
*
e
)].
join
(
"
_
"
),
void
0
===
a
[
d
]?(
a
[
d
]
=
f
,
b
.
push
(
this
.
vertices
[
f
]),
c
[
f
]
=
b
.
length
-
1
):
c
[
f
]
=
c
[
a
[
d
]];
for
(
f
=
0
,
g
=
this
.
faces
.
length
;
f
<
g
;
f
++
)
if
(
a
=
this
.
faces
[
f
],
a
instanceof
THREE
.
Face3
)
a
.
a
=
c
[
a
.
a
],
a
.
b
=
c
[
a
.
b
],
a
.
c
=
c
[
a
.
c
];
else
if
(
a
instanceof
THREE
.
Face4
)
a
.
a
=
c
[
a
.
a
],
a
.
b
=
c
[
a
.
b
],
a
.
c
=
c
[
a
.
c
],
a
.
d
=
c
[
a
.
d
];
this
.
vertices
=
b
}};
THREE
.
GeometryCount
=
0
;
THREE
.
Spline
=
function
(
a
){
function
b
(
a
,
b
,
c
,
d
,
e
,
f
,
g
){
a
=
0.5
*
(
c
-
a
);
d
=
0.5
*
(
d
-
b
);
return
(
2
*
(
b
-
c
)
+
a
+
d
)
*
g
+
(
-
3
*
(
b
-
c
)
-
2
*
a
-
d
)
*
f
+
a
*
e
+
b
}
this
.
points
=
a
;
var
c
=
[],
d
=
{
x
:
0
,
y
:
0
,
z
:
0
},
e
,
f
,
g
,
h
,
i
,
j
,
k
,
p
,
m
;
this
.
initFromArray
=
function
(
a
){
this
.
points
=
[];
for
(
var
b
=
0
;
b
<
a
.
length
;
b
++
)
this
.
points
[
b
]
=
{
x
:
a
[
b
][
0
],
y
:
a
[
b
][
1
],
z
:
a
[
b
][
2
]}};
this
.
getPoint
=
function
(
o
){
e
=
(
this
.
points
.
length
-
1
)
*
o
;
f
=
Math
.
floor
(
e
);
g
=
e
-
f
;
c
[
0
]
=
0
===
f
?
f
:
f
-
1
;
c
[
1
]
=
f
;
c
[
2
]
=
f
>
a
.
length
-
2
?
a
.
length
-
1
:
f
+
1
;
c
[
3
]
=
f
>
a
.
length
-
3
?
a
.
length
-
1
:
f
+
2
;
j
=
this
.
points
[
c
[
0
]];
k
=
this
.
points
[
c
[
1
]];
p
=
this
.
points
[
c
[
2
]];
m
=
this
.
points
[
c
[
3
]];
h
=
g
*
g
;
i
=
g
*
h
;
d
.
x
=
b
(
j
.
x
,
k
.
x
,
p
.
x
,
m
.
x
,
g
,
h
,
i
);
d
.
y
=
b
(
j
.
y
,
k
.
y
,
p
.
y
,
m
.
y
,
g
,
h
,
i
);
d
.
z
=
b
(
j
.
z
,
k
.
z
,
p
.
z
,
m
.
z
,
g
,
h
,
i
);
return
d
};
this
.
getControlPointsArray
=
function
(){
var
a
,
b
,
c
=
this
.
points
.
length
,
d
=
[];
for
(
a
=
0
;
a
<
c
;
a
++
)
b
=
this
.
points
[
a
],
d
[
a
]
=
[
b
.
x
,
b
.
y
,
b
.
z
];
return
d
};
this
.
getLength
=
function
(
a
){
var
b
,
c
,
d
,
e
=
b
=
b
=
0
,
f
=
new
THREE
.
Vector3
,
g
=
new
THREE
.
Vector3
,
h
=
[],
i
=
0
;
h
[
0
]
=
0
;
a
||
(
a
=
100
);
c
=
this
.
points
.
length
*
a
;
f
.
copy
(
this
.
points
[
0
]);
for
(
a
=
1
;
a
<
c
;
a
++
)
b
=
a
/
c
,
d
=
this
.
getPoint
(
b
),
g
.
copy
(
d
),
i
+=
g
.
distanceTo
(
f
),
f
.
copy
(
d
),
b
*=
this
.
points
.
length
-
1
,
b
=
Math
.
floor
(
b
),
b
!=
e
&&
(
h
[
b
]
=
i
,
e
=
b
);
h
[
h
.
length
]
=
i
;
return
{
chunks
:
h
,
total
:
i
}};
this
.
reparametrizeByArcLength
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
,
h
=
[],
i
=
new
THREE
.
Vector3
,
k
=
this
.
getLength
();
h
.
push
(
i
.
copy
(
this
.
points
[
0
]).
clone
());
for
(
b
=
1
;
b
<
this
.
points
.
length
;
b
++
){
c
=
k
.
chunks
[
b
]
-
k
.
chunks
[
b
-
1
];
g
=
Math
.
ceil
(
a
*
c
/
k
.
total
);
e
=
(
b
-
1
)
/
(
this
.
points
.
length
-
1
);
f
=
b
/
(
this
.
points
.
length
-
1
);
for
(
c
=
1
;
c
<
g
-
1
;
c
++
)
d
=
e
+
c
*
(
1
/
g
)
*
(
f
-
e
),
d
=
this
.
getPoint
(
d
),
h
.
push
(
i
.
copy
(
d
).
clone
());
h
.
push
(
i
.
copy
(
this
.
points
[
b
]).
clone
())}
this
.
points
=
h
}};
THREE
.
Camera
=
function
(){
THREE
.
Object3D
.
call
(
this
);
this
.
matrixWorldInverse
=
new
THREE
.
Matrix4
;
this
.
projectionMatrix
=
new
THREE
.
Matrix4
;
this
.
projectionMatrixInverse
=
new
THREE
.
Matrix4
};
THREE
.
Camera
.
prototype
=
new
THREE
.
Object3D
;
THREE
.
Camera
.
prototype
.
constructor
=
THREE
.
Camera
;
THREE
.
Camera
.
prototype
.
lookAt
=
function
(
a
){
this
.
matrix
.
lookAt
(
this
.
position
,
a
,
this
.
up
);
this
.
rotationAutoUpdate
&&
this
.
rotation
.
getRotationFromMatrix
(
this
.
matrix
)};
THREE
.
Spline
=
function
(
a
){
function
b
(
a
,
b
,
c
,
d
,
e
,
f
,
g
){
a
=
0.5
*
(
c
-
a
);
d
=
0.5
*
(
d
-
b
);
return
(
2
*
(
b
-
c
)
+
a
+
d
)
*
g
+
(
-
3
*
(
b
-
c
)
-
2
*
a
-
d
)
*
f
+
a
*
e
+
b
}
this
.
points
=
a
;
var
c
=
[],
d
=
{
x
:
0
,
y
:
0
,
z
:
0
},
e
,
f
,
g
,
h
,
i
,
j
,
k
,
p
,
m
;
this
.
initFromArray
=
function
(
a
){
this
.
points
=
[];
for
(
var
b
=
0
;
b
<
a
.
length
;
b
++
)
this
.
points
[
b
]
=
{
x
:
a
[
b
][
0
],
y
:
a
[
b
][
1
],
z
:
a
[
b
][
2
]}};
this
.
getPoint
=
function
(
a
){
e
=
(
this
.
points
.
length
-
1
)
*
a
;
f
=
Math
.
floor
(
e
);
g
=
e
-
f
;
c
[
0
]
=
0
===
f
?
f
:
f
-
1
;
c
[
1
]
=
f
;
c
[
2
]
=
f
>
this
.
points
.
length
-
2
?
this
.
points
.
length
-
1
:
f
+
1
;
c
[
3
]
=
f
>
this
.
points
.
length
-
3
?
this
.
points
.
length
-
1
:
f
+
2
;
j
=
this
.
points
[
c
[
0
]];
k
=
this
.
points
[
c
[
1
]];
p
=
this
.
points
[
c
[
2
]];
m
=
this
.
points
[
c
[
3
]];
h
=
g
*
g
;
i
=
g
*
h
;
d
.
x
=
b
(
j
.
x
,
k
.
x
,
p
.
x
,
m
.
x
,
g
,
h
,
i
);
d
.
y
=
b
(
j
.
y
,
k
.
y
,
p
.
y
,
m
.
y
,
g
,
h
,
i
);
d
.
z
=
b
(
j
.
z
,
k
.
z
,
p
.
z
,
m
.
z
,
g
,
h
,
i
);
return
d
};
this
.
getControlPointsArray
=
function
(){
var
a
,
b
,
c
=
this
.
points
.
length
,
d
=
[];
for
(
a
=
0
;
a
<
c
;
a
++
)
b
=
this
.
points
[
a
],
d
[
a
]
=
[
b
.
x
,
b
.
y
,
b
.
z
];
return
d
};
this
.
getLength
=
function
(
a
){
var
b
,
c
,
d
,
e
=
b
=
b
=
0
,
f
=
new
THREE
.
Vector3
,
g
=
new
THREE
.
Vector3
,
h
=
[],
i
=
0
;
h
[
0
]
=
0
;
a
||
(
a
=
100
);
c
=
this
.
points
.
length
*
a
;
f
.
copy
(
this
.
points
[
0
]);
for
(
a
=
1
;
a
<
c
;
a
++
)
b
=
a
/
c
,
d
=
this
.
getPoint
(
b
),
g
.
copy
(
d
),
i
+=
g
.
distanceTo
(
f
),
f
.
copy
(
d
),
b
*=
this
.
points
.
length
-
1
,
b
=
Math
.
floor
(
b
),
b
!=
e
&&
(
h
[
b
]
=
i
,
e
=
b
);
h
[
h
.
length
]
=
i
;
return
{
chunks
:
h
,
total
:
i
}};
this
.
reparametrizeByArcLength
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
,
h
=
[],
i
=
new
THREE
.
Vector3
,
k
=
this
.
getLength
();
h
.
push
(
i
.
copy
(
this
.
points
[
0
]).
clone
());
for
(
b
=
1
;
b
<
this
.
points
.
length
;
b
++
){
c
=
k
.
chunks
[
b
]
-
k
.
chunks
[
b
-
1
];
g
=
Math
.
ceil
(
a
*
c
/
k
.
total
);
e
=
(
b
-
1
)
/
(
this
.
points
.
length
-
1
);
f
=
b
/
(
this
.
points
.
length
-
1
);
for
(
c
=
1
;
c
<
g
-
1
;
c
++
)
d
=
e
+
c
*
(
1
/
g
)
*
(
f
-
e
),
d
=
this
.
getPoint
(
d
),
h
.
push
(
i
.
copy
(
d
).
clone
());
h
.
push
(
i
.
copy
(
this
.
points
[
b
]).
clone
())}
this
.
points
=
h
}};
THREE
.
Camera
=
function
(){
THREE
.
Object3D
.
call
(
this
);
this
.
matrixWorldInverse
=
new
THREE
.
Matrix4
;
this
.
projectionMatrix
=
new
THREE
.
Matrix4
;
this
.
projectionMatrixInverse
=
new
THREE
.
Matrix4
};
THREE
.
Camera
.
prototype
=
new
THREE
.
Object3D
;
THREE
.
Camera
.
prototype
.
constructor
=
THREE
.
Camera
;
THREE
.
Camera
.
prototype
.
lookAt
=
function
(
a
){
this
.
matrix
.
lookAt
(
this
.
position
,
a
,
this
.
up
);
this
.
rotationAutoUpdate
&&
this
.
rotation
.
getRotationFromMatrix
(
this
.
matrix
)};
THREE
.
OrthographicCamera
=
function
(
a
,
b
,
c
,
d
,
e
,
f
){
THREE
.
Camera
.
call
(
this
);
this
.
left
=
a
;
this
.
right
=
b
;
this
.
top
=
c
;
this
.
bottom
=
d
;
this
.
near
=
void
0
!==
e
?
e
:
0.1
;
this
.
far
=
void
0
!==
f
?
f
:
2
E3
;
this
.
updateProjectionMatrix
()};
THREE
.
OrthographicCamera
.
prototype
=
new
THREE
.
Camera
;
THREE
.
OrthographicCamera
.
prototype
.
constructor
=
THREE
.
OrthographicCamera
;
THREE
.
OrthographicCamera
.
prototype
.
updateProjectionMatrix
=
function
(){
this
.
projectionMatrix
=
THREE
.
Matrix4
.
makeOrtho
(
this
.
left
,
this
.
right
,
this
.
top
,
this
.
bottom
,
this
.
near
,
this
.
far
)};
THREE
.
PerspectiveCamera
=
function
(
a
,
b
,
c
,
d
){
THREE
.
Camera
.
call
(
this
);
this
.
fov
=
void
0
!==
a
?
a
:
50
;
this
.
aspect
=
void
0
!==
b
?
b
:
1
;
this
.
near
=
void
0
!==
c
?
c
:
0.1
;
this
.
far
=
void
0
!==
d
?
d
:
2
E3
;
this
.
updateProjectionMatrix
()};
THREE
.
PerspectiveCamera
.
prototype
=
new
THREE
.
Camera
;
THREE
.
PerspectiveCamera
.
prototype
.
constructor
=
THREE
.
PerspectiveCamera
;
THREE
.
PerspectiveCamera
.
prototype
.
setLens
=
function
(
a
,
b
){
this
.
fov
=
2
*
Math
.
atan
((
void
0
!==
b
?
b
:
24
)
/
(
2
*
a
))
*
(
180
/
Math
.
PI
);
this
.
updateProjectionMatrix
()};
THREE
.
PerspectiveCamera
.
prototype
.
setViewOffset
=
function
(
a
,
b
,
c
,
d
,
e
,
f
){
this
.
fullWidth
=
a
;
this
.
fullHeight
=
b
;
this
.
x
=
c
;
this
.
y
=
d
;
this
.
width
=
e
;
this
.
height
=
f
;
this
.
updateProjectionMatrix
()};
...
...
@@ -542,8 +542,8 @@ b.addSelf(c.object.up.clone().setLength(a.y));c.object.position.addSelf(b);c.tar
c
.
noRotate
||
c
.
rotateCamera
();
c
.
noZoom
||
c
.
zoomCamera
();
c
.
noPan
||
c
.
panCamera
();
c
.
object
.
position
.
add
(
c
.
target
,
g
);
c
.
checkDistances
();
c
.
object
.
lookAt
(
c
.
target
);
0
<
d
.
distanceTo
(
c
.
object
.
position
)
&&
(
c
.
dispatchEvent
(
o
),
d
.
copy
(
c
.
object
.
position
))};
this
.
domElement
.
addEventListener
(
"
contextmenu
"
,
function
(
a
){
a
.
preventDefault
()},
!
1
);
this
.
domElement
.
addEventListener
(
"
mousemove
"
,
function
(
a
){
c
.
enabled
&&
(
e
&&
(
h
=
i
=
c
.
getMouseProjectionOnBall
(
a
.
clientX
,
a
.
clientY
),
j
=
k
=
c
.
getMouseOnScreen
(
a
.
clientX
,
a
.
clientY
),
p
=
m
=
c
.
getMouseOnScreen
(
a
.
clientX
,
a
.
clientY
),
e
=!
1
),
-
1
!==
f
&&
(
0
===
f
&&!
c
.
noRotate
?
i
=
c
.
getMouseProjectionOnBall
(
a
.
clientX
,
a
.
clientY
):
1
===
f
&&!
c
.
noZoom
?
k
=
c
.
getMouseOnScreen
(
a
.
clientX
,
a
.
clientY
):
2
===
f
&&!
c
.
noPan
&&
(
m
=
c
.
getMouseOnScreen
(
a
.
clientX
,
a
.
clientY
))))},
!
1
);
this
.
domElement
.
addEventListener
(
"
mousedown
"
,
function
(
a
){
if
(
c
.
enabled
&&
(
a
.
preventDefault
(),
a
.
stopPropagation
(),
-
1
===
f
))
f
=
a
.
button
,
0
===
f
&&!
c
.
noRotate
?
h
=
i
=
c
.
getMouseProjectionOnBall
(
a
.
clientX
,
a
.
clientY
):
1
===
f
&&!
c
.
noZoom
?
j
=
k
=
c
.
getMouseOnScreen
(
a
.
clientX
,
a
.
clientY
):
this
.
noPan
||
(
p
=
m
=
c
.
getMouseOnScreen
(
a
.
clientX
,
a
.
clientY
))},
!
1
);
this
.
domElement
.
addEventListener
(
"
mouseup
"
,
function
(
a
){
c
.
enabled
&&
(
a
.
preventDefault
(),
a
.
stopPropagation
(),
f
=-
1
)},
!
1
);
window
.
addEventListener
(
"
keydown
"
,
function
(
a
){
c
.
enabled
&&-
1
===
f
&&
(
a
.
keyCode
===
c
.
keys
[
0
]
&&!
c
.
noRotate
?
f
=
0
:
a
.
keyCode
===
c
.
keys
[
1
]
&&!
c
.
noZoom
?
f
=
1
:
a
.
keyCode
===
c
.
keys
[
2
]
&&!
c
.
noPan
&&
(
f
=
2
),
-
1
!==
f
&&
(
e
=!
0
))},
!
1
);
window
.
addEventListener
(
"
keyup
"
,
function
(){
c
.
enabled
&&-
1
!==
f
&&
(
f
=-
1
)},
!
1
)};
THREE
.
CubeGeometry
=
function
(
a
,
b
,
c
,
d
,
e
,
f
,
g
,
h
){
function
i
(
a
,
b
,
c
,
g
,
h
,
i
,
k
,
m
){
var
n
,
o
=
d
||
1
,
p
=
e
||
1
,
q
=
h
/
2
,
r
=
i
/
2
,
s
=
j
.
vertices
.
length
;
if
(
"
x
"
===
a
&&
"
y
"
===
b
||
"
y
"
===
a
&&
"
x
"
===
b
)
n
=
"
z
"
;
else
if
(
"
x
"
===
a
&&
"
z
"
===
b
||
"
z
"
===
a
&&
"
x
"
===
b
)
n
=
"
y
"
,
p
=
f
||
1
;
else
if
(
"
z
"
===
a
&&
"
y
"
===
b
||
"
y
"
===
a
&&
"
z
"
===
b
)
n
=
"
x
"
,
o
=
f
||
1
;
var
l
=
o
+
1
,
u
=
p
+
1
,
v
=
h
/
o
,
y
=
i
/
p
,
T
=
new
THREE
.
Vector3
;
T
[
n
]
=
0
<
k
?
1
:
-
1
;
for
(
h
=
0
;
h
<
u
;
h
++
)
for
(
i
=
0
;
i
<
l
;
i
++
){
var
P
=
new
THREE
.
Vector3
;
P
[
a
]
=
(
i
*
v
-
q
)
*
c
;
P
[
b
]
=
(
h
*
y
-
r
)
*
g
;
P
[
n
]
=
k
;
j
.
vertices
.
push
(
new
THREE
.
Vertex
(
P
))}
for
(
h
=
0
;
h
<
p
;
h
++
)
for
(
i
=
0
;
i
<
o
;
i
++
)
a
=
new
THREE
.
Face4
(
i
+
l
*
h
+
s
,
i
+
l
*
(
h
+
1
)
+
s
,
i
+
1
+
l
*
(
h
+
1
)
+
s
,
i
+
1
+
l
*
h
+
s
),
a
.
normal
.
copy
(
T
),
a
.
vertexNormals
.
push
(
T
.
clone
(),
T
.
clone
(),
T
.
clone
(),
T
.
clone
()),
a
.
materialIndex
=
m
,
j
.
faces
.
push
(
a
),
j
.
faceVertexUvs
[
0
].
push
([
new
THREE
.
UV
(
i
/
o
,
h
/
p
),
new
THREE
.
UV
(
i
/
o
,(
h
+
1
)
/
p
),
new
THREE
.
UV
((
i
+
1
)
/
o
,(
h
+
1
)
/
p
),
new
THREE
.
UV
((
i
+
1
)
/
o
,
h
/
p
)])}
THREE
.
Geometry
.
call
(
this
);
var
j
=
this
,
k
=
a
/
2
,
p
=
b
/
2
,
m
=
c
/
2
,
o
,
q
,
n
,
r
,
s
,
u
;
if
(
void
0
!==
g
){
if
(
g
instanceof
Array
)
this
.
materials
=
g
;
else
{
this
.
materials
=
[];
for
(
o
=
0
;
6
>
o
;
o
++
)
this
.
materials
.
push
(
g
)}
o
=
0
;
r
=
1
;
q
=
2
;
s
=
THREE
.
CubeGeometry
=
function
(
a
,
b
,
c
,
d
,
e
,
f
,
g
,
h
){
function
i
(
a
,
b
,
c
,
g
,
h
,
i
,
k
,
m
){
var
n
,
p
=
d
||
1
,
o
=
e
||
1
,
q
=
h
/
2
,
r
=
i
/
2
,
s
=
j
.
vertices
.
length
;
if
(
"
x
"
===
a
&&
"
y
"
===
b
||
"
y
"
===
a
&&
"
x
"
===
b
)
n
=
"
z
"
;
else
if
(
"
x
"
===
a
&&
"
z
"
===
b
||
"
z
"
===
a
&&
"
x
"
===
b
)
n
=
"
y
"
,
o
=
f
||
1
;
else
if
(
"
z
"
===
a
&&
"
y
"
===
b
||
"
y
"
===
a
&&
"
z
"
===
b
)
n
=
"
x
"
,
p
=
f
||
1
;
var
l
=
p
+
1
,
u
=
o
+
1
,
v
=
h
/
p
,
y
=
i
/
o
,
T
=
new
THREE
.
Vector3
;
T
[
n
]
=
0
<
k
?
1
:
-
1
;
for
(
h
=
0
;
h
<
u
;
h
++
)
for
(
i
=
0
;
i
<
l
;
i
++
){
var
P
=
new
THREE
.
Vector3
;
P
[
a
]
=
(
i
*
v
-
q
)
*
c
;
P
[
b
]
=
(
h
*
y
-
r
)
*
g
;
P
[
n
]
=
k
;
j
.
vertices
.
push
(
new
THREE
.
Vertex
(
P
))}
for
(
h
=
0
;
h
<
o
;
h
++
)
for
(
i
=
0
;
i
<
p
;
i
++
)
a
=
new
THREE
.
Face4
(
i
+
l
*
h
+
s
,
i
+
l
*
(
h
+
1
)
+
s
,
i
+
1
+
l
*
(
h
+
1
)
+
s
,
i
+
1
+
l
*
h
+
s
),
a
.
normal
.
copy
(
T
),
a
.
vertexNormals
.
push
(
T
.
clone
(),
T
.
clone
(),
T
.
clone
(),
T
.
clone
()),
a
.
materialIndex
=
m
,
j
.
faces
.
push
(
a
),
j
.
faceVertexUvs
[
0
].
push
([
new
THREE
.
UV
(
i
/
p
,
h
/
o
),
new
THREE
.
UV
(
i
/
p
,(
h
+
1
)
/
o
),
new
THREE
.
UV
((
i
+
1
)
/
p
,(
h
+
1
)
/
o
),
new
THREE
.
UV
((
i
+
1
)
/
p
,
h
/
o
)])}
THREE
.
Geometry
.
call
(
this
);
var
j
=
this
,
k
=
a
/
2
,
p
=
b
/
2
,
m
=
c
/
2
,
o
,
q
,
n
,
r
,
s
,
u
;
if
(
void
0
!==
g
){
if
(
g
instanceof
Array
)
this
.
materials
=
g
;
else
{
this
.
materials
=
[];
for
(
o
=
0
;
6
>
o
;
o
++
)
this
.
materials
.
push
(
g
)}
o
=
0
;
r
=
1
;
q
=
2
;
s
=
3
;
n
=
4
;
u
=
5
}
else
this
.
materials
=
[];
this
.
sides
=
{
px
:
!
0
,
nx
:
!
0
,
py
:
!
0
,
ny
:
!
0
,
pz
:
!
0
,
nz
:
!
0
};
if
(
void
0
!=
h
)
for
(
var
v
in
h
)
void
0
!==
this
.
sides
[
v
]
&&
(
this
.
sides
[
v
]
=
h
[
v
]);
this
.
sides
.
px
&&
i
(
"
z
"
,
"
y
"
,
-
1
,
-
1
,
c
,
b
,
k
,
o
);
this
.
sides
.
nx
&&
i
(
"
z
"
,
"
y
"
,
1
,
-
1
,
c
,
b
,
-
k
,
r
);
this
.
sides
.
py
&&
i
(
"
x
"
,
"
z
"
,
1
,
1
,
a
,
c
,
p
,
q
);
this
.
sides
.
ny
&&
i
(
"
x
"
,
"
z
"
,
1
,
-
1
,
a
,
c
,
-
p
,
s
);
this
.
sides
.
pz
&&
i
(
"
x
"
,
"
y
"
,
1
,
-
1
,
a
,
b
,
m
,
n
);
this
.
sides
.
nz
&&
i
(
"
x
"
,
"
y
"
,
-
1
,
-
1
,
a
,
b
,
-
m
,
u
);
this
.
computeCentroids
();
this
.
mergeVertices
()};
THREE
.
CubeGeometry
.
prototype
=
new
THREE
.
Geometry
;
THREE
.
CubeGeometry
.
prototype
.
constructor
=
THREE
.
CubeGeometry
;
THREE
.
CylinderGeometry
=
function
(
a
,
b
,
c
,
d
,
e
,
f
){
THREE
.
Geometry
.
call
(
this
);
var
a
=
void
0
!==
a
?
a
:
20
,
b
=
void
0
!==
b
?
b
:
20
,
c
=
void
0
!==
c
?
c
:
100
,
g
=
c
/
2
,
d
=
d
||
8
,
e
=
e
||
1
,
h
,
i
,
j
=
[],
k
=
[];
for
(
i
=
0
;
i
<=
e
;
i
++
){
var
p
=
[],
m
=
[],
o
=
i
/
e
,
q
=
o
*
(
b
-
a
)
+
a
;
for
(
h
=
0
;
h
<=
d
;
h
++
){
var
n
=
h
/
d
,
r
=
q
*
Math
.
sin
(
2
*
n
*
Math
.
PI
),
s
=-
o
*
c
+
g
,
u
=
q
*
Math
.
cos
(
2
*
n
*
Math
.
PI
);
this
.
vertices
.
push
(
new
THREE
.
Vertex
(
new
THREE
.
Vector3
(
r
,
s
,
u
)));
p
.
push
(
this
.
vertices
.
length
-
1
);
m
.
push
(
new
THREE
.
UV
(
n
,
o
))}
j
.
push
(
p
);
k
.
push
(
m
)}
for
(
i
=
0
;
i
<
e
;
i
++
)
for
(
h
=
0
;
h
<
d
;
h
++
){
var
c
=
j
[
i
][
h
],
p
=
j
[
i
+
1
][
h
],
...
...
build/custom/ThreeWebGL.js
浏览文件 @
4989d029
...
...
@@ -100,10 +100,10 @@ oa=new THREE.Vector3,ka=new THREE.Vector3,X=new THREE.Vector3;for(b=0,c=this.ver
E
=
L
[
e
],
oa
.
copy
(
E
),
oa
.
subSelf
(
X
.
multiplyScalar
(
X
.
dot
(
E
))).
normalize
(),
ka
.
cross
(
g
.
vertexNormals
[
d
],
E
),
e
=
ka
.
dot
(
K
[
e
]),
e
=
0
>
e
?
-
1
:
1
,
g
.
vertexTangents
[
d
]
=
new
THREE
.
Vector4
(
oa
.
x
,
oa
.
y
,
oa
.
z
,
e
)}
this
.
hasTangents
=!
0
},
computeBoundingBox
:
function
(){
if
(
!
this
.
boundingBox
)
this
.
boundingBox
=
{
min
:
new
THREE
.
Vector3
,
max
:
new
THREE
.
Vector3
};
if
(
0
<
this
.
vertices
.
length
){
var
a
;
a
=
this
.
vertices
[
0
].
position
;
this
.
boundingBox
.
min
.
copy
(
a
);
this
.
boundingBox
.
max
.
copy
(
a
);
for
(
var
b
=
this
.
boundingBox
.
min
,
c
=
this
.
boundingBox
.
max
,
d
=
1
,
e
=
this
.
vertices
.
length
;
d
<
e
;
d
++
){
a
=
this
.
vertices
[
d
].
position
;
if
(
a
.
x
<
b
.
x
)
b
.
x
=
a
.
x
;
else
if
(
a
.
x
>
c
.
x
)
c
.
x
=
a
.
x
;
if
(
a
.
y
<
b
.
y
)
b
.
y
=
a
.
y
;
else
if
(
a
.
y
>
c
.
y
)
c
.
y
=
a
.
y
;
if
(
a
.
z
<
b
.
z
)
b
.
z
=
a
.
z
;
else
if
(
a
.
z
>
c
.
z
)
c
.
z
=
a
.
z
}}
else
this
.
boundingBox
.
min
.
set
(
0
,
0
,
0
),
this
.
boundingBox
.
max
.
set
(
0
,
0
,
0
)},
computeBoundingSphere
:
function
(){
if
(
!
this
.
boundingSphere
)
this
.
boundingSphere
=
{
radius
:
0
};
for
(
var
a
,
b
=
0
,
c
=
0
,
d
=
this
.
vertices
.
length
;
c
<
d
;
c
++
)
a
=
this
.
vertices
[
c
].
position
.
length
(),
a
>
b
&&
(
b
=
a
);
this
.
boundingSphere
.
radius
=
b
},
mergeVertices
:
function
(){
var
a
=
{},
b
=
[],
c
=
[],
d
,
e
=
Math
.
pow
(
10
,
4
),
g
,
h
;
for
(
g
=
0
,
h
=
this
.
vertices
.
length
;
g
<
h
;
g
++
)
d
=
this
.
vertices
[
g
].
position
,
d
=
[
Math
.
round
(
d
.
x
*
e
),
Math
.
round
(
d
.
y
*
e
),
Math
.
round
(
d
.
z
*
e
)].
join
(
"
_
"
),
void
0
===
a
[
d
]?(
a
[
d
]
=
g
,
b
.
push
(
this
.
vertices
[
g
]),
c
[
g
]
=
b
.
length
-
1
):
c
[
g
]
=
c
[
a
[
d
]];
for
(
g
=
0
,
h
=
this
.
faces
.
length
;
g
<
h
;
g
++
)
if
(
a
=
this
.
faces
[
g
],
a
instanceof
THREE
.
Face3
)
a
.
a
=
c
[
a
.
a
],
a
.
b
=
c
[
a
.
b
],
a
.
c
=
c
[
a
.
c
];
else
if
(
a
instanceof
THREE
.
Face4
)
a
.
a
=
c
[
a
.
a
],
a
.
b
=
c
[
a
.
b
],
a
.
c
=
c
[
a
.
c
],
a
.
d
=
c
[
a
.
d
];
this
.
vertices
=
b
}};
THREE
.
GeometryCount
=
0
;
THREE
.
Spline
=
function
(
a
){
function
b
(
a
,
b
,
c
,
d
,
e
,
g
,
h
){
a
=
0.5
*
(
c
-
a
);
d
=
0.5
*
(
d
-
b
);
return
(
2
*
(
b
-
c
)
+
a
+
d
)
*
h
+
(
-
3
*
(
b
-
c
)
-
2
*
a
-
d
)
*
g
+
a
*
e
+
b
}
this
.
points
=
a
;
var
c
=
[],
d
=
{
x
:
0
,
y
:
0
,
z
:
0
},
e
,
g
,
h
,
i
,
m
,
k
,
j
,
n
,
l
;
this
.
initFromArray
=
function
(
a
){
this
.
points
=
[];
for
(
var
b
=
0
;
b
<
a
.
length
;
b
++
)
this
.
points
[
b
]
=
{
x
:
a
[
b
][
0
],
y
:
a
[
b
][
1
],
z
:
a
[
b
][
2
]}};
this
.
getPoint
=
function
(
q
){
e
=
(
this
.
points
.
length
-
1
)
*
q
;
g
=
Math
.
floor
(
e
);
h
=
e
-
g
;
c
[
0
]
=
0
===
g
?
g
:
g
-
1
;
c
[
1
]
=
g
;
c
[
2
]
=
g
>
a
.
length
-
2
?
a
.
length
-
1
:
g
+
1
;
c
[
3
]
=
g
>
a
.
length
-
3
?
a
.
length
-
1
:
g
+
2
;
k
=
this
.
points
[
c
[
0
]];
j
=
this
.
points
[
c
[
1
]];
n
=
this
.
points
[
c
[
2
]];
l
=
this
.
points
[
c
[
3
]];
i
=
h
*
h
;
m
=
h
*
i
;
d
.
x
=
b
(
k
.
x
,
j
.
x
,
n
.
x
,
l
.
x
,
h
,
i
,
m
);
d
.
y
=
b
(
k
.
y
,
j
.
y
,
n
.
y
,
l
.
y
,
h
,
i
,
m
);
d
.
z
=
b
(
k
.
z
,
j
.
z
,
n
.
z
,
l
.
z
,
h
,
i
,
m
);
return
d
};
this
.
getControlPointsArray
=
function
(){
var
a
,
b
,
c
=
this
.
points
.
length
,
d
=
[];
for
(
a
=
0
;
a
<
c
;
a
++
)
b
=
this
.
points
[
a
],
d
[
a
]
=
[
b
.
x
,
b
.
y
,
b
.
z
];
return
d
};
this
.
getLength
=
function
(
a
){
var
b
,
c
,
d
,
e
=
b
=
b
=
0
,
g
=
new
THREE
.
Vector3
,
h
=
new
THREE
.
Vector3
,
i
=
[],
j
=
0
;
i
[
0
]
=
0
;
a
||
(
a
=
100
);
c
=
this
.
points
.
length
*
a
;
g
.
copy
(
this
.
points
[
0
]);
for
(
a
=
1
;
a
<
c
;
a
++
)
b
=
a
/
c
,
d
=
this
.
getPoint
(
b
),
h
.
copy
(
d
),
j
+=
h
.
distanceTo
(
g
),
g
.
copy
(
d
),
b
*=
this
.
points
.
length
-
1
,
b
=
Math
.
floor
(
b
),
b
!=
e
&&
(
i
[
b
]
=
j
,
e
=
b
);
i
[
i
.
length
]
=
j
;
return
{
chunks
:
i
,
total
:
j
}};
this
.
reparametrizeByArcLength
=
function
(
a
){
var
b
,
c
,
d
,
e
,
g
,
h
,
i
=
[],
j
=
new
THREE
.
Vector3
,
k
=
this
.
getLength
();
i
.
push
(
j
.
copy
(
this
.
points
[
0
]).
clone
());
for
(
b
=
1
;
b
<
this
.
points
.
length
;
b
++
){
c
=
k
.
chunks
[
b
]
-
k
.
chunks
[
b
-
1
];
h
=
Math
.
ceil
(
a
*
c
/
k
.
total
);
e
=
(
b
-
1
)
/
(
this
.
points
.
length
-
1
);
g
=
b
/
(
this
.
points
.
length
-
1
);
for
(
c
=
1
;
c
<
h
-
1
;
c
++
)
d
=
e
+
c
*
(
1
/
h
)
*
(
g
-
e
),
d
=
this
.
getPoint
(
d
),
i
.
push
(
j
.
copy
(
d
).
clone
());
i
.
push
(
j
.
copy
(
this
.
points
[
b
]).
clone
())}
this
.
points
=
i
}};
THREE
.
Camera
=
function
(){
THREE
.
Object3D
.
call
(
this
);
this
.
matrixWorldInverse
=
new
THREE
.
Matrix4
;
this
.
projectionMatrix
=
new
THREE
.
Matrix4
;
this
.
projectionMatrixInverse
=
new
THREE
.
Matrix4
};
THREE
.
Camera
.
prototype
=
new
THREE
.
Object3D
;
THREE
.
Camera
.
prototype
.
constructor
=
THREE
.
Camera
;
THREE
.
Camera
.
prototype
.
lookAt
=
function
(
a
){
this
.
matrix
.
lookAt
(
this
.
position
,
a
,
this
.
up
);
this
.
rotationAutoUpdate
&&
this
.
rotation
.
getRotationFromMatrix
(
this
.
matrix
)};
THREE
.
Spline
=
function
(
a
){
function
b
(
a
,
b
,
c
,
d
,
e
,
g
,
h
){
a
=
0.5
*
(
c
-
a
);
d
=
0.5
*
(
d
-
b
);
return
(
2
*
(
b
-
c
)
+
a
+
d
)
*
h
+
(
-
3
*
(
b
-
c
)
-
2
*
a
-
d
)
*
g
+
a
*
e
+
b
}
this
.
points
=
a
;
var
c
=
[],
d
=
{
x
:
0
,
y
:
0
,
z
:
0
},
e
,
g
,
h
,
i
,
m
,
k
,
j
,
n
,
l
;
this
.
initFromArray
=
function
(
a
){
this
.
points
=
[];
for
(
var
b
=
0
;
b
<
a
.
length
;
b
++
)
this
.
points
[
b
]
=
{
x
:
a
[
b
][
0
],
y
:
a
[
b
][
1
],
z
:
a
[
b
][
2
]}};
this
.
getPoint
=
function
(
a
){
e
=
(
this
.
points
.
length
-
1
)
*
a
;
g
=
Math
.
floor
(
e
);
h
=
e
-
g
;
c
[
0
]
=
0
===
g
?
g
:
g
-
1
;
c
[
1
]
=
g
;
c
[
2
]
=
g
>
this
.
points
.
length
-
2
?
this
.
points
.
length
-
1
:
g
+
1
;
c
[
3
]
=
g
>
this
.
points
.
length
-
3
?
this
.
points
.
length
-
1
:
g
+
2
;
k
=
this
.
points
[
c
[
0
]];
j
=
this
.
points
[
c
[
1
]];
n
=
this
.
points
[
c
[
2
]];
l
=
this
.
points
[
c
[
3
]];
i
=
h
*
h
;
m
=
h
*
i
;
d
.
x
=
b
(
k
.
x
,
j
.
x
,
n
.
x
,
l
.
x
,
h
,
i
,
m
);
d
.
y
=
b
(
k
.
y
,
j
.
y
,
n
.
y
,
l
.
y
,
h
,
i
,
m
);
d
.
z
=
b
(
k
.
z
,
j
.
z
,
n
.
z
,
l
.
z
,
h
,
i
,
m
);
return
d
};
this
.
getControlPointsArray
=
function
(){
var
a
,
b
,
c
=
this
.
points
.
length
,
d
=
[];
for
(
a
=
0
;
a
<
c
;
a
++
)
b
=
this
.
points
[
a
],
d
[
a
]
=
[
b
.
x
,
b
.
y
,
b
.
z
];
return
d
};
this
.
getLength
=
function
(
a
){
var
b
,
c
,
d
,
e
=
b
=
b
=
0
,
g
=
new
THREE
.
Vector3
,
h
=
new
THREE
.
Vector3
,
i
=
[],
j
=
0
;
i
[
0
]
=
0
;
a
||
(
a
=
100
);
c
=
this
.
points
.
length
*
a
;
g
.
copy
(
this
.
points
[
0
]);
for
(
a
=
1
;
a
<
c
;
a
++
)
b
=
a
/
c
,
d
=
this
.
getPoint
(
b
),
h
.
copy
(
d
),
j
+=
h
.
distanceTo
(
g
),
g
.
copy
(
d
),
b
*=
this
.
points
.
length
-
1
,
b
=
Math
.
floor
(
b
),
b
!=
e
&&
(
i
[
b
]
=
j
,
e
=
b
);
i
[
i
.
length
]
=
j
;
return
{
chunks
:
i
,
total
:
j
}};
this
.
reparametrizeByArcLength
=
function
(
a
){
var
b
,
c
,
d
,
e
,
g
,
h
,
i
=
[],
j
=
new
THREE
.
Vector3
,
k
=
this
.
getLength
();
i
.
push
(
j
.
copy
(
this
.
points
[
0
]).
clone
());
for
(
b
=
1
;
b
<
this
.
points
.
length
;
b
++
){
c
=
k
.
chunks
[
b
]
-
k
.
chunks
[
b
-
1
];
h
=
Math
.
ceil
(
a
*
c
/
k
.
total
);
e
=
(
b
-
1
)
/
(
this
.
points
.
length
-
1
);
g
=
b
/
(
this
.
points
.
length
-
1
);
for
(
c
=
1
;
c
<
h
-
1
;
c
++
)
d
=
e
+
c
*
(
1
/
h
)
*
(
g
-
e
),
d
=
this
.
getPoint
(
d
),
i
.
push
(
j
.
copy
(
d
).
clone
());
i
.
push
(
j
.
copy
(
this
.
points
[
b
]).
clone
())}
this
.
points
=
i
}};
THREE
.
Camera
=
function
(){
THREE
.
Object3D
.
call
(
this
);
this
.
matrixWorldInverse
=
new
THREE
.
Matrix4
;
this
.
projectionMatrix
=
new
THREE
.
Matrix4
;
this
.
projectionMatrixInverse
=
new
THREE
.
Matrix4
};
THREE
.
Camera
.
prototype
=
new
THREE
.
Object3D
;
THREE
.
Camera
.
prototype
.
constructor
=
THREE
.
Camera
;
THREE
.
Camera
.
prototype
.
lookAt
=
function
(
a
){
this
.
matrix
.
lookAt
(
this
.
position
,
a
,
this
.
up
);
this
.
rotationAutoUpdate
&&
this
.
rotation
.
getRotationFromMatrix
(
this
.
matrix
)};
THREE
.
OrthographicCamera
=
function
(
a
,
b
,
c
,
d
,
e
,
g
){
THREE
.
Camera
.
call
(
this
);
this
.
left
=
a
;
this
.
right
=
b
;
this
.
top
=
c
;
this
.
bottom
=
d
;
this
.
near
=
void
0
!==
e
?
e
:
0.1
;
this
.
far
=
void
0
!==
g
?
g
:
2
E3
;
this
.
updateProjectionMatrix
()};
THREE
.
OrthographicCamera
.
prototype
=
new
THREE
.
Camera
;
THREE
.
OrthographicCamera
.
prototype
.
constructor
=
THREE
.
OrthographicCamera
;
THREE
.
OrthographicCamera
.
prototype
.
updateProjectionMatrix
=
function
(){
this
.
projectionMatrix
=
THREE
.
Matrix4
.
makeOrtho
(
this
.
left
,
this
.
right
,
this
.
top
,
this
.
bottom
,
this
.
near
,
this
.
far
)};
THREE
.
PerspectiveCamera
=
function
(
a
,
b
,
c
,
d
){
THREE
.
Camera
.
call
(
this
);
this
.
fov
=
void
0
!==
a
?
a
:
50
;
this
.
aspect
=
void
0
!==
b
?
b
:
1
;
this
.
near
=
void
0
!==
c
?
c
:
0.1
;
this
.
far
=
void
0
!==
d
?
d
:
2
E3
;
this
.
updateProjectionMatrix
()};
THREE
.
PerspectiveCamera
.
prototype
=
new
THREE
.
Camera
;
THREE
.
PerspectiveCamera
.
prototype
.
constructor
=
THREE
.
PerspectiveCamera
;
THREE
.
PerspectiveCamera
.
prototype
.
setLens
=
function
(
a
,
b
){
this
.
fov
=
2
*
Math
.
atan
((
void
0
!==
b
?
b
:
24
)
/
(
2
*
a
))
*
(
180
/
Math
.
PI
);
this
.
updateProjectionMatrix
()};
THREE
.
PerspectiveCamera
.
prototype
.
setViewOffset
=
function
(
a
,
b
,
c
,
d
,
e
,
g
){
this
.
fullWidth
=
a
;
this
.
fullHeight
=
b
;
this
.
x
=
c
;
this
.
y
=
d
;
this
.
width
=
e
;
this
.
height
=
g
;
this
.
updateProjectionMatrix
()};
...
...
examples/misc_camera_path.html
浏览文件 @
4989d029
...
...
@@ -61,7 +61,7 @@
function
init
()
{
scene
=
new
THREE
.
Scene
();
scene
.
fog
=
new
THREE
.
FogExp2
(
0x
ffffff
,
0.002
);
scene
.
fog
=
new
THREE
.
FogExp2
(
0x
cccccc
,
0.002
);
camera
=
new
THREE
.
PerspectiveCamera
(
40
,
window
.
innerWidth
/
window
.
innerHeight
,
1
,
1000
);
...
...
@@ -117,7 +117,7 @@
// renderer
renderer
=
new
THREE
.
WebGLRenderer
(
{
antialias
:
false
}
);
renderer
.
setClearColor
Hex
(
0xffffff
,
1
);
renderer
.
setClearColor
(
scene
.
fog
.
color
,
1
);
renderer
.
setSize
(
window
.
innerWidth
,
window
.
innerHeight
);
container
=
document
.
getElementById
(
'
container
'
);
...
...
examples/misc_camera_roll.html
浏览文件 @
4989d029
...
...
@@ -62,7 +62,7 @@
// scene and camera
scene
=
new
THREE
.
Scene
();
scene
.
fog
=
new
THREE
.
FogExp2
(
0x
ffffff
,
0.002
);
scene
.
fog
=
new
THREE
.
FogExp2
(
0x
cccccc
,
0.002
);
camera
=
new
THREE
.
PerspectiveCamera
(
60
,
window
.
innerWidth
/
window
.
innerHeight
,
1
,
1000
);
...
...
@@ -102,14 +102,14 @@
light
.
position
.
set
(
-
1
,
-
1
,
-
1
);
scene
.
add
(
light
);
light
=
new
THREE
.
AmbientLight
(
0x
222222
);
light
=
new
THREE
.
AmbientLight
(
0x
555555
);
scene
.
add
(
light
);
// renderer
renderer
=
new
THREE
.
WebGLRenderer
(
{
antialias
:
false
}
);
renderer
.
setClearColor
Hex
(
0xffffff
,
1
);
renderer
.
setClearColor
(
scene
.
fog
.
color
,
1
);
renderer
.
setSize
(
window
.
innerWidth
,
window
.
innerHeight
);
container
=
document
.
getElementById
(
'
container
'
);
...
...
examples/misc_camera_trackball.html
浏览文件 @
4989d029
...
...
@@ -60,7 +60,7 @@
// scene and camera
scene
=
new
THREE
.
Scene
();
scene
.
fog
=
new
THREE
.
FogExp2
(
0x
ffffff
,
0.002
);
scene
.
fog
=
new
THREE
.
FogExp2
(
0x
cccccc
,
0.002
);
camera
=
new
THREE
.
PerspectiveCamera
(
60
,
window
.
innerWidth
/
window
.
innerHeight
,
1
,
1000
);
camera
.
position
.
z
=
500
;
...
...
@@ -118,7 +118,7 @@
// renderer
renderer
=
new
THREE
.
WebGLRenderer
(
{
antialias
:
false
}
);
renderer
.
setClearColor
Hex
(
0xffffff
,
1
);
renderer
.
setClearColor
(
scene
.
fog
.
color
,
1
);
renderer
.
setSize
(
window
.
innerWidth
,
window
.
innerHeight
);
container
=
document
.
getElementById
(
'
container
'
);
...
...
src/core/Spline.js
浏览文件 @
4989d029
...
...
@@ -34,8 +34,8 @@ THREE.Spline = function ( points ) {
c
[
0
]
=
intPoint
===
0
?
intPoint
:
intPoint
-
1
;
c
[
1
]
=
intPoint
;
c
[
2
]
=
intPoint
>
points
.
length
-
2
?
points
.
length
-
1
:
intPoint
+
1
;
c
[
3
]
=
intPoint
>
points
.
length
-
3
?
points
.
length
-
1
:
intPoint
+
2
;
c
[
2
]
=
intPoint
>
this
.
points
.
length
-
2
?
this
.
points
.
length
-
1
:
intPoint
+
1
;
c
[
3
]
=
intPoint
>
this
.
points
.
length
-
3
?
this
.
points
.
length
-
1
:
intPoint
+
2
;
pa
=
this
.
points
[
c
[
0
]
];
pb
=
this
.
points
[
c
[
1
]
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录