import request from "./request.js"; class EgoPose { constructor(sceneMeta, world, frameInfo) { this.world = world; this.data = this.world.data; this.sceneMeta = sceneMeta; } preload(on_preload_finished) { this.on_preload_finished = on_preload_finished; this.load_ego_pose(); } load_ego_pose() { var xhr = new XMLHttpRequest(); // we defined the xhr var _self = this; xhr.onreadystatechange = function () { if (this.readyState != 4) return; if (this.status == 200) { let egoPose = JSON.parse(this.responseText); _self.egoPose = egoPose; } console.log(_self.world.frameInfo.frame, "egopose", "loaded"); _self.preloaded = true; if (_self.on_preload_finished) { _self.on_preload_finished(); } if (_self.go_cmd_received) { _self.go(this.webglScene, this.on_go_finished); } // end of state change: it can be after some time (async) }; xhr.open( "GET", request + "/load_ego_pose" + "?scene=" + this.world.frameInfo.scene + "&frame=" + this.world.frameInfo.frame, true ); xhr.send(); } go_cmd_received = false; on_go_finished = null; go(webglScene, on_go_finished) { if (this.preloaded) { if (on_go_finished) on_go_finished(); } else { this.go_cmd_received = true; this.on_go_finished = on_go_finished; } } unload() {} } export { EgoPose };