Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fktz008
three.js
提交
f6bc8f5e
T
three.js
项目概览
fktz008
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
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,发现更多精彩内容 >>
提交
f6bc8f5e
编写于
2月 21, 2012
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Yet another tweak on the extractUrlbase code. Hopefully it does the trick now.
上级
46ef0e0b
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
72 addition
and
71 deletion
+72
-71
build/Three.js
build/Three.js
+68
-67
build/custom/ThreeExtras.js
build/custom/ThreeExtras.js
+2
-2
src/extras/loaders/ColladaLoader.js
src/extras/loaders/ColladaLoader.js
+1
-1
src/extras/loaders/Loader.js
src/extras/loaders/Loader.js
+1
-1
未找到文件。
build/Three.js
浏览文件 @
f6bc8f5e
此差异已折叠。
点击以展开。
build/custom/ThreeExtras.js
浏览文件 @
f6bc8f5e
...
...
@@ -226,7 +226,7 @@ p,A)):p instanceof THREE.Face4?(v=c(p.a,p.b),w=c(p.b,p.c),G=c(p.c,p.d),J=c(p.d,p
s
;
m
++
)
t
=
z
[
n
][
m
],
t
=
h
[
t
[
0
]].
position
.
clone
().
addSelf
(
h
[
t
[
1
]].
position
).
divideScalar
(
2
),
j
.
addSelf
(
t
);
j
.
divideScalar
(
s
);
p
.
addSelf
(
h
[
n
].
position
);
p
.
multiplyScalar
(
s
-
3
);
p
.
addSelf
(
i
);
p
.
addSelf
(
j
.
multiplyScalar
(
2
));
p
.
divideScalar
(
s
);
d
[
n
].
position
=
p
}}
a
.
vertices
=
d
;
a
.
faces
=
f
;
a
.
faceVertexUvs
[
0
]
=
g
;
delete
a
.
__tmpVertices
;
a
.
computeCentroids
();
a
.
computeFaceNormals
();
a
.
computeVertexNormals
()};
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
,
c
){
a
.
materials
=
[];
for
(
var
d
=
0
;
d
<
b
.
length
;
++
d
)
a
.
materials
[
d
]
=
THREE
.
Loader
.
prototype
.
createMaterial
(
b
[
d
],
c
)},
hasNormals
:
function
(
a
){
var
b
,
c
,
d
=
a
.
materials
.
length
;
for
(
c
=
0
;
c
<
d
;
c
++
)
if
(
b
=
a
.
materials
[
c
],
b
instanceof
THREE
.
ShaderMaterial
)
return
!
0
;
return
!
1
},
createMaterial
:
function
(
a
,
b
){
function
c
(
a
){
a
=
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
,
c
){
a
.
materials
=
[];
for
(
var
d
=
0
;
d
<
b
.
length
;
++
d
)
a
.
materials
[
d
]
=
THREE
.
Loader
.
prototype
.
createMaterial
(
b
[
d
],
c
)},
hasNormals
:
function
(
a
){
var
b
,
c
,
d
=
a
.
materials
.
length
;
for
(
c
=
0
;
c
<
d
;
c
++
)
if
(
b
=
a
.
materials
[
c
],
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
)
==
a
}
function
d
(
a
){
a
=
Math
.
log
(
a
)
/
Math
.
LN2
;
return
Math
.
pow
(
2
,
Math
.
round
(
a
))}
function
f
(
a
,
b
){
var
e
=
new
Image
;
e
.
onload
=
function
(){
if
(
!
c
(
this
.
width
)
||!
c
(
this
.
height
)){
var
b
=
d
(
this
.
width
),
e
=
d
(
this
.
height
);
a
.
image
.
width
=
b
;
a
.
image
.
height
=
e
;
a
.
image
.
getContext
(
"
2d
"
).
drawImage
(
this
,
0
,
0
,
b
,
e
)}
else
a
.
image
=
this
;
a
.
needsUpdate
=!
0
};
e
.
crossOrigin
=
h
.
crossOrigin
;
e
.
src
=
b
}
function
g
(
a
,
c
,
d
,
e
,
g
,
h
){
var
i
=
document
.
createElement
(
"
canvas
"
);
a
[
c
]
=
new
THREE
.
Texture
(
i
);
a
[
c
].
sourceFile
=
d
;
if
(
e
){
a
[
c
].
repeat
.
set
(
e
[
0
],
e
[
1
]);
if
(
1
!=
e
[
0
])
a
[
c
].
wrapS
=
THREE
.
RepeatWrapping
;
if
(
1
!=
e
[
1
])
a
[
c
].
wrapT
=
THREE
.
RepeatWrapping
}
g
&&
a
[
c
].
offset
.
set
(
g
[
0
],
g
[
1
]);
if
(
h
){
e
=
{
repeat
:
THREE
.
RepeatWrapping
,
mirror
:
THREE
.
MirroredRepeatWrapping
};
if
(
void
0
!==
e
[
h
[
0
]])
a
[
c
].
wrapS
=
e
[
h
[
0
]];
if
(
void
0
!==
e
[
h
[
1
]])
a
[
c
].
wrapT
=
e
[
h
[
1
]]}
f
(
a
[
c
],
b
+
"
/
"
+
d
)}
function
e
(
a
){
return
(
255
*
a
[
0
]
<<
16
)
+
(
255
*
a
[
1
]
<<
8
)
+
255
*
a
[
2
]}
var
h
=
this
,
i
=
"
MeshLambertMaterial
"
,
k
=
{
color
:
15658734
,
opacity
:
1
,
map
:
null
,
lightMap
:
null
,
normalMap
:
null
,
wireframe
:
a
.
wireframe
};
a
.
shading
&&
(
"
Phong
"
==
a
.
shading
?
i
=
"
MeshPhongMaterial
"
:
"
Basic
"
==
a
.
shading
&&
(
i
=
"
MeshBasicMaterial
"
));
if
(
a
.
blending
)
if
(
"
Additive
"
==
a
.
blending
)
k
.
blending
=
THREE
.
AdditiveBlending
;
else
if
(
"
Subtractive
"
==
a
.
blending
)
k
.
blending
=
THREE
.
SubtractiveBlending
;
else
if
(
"
Multiply
"
==
a
.
blending
)
k
.
blending
=
THREE
.
MultiplyBlending
;
if
(
void
0
!==
a
.
transparent
||
1
>
a
.
opacity
)
k
.
transparent
=
a
.
transparent
;
if
(
void
0
!==
a
.
depthTest
)
k
.
depthTest
=
a
.
depthTest
;
if
(
void
0
!==
a
.
vertexColors
)
if
(
"
face
"
==
a
.
vertexColors
)
k
.
vertexColors
=
THREE
.
FaceColors
;
else
if
(
a
.
vertexColors
)
k
.
vertexColors
=
...
...
@@ -246,7 +246,7 @@ z(a,C+20+16);m=z(a,C+20+20);o=z(a,C+20+24);p=z(a,C+20+28);s=z(a,C+20+32);t=z(a,C
f
=
b
[
3
*
c
+
2
],
H
.
push
(
d
/
127
,
e
/
127
,
f
/
127
)}
return
3
*
l
*
Int8Array
.
BYTES_PER_ELEMENT
}(
C
);
C
+=
u
(
3
*
l
);
C
+=
function
(
b
){
if
(
n
){
var
b
=
new
Float32Array
(
a
,
b
,
2
*
n
),
c
,
d
,
e
;
for
(
c
=
0
;
c
<
n
;
c
++
)
d
=
b
[
2
*
c
],
e
=
b
[
2
*
c
+
1
],
y
.
push
(
d
,
e
)}
return
2
*
n
*
Float32Array
.
BYTES_PER_ELEMENT
}(
C
);
I
=
C
+
I
+
u
(
2
*
b
);
K
=
I
+
K
+
u
(
2
*
r
);
f
=
K
+
f
+
u
(
2
*
m
);
j
=
f
+
j
+
u
(
2
*
o
);
c
=
j
+
c
+
u
(
2
*
p
);
i
=
c
+
i
+
u
(
2
*
s
);
k
=
i
+
k
+
u
(
2
*
t
);(
function
(
a
){
if
(
m
){
var
b
=
a
+
3
*
m
*
Uint32Array
.
BYTES_PER_ELEMENT
;
D
(
m
,
a
,
b
+
3
*
m
*
Uint32Array
.
BYTES_PER_ELEMENT
);
x
(
m
,
b
)}})(
K
);(
function
(
a
){
if
(
o
){
var
b
=
a
+
3
*
o
*
Uint32Array
.
BYTES_PER_ELEMENT
,
c
=
b
+
3
*
o
*
Uint32Array
.
BYTES_PER_ELEMENT
;
J
(
o
,
a
,
b
,
c
+
3
*
o
*
Uint32Array
.
BYTES_PER_ELEMENT
);
x
(
o
,
c
)}})(
f
);(
function
(
a
){
if
(
t
){
var
b
=
a
+
4
*
t
*
Uint32Array
.
BYTES_PER_ELEMENT
;
G
(
t
,
a
,
b
+
4
*
t
*
Uint32Array
.
BYTES_PER_ELEMENT
);
A
(
t
,
b
)}})(
i
);(
function
(
a
){
if
(
v
){
var
b
=
a
+
4
*
v
*
Uint32Array
.
BYTES_PER_ELEMENT
,
c
=
b
+
4
*
v
*
Uint32Array
.
BYTES_PER_ELEMENT
;
F
(
v
,
a
,
b
,
c
+
4
*
v
*
Uint32Array
.
BYTES_PER_ELEMENT
);
A
(
v
,
c
)}})(
k
);
b
&&
D
(
b
,
C
,
C
+
3
*
b
*
Uint32Array
.
BYTES_PER_ELEMENT
);(
function
(
a
){
if
(
r
){
var
b
=
a
+
3
*
r
*
Uint32Array
.
BYTES_PER_ELEMENT
;
J
(
r
,
a
,
b
,
b
+
3
*
r
*
Uint32Array
.
BYTES_PER_ELEMENT
)}})(
I
);
p
&&
G
(
p
,
j
,
j
+
4
*
p
*
Uint32Array
.
BYTES_PER_ELEMENT
);(
function
(
a
){
if
(
s
){
var
b
=
a
+
4
*
s
*
Uint32Array
.
BYTES_PER_ELEMENT
;
F
(
s
,
a
,
b
,
b
+
4
*
s
*
Uint32Array
.
BYTES_PER_ELEMENT
)}})(
c
);
this
.
computeCentroids
();
this
.
computeFaceNormals
();
THREE
.
Loader
.
prototype
.
hasNormals
(
this
)
&&
this
.
computeTangents
()};
f
.
prototype
=
new
THREE
.
Geometry
;
f
.
prototype
.
constructor
=
f
;
b
(
new
f
(
c
))};
THREE
.
ColladaLoader
=
function
(){
function
a
(
a
,
d
,
f
){
Q
=
a
;
d
=
d
||
la
;
void
0
!==
f
&&
(
a
=
f
.
split
(
"
/
"
),
a
.
pop
(),
ma
=
1
>
a
.
length
?
"
.
"
:
a
.
join
(
"
/
"
)
+
"
/
"
);
if
((
a
=
Q
.
evaluate
(
"
//dae:asset
"
,
Q
,
M
,
XPathResult
.
ORDERED_NODE_ITERATOR_TYPE
,
null
).
iterateNext
())
&&
a
.
childNodes
)
for
(
f
=
0
;
f
<
a
.
childNodes
.
length
;
f
++
){
var
i
=
a
.
childNodes
[
f
];
switch
(
i
.
nodeName
){
case
"
unit
"
:(
i
=
i
.
getAttribute
(
"
meter
"
))
&&
parseFloat
(
i
);
break
;
case
"
up_axis
"
:
$
=
i
.
textContent
.
charAt
(
0
)}}
if
(
!
R
.
convertUpAxis
||
$
===
R
.
upAxis
)
V
=
null
;
else
switch
(
$
){
case
"
X
"
:
V
=
"
Y
"
===
R
.
upAxis
?
THREE
.
ColladaLoader
=
function
(){
function
a
(
a
,
d
,
f
){
Q
=
a
;
d
=
d
||
la
;
void
0
!==
f
&&
(
a
=
f
.
split
(
"
/
"
),
a
.
pop
(),
ma
=
(
1
>
a
.
length
?
"
.
"
:
a
.
join
(
"
/
"
)
)
+
"
/
"
);
if
((
a
=
Q
.
evaluate
(
"
//dae:asset
"
,
Q
,
M
,
XPathResult
.
ORDERED_NODE_ITERATOR_TYPE
,
null
).
iterateNext
())
&&
a
.
childNodes
)
for
(
f
=
0
;
f
<
a
.
childNodes
.
length
;
f
++
){
var
i
=
a
.
childNodes
[
f
];
switch
(
i
.
nodeName
){
case
"
unit
"
:(
i
=
i
.
getAttribute
(
"
meter
"
))
&&
parseFloat
(
i
);
break
;
case
"
up_axis
"
:
$
=
i
.
textContent
.
charAt
(
0
)}}
if
(
!
R
.
convertUpAxis
||
$
===
R
.
upAxis
)
V
=
null
;
else
switch
(
$
){
case
"
X
"
:
V
=
"
Y
"
===
R
.
upAxis
?
"
XtoY
"
:
"
XtoZ
"
;
break
;
case
"
Y
"
:
V
=
"
X
"
===
R
.
upAxis
?
"
YtoX
"
:
"
YtoZ
"
;
break
;
case
"
Z
"
:
V
=
"
X
"
===
R
.
upAxis
?
"
ZtoX
"
:
"
ZtoY
"
}
ea
=
b
(
"
//dae:library_images/dae:image
"
,
e
,
"
image
"
);
fa
=
b
(
"
//dae:library_materials/dae:material
"
,
x
,
"
material
"
);
ga
=
b
(
"
//dae:library_effects/dae:effect
"
,
F
,
"
effect
"
);
U
=
b
(
"
//dae:library_geometries/dae:geometry
"
,
o
,
"
geometry
"
);
ha
=
b
(
"
.//dae:library_cameras/dae:camera
"
,
K
,
"
camera
"
);
T
=
b
(
"
//dae:library_controllers/dae:controller
"
,
h
,
"
controller
"
);
W
=
b
(
"
//dae:library_animations/dae:animation
"
,
C
,
"
animation
"
);
ia
=
b
(
"
.//dae:library_visual_scenes/dae:visual_scene
"
,
j
,
"
visual_scene
"
);
aa
=
[];
ba
=
[];(
a
=
Q
.
evaluate
(
"
.//dae:scene/dae:instance_visual_scene
"
,
Q
,
M
,
XPathResult
.
ORDERED_NODE_ITERATOR_TYPE
,
null
).
iterateNext
())?(
a
=
a
.
getAttribute
(
"
url
"
).
replace
(
/^#/
,
""
),
S
=
ia
[
0
<
a
.
length
?
a
:
"
visual_scene0
"
]):
S
=
null
;
Z
=
new
THREE
.
Object3D
;
for
(
a
=
0
;
a
<
S
.
nodes
.
length
;
a
++
)
Z
.
add
(
g
(
S
.
nodes
[
a
]));
ja
=
[];
c
(
Z
);
a
=
{
scene
:
Z
,
morphs
:
aa
,
skins
:
ba
,
animations
:
ja
,
dae
:{
images
:
ea
,
materials
:
fa
,
cameras
:
ha
,
effects
:
ga
,
geometries
:
U
,
controllers
:
T
,
animations
:
W
,
visualScenes
:
ia
,
scene
:
S
}};
d
&&
d
(
a
);
return
a
}
function
b
(
a
,
b
,
c
){
for
(
var
a
=
Q
.
evaluate
(
a
,
Q
,
M
,
XPathResult
.
ORDERED_NODE_ITERATOR_TYPE
,
null
),
d
=
{},
e
=
a
.
iterateNext
(),
f
=
0
;
e
;){
e
=
(
new
b
).
parse
(
e
);
if
(
!
e
.
id
||
0
==
e
.
id
.
length
)
e
.
id
=
c
+
f
++
;
d
[
e
.
id
]
=
e
;
e
=
a
.
iterateNext
()}
return
d
}
function
c
(
a
){
var
b
=
S
.
getChildById
(
a
.
name
,
!
0
),
d
=
null
;
if
(
b
&&
b
.
keys
){
d
=
{
fps
:
60
,
hierarchy
:[{
node
:
b
,
keys
:
b
.
keys
,
sids
:
b
.
sids
}],
node
:
a
,
name
:
"
animation_
"
+
a
.
name
,
length
:
0
};
ja
.
push
(
d
);
for
(
var
e
=
0
,
f
=
b
.
keys
.
length
;
e
<
f
;
e
++
)
d
.
length
=
Math
.
max
(
d
.
length
,
b
.
keys
[
e
].
time
)}
else
d
=
...
...
src/extras/loaders/ColladaLoader.js
浏览文件 @
f6bc8f5e
...
...
@@ -118,7 +118,7 @@ THREE.ColladaLoader = function () {
var
parts
=
url
.
split
(
'
/
'
);
parts
.
pop
();
baseUrl
=
parts
.
length
<
1
?
'
.
'
:
parts
.
join
(
'
/
'
)
+
'
/
'
;
baseUrl
=
(
parts
.
length
<
1
?
'
.
'
:
parts
.
join
(
'
/
'
)
)
+
'
/
'
;
}
...
...
src/extras/loaders/Loader.js
浏览文件 @
f6bc8f5e
...
...
@@ -63,7 +63,7 @@ THREE.Loader.prototype = {
var
parts
=
url
.
split
(
'
/
'
);
parts
.
pop
();
return
parts
.
length
<
1
?
'
.
'
:
parts
.
join
(
'
/
'
)
+
'
/
'
;
return
(
parts
.
length
<
1
?
'
.
'
:
parts
.
join
(
'
/
'
)
)
+
'
/
'
;
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录