@blockv/threejs-to-v3d
Version:
Converts any format supported by ThreeJS to V3D.
46 lines (32 loc) • 1.06 kB
JavaScript
//
// Represents a file read from a browser's <input type='file' /> tag
const DataFile = require("./DataFile");
module.exports = class BrowserFile extends DataFile {
static isSupported(fileData) {
if (typeof FileReader == "undefined") return false;
return fileData instanceof File;
}
constructor(file) {
super(file.webkitRelativePath || file.name);
// Properties
this._file = file;
}
loadText() {
return new Promise((onSuccess, onFail) => {
// Creaet reader
var reader = new FileReader();
reader.onerror = onFail;
reader.onload = e => onSuccess(reader.result);
reader.readAsText(this._file);
});
}
loadBytes() {
return new Promise((onSuccess, onFail) => {
// Creaet reader
var reader = new FileReader();
reader.onerror = onFail;
reader.onload = e => onSuccess(reader.result);
reader.readAsArrayBuffer(this._file);
});
}
}