#pragma once #include #include #include #include "NvInfer.h" // Include for nvinfer1::Dims and nvinfer1::Dims3 template class IEngine { public: virtual ~IEngine() = default; virtual bool buildLoadNetwork(std::string onnxModelPath, const std::array &subVals = {0.f, 0.f, 0.f}, const std::array &divVals = {1.f, 1.f, 1.f}, bool normalize = true) = 0; virtual bool loadNetwork(std::string trtModelPath, const std::array &subVals = {0.f, 0.f, 0.f}, const std::array &divVals = {1.f, 1.f, 1.f}, bool normalize = true) = 0; virtual bool runInference(const std::vector> &inputs, std::vector>> &featureVectors) = 0; virtual const std::vector &getInputDims() const = 0; virtual const std::vector &getOutputDims() const = 0; };