Skip to content

Libs/Particles/ParticleSystemEvaluation.h

Namespaces

Name
shapeworks
User usage reporting (telemetry)

Classes

Name
class shapeworks::ParticleSystemEvaluation

Source code

#pragma once

#include <Eigen/Core>
#include <vector>

namespace shapeworks {

class ParticleSystemEvaluation {
 public:
  ParticleSystemEvaluation(const std::vector<std::string>& paths);

  // Initialize particle system from eigen matrix (rows=dimensions, cols=num_samples)
  ParticleSystemEvaluation(const Eigen::MatrixXd& matrix);

  const Eigen::MatrixXd& Particles() const { return P; };

  const std::vector<std::string>& Paths() const { return paths; }

  int N() const { return P.cols(); }

  int D() const { return P.rows(); }

  bool ExactCompare(const ParticleSystemEvaluation& other) const;

  bool EvaluationCompare(const ParticleSystemEvaluation& other) const;

  static bool ReadParticleFile(std::string filename, Eigen::VectorXd& points);

 private:
  friend struct SharedCommandData;

  ParticleSystemEvaluation() {
  }  // only for use by SharedCommandData since a ParticleSystem should always be valid, never "empty"

  Eigen::MatrixXd P;
  std::vector<std::string> paths;
};
}  // namespace shapeworks

Updated on 2024-03-17 at 12:58:44 -0600