#pragma once

#include "TriMesh.h"
#include "LineMesh.h"
#include "Point.h"

#include <memory>

using EdgeIds = std::vector<std::pair<unsigned, unsigned> >;
using FaceIds = std::vector<std::vector<unsigned> >;
using VecPoints = std::vector<Point>;

class MeshBuilder
{
public:
    static std::unique_ptr<TriMesh> buildTriMesh(const VecPoints& locations, const EdgeIds& edgeIds, const FaceIds& faceIds);

    static std::unique_ptr<LineMesh> buildLineMesh(const VecPoints& locations, const EdgeIds& edgeIds);
};
