-- @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) addWorker(coroutine.wrap(function() setStatus("Getting file...") while not http.canRequest() do coroutine.yield(1) end local objData http.get(link, function(response) objData = response objData = string.gsub(response, "\nl%s%d+%s%d+", "") end) while not objData do coroutine.yield(1) end self:onLoaded(objData) local triangles = mesh.trianglesLeft() setStatus("File received, start parsing...") self.meshData = mesh.createFromObj(objData, true) self:onParsed(self.meshData, triangles - mesh.trianglesLeft()) setName(initialChipName) return 2 end)) end -- STUB function ObjParser:onLoaded(objData) end function ObjParser:onParsed(meshData, usedTriangles) end