Skip to content

Libs/Optimize/Neighborhood/ParticleNeighborhood.h

Namespaces

Name
shapeworks
User usage reporting (telemetry)

Classes

Name
class shapeworks::ParticleNeighborhood

Source code

```cpp

pragma once

include

include "Libs/Optimize/Domain/ParticleDomain.h"

include "ParticlePointIndexPair.h"

namespace shapeworks { class ParticleSystem;

class ParticleNeighborhood { public: explicit ParticleNeighborhood(ParticleSystem* ps, int domain_id = -1) : ps_(ps), domain_id_(domain_id) {}

std::vector find_neighborhood_points(const itk::Point& position, int id, std::vector& weights, std::vector& distances, double radius);

std::vector find_neighborhood_points(const itk::Point& position, int id, std::vector& weights, double radius);

std::vector find_neighborhood_points(const itk::Point& position, int id, double radius);

void set_weighting_enabled(bool is_enabled) { weighting_enabled_ = is_enabled; }

bool is_weighting_enabled() const { return weighting_enabled_; }

void set_force_euclidean(bool is_enabled) { force_euclidean_ = is_enabled; }

bool is_force_euclidean() const { return force_euclidean_; }

void set_domain(ParticleDomain::Pointer domain) { domain_ = domain; }; ParticleDomain::Pointer get_domain() const { return domain_; };

void set_domain_id(int id) { domain_id_ = id; }

private: std::pair, std::vector\> get_points_in_sphere( const itk::Point& position, int id, double radius);

ParticleSystem* ps_; ParticleDomain::Pointer domain_; int domain_id_{-1}; double flat_cutoff_{0.3}; bool weighting_enabled_{true}; bool force_euclidean_{false}; };

} // end namespace shapeworks ```


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