--@name koptilnya/mesh_loader/obj_parser --@client --@include /koptilnya/libs/workers.txt require("/koptilnya/libs/workers.txt") ObjParser = class("ObjParser") local initialChipName = chip():getChipName() local function setStatus(status) setName(string.format("%s (%s)", initialChipName, status)) end function ObjParser:initialize(link) self.link = link self.rawData = nil self.objData = {} end function ObjParser:parse() addWorker(coroutine.wrap(function() setStatus("Getting file...") while not http.canRequest() do coroutine.yield(1) end local rawObj http.get(self.link, function(response) rawObj = response end) while not rawObj do coroutine.yield(1) end self.rawObj = rawObj self:onLoaded(rawObj) setStatus("File received, start parsing...") local triangles = mesh.trianglesLeft() self.objData = mesh.createFromObj(self.rawObj, true) self:onParsed(self.objData, triangles - mesh.trianglesLeft()) setName(initialChipName) return 2 end)) end -- STUB function ObjParser:onLoaded(objData) end function ObjParser:onParsed(meshData, usedTriangles) end