Libs/Analyze/MeshManager.h
Namespaces
| Name | 
|---|
| shapeworks  User usage reporting (telemetry)  | 
Classes
| Name | |
|---|---|
| class | shapeworks::MeshManager  Class to manage meshes.  | 
Source code
#pragma once
#include "MeshCache.h"
#include "MeshGenerator.h"
#include "MeshWorkQueue.h"
#include "MeshWorker.h"
#include <vtkSmartPointer.h>
#include <QThreadPool>
#include <QWaitCondition>
class SurfaceReconstructor;
namespace shapeworks {
class MeshWarper;
class MeshManager : public QObject {
  Q_OBJECT
 public:
  MeshManager();
  ~MeshManager();
  void set_cache_enabled(bool enabled);
  void set_cache_memory_percent(int percent);
  void set_parallel_enabled(bool enabled) { parallel_enabled_ = enabled; }
  void set_num_threads(int num_threads) { num_threads_ = num_threads; }
  void generate_mesh(const MeshWorkItem item);
  MeshHandle get_mesh(const MeshWorkItem& item, bool wait = false);
  MeshHandle get_mesh(const Eigen::VectorXd& points, int domain, bool wait = false);
  std::shared_ptr<SurfaceReconstructor> get_surface_reconstructor(int domain);
  std::shared_ptr<MeshWarper> get_mesh_warper(int domain);
  std::shared_ptr<MeshGenerator> get_mesh_generator() { return this->mesh_generator_; }
  void clear_cache();
 public Q_SLOTS:
  void handle_thread_complete(const MeshWorkItem& item, MeshHandle mesh);
  void handle_warper_progress();
 Q_SIGNALS:
  void new_mesh();
  void error_encountered(QString message);
  void progress(int);
  void status(std::string);
 private:
  std::shared_ptr<MeshReconstructors> reconstructors_ = std::make_shared<MeshReconstructors>();
  void check_error_status(MeshHandle mesh);
  // cache of shape meshes
  MeshCache mesh_cache_;
  // the mesh generator
  std::shared_ptr<MeshGenerator> mesh_generator_ = std::make_shared<MeshGenerator>();
  // queue of meshes to build
  MeshWorkQueue work_queue_;
  QThreadPool thread_pool_;
  bool cache_enabled_ = true;
  bool parallel_enabled_ = true;
  int num_threads_ = 1;
  bool error_emitted_ = false;
};
}  // namespace shapeworks
Updated on 2024-03-17 at 12:58:44 -0600