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