2 #include "mesh_gen_mgr.hpp"
6 using namespace dragonblocks;
8 void MeshGenMgr::MeshGenerator::updateMesh()
12 void MeshGenMgr::addTask(MeshGenMgr::MeshGenerator *gen)
14 queued_jobs.push(gen);
17 void MeshGenMgr::step()
24 void MeshGenMgr::run()
31 void MeshGenMgr::generateJobList()
33 set<MeshGenMgr::MeshGenerator *> active_jobs_set;
34 while (! queued_jobs.empty()) {
35 MeshGenMgr::MeshGenerator *gen = queued_jobs.front();
37 if (active_jobs_set.find(gen) == active_jobs_set.end()) {
38 active_jobs_set.insert(gen);
39 active_jobs.push(gen);
45 bool MeshGenMgr::runJob()
47 if (active_jobs.empty())
49 MeshGenMgr::MeshGenerator *gen = active_jobs.front();
57 void MeshGenMgr::start()
59 mesh_gen_thread = thread(&MeshGenMgr::run, this);