Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
84a94233
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,体验更适合开发者的 AI 搜索 >>
提交
84a94233
编写于
8月 28, 2015
作者:
B
Ben Houston
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
improve keyframe track parsing to be more flexible.
上级
e39745f8
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
61 addition
and
69 deletion
+61
-69
src/animation/KeyframeTrack.js
src/animation/KeyframeTrack.js
+31
-23
src/animation/tracks/BooleanKeyframeTrack.js
src/animation/tracks/BooleanKeyframeTrack.js
+2
-2
src/animation/tracks/ColorKeyframeTrack.js
src/animation/tracks/ColorKeyframeTrack.js
+6
-7
src/animation/tracks/NumberKeyframeTrack.js
src/animation/tracks/NumberKeyframeTrack.js
+2
-2
src/animation/tracks/QuaternionKeyframeTrack.js
src/animation/tracks/QuaternionKeyframeTrack.js
+6
-7
src/animation/tracks/StringKeyframeTrack.js
src/animation/tracks/StringKeyframeTrack.js
+2
-2
src/animation/tracks/VectorKeyframeTrack.js
src/animation/tracks/VectorKeyframeTrack.js
+7
-8
src/loaders/ObjectLoader.js
src/loaders/ObjectLoader.js
+5
-18
未找到文件。
src/animation/KeyframeTrack.js
浏览文件 @
84a94233
...
...
@@ -8,6 +8,7 @@
THREE
.
KeyframeTrack
=
function
(
name
,
keys
)
{
if
(
name
===
undefined
)
throw
new
Error
(
"
track name is undefined
"
);
if
(
keys
===
undefined
||
keys
.
length
===
0
)
throw
new
Error
(
"
no keys in track named
"
+
name
);
this
.
name
=
name
;
...
...
@@ -16,7 +17,6 @@ THREE.KeyframeTrack = function ( name, keys ) {
// the index of the last result, used as a starting point for local search.
this
.
lastIndex
=
0
;
this
.
sort
();
this
.
validate
();
this
.
optimize
();
};
...
...
@@ -133,7 +133,8 @@ THREE.KeyframeTrack.prototype = {
},
// sort in ascending order
/* NOTE: This is commented out because we really shouldn't have to handle unsorted key lists
Tracks with out of order keys should be considered to be invalid. - bhouston
sort: function() {
function keyComparator(key0, key1) {
...
...
@@ -148,8 +149,7 @@ THREE.KeyframeTrack.prototype = {
}
}(),
}(),*/
// ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable
// One could eventually ensure that all key.values in a track are all of the same type (otherwise interpolation makes no sense.)
...
...
@@ -238,33 +238,41 @@ THREE.KeyframeTrack.prototype = {
};
THREE
.
KeyframeTrack
.
parse
(
json
)
{
THREE
.
KeyframeTrack
.
GetTrackTypeForValue
=
function
(
value
)
{
switch
(
typeof
value
)
{
case
"
object
"
:
{
if
(
value
.
lerp
)
{
if
(
json
.
type
===
undefined
)
throw
new
Error
(
"
track type undefined, can not parse
"
);
return
THREE
.
VectorKeyframeTrack
;
var
trackType
=
THREE
.
KeyframeTrack
.
GetTrackTypeForTypeName
(
json
.
type
)
;
}
if
(
value
.
slerp
)
{
return
trackType
.
parse
(
json
);
return
THREE
.
QuaternionKeyframeTrack
;
}
;
}
break
;
}
case
"
number
"
:
{
THREE
.
KeyframeTrack
.
GetTrackTypeForTypeName
=
function
(
typeName
)
{
switch
(
typeName
.
toLower
()
)
{
case
"
vector
"
:
case
"
vector2
"
:
case
"
vector3
"
:
case
"
vector4
"
:
return
THREE
.
VectorKeyframeTrack
;
case
"
quaternion
"
:
return
THREE
.
QuaternionKeyframeTrack
;
case
"
integer
"
:
case
"
scalar
"
:
case
"
double
"
:
case
"
float
"
:
case
"
number
"
:
return
THREE
.
NumberKeyframeTrack
;
}
case
"
boolean
"
:
{
case
"
bool
"
:
case
"
boolean
"
:
return
THREE
.
BooleanKeyframeTrack
;
}
case
"
string
"
:
{
case
"
string
"
:
return
THREE
.
StringKeyframeTrack
;
}
};
throw
new
Error
(
"
Unsupported
value type
"
);
throw
new
Error
(
"
Unsupported
typeName:
"
+
typeName
);
};
\ No newline at end of file
src/animation/tracks/BooleanKeyframeTrack.js
浏览文件 @
84a94233
...
...
@@ -56,9 +56,9 @@ THREE.BooleanKeyframeTrack.prototype.clone = function() {
};
THREE
.
BooleanKeyframeTrack
.
parse
=
function
(
name
,
jsonKeys
)
{
THREE
.
BooleanKeyframeTrack
.
parse
=
function
(
json
)
{
return
new
THREE
.
BooleanKeyframeTrack
(
name
,
jsonK
eys
);
return
new
THREE
.
BooleanKeyframeTrack
(
json
.
name
,
json
.
k
eys
);
};
\ No newline at end of file
src/animation/tracks/ColorKeyframeTrack.js
浏览文件 @
84a94233
...
...
@@ -56,20 +56,19 @@ THREE.ColorKeyframeTrack.prototype.clone = function() {
};
THREE
.
ColorKeyframeTrack
.
parse
=
function
(
name
,
jsonKeys
)
{
THREE
.
ColorKeyframeTrack
.
parse
=
function
(
json
)
{
var
keys
=
[];
for
(
var
i
=
0
;
i
<
json
K
eys
.
length
;
i
++
)
{
var
jsonKey
=
json
K
eys
[
i
];
var
key
=
{
for
(
var
i
=
0
;
i
<
json
.
k
eys
.
length
;
i
++
)
{
var
jsonKey
=
json
.
k
eys
[
i
];
keys
.
push
(
{
value
:
new
THREE
.
Color
().
fromArray
(
jsonKey
.
value
),
time
:
jsonKey
.
time
};
keys
.
push
(
key
);
}
);
}
return
new
THREE
.
ColorKeyframeTrack
(
name
,
keys
);
return
new
THREE
.
ColorKeyframeTrack
(
json
.
name
,
keys
);
};
\ No newline at end of file
src/animation/tracks/NumberKeyframeTrack.js
浏览文件 @
84a94233
...
...
@@ -56,9 +56,9 @@ THREE.NumberKeyframeTrack.prototype.clone = function() {
};
THREE
.
NumberKeyframeTrack
.
parse
=
function
(
name
,
jsonKeys
)
{
THREE
.
NumberKeyframeTrack
.
parse
=
function
(
json
)
{
return
new
THREE
.
NumberKeyframeTrack
(
name
,
jsonK
eys
);
return
new
THREE
.
NumberKeyframeTrack
(
json
.
name
,
json
.
k
eys
);
};
\ No newline at end of file
src/animation/tracks/QuaternionKeyframeTrack.js
浏览文件 @
84a94233
...
...
@@ -68,20 +68,19 @@ THREE.QuaternionKeyframeTrack.prototype.clone = function() {
};
THREE
.
QuaternionKeyframeTrack
.
parse
=
function
(
name
,
jsonKeys
)
{
THREE
.
QuaternionKeyframeTrack
.
parse
=
function
(
json
)
{
var
keys
=
[];
for
(
var
i
=
0
;
i
<
json
K
eys
.
length
;
i
++
)
{
var
jsonKey
=
json
K
eys
[
i
];
var
key
=
{
for
(
var
i
=
0
;
i
<
json
.
k
eys
.
length
;
i
++
)
{
var
jsonKey
=
json
.
k
eys
[
i
];
keys
.
push
(
{
value
:
new
THREE
.
Quaternion
().
fromArray
(
jsonKey
.
value
),
time
:
jsonKey
.
time
};
keys
.
push
(
key
);
}
);
}
return
new
THREE
.
QuaternionKeyframeTrack
(
name
,
keys
);
return
new
THREE
.
QuaternionKeyframeTrack
(
json
.
name
,
keys
);
};
\ No newline at end of file
src/animation/tracks/StringKeyframeTrack.js
浏览文件 @
84a94233
...
...
@@ -56,9 +56,9 @@ THREE.StringKeyframeTrack.prototype.clone = function() {
};
THREE
.
StringKeyframeTrack
.
parse
=
function
(
name
,
jsonKeys
)
{
THREE
.
StringKeyframeTrack
.
parse
=
function
(
json
)
{
return
new
THREE
.
StringKeyframeTrack
(
name
,
jsonK
eys
);
return
new
THREE
.
StringKeyframeTrack
(
json
.
name
,
json
.
k
eys
);
};
\ No newline at end of file
src/animation/tracks/VectorKeyframeTrack.js
浏览文件 @
84a94233
...
...
@@ -56,23 +56,22 @@ THREE.VectorKeyframeTrack.prototype.clone = function() {
};
THREE
.
VectorKeyframeTrack
.
parse
=
function
(
name
,
jsonKeys
)
{
THREE
.
VectorKeyframeTrack
.
parse
=
function
(
json
)
{
var
elementCount
=
json
K
eys
[
0
].
value
.
length
;
var
elementCount
=
json
.
k
eys
[
0
].
value
.
length
;
var
valueType
=
THREE
[
'
Vector
'
+
elementCount
];
var
keys
=
[];
for
(
var
i
=
0
;
i
<
json
K
eys
.
length
;
i
++
)
{
var
jsonKey
=
json
K
eys
[
i
];
var
key
=
{
for
(
var
i
=
0
;
i
<
json
.
k
eys
.
length
;
i
++
)
{
var
jsonKey
=
json
.
k
eys
[
i
];
keys
.
push
(
{
value
:
new
valueType
().
fromArray
(
jsonKey
.
value
),
time
:
jsonKey
.
time
};
keys
.
push
(
key
);
}
);
}
return
new
THREE
.
VectorKeyframeTrack
(
name
,
keys
);
return
new
THREE
.
VectorKeyframeTrack
(
json
.
keys
,
keys
);
};
\ No newline at end of file
src/loaders/ObjectLoader.js
浏览文件 @
84a94233
...
...
@@ -633,28 +633,15 @@ THREE.ObjectLoader.prototype = {
var
fpsToSeconds
=
(
data
.
animations
.
fps
!==
undefined
)
?
(
1.0
/
data
.
animations
.
fps
)
:
1.0
;
if
(
dataTracks
.
position
)
{
for
(
var
i
=
0
;
i
<
data
.
animations
.
tracks
.
length
;
i
++
)
{
tracks
.
push
(
THREE
.
VectorKeyframeTrack
.
parse
(
object
.
uuid
+
'
.position
'
,
dataTracks
.
position
).
scale
(
fpsToSeconds
)
);
}
if
(
dataTracks
.
quaternion
)
{
var
trackQuaternion
=
THREE
.
QuaternionKeyframeTrack
.
parse
(
object
.
uuid
+
'
.quaternion
'
,
dataTracks
.
quaternion
).
scale
(
fpsToSeconds
);
//trackQuaternion.multiply( trackQuaternion.keys[0].value.clone().inverse() );
//trackQuaternion.multiply( object.quaternion );
var
track
=
THREE
.
KeyframeTrack
.
parse
(
data
.
animations
.
tracks
[
i
]
);
track
.
name
=
object
.
uuid
+
'
.
'
+
track
.
name
;
track
.
scale
(
fpsToSeconds
);
tracks
.
push
(
track
);
tracks
.
push
(
trackQuaternion
);
}
if
(
dataTracks
.
scale
)
{
tracks
.
push
(
THREE
.
VectorKeyframeTrack
.
parse
(
object
.
uuid
+
'
.scale
'
,
dataTracks
.
scale
).
scale
(
fpsToSeconds
)
);
}
}
return
object
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录