Skip to content

Studio/Job/CorrespondenceQualityJob.h

Namespaces

Name
shapeworks
User usage reporting (telemetry)

Classes

Name
class shapeworks::CorrespondenceQualityJob
Scores each sample's correspondence quality.

Source code

#pragma once
#include <Job/Job.h>
#include <Particles/CorrespondenceEvaluation.h>

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

namespace shapeworks {

class Session;


class CorrespondenceQualityJob : public Job {
  Q_OBJECT
 public:
  CorrespondenceQualityJob(QSharedPointer<Session> session, CorrespondenceEvaluation::DistanceMethod method);

  void run() override;
  QString name() override { return "Correspondence Quality"; }

  static constexpr const char* FEATURE_NAME = "correspondence_distance";

  const CorrespondenceQualityReport& get_report() const { return report_; }

  const std::vector<int>& get_row_shape_indices() const { return row_shape_indices_; }

  const std::map<int, Eigen::VectorXd>& get_particle_values() const { return particle_values_; }

  const std::map<int, std::vector<vtkSmartPointer<vtkDataArray>>>& get_distance_fields() const {
    return distance_fields_;
  }

 private:
  QSharedPointer<Session> session_;
  CorrespondenceEvaluation::DistanceMethod method_;

  CorrespondenceQualityReport report_;
  std::vector<int> row_shape_indices_;
  std::map<int, Eigen::VectorXd> particle_values_;
  std::map<int, std::vector<vtkSmartPointer<vtkDataArray>>> distance_fields_;
};

}  // namespace shapeworks

Updated on 2026-08-30 at 04:03:18 +0000