Skip to main content

AVxcelerate Simulation Framework 2026 R1 SP01

File min_ttc_evaluator.cpp

Last update: 22.04.2026

Location: autonomy/evaluator/min_ttc_evaluator/min_ttc_evaluator.cpp

Namespaces

Includes

Source



#include "autonomy/evaluator/min_ttc_evaluator/min_ttc_evaluator.h"

namespace simulation_framework
{

namespace evaluator
{

MinTtcEvaluator::MinTtcEvaluator(const std::string& kpi_name)
    : min_ttc_(std::chrono::milliseconds::max()), kpi_name_(kpi_name)
{
}

void MinTtcEvaluator::Init() {}

void MinTtcEvaluator::Reset()
{
    min_ttc_ = std::chrono::milliseconds::max();
}

core::kpi::KpiContent MinTtcEvaluator::CalculateKpi(const osi3::GroundTruth& ground_truth)
{
    core::kpi::KpiContent kpi_content;
    kpi_content.name = kpi_name_;
    kpi_content.data_type = core::kpi::Datatype::Value::kDouble;
    kpi_content.type = GetKpiType();
    kpi_content.unit = "ms";
    kpi_content.timestamp.seconds = ground_truth.timestamp().seconds();
    kpi_content.timestamp.nanoseconds = ground_truth.timestamp().nanos();

    const auto ttc = ttc_calculator_.Calculate(ground_truth);

    if (ttc < min_ttc_)
    {
        min_ttc_ = ttc;
    }

    kpi_content.value = std::to_string(min_ttc_.count());

    return kpi_content;
}

core::kpi::Type MinTtcEvaluator::GetKpiType() const
{
    return core::kpi::Type::kScalar;
}

}  // namespace evaluator
}  // namespace simulation_framework

Connect with Ansys