Skip to content

Libs/Analyze/Particles.h

Namespaces

Name
shapeworks
User usage reporting (telemetry)

Classes

Name
class shapeworks::Particles
Representation of correspondence points for a shape including multiple domains.

Source code

```cpp

pragma once

include

include

include

include

include

include "Shapeworks.h"

class vtkTransform;

namespace shapeworks {

class Particles { public: Particles() = default;

void set_local_particles(int domain, const std::vector>& particles); void set_world_particles(int domain, const std::vector>& particles);

void set_local_particles(int domain, Eigen::VectorXd particles); void set_world_particles(int domain, Eigen::VectorXd particles);

std::vector get_local_particles() const; // one Eigen::VectorXd per domain std::vector get_world_particles() const; // one Eigen::VectorXd per domain

Eigen::VectorXd get_local_particles(int domain); Eigen::VectorXd get_world_particles(int domain); Eigen::VectorXd get_raw_world_particles(int domain);

Eigen::VectorXd get_combined_local_particles() const; Eigen::VectorXd get_combined_global_particles() const; void set_combined_global_particles(const Eigen::VectorXd &particles);

std::vector> get_local_points(int domain); std::vector> get_world_points(int domain);

int get_domain_for_combined_id(int id);

void set_transform(vtkSmartPointer transform); void set_procrustes_transforms(const std::vector>& transforms); void set_alignment_type(int alignment); void set_groomed_centroids(const std::vector& centroids);

Eigen::VectorXd get_difference_vectors(const Particles& other) const;

static void save_particles_file(std::string filename, const Eigen::VectorXd& points);

int get_number_of_domains();

int get_total_number_of_particles();

private: void transform_global_particles();

std::vector> eigen_to_point_vector(const Eigen::VectorXd& particles) const;

Eigen::VectorXd combine(const std::vector& particles) const;

void set_particles(int domain, std::vector> particles, bool local); std::vector local_particles_; // one for each domain std::vector global_particles_; // one for each domain std::vector transformed_global_particles_; // one for each domain

vtkSmartPointer transform_; std::vector> procrustes_transforms_; std::vector groomed_centroids_; int alignment_type_ = -3; // not a valid value

}; } // namespace shapeworks ```


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