STLloader和three.js - 如何检查文件是否为二进制文件?

时间:2016-07-25 23:46:09

标签: three.js

使用three.js(r79)和STLLoader渲染.stl文件。

只有当文件是二进制文件时才应处理以下代码段,因为如果它是ASCII - 我会收到错误。

 geometry = new THREE.Geometry().fromBufferGeometry( geometry );

1 个答案:

答案 0 :(得分:1)

以下代码将新属性添加到生成的几何体isASCII和isBinary。

var loader = new THREE.STLLoader();
loader.parseBinary = function(data){
    var parsebinary = THREE.STLLoader.prototype.parseBinary.bind(this); 
    var result = parsebinary(data);
    result.isBinary = true;
    return result;
};
loader.parseASCII= function(data){
    var parseASCII= THREE.STLLoader.prototype.parseASCII.bind(this); 
    var result = parseASCII(data);
    result.isASCII = true;
    return result;
};
loader.load(url,function(geometry){
    if (geometry.isASCII){
        ...
    } else if (geometry.isBinary){
        ...
    } 
});

加载器已经分离了二进制文件和ascii文件。这只是利用了这个功能。