Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
bd9deabb
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,发现更多精彩内容 >>
提交
bd9deabb
编写于
3月 14, 2013
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
efa4d964
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
3 deletion
+16
-3
build/three.js
build/three.js
+14
-1
build/three.min.js
build/three.min.js
+2
-2
未找到文件。
build/three.js
浏览文件 @
bd9deabb
...
...
@@ -8953,6 +8953,18 @@ THREE.Light = function ( hex ) {
};
THREE.Light.prototype = Object.create( THREE.Object3D.prototype );
THREE.Light.prototype.clone = function ( light ) {
if ( light === undefined ) light = new THREE.Light();
THREE.Object3D.prototype.clone.call( this, light );
light.color.copy( this.color );
return light;
};
/**
* @author mrdoob / http://mrdoob.com/
*/
...
...
@@ -9087,7 +9099,8 @@ THREE.PointLight.prototype.clone = function () {
var light = new THREE.PointLight();
light.color.copy( this.color );
THREE.Light.prototype.clone.call( this, light );
light.position.copy( this.position );
light.intensity = this.intensity;
light.distance = this.distance;
...
...
build/three.min.js
浏览文件 @
bd9deabb
...
...
@@ -181,8 +181,8 @@ void 0===this.attributes.normal||void 0===this.attributes.uv)console.warn("Missi
new
THREE
.
Vector3
,
j
[
g
]
=
new
THREE
.
Vector3
;
var
l
,
m
,
p
,
s
,
r
,
n
,
q
,
z
,
t
,
x
,
u
,
B
,
G
,
D
,
w
,
f
=
new
THREE
.
Vector3
,
g
=
new
THREE
.
Vector3
,
I
,
J
,
E
,
Z
,
A
,
S
,
F
,
H
=
this
.
offsets
;
E
=
0
;
for
(
Z
=
H
.
length
;
E
<
Z
;
++
E
){
J
=
H
[
E
].
start
;
A
=
H
[
E
].
count
;
var
K
=
H
[
E
].
index
;
I
=
J
;
for
(
J
+=
A
;
I
<
J
;
I
+=
3
)
A
=
K
+
b
[
I
],
S
=
K
+
b
[
I
+
1
],
F
=
K
+
b
[
I
+
2
],
l
=
c
[
3
*
A
],
m
=
c
[
3
*
A
+
1
],
p
=
c
[
3
*
A
+
2
],
s
=
c
[
3
*
S
],
r
=
c
[
3
*
S
+
1
],
n
=
c
[
3
*
S
+
2
],
q
=
c
[
3
*
F
],
z
=
c
[
3
*
F
+
1
],
t
=
c
[
3
*
F
+
2
],
x
=
e
[
2
*
A
],
u
=
e
[
2
*
A
+
1
],
B
=
e
[
2
*
S
],
G
=
e
[
2
*
S
+
1
],
D
=
e
[
2
*
F
],
w
=
e
[
2
*
F
+
1
],
s
-=
l
,
l
=
q
-
l
,
r
-=
m
,
m
=
z
-
m
,
n
-=
p
,
p
=
t
-
p
,
B
-=
x
,
x
=
D
-
x
,
G
-=
u
,
u
=
w
-
u
,
w
=
1
/
(
B
*
u
-
x
*
G
),
f
.
set
((
u
*
s
-
G
*
l
)
*
w
,(
u
*
r
-
G
*
m
)
*
w
,(
u
*
n
-
G
*
p
)
*
w
),
g
.
set
((
B
*
l
-
x
*
s
)
*
w
,(
B
*
m
-
x
*
r
)
*
w
,(
B
*
p
-
x
*
n
)
*
w
),
i
[
A
].
add
(
f
),
i
[
S
].
add
(
f
),
i
[
F
].
add
(
f
),
j
[
A
].
add
(
g
),
j
[
S
].
add
(
g
),
j
[
F
].
add
(
g
)}
var
N
=
new
THREE
.
Vector3
,
fa
=
new
THREE
.
Vector3
,
ma
=
new
THREE
.
Vector3
,
eb
=
new
THREE
.
Vector3
,
M
,
U
,
ja
;
E
=
0
;
for
(
Z
=
H
.
length
;
E
<
Z
;
++
E
){
J
=
H
[
E
].
start
;
A
=
H
[
E
].
count
;
K
=
H
[
E
].
index
;
I
=
J
;
for
(
J
+=
A
;
I
<
J
;
I
+=
3
)
A
=
K
+
b
[
I
],
S
=
K
+
b
[
I
+
1
],
F
=
K
+
b
[
I
+
2
],
a
(
A
),
a
(
S
),
a
(
F
)}
this
.
tangentsNeedUpdate
=
this
.
hasTangents
=!
0
}},
dispose
:
function
(){
this
.
dispatchEvent
({
type
:
"
dispose
"
})}};
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
=
Object
.
create
(
THREE
.
Object3D
.
prototype
);
THREE
.
Camera
.
prototype
.
lookAt
=
function
(){
var
a
=
new
THREE
.
Matrix4
;
return
function
(
b
){
a
.
lookAt
(
this
.
position
,
b
,
this
.
up
);
!
0
===
this
.
useQuaternion
?
this
.
quaternion
.
setFromRotationMatrix
(
a
):
this
.
rotation
.
setEulerFromRotationMatrix
(
a
,
this
.
eulerOrder
)}}();
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
=
Object
.
create
(
THREE
.
Camera
.
prototype
);
THREE
.
OrthographicCamera
.
prototype
.
updateProjectionMatrix
=
function
(){
this
.
projectionMatrix
.
makeOrthographic
(
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
=
Object
.
create
(
THREE
.
Camera
.
prototype
);
THREE
.
PerspectiveCamera
.
prototype
.
setLens
=
function
(
a
,
b
){
void
0
===
b
&&
(
b
=
24
);
this
.
fov
=
2
*
THREE
.
Math
.
radToDeg
(
Math
.
atan
(
b
/
(
2
*
a
)));
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
()};
THREE
.
PerspectiveCamera
.
prototype
.
updateProjectionMatrix
=
function
(){
if
(
this
.
fullWidth
){
var
a
=
this
.
fullWidth
/
this
.
fullHeight
,
b
=
Math
.
tan
(
THREE
.
Math
.
degToRad
(
0.5
*
this
.
fov
))
*
this
.
near
,
c
=-
b
,
d
=
a
*
c
,
a
=
Math
.
abs
(
a
*
b
-
d
),
c
=
Math
.
abs
(
b
-
c
);
this
.
projectionMatrix
.
makeFrustum
(
d
+
this
.
x
*
a
/
this
.
fullWidth
,
d
+
(
this
.
x
+
this
.
width
)
*
a
/
this
.
fullWidth
,
b
-
(
this
.
y
+
this
.
height
)
*
c
/
this
.
fullHeight
,
b
-
this
.
y
*
c
/
this
.
fullHeight
,
this
.
near
,
this
.
far
)}
else
this
.
projectionMatrix
.
makePerspective
(
this
.
fov
,
this
.
aspect
,
this
.
near
,
this
.
far
)};
THREE
.
Light
=
function
(
a
){
THREE
.
Object3D
.
call
(
this
);
this
.
color
=
new
THREE
.
Color
(
a
)};
THREE
.
Light
.
prototype
=
Object
.
create
(
THREE
.
Object3D
.
prototype
);
THREE
.
AmbientLight
=
function
(
a
){
THREE
.
Light
.
call
(
this
,
a
)};
THREE
.
AmbientLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
AreaLight
=
function
(
a
,
b
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
normal
=
new
THREE
.
Vector3
(
0
,
-
1
,
0
);
this
.
right
=
new
THREE
.
Vector3
(
1
,
0
,
0
);
this
.
intensity
=
void
0
!==
b
?
b
:
1
;
this
.
height
=
this
.
width
=
1
;
this
.
constantAttenuation
=
1.5
;
this
.
linearAttenuation
=
0.5
;
this
.
quadraticAttenuation
=
0.1
};
THREE
.
AreaLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
DirectionalLight
=
function
(
a
,
b
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
position
=
new
THREE
.
Vector3
(
0
,
1
,
0
);
this
.
target
=
new
THREE
.
Object3D
;
this
.
intensity
=
void
0
!==
b
?
b
:
1
;
this
.
onlyShadow
=
this
.
castShadow
=!
1
;
this
.
shadowCameraNear
=
50
;
this
.
shadowCameraFar
=
5
E3
;
this
.
shadowCameraLeft
=-
500
;
this
.
shadowCameraTop
=
this
.
shadowCameraRight
=
500
;
this
.
shadowCameraBottom
=-
500
;
this
.
shadowCameraVisible
=!
1
;
this
.
shadowBias
=
0
;
this
.
shadowDarkness
=
0.5
;
this
.
shadowMapHeight
=
this
.
shadowMapWidth
=
512
;
this
.
shadowCascade
=!
1
;
this
.
shadowCascadeOffset
=
new
THREE
.
Vector3
(
0
,
0
,
-
1
E3
);
this
.
shadowCascadeCount
=
2
;
this
.
shadowCascadeBias
=
[
0
,
0
,
0
];
this
.
shadowCascadeWidth
=
[
512
,
512
,
512
];
this
.
shadowCascadeHeight
=
[
512
,
512
,
512
];
this
.
shadowCascadeNearZ
=
[
-
1
,
0.99
,
0.998
];
this
.
shadowCascadeFarZ
=
[
0.99
,
0.998
,
1
];
this
.
shadowCascadeArray
=
[];
this
.
shadowMatrix
=
this
.
shadowCamera
=
this
.
shadowMapSize
=
this
.
shadowMap
=
null
};
THREE
.
DirectionalLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
HemisphereLight
=
function
(
a
,
b
,
c
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
groundColor
=
new
THREE
.
Color
(
b
);
this
.
position
=
new
THREE
.
Vector3
(
0
,
100
,
0
);
this
.
intensity
=
void
0
!==
c
?
c
:
1
};
THREE
.
HemisphereLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
PointLight
=
function
(
a
,
b
,
c
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
position
=
new
THREE
.
Vector3
(
0
,
0
,
0
);
this
.
intensity
=
void
0
!==
b
?
b
:
1
;
this
.
distance
=
void
0
!==
c
?
c
:
0
};
THREE
.
PointLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
PointLight
.
prototype
.
clone
=
function
(){
var
a
=
new
THREE
.
PointLight
;
a
.
color
.
copy
(
this
.
color
);
a
.
position
.
copy
(
this
.
position
);
a
.
intensity
=
this
.
intensity
;
a
.
distance
=
this
.
distance
;
return
a
};
THREE
.
SpotLight
=
function
(
a
,
b
,
c
,
d
,
e
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
position
=
new
THREE
.
Vector3
(
0
,
1
,
0
);
this
.
target
=
new
THREE
.
Object3D
;
this
.
intensity
=
void
0
!==
b
?
b
:
1
;
this
.
distance
=
void
0
!==
c
?
c
:
0
;
this
.
angle
=
void
0
!==
d
?
d
:
Math
.
PI
/
2
;
this
.
exponent
=
void
0
!==
e
?
e
:
10
;
this
.
onlyShadow
=
this
.
castShadow
=!
1
;
this
.
shadowCameraNear
=
50
;
this
.
shadowCameraFar
=
5
E3
;
this
.
shadowCameraFov
=
50
;
this
.
shadowCameraVisible
=!
1
;
this
.
shadowBias
=
0
;
this
.
shadowDarkness
=
0.5
;
this
.
shadowMapHeight
=
this
.
shadowMapWidth
=
512
;
this
.
shadowMatrix
=
this
.
shadowCamera
=
THREE
.
PerspectiveCamera
.
prototype
.
updateProjectionMatrix
=
function
(){
if
(
this
.
fullWidth
){
var
a
=
this
.
fullWidth
/
this
.
fullHeight
,
b
=
Math
.
tan
(
THREE
.
Math
.
degToRad
(
0.5
*
this
.
fov
))
*
this
.
near
,
c
=-
b
,
d
=
a
*
c
,
a
=
Math
.
abs
(
a
*
b
-
d
),
c
=
Math
.
abs
(
b
-
c
);
this
.
projectionMatrix
.
makeFrustum
(
d
+
this
.
x
*
a
/
this
.
fullWidth
,
d
+
(
this
.
x
+
this
.
width
)
*
a
/
this
.
fullWidth
,
b
-
(
this
.
y
+
this
.
height
)
*
c
/
this
.
fullHeight
,
b
-
this
.
y
*
c
/
this
.
fullHeight
,
this
.
near
,
this
.
far
)}
else
this
.
projectionMatrix
.
makePerspective
(
this
.
fov
,
this
.
aspect
,
this
.
near
,
this
.
far
)};
THREE
.
Light
=
function
(
a
){
THREE
.
Object3D
.
call
(
this
);
this
.
color
=
new
THREE
.
Color
(
a
)};
THREE
.
Light
.
prototype
=
Object
.
create
(
THREE
.
Object3D
.
prototype
);
THREE
.
Light
.
prototype
.
clone
=
function
(
a
){
void
0
===
a
&&
(
a
=
new
THREE
.
Light
);
THREE
.
Object3D
.
prototype
.
clone
.
call
(
this
,
a
);
a
.
color
.
copy
(
this
.
color
);
return
a
};
THREE
.
AmbientLight
=
function
(
a
){
THREE
.
Light
.
call
(
this
,
a
)};
THREE
.
AmbientLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
AreaLight
=
function
(
a
,
b
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
normal
=
new
THREE
.
Vector3
(
0
,
-
1
,
0
);
this
.
right
=
new
THREE
.
Vector3
(
1
,
0
,
0
);
this
.
intensity
=
void
0
!==
b
?
b
:
1
;
this
.
height
=
this
.
width
=
1
;
this
.
constantAttenuation
=
1.5
;
this
.
linearAttenuation
=
0.5
;
this
.
quadraticAttenuation
=
0.1
};
THREE
.
AreaLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
DirectionalLight
=
function
(
a
,
b
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
position
=
new
THREE
.
Vector3
(
0
,
1
,
0
);
this
.
target
=
new
THREE
.
Object3D
;
this
.
intensity
=
void
0
!==
b
?
b
:
1
;
this
.
onlyShadow
=
this
.
castShadow
=!
1
;
this
.
shadowCameraNear
=
50
;
this
.
shadowCameraFar
=
5
E3
;
this
.
shadowCameraLeft
=-
500
;
this
.
shadowCameraTop
=
this
.
shadowCameraRight
=
500
;
this
.
shadowCameraBottom
=-
500
;
this
.
shadowCameraVisible
=!
1
;
this
.
shadowBias
=
0
;
this
.
shadowDarkness
=
0.5
;
this
.
shadowMapHeight
=
this
.
shadowMapWidth
=
512
;
this
.
shadowCascade
=!
1
;
this
.
shadowCascadeOffset
=
new
THREE
.
Vector3
(
0
,
0
,
-
1
E3
);
this
.
shadowCascadeCount
=
2
;
this
.
shadowCascadeBias
=
[
0
,
0
,
0
];
this
.
shadowCascadeWidth
=
[
512
,
512
,
512
];
this
.
shadowCascadeHeight
=
[
512
,
512
,
512
];
this
.
shadowCascadeNearZ
=
[
-
1
,
0.99
,
0.998
];
this
.
shadowCascadeFarZ
=
[
0.99
,
0.998
,
1
];
this
.
shadowCascadeArray
=
[];
this
.
shadowMatrix
=
this
.
shadowCamera
=
this
.
shadowMapSize
=
this
.
shadowMap
=
null
};
THREE
.
DirectionalLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
HemisphereLight
=
function
(
a
,
b
,
c
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
groundColor
=
new
THREE
.
Color
(
b
);
this
.
position
=
new
THREE
.
Vector3
(
0
,
100
,
0
);
this
.
intensity
=
void
0
!==
c
?
c
:
1
};
THREE
.
HemisphereLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
PointLight
=
function
(
a
,
b
,
c
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
position
=
new
THREE
.
Vector3
(
0
,
0
,
0
);
this
.
intensity
=
void
0
!==
b
?
b
:
1
;
this
.
distance
=
void
0
!==
c
?
c
:
0
};
THREE
.
PointLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
PointLight
.
prototype
.
clone
=
function
(){
var
a
=
new
THREE
.
PointLight
;
THREE
.
Light
.
prototype
.
clone
.
call
(
this
,
a
);
a
.
position
.
copy
(
this
.
position
);
a
.
intensity
=
this
.
intensity
;
a
.
distance
=
this
.
distance
;
return
a
};
THREE
.
SpotLight
=
function
(
a
,
b
,
c
,
d
,
e
){
THREE
.
Light
.
call
(
this
,
a
);
this
.
position
=
new
THREE
.
Vector3
(
0
,
1
,
0
);
this
.
target
=
new
THREE
.
Object3D
;
this
.
intensity
=
void
0
!==
b
?
b
:
1
;
this
.
distance
=
void
0
!==
c
?
c
:
0
;
this
.
angle
=
void
0
!==
d
?
d
:
Math
.
PI
/
2
;
this
.
exponent
=
void
0
!==
e
?
e
:
10
;
this
.
onlyShadow
=
this
.
castShadow
=!
1
;
this
.
shadowCameraNear
=
50
;
this
.
shadowCameraFar
=
5
E3
;
this
.
shadowCameraFov
=
50
;
this
.
shadowCameraVisible
=!
1
;
this
.
shadowBias
=
0
;
this
.
shadowDarkness
=
0.5
;
this
.
shadowMapHeight
=
this
.
shadowMapWidth
=
512
;
this
.
shadowMatrix
=
this
.
shadowCamera
=
this
.
shadowMapSize
=
this
.
shadowMap
=
null
};
THREE
.
SpotLight
.
prototype
=
Object
.
create
(
THREE
.
Light
.
prototype
);
THREE
.
Loader
=
function
(
a
){
this
.
statusDomElement
=
(
this
.
showStatus
=
a
)?
THREE
.
Loader
.
prototype
.
addStatusElement
():
null
;
this
.
onLoadStart
=
function
(){};
this
.
onLoadProgress
=
function
(){};
this
.
onLoadComplete
=
function
(){}};
THREE
.
Loader
.
prototype
=
{
constructor
:
THREE
.
Loader
,
crossOrigin
:
"
anonymous
"
,
addStatusElement
:
function
(){
var
a
=
document
.
createElement
(
"
div
"
);
a
.
style
.
position
=
"
absolute
"
;
a
.
style
.
right
=
"
0px
"
;
a
.
style
.
top
=
"
0px
"
;
a
.
style
.
fontSize
=
"
0.8em
"
;
a
.
style
.
textAlign
=
"
left
"
;
a
.
style
.
background
=
"
rgba(0,0,0,0.25)
"
;
a
.
style
.
color
=
"
#fff
"
;
a
.
style
.
width
=
"
120px
"
;
a
.
style
.
padding
=
"
0.5em 0.5em 0.5em 0.5em
"
;
a
.
style
.
zIndex
=
1
E3
;
a
.
innerHTML
=
"
Loading ...
"
;
return
a
},
updateProgress
:
function
(
a
){
var
b
=
"
Loaded
"
,
b
=
a
.
total
?
b
+
((
100
*
a
.
loaded
/
a
.
total
).
toFixed
(
0
)
+
"
%
"
):
b
+
((
a
.
loaded
/
1
E3
).
toFixed
(
2
)
+
"
KB
"
);
this
.
statusDomElement
.
innerHTML
=
b
},
extractUrlBase
:
function
(
a
){
a
=
a
.
split
(
"
/
"
);
a
.
pop
();
return
(
1
>
a
.
length
?
"
.
"
:
a
.
join
(
"
/
"
))
+
"
/
"
},
initMaterials
:
function
(
a
,
b
){
for
(
var
c
=
[],
d
=
0
;
d
<
a
.
length
;
++
d
)
c
[
d
]
=
THREE
.
Loader
.
prototype
.
createMaterial
(
a
[
d
],
b
);
return
c
},
needsTangents
:
function
(
a
){
for
(
var
b
=
0
,
c
=
a
.
length
;
b
<
c
;
b
++
)
if
(
a
[
b
]
instanceof
THREE
.
ShaderMaterial
)
return
!
0
;
return
!
1
},
createMaterial
:
function
(
a
,
b
){
function
c
(
a
){
a
=
Math
.
log
(
a
)
/
Math
.
LN2
;
return
Math
.
floor
(
a
)
==
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录