Libs/Common/ShapeworksUtils.h
Namespaces
| Name | 
|---|
| shapeworks  User usage reporting (telemetry)  | 
Classes
| Name | |
|---|---|
| class | shapeworks::ShapeWorksUtils | 
Source code
#pragma once
#include <vtkMatrix4x4.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <chrono>
#include <random>
#include "Shapeworks.h"
namespace shapeworks {
class ShapeWorksUtils {
  using time_point = std::chrono::time_point<std::chrono::steady_clock>;
 public:
  static time_point now() { return std::chrono::steady_clock::now(); }
  static double elapsed(time_point start, time_point end, bool print_elapsed = true);
  static unsigned get_rng_seed() { return rng_seed_; }
  static void set_rng_seed(const unsigned seed);
  static unsigned get_random_number() { return mt_(); }
  // TODO: in C++17 this is a standard function
  static bool is_directory(const std::string& pathname);
  // TODO: in C++17 this is a standard function
  static bool file_exists(const std::string& filename);
  static void setup_console_logging(bool show_progress, bool xml_status);
  static void set_progress_callback(void* ptr);
  static void setup_threads();
  static Matrix33 convert_matrix(const vtkSmartPointer<vtkMatrix4x4>& mat);
  static Vector3 get_offset(const vtkSmartPointer<vtkMatrix4x4>& mat);
 private:
  static unsigned rng_seed_;
  static std::mt19937 mt_;
};
}  // namespace shapeworks
Updated on 2024-03-17 at 12:58:44 -0600