53 lines
1.1 KiB
Plaintext
53 lines
1.1 KiB
Plaintext
-- @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)
|
|
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
|
|
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
|