使用three.js(r79)和STLLoader渲染.stl文件。
只有当文件是二进制文件时才应处理以下代码段,因为如果它是ASCII - 我会收到错误。
geometry = new THREE.Geometry().fromBufferGeometry( geometry );
答案 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文件。这只是利用了这个功能。