Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
82b60acc
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,发现更多精彩内容 >>
提交
82b60acc
编写于
8月 09, 2017
作者:
M
Mr.doob
提交者:
GitHub
8月 09, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #11871 from jbaicoianu/objloader-ngons
OBJLoader n-gon support
上级
d4bb9b04
95111396
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
43 deletion
+19
-43
examples/js/loaders/OBJLoader.js
examples/js/loaders/OBJLoader.js
+19
-43
未找到文件。
examples/js/loaders/OBJLoader.js
浏览文件 @
82b60acc
...
...
@@ -10,14 +10,6 @@ THREE.OBJLoader = ( function () {
var
normal_pattern
=
/^vn
\s
+
([\d\.\+\-
eE
]
+
)\s
+
([\d\.\+\-
eE
]
+
)\s
+
([\d\.\+\-
eE
]
+
)
/
;
// vt float float
var
uv_pattern
=
/^vt
\s
+
([\d\.\+\-
eE
]
+
)\s
+
([\d\.\+\-
eE
]
+
)
/
;
// f vertex vertex vertex
var
face_vertex
=
/^f
\s
+
(
-
?\d
+
)\s
+
(
-
?\d
+
)\s
+
(
-
?\d
+
)(?:\s
+
(
-
?\d
+
))?
/
;
// f vertex/uv vertex/uv vertex/uv
var
face_vertex_uv
=
/^f
\s
+
(
-
?\d
+
)\/(
-
?\d
+
)\s
+
(
-
?\d
+
)\/(
-
?\d
+
)\s
+
(
-
?\d
+
)\/(
-
?\d
+
)(?:\s
+
(
-
?\d
+
)\/(
-
?\d
+
))?
/
;
// f vertex/uv/normal vertex/uv/normal vertex/uv/normal
var
face_vertex_uv_normal
=
/^f
\s
+
(
-
?\d
+
)\/(
-
?\d
+
)\/(
-
?\d
+
)\s
+
(
-
?\d
+
)\/(
-
?\d
+
)\/(
-
?\d
+
)\s
+
(
-
?\d
+
)\/(
-
?\d
+
)\/(
-
?\d
+
)(?:\s
+
(
-
?\d
+
)\/(
-
?\d
+
)\/(
-
?\d
+
))?
/
;
// f vertex//normal vertex//normal vertex//normal
var
face_vertex_normal
=
/^f
\s
+
(
-
?\d
+
)\/\/(
-
?\d
+
)\s
+
(
-
?\d
+
)\/\/(
-
?\d
+
)\s
+
(
-
?\d
+
)\/\/(
-
?\d
+
)(?:\s
+
(
-
?\d
+
)\/\/(
-
?\d
+
))?
/
;
// o object_name | g group_name
var
object_pattern
=
/^
[
og
]\s
*
(
.+
)?
/
;
// mtllib file_reference
...
...
@@ -489,55 +481,39 @@ THREE.OBJLoader = ( function () {
}
else
if
(
lineFirstChar
===
"
f
"
)
{
if
(
(
result
=
face_vertex_uv_normal
.
exec
(
line
)
)
!==
null
)
{
var
lineData
=
line
.
substr
(
1
).
trim
(),
vertexData
=
lineData
.
split
(
'
'
),
faceVertices
=
[];
// f vertex/uv/normal vertex/uv/normal vertex/uv/normal
// 0 1 2 3 4 5 6 7 8 9 10 11 12
// ["f 1/1/1 2/2/2 3/3/3", "1", "1", "1", "2", "2", "2", "3", "3", "3", undefined, undefined, undefined]
// Parse the face vertex data into an easy to work with format
state
.
addFace
(
result
[
1
],
result
[
4
],
result
[
7
],
result
[
10
],
result
[
2
],
result
[
5
],
result
[
8
],
result
[
11
],
result
[
3
],
result
[
6
],
result
[
9
],
result
[
12
]
);
for
(
var
idx
=
0
;
idx
<
vertexData
.
length
;
idx
++
)
{
}
else
if
(
(
result
=
face_vertex_uv
.
exec
(
line
)
)
!==
null
)
{
if
(
vertexData
[
idx
].
length
>
0
)
{
// f vertex/uv vertex/uv vertex/uv
// 0 1 2 3 4 5 6 7 8
// ["f 1/1 2/2 3/3", "1", "1", "2", "2", "3", "3", undefined, undefined]
var
vertexParts
=
vertexData
[
idx
].
split
(
'
/
'
);
faceVertices
.
push
(
vertexParts
);
state
.
addFace
(
result
[
1
],
result
[
3
],
result
[
5
],
result
[
7
],
result
[
2
],
result
[
4
],
result
[
6
],
result
[
8
]
);
}
}
else
if
(
(
result
=
face_vertex_normal
.
exec
(
line
)
)
!==
null
)
{
}
// f vertex//normal vertex//normal vertex//normal
// 0 1 2 3 4 5 6 7 8
// ["f 1//1 2//2 3//3", "1", "1", "2", "2", "3", "3", undefined, undefined]
// Draw an edge between the first vertex and all subsequent vertices to form an n-gon
state
.
addFace
(
result
[
1
],
result
[
3
],
result
[
5
],
result
[
7
],
undefined
,
undefined
,
undefined
,
undefined
,
result
[
2
],
result
[
4
],
result
[
6
],
result
[
8
]
);
var
v1
=
faceVertices
[
0
],
numFaces
=
faceVertices
.
length
-
1
;
}
else
if
(
(
result
=
face_vertex
.
exec
(
line
)
)
!==
null
)
{
for
(
var
idx
=
1
;
idx
<
numFaces
;
idx
++
)
{
// f vertex vertex vertex
// 0 1 2 3 4
// ["f 1 2 3", "1", "2", "3", undefined]
var
v2
=
faceVertices
[
idx
],
v3
=
faceVertices
[
idx
+
1
];
state
.
addFace
(
result
[
1
],
result
[
2
],
result
[
3
],
result
[
4
]
v1
[
0
],
v2
[
0
],
v3
[
0
],
undefined
,
v1
[
1
],
v2
[
1
],
v3
[
1
],
undefined
,
v1
[
2
],
v2
[
2
],
v3
[
2
],
undefined
);
}
else
{
throw
new
Error
(
"
Unexpected face line: '
"
+
line
+
"
'
"
);
}
}
else
if
(
lineFirstChar
===
"
l
"
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录