Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
5c07056c
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,发现更多精彩内容 >>
提交
5c07056c
编写于
11月 26, 2014
作者:
J
James Kiefer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
implement XHRLoader in STLLoader.js
上级
0860226b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
61 deletion
+25
-61
examples/js/loaders/STLLoader.js
examples/js/loaders/STLLoader.js
+25
-61
未找到文件。
examples/js/loaders/STLLoader.js
浏览文件 @
5c07056c
...
...
@@ -8,32 +8,28 @@
* Supports both binary and ASCII encoded files, with automatic detection of type.
*
* Limitations:
*
Binary decoding supports "Magics" color format (http://en.wikipedia.org/wiki/STL_(file_format)#Color_in_binary_STL).
*
There is perhaps some question as to how valid it is to always assume little-endian-ness.
*
ASCII decoding assumes file is UTF-8. Seems to work for the examples...
* Binary decoding supports "Magics" color format (http://en.wikipedia.org/wiki/STL_(file_format)#Color_in_binary_STL).
* There is perhaps some question as to how valid it is to always assume little-endian-ness.
* ASCII decoding assumes file is UTF-8. Seems to work for the examples...
*
* Usage:
* var loader = new THREE.STLLoader();
* loader.addEventListener( 'load', function ( event ) {
*
* var geometry = event.content;
* scene.add( new THREE.Mesh( geometry ) );
*
* } );
* loader.load( './models/stl/slotted_disk.stl' );
* var loader = new THREE.STLLoader();
* loader.load( './models/stl/slotted_disk.stl', function(geometry){
* scene.add( new THREE.Mesh( geometry ) );
* });
*
* For binary STLs geometry might contain colors for vertices. To use it:
* ... // use the same code to load STL as above
* var geometry = event.content;
* if (geometry.hasColors) {
* material = new THREE.MeshPhongMaterial({ opacity: geometry.alpha, vertexColors: THREE.VertexColors });
* } else { .... }
* var mesh = new THREE.Mesh( geometry, material );
* ... // use the same code to load STL as above
* if (geometry.hasColors) {
* material = new THREE.MeshPhongMaterial({ opacity: geometry.alpha, vertexColors: THREE.VertexColors });
* } else { .... }
* var mesh = new THREE.Mesh( geometry, material );
*/
THREE
.
STLLoader
=
function
(
manager
)
{
this
.
manager
=
(
manager
!==
undefined
)
?
manager
:
THREE
.
DefaultLoadingManager
;
THREE
.
STLLoader
=
function
(
manager
,
crossOrigin
)
{
this
.
manager
=
(
manager
!==
undefined
)
?
manager
:
THREE
.
DefaultLoadingManager
;
this
.
crossOrigin
=
crossOrigin
;
};
THREE
.
STLLoader
.
prototype
=
{
...
...
@@ -42,53 +38,21 @@ THREE.STLLoader.prototype = {
};
THREE
.
STLLoader
.
prototype
.
load
=
function
(
url
,
callback
)
{
var
scope
=
this
;
var
xhr
=
new
XMLHttpRequest
();
function
onloaded
(
event
)
{
if
(
event
.
target
.
status
===
200
||
event
.
target
.
status
===
0
)
{
var
geometry
=
scope
.
parse
(
event
.
target
.
response
||
event
.
target
.
responseText
);
scope
.
dispatchEvent
(
{
type
:
'
load
'
,
content
:
geometry
}
);
if
(
callback
)
callback
(
geometry
);
}
else
{
scope
.
dispatchEvent
(
{
type
:
'
error
'
,
message
:
'
Couldn
\'
t load URL [
'
+
url
+
'
]
'
,
response
:
event
.
target
.
statusText
}
);
}
}
xhr
.
addEventListener
(
'
load
'
,
function
(
event
){
onloaded
(
event
);
scope
.
manager
.
itemEnd
(
url
);
},
false
);
xhr
.
addEventListener
(
'
progress
'
,
function
(
event
)
{
scope
.
dispatchEvent
(
{
type
:
'
progress
'
,
loaded
:
event
.
loaded
,
total
:
event
.
total
}
);
},
false
);
THREE
.
STLLoader
.
prototype
.
load
=
function
(
url
,
onLoad
,
onProgress
,
onError
)
{
xhr
.
addEventListener
(
'
error
'
,
function
()
{
var
scope
=
this
;
scope
.
dispatchEvent
(
{
type
:
'
error
'
,
message
:
'
Couldn
\'
t load URL [
'
+
url
+
'
]
'
}
);
var
loader
=
new
THREE
.
XHRLoader
(
scope
.
manager
);
loader
.
setCrossOrigin
(
this
.
crossOrigin
);
loader
.
setResponseType
(
'
arraybuffer
'
);
loader
.
load
(
url
,
function
(
text
)
{
},
false
);
var
geometry
=
scope
.
parse
(
text
);
if
(
xhr
.
overrideMimeType
)
xhr
.
overrideMimeType
(
'
text/plain; charset=x-user-defined
'
);
xhr
.
open
(
'
GET
'
,
url
,
true
);
xhr
.
responseType
=
'
arraybuffer
'
;
xhr
.
send
(
null
);
if
(
onLoad
)
onLoad
(
geometry
);
scope
.
manager
.
itemStart
(
url
);
},
onProgress
,
onError
);
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录