Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
32807be8
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,发现更多精彩内容 >>
提交
32807be8
编写于
10月 02, 2015
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ColladaLoader2: Simplified library parsing. instance_node support.
上级
2f76bac6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
59 deletion
+20
-59
examples/js/loaders/ColladaLoader2.js
examples/js/loaders/ColladaLoader2.js
+20
-59
未找到文件。
examples/js/loaders/ColladaLoader2.js
浏览文件 @
32807be8
...
...
@@ -74,31 +74,33 @@ THREE.ColladaLoader.prototype = {
}
//
cameras
//
library
function
parse
CamerasLibrary
(
xml
)
{
function
parse
Library
(
xml
,
libraryName
,
nodeName
,
parser
)
{
var
library
=
{};
var
data
=
{};
var
cameras
=
xml
.
getElementsByTagName
(
'
library_cameras
'
)[
0
];
var
library
=
xml
.
getElementsByTagName
(
libraryName
)[
0
];
if
(
cameras
!==
undefined
)
{
if
(
library
!==
undefined
)
{
var
elements
=
cameras
.
getElementsByTagName
(
'
camera
'
);
var
elements
=
library
.
getElementsByTagName
(
nodeName
);
for
(
var
i
=
0
;
i
<
elements
.
length
;
i
++
)
{
var
element
=
elements
[
i
];
library
[
element
.
getAttribute
(
'
id
'
)
]
=
parseCamera
(
element
);
data
[
element
.
getAttribute
(
'
id
'
)
]
=
parser
(
element
);
}
}
return
library
;
return
data
;
}
// camera
function
parseCamera
(
xml
)
{
console
.
log
(
'
ColladaLoader.parseCamera: TODO
'
)
...
...
@@ -109,27 +111,7 @@ THREE.ColladaLoader.prototype = {
}
// geometries
function
parseGeometriesLibrary
(
xml
)
{
var
library
=
{};
var
geometries
=
xml
.
getElementsByTagName
(
'
library_geometries
'
)[
0
];
var
elements
=
geometries
.
getElementsByTagName
(
'
geometry
'
);
for
(
var
i
=
0
;
i
<
elements
.
length
;
i
++
)
{
var
element
=
elements
[
i
];
var
geometry
=
parseGeometry
(
element
);
library
[
element
.
getAttribute
(
'
id
'
)
]
=
createGeometry
(
geometry
);
}
return
library
;
}
// geometry
function
parseGeometry
(
xml
)
{
...
...
@@ -172,7 +154,7 @@ THREE.ColladaLoader.prototype = {
}
return
data
;
return
createGeometry
(
data
)
;
}
...
...
@@ -328,13 +310,6 @@ THREE.ColladaLoader.prototype = {
// nodes
function
parseNodesLibrary
(
xml
)
{
var
library
=
{};
return
library
;
}
var
material
=
new
THREE
.
MeshPhongMaterial
();
var
matrix
=
new
THREE
.
Matrix4
();
var
vector
=
new
THREE
.
Vector3
();
...
...
@@ -363,6 +338,10 @@ THREE.ColladaLoader.prototype = {
node
.
geometry
=
geometriesLibrary
[
parseId
(
child
.
getAttribute
(
'
url
'
)
)
];
break
;
case
'
instance_node
'
:
node
.
children
.
push
(
nodesLibrary
[
parseId
(
child
.
getAttribute
(
'
url
'
)
)
]
);
break
;
case
'
matrix
'
:
var
array
=
parseFloats
(
child
.
textContent
);
node
.
matrix
.
multiply
(
matrix
.
fromArray
(
array
)
);
...
...
@@ -433,24 +412,6 @@ THREE.ColladaLoader.prototype = {
// visual scenes
function
parseVisualScenesLibrary
(
xml
)
{
var
library
=
{};
var
visualScenes
=
xml
.
getElementsByTagName
(
'
library_visual_scenes
'
)[
0
];
var
elements
=
visualScenes
.
getElementsByTagName
(
'
visual_scene
'
);
for
(
var
i
=
0
;
i
<
elements
.
length
;
i
++
)
{
var
element
=
elements
[
i
];
library
[
element
.
getAttribute
(
'
id
'
)
]
=
parseVisualScene
(
element
);
}
return
library
;
}
function
parseVisualScene
(
xml
)
{
var
group
=
new
THREE
.
Group
();
...
...
@@ -487,10 +448,10 @@ THREE.ColladaLoader.prototype = {
console
.
timeEnd
(
'
ColladaLoader: DOMParser
'
);
var
camerasLibrary
=
parse
CamerasLibrary
(
xml
);
var
geometriesLibrary
=
parse
GeometriesLibrary
(
xml
);
var
nodesLibrary
=
parse
NodesLibrary
(
xml
);
var
visualScenesLibrary
=
parse
VisualScenesLibrary
(
xml
);
var
camerasLibrary
=
parse
Library
(
xml
,
'
library_cameras
'
,
'
camera
'
,
parseCamera
);
var
geometriesLibrary
=
parse
Library
(
xml
,
'
library_geometries
'
,
'
geometry
'
,
parseGeometry
);
var
nodesLibrary
=
parse
Library
(
xml
,
'
library_nodes
'
,
'
node
'
,
parseNode
);
var
visualScenesLibrary
=
parse
Library
(
xml
,
'
library_visual_scenes
'
,
'
visual_scene
'
,
parseVisualScene
);
var
scene
=
parseScene
(
xml
);
console
.
timeEnd
(
'
ColladaLoader
'
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录