#include <iostream>

#include "stl_parser.hpp"
#include "vector.hpp"
#include "scene.hpp"
#include "point.hpp"
#include "mesh.hpp"

#include <sys/ioctl.h> // ioctl() and TIOCGWINSZ
#include <unistd.h>    // for STDOUT_FILENO

int main(int argc, char* argv[]) {
    if (argc < 2) {
        std::cout << "no input stl file" << std::endl;
        return 0;
    }

    struct winsize size;
    ioctl(STDOUT_FILENO, TIOCGWINSZ, &size);
    // std::cout << "COLS=" << size.ws_col << ", ROWS=" << size.ws_row << std::endl;

    visual_engine::scene scene(size.ws_col, size.ws_row);
    visual_engine::bin_stl_parser prsr(argv[1]);
    visual_engine::mesh msh(prsr.begin(), prsr.end(), prsr.triag_count());
    // msh.console_dump();
    scene.add_mesh(msh);
    scene.render();

    std::getchar();
    return 0;
}
