Skip to content

File bench_centroid_to_face.h

File List > benchmark > metrics > implementations > bench_centroid_to_face.h

Go to the documentation of this file

#pragma once

#include "mesh/Mesh.h"
#include "../Metric.h"

#include <benchmark/benchmark.h>
#include <cstddef>

namespace Argos {

    struct BenchCentroidToFace {

        double meanAB;
        double meanBA;
        double mean;

        double maxAB;
        double maxBA;

        double minAB;
        double minBA;

        size_t sizeA;
        size_t sizeB;
    };

    class BenchCentroidToFaceComputer {

      public:

        static BenchCentroidToFace compute(const Mesh& a, const Mesh& b);
    };

    class CentroidToFaceMetric : public Metric {
    public:
        CentroidToFaceMetric() : Metric("CentroidToFace") {}

        ~CentroidToFaceMetric() = default;

        void compute(const Mesh& original, const Mesh& reconstructed, benchmark::State& state) const override;
    };
}