Skip to content

Libs/Project/Project.h

Namespaces

Name
shapeworks
User usage reporting (telemetry)

Classes

Name
class shapeworks::LandmarkDefinition
Landmark class containing properties of each landmark.
class shapeworks::Project
Representation of a project.

Source code

```cpp

pragma once

include

include

include

include

include

include "Parameters.h"

include "Subject.h"

namespace shapeworks {

class Project; using ProjectHandle = std::shared_ptr;

class LandmarkDefinition { public: std::string domain_; int domain_id_ = -1; int landmark_id = -1; std::string name_; bool visible_ = true; std::string color_; std::string comment_; };

class Project { public: Project(); ~Project();

bool load(const std::string& filename);

bool save(const std::string& filename = "");

void set_project_path(const std::string& path);

std::string get_project_path();

std::string get_filename();

void set_filename(std::string filename);

std::vector get_headers();

std::vector get_string_column(const std::string& name) const;

int get_number_of_subjects();

int get_number_of_domains_per_subject();

std::vector get_domain_names();

void set_domain_names(std::vector domain_names);

std::vector>& get_subjects();

std::vector> get_non_excluded_subjects();

void set_subjects(const std::vector>& subjects);

void update_subjects();

bool get_originals_present() const;

bool get_groomed_present() const;

bool get_particles_present() const;

bool get_images_present();

bool get_fixed_subjects_present();

bool get_excluded_subjects_present();

std::vector get_feature_names();

std::vector get_image_names();

std::vector get_group_names();

std::vector get_group_values(const std::string& group_name) const;

Parameters get_parameters(const std::string& name, std::string domain_name = "");

std::map get_parameter_map(const std::string& name);

void set_parameter_map(const std::string& name, std::map map);

void set_parameters(const std::string& name, Parameters params, std::string domain_name = "");

void clear_parameters(const std::string& name);

int get_supported_version() const;

int get_version() const;

std::vector get_landmarks(int domain_id);

std::vector> get_all_landmark_definitions();

void set_landmark_definitions(std::vector> defs);

bool get_landmarks_present();

void set_landmarks(int domain_id, std::vector landmarks);

void new_landmark(int domain_id);

std::vector get_original_domain_types();

std::vector get_groomed_domain_types();

void set_original_domain_types(std::vector domain_types);

void set_groomed_domain_types(std::vector domain_types);

private: void set_default_landmark_colors();

void determine_feature_names();

std::string get_next_landmark_name(int domain_id); std::string get_next_landmark_color(int domain_id);

std::vector> subjects_;

std::string filename_; std::string project_path_;

std::vector default_landmark_colors_;

bool originals_present_{false}; bool groomed_present_{false}; bool particles_present_{false}; bool images_present_{false};

std::vector feature_names_; std::vector image_names_;

std::vector> landmark_definitions_;

std::vector domain_names_; std::vector original_domain_types_; std::vector groomed_domain_types_;

// map of type (e.g. groom, optimize) to map (domain->Parameters) std::map> parameters_;

static constexpr int supported_version_{2}; int version_{2}; }; } // namespace shapeworks ```


Updated on 2026-03-31 at 16:02:11 +0000