-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathMeshWorker.cpp
36 lines (28 loc) · 1 KB
/
MeshWorker.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <MeshWorker.h>
namespace shapeworks {
//---------------------------------------------------------------------------
MeshWorker::MeshWorker(MeshWorkQueue* queue, std::shared_ptr<MeshGenerator> generator)
: queue_(queue), mesh_generator_(generator)
{
}
//---------------------------------------------------------------------------
MeshWorker::~MeshWorker()
{
}
//---------------------------------------------------------------------------
void MeshWorker::run()
{
// build the mesh using our MeshGenerator
auto item = this->queue_->get_next_work_item();
MeshHandle mesh = this->mesh_generator_->build_mesh(*item);
if (mesh->get_poly_data()) {
// compute the memory size of this shape
size_t shape_size = item->points.size() * sizeof(double);
size_t mesh_size = mesh->get_poly_data()->GetActualMemorySize() * 1024; // given in kb
size_t combined_size = (shape_size * 2) + mesh_size;
item->memory_size = combined_size;
}
Q_EMIT result_ready(*item, mesh);
Q_EMIT finished();
}
}