#pragma once

namespace MinkowskiCpp
{
    public ref class Minkowski sealed
    {
    public:
        static void setData(int cntA, const Platform::Array<double>^ pntsA, int holesCnt, const Platform::Array<int>^ holesSizes, const Platform::Array<double>^ holesPoints, int cntB, const Platform::Array<double>^ pntsB);
        static void getSizes1(Platform::WriteOnlyArray<int>^ sizes);
        static void getSizes2(Platform::WriteOnlyArray<int>^ sizes1, Platform::WriteOnlyArray<int>^ sizes2);
        static void getResults(Platform::WriteOnlyArray<double>^ data, Platform::WriteOnlyArray<double>^ holesData);
        static void calculateNFP();
    private:
        Minkowski();
        static Minkowski^ Instance;
    };
}