Mesh loader refactor
This commit is contained in:
38
koptilnya/mesh_loader/obj_parser.txt
Normal file
38
koptilnya/mesh_loader/obj_parser.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
-- @client
|
||||
ObjParser = class("ObjParser")
|
||||
|
||||
local initialChipName = chip():getChipName()
|
||||
local function setStatus(status)
|
||||
setName(string.format("%s (%s)", initialChipName, status))
|
||||
end
|
||||
|
||||
function ObjParser:initialize(link, maxQuota)
|
||||
self.maxQuota = maxQuota or 0.75
|
||||
|
||||
local triangles = mesh.trianglesLeft()
|
||||
|
||||
setStatus("Getting file...")
|
||||
http.get(link, function(objData)
|
||||
local loadMesh = coroutine.wrap(function()
|
||||
self.meshData = mesh.createFromObj(objData, true, true)
|
||||
|
||||
return true
|
||||
end)
|
||||
|
||||
setStatus("File received, start parsing...")
|
||||
hook.add("think", "loadingMesh", function()
|
||||
while quotaAverage() < quotaMax() * self.maxQuota do
|
||||
if loadMesh() then
|
||||
setName(initialChipName)
|
||||
self:onLoaded(objData, self.meshData, triangles - mesh.trianglesLeft())
|
||||
hook.remove("think", "loadingMesh")
|
||||
|
||||
return
|
||||
end
|
||||
end
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
function ObjParser:onLoaded(objData, meshData, usedTriangles)
|
||||
end
|
||||
Reference in New Issue
Block a user