Libs/Analyze/Analyze.h
Namespaces
| Name | 
|---|
| shapeworks  User usage reporting (telemetry)  | 
Classes
| Name | |
|---|---|
| class | shapeworks::Analyze  High level analyze API.  | 
Source code
#pragma once
#include <ParticleShapeStatistics.h>
#include <Project/Project.h>
#include "Shape.h"
namespace shapeworks {
class Analyze {
 public:
  enum AlignmentType {
    Global = -2,
    Local = -1,
  };
  Analyze(ProjectHandle project);
  void run_offline_analysis(std::string outfile, float range, float steps);
  ShapeList get_shapes();
  int get_num_subjects();
  int get_num_modes();
  int get_num_particles();
  Particles get_mean_shape_points();
  ShapeHandle get_mean_shape();
  Particles get_group_shape_particles(double ratio);
  ShapeHandle get_group_shape(double ratio);
  Particles get_shape_points(int mode, double value);
  ShapeHandle get_mode_shape(int mode, double value);
  bool groups_active() { return false; }
  ShapeHandle create_shape_from_points(Particles points);
  Eigen::VectorXd get_subject_features(int subject, std::string feature_name);
  void set_group_selection(std::string group_name, std::string group1, std::string group2);
  ParticleSystemEvaluation get_local_particle_system(int domain);
 private:
  bool update_shapes();
  bool compute_stats();
  void initialize_mesh_warper();
  Particles convert_from_combined(const Eigen::VectorXd& points);
  ProjectHandle project_;
  // collection of shapes
  ShapeList shapes_;
  ShapeList group1_list_;
  ShapeList group2_list_;
  std::shared_ptr<MeshManager> mesh_manager_;
  ParticleShapeStatistics stats_;
  bool stats_ready_ = false;
  std::string selected_group_;
  std::string group1_;
  std::string group2_;
};
}  // namespace shapeworks
Updated on 2024-03-17 at 12:58:44 -0600