Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
3e784651
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,发现更多精彩内容 >>
提交
3e784651
编写于
10月 20, 2018
作者:
Y
yomboprime
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SVG Loader: Accept multiple transforms in a single node
上级
8b5da8c4
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
97 addition
and
77 deletion
+97
-77
examples/js/loaders/SVGLoader.js
examples/js/loaders/SVGLoader.js
+97
-77
未找到文件。
examples/js/loaders/SVGLoader.js
浏览文件 @
3e784651
...
...
@@ -756,16 +756,22 @@ THREE.SVGLoader.prototype = {
function
parseTransformNode
(
node
)
{
var
transformAttr
=
node
.
getAttribute
(
'
transform
'
);
var
transform
=
null
;
var
openParPos
=
transformAttr
.
indexOf
(
"
(
"
);
var
closeParPos
=
transformAttr
.
indexOf
(
"
)
"
);
var
transformsTexts
=
node
.
getAttribute
(
'
transform
'
).
split
(
'
'
);
for
(
var
tIndex
=
transformsTexts
.
length
-
1
;
tIndex
>=
0
;
tIndex
--
)
{
var
newTransform
=
null
;
var
transformText
=
transformsTexts
[
tIndex
];
var
openParPos
=
transformText
.
indexOf
(
"
(
"
);
var
closeParPos
=
transformText
.
indexOf
(
"
)
"
);
if
(
openParPos
>
0
&&
openParPos
<
closeParPos
)
{
var
transformType
=
transformAttr
.
substr
(
0
,
openParPos
);
var
transformType
=
transformText
.
substr
(
0
,
openParPos
);
var
array
=
parseFloats
(
transformAttr
.
substr
(
openParPos
+
1
,
closeParPos
-
openParPos
-
1
)
);
var
array
=
parseFloats
(
transformText
.
substr
(
openParPos
+
1
,
closeParPos
-
openParPos
-
1
)
);
switch
(
transformType
)
{
...
...
@@ -773,7 +779,7 @@ THREE.SVGLoader.prototype = {
if
(
array
.
length
>=
1
)
{
t
ransform
=
new
THREE
.
Matrix3
();
newT
ransform
=
new
THREE
.
Matrix3
();
var
tx
=
array
[
0
];
var
ty
=
tx
;
...
...
@@ -784,7 +790,7 @@ THREE.SVGLoader.prototype = {
}
t
ransform
.
translate
(
tx
,
ty
);
newT
ransform
.
translate
(
tx
,
ty
);
}
...
...
@@ -798,7 +804,7 @@ THREE.SVGLoader.prototype = {
var
cx
=
0
;
var
cy
=
0
;
t
ransform
=
new
THREE
.
Matrix3
();
newT
ransform
=
new
THREE
.
Matrix3
();
// Angle
angle
=
-
array
[
0
]
*
Math
.
PI
/
180
;
...
...
@@ -816,7 +822,7 @@ THREE.SVGLoader.prototype = {
tempTransform2
.
identity
().
rotate
(
angle
);
tempTransform3
.
multiplyMatrices
(
tempTransform2
,
tempTransform1
);
tempTransform1
.
identity
().
translate
(
cx
,
cy
);
t
ransform
.
multiplyMatrices
(
tempTransform1
,
tempTransform3
);
newT
ransform
.
multiplyMatrices
(
tempTransform1
,
tempTransform3
);
}
...
...
@@ -826,7 +832,7 @@ THREE.SVGLoader.prototype = {
if
(
array
.
length
>=
1
)
{
t
ransform
=
new
THREE
.
Matrix3
();
newT
ransform
=
new
THREE
.
Matrix3
();
var
scaleX
=
array
[
0
];
var
scaleY
=
scaleX
;
...
...
@@ -835,7 +841,7 @@ THREE.SVGLoader.prototype = {
scaleY
=
array
[
1
];
}
t
ransform
.
scale
(
scaleX
,
scaleY
);
newT
ransform
.
scale
(
scaleX
,
scaleY
);
}
...
...
@@ -845,9 +851,9 @@ THREE.SVGLoader.prototype = {
if
(
array
.
length
===
1
)
{
t
ransform
=
new
THREE
.
Matrix3
();
newT
ransform
=
new
THREE
.
Matrix3
();
t
ransform
.
set
(
newT
ransform
.
set
(
1
,
Math
.
tan
(
array
[
0
]
*
Math
.
PI
/
180
),
0
,
0
,
1
,
0
,
0
,
0
,
1
...
...
@@ -861,9 +867,9 @@ THREE.SVGLoader.prototype = {
if
(
array
.
length
===
1
)
{
t
ransform
=
new
THREE
.
Matrix3
();
newT
ransform
=
new
THREE
.
Matrix3
();
t
ransform
.
set
(
newT
ransform
.
set
(
1
,
0
,
0
,
Math
.
tan
(
array
[
0
]
*
Math
.
PI
/
180
),
1
,
0
,
0
,
0
,
1
...
...
@@ -877,9 +883,9 @@ THREE.SVGLoader.prototype = {
if
(
array
.
length
===
6
)
{
t
ransform
=
new
THREE
.
Matrix3
();
newT
ransform
=
new
THREE
.
Matrix3
();
t
ransform
.
set
(
newT
ransform
.
set
(
array
[
0
],
array
[
2
],
array
[
4
],
array
[
1
],
array
[
3
],
array
[
5
],
0
,
0
,
1
...
...
@@ -892,6 +898,20 @@ THREE.SVGLoader.prototype = {
}
if
(
newTransform
)
{
if
(
transform
)
{
newTransform
.
multiply
(
transform
);
}
transform
=
newTransform
;
}
}
return
transform
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录