Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
ff3e0ebe
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,发现更多精彩内容 >>
提交
ff3e0ebe
编写于
2月 26, 2017
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
9ac27dae
变更
3
展开全部
隐藏空白更改
内联
并排
Showing
3 changed file
with
223 addition
and
150 deletion
+223
-150
build/three.js
build/three.js
+68
-32
build/three.min.js
build/three.min.js
+87
-86
build/three.module.js
build/three.module.js
+68
-32
未找到文件。
build/three.js
浏览文件 @
ff3e0ebe
...
...
@@ -28163,8 +28163,8 @@
for ( i = 0; i < index.count; i ++ ) {
vertex.fromBufferAttribute( positionAttribute, index
[ i ]
);
normal.fromBufferAttribute( normalAttribute, index
[ i ]
);
vertex.fromBufferAttribute( positionAttribute, index
.getX( i )
);
normal.fromBufferAttribute( normalAttribute, index
.getX( i )
);
pushDecalVertex( decalVertices, vertex, normal );
...
...
@@ -36748,47 +36748,83 @@
},
parseTrackName: function (
trackName
) {
parseTrackName: function () {
// matches strings in the form of:
// nodeName.property
// nodeName.property[accessor]
// nodeName.material.property[accessor]
// uuid.property[accessor]
// uuid.objectName[objectIndex].propertyName[propertyIndex]
// parentName/nodeName.property
// parentName/parentName/nodeName.property[index]
// .bone[Armature.DEF_cog].position
// scene:helium_balloon_model:helium_balloon_model.position
// created and tested via https://regex101.com/#javascript
// Parent directories, delimited by '/' or ':'. Currently unused, but must
// be matched to parse the rest of the track name.
var directoryRe = /((?:[\w-]+[\/:])*)/;
var re = /^((?:[\w-]+[\/:])*)([\w-]+)?(?:\.([\w-]+)(?:\[(.+)\])?)?\.([\w-]+)(?:\[(.+)\])?$/;
var
matches = re.exec( trackName )
;
// Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.
var
nodeRe = /([\w-\.]+)?/
;
if ( ! matches ) {
// Object on target node, and accessor. Name may contain only word
// characters. Accessor may contain any character except closing bracket.
var objectRe = /(?:\.([\w-]+)(?:\[(.+)\])?)?/;
throw new Error( "cannot parse trackName at all: " + trackName );
// Property and accessor. May contain only word characters. Accessor may
// contain any non-bracket characters.
var propertyRe = /\.([\w-]+)(?:\[(.+)\])?/;
}
var trackRe = new RegExp(''
+ '^'
+ directoryRe.source
+ nodeRe.source
+ objectRe.source
+ propertyRe.source
+ '$'
);
var results = {
// directoryName: matches[ 1 ], // (tschw) currently unused
nodeName: matches[ 2 ], // allowed to be null, specified root node.
objectName: matches[ 3 ],
objectIndex: matches[ 4 ],
propertyName: matches[ 5 ],
propertyIndex: matches[ 6 ] // allowed to be null, specifies that the whole property is set.
};
var supportedObjectNames = [ 'material', 'materials', 'bones' ];
if ( results.propertyName === null || results.propertyName.length === 0
) {
return function ( trackName
) {
throw new Error( "can not parse propertyName from trackName: " +
trackName );
var matches = trackRe.exec(
trackName );
}
if ( ! matches ) {
return results
;
throw new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName )
;
},
}
var results = {
// directoryName: matches[ 1 ], // (tschw) currently unused
nodeName: matches[ 2 ],
objectName: matches[ 3 ],
objectIndex: matches[ 4 ],
propertyName: matches[ 5 ], // required
propertyIndex: matches[ 6 ]
};
var lastDot = results.nodeName && results.nodeName.lastIndexOf( '.' );
if ( lastDot !== undefined && lastDot !== -1 ) {
var objectName = results.nodeName.substring( lastDot + 1 );
// Object names must be checked against a whitelist. Otherwise, there
// is no way to parse 'foo.bar.baz': 'baz' must be a property, but
// 'bar' could be the objectName, or part of a nodeName (which can
// include '.' characters).
if ( supportedObjectNames.indexOf( objectName ) !== -1 ) {
results.nodeName = results.nodeName.substring( 0, lastDot );
results.objectName = objectName;
}
}
if ( results.propertyName === null || results.propertyName.length === 0 ) {
throw new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );
}
return results;
};
}(),
findNode: function ( root, nodeName ) {
...
...
build/three.min.js
浏览文件 @
ff3e0ebe
此差异已折叠。
点击以展开。
build/three.module.js
浏览文件 @
ff3e0ebe
...
...
@@ -28157,8 +28157,8 @@ function DecalGeometry( mesh, position, orientation, size ) {
for ( i = 0; i < index.count; i ++ ) {
vertex.fromBufferAttribute( positionAttribute, index
[ i ]
);
normal.fromBufferAttribute( normalAttribute, index
[ i ]
);
vertex.fromBufferAttribute( positionAttribute, index
.getX( i )
);
normal.fromBufferAttribute( normalAttribute, index
.getX( i )
);
pushDecalVertex( decalVertices, vertex, normal );
...
...
@@ -36742,47 +36742,83 @@ Object.assign( PropertyBinding, {
},
parseTrackName: function (
trackName
) {
parseTrackName: function () {
// matches strings in the form of:
// nodeName.property
// nodeName.property[accessor]
// nodeName.material.property[accessor]
// uuid.property[accessor]
// uuid.objectName[objectIndex].propertyName[propertyIndex]
// parentName/nodeName.property
// parentName/parentName/nodeName.property[index]
// .bone[Armature.DEF_cog].position
// scene:helium_balloon_model:helium_balloon_model.position
// created and tested via https://regex101.com/#javascript
// Parent directories, delimited by '/' or ':'. Currently unused, but must
// be matched to parse the rest of the track name.
var directoryRe = /((?:[\w-]+[\/:])*)/;
var re = /^((?:[\w-]+[\/:])*)([\w-]+)?(?:\.([\w-]+)(?:\[(.+)\])?)?\.([\w-]+)(?:\[(.+)\])?$/;
var
matches = re.exec( trackName )
;
// Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.
var
nodeRe = /([\w-\.]+)?/
;
if ( ! matches ) {
// Object on target node, and accessor. Name may contain only word
// characters. Accessor may contain any character except closing bracket.
var objectRe = /(?:\.([\w-]+)(?:\[(.+)\])?)?/;
throw new Error( "cannot parse trackName at all: " + trackName );
// Property and accessor. May contain only word characters. Accessor may
// contain any non-bracket characters.
var propertyRe = /\.([\w-]+)(?:\[(.+)\])?/;
}
var trackRe = new RegExp(''
+ '^'
+ directoryRe.source
+ nodeRe.source
+ objectRe.source
+ propertyRe.source
+ '$'
);
var results = {
// directoryName: matches[ 1 ], // (tschw) currently unused
nodeName: matches[ 2 ], // allowed to be null, specified root node.
objectName: matches[ 3 ],
objectIndex: matches[ 4 ],
propertyName: matches[ 5 ],
propertyIndex: matches[ 6 ] // allowed to be null, specifies that the whole property is set.
};
var supportedObjectNames = [ 'material', 'materials', 'bones' ];
if ( results.propertyName === null || results.propertyName.length === 0
) {
return function ( trackName
) {
throw new Error( "can not parse propertyName from trackName: " +
trackName );
var matches = trackRe.exec(
trackName );
}
if ( ! matches ) {
return results
;
throw new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName )
;
},
}
var results = {
// directoryName: matches[ 1 ], // (tschw) currently unused
nodeName: matches[ 2 ],
objectName: matches[ 3 ],
objectIndex: matches[ 4 ],
propertyName: matches[ 5 ], // required
propertyIndex: matches[ 6 ]
};
var lastDot = results.nodeName && results.nodeName.lastIndexOf( '.' );
if ( lastDot !== undefined && lastDot !== -1 ) {
var objectName = results.nodeName.substring( lastDot + 1 );
// Object names must be checked against a whitelist. Otherwise, there
// is no way to parse 'foo.bar.baz': 'baz' must be a property, but
// 'bar' could be the objectName, or part of a nodeName (which can
// include '.' characters).
if ( supportedObjectNames.indexOf( objectName ) !== -1 ) {
results.nodeName = results.nodeName.substring( 0, lastDot );
results.objectName = objectName;
}
}
if ( results.propertyName === null || results.propertyName.length === 0 ) {
throw new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );
}
return results;
};
}(),
findNode: function ( root, nodeName ) {
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录