#include "prism/raster_lab.hpp" #include #include #include int main(int argc, char* argv[]) { if (argc == 2 && std::string_view{argv[1]} == "--help") { std::cout << "Parallax screen-space raster reference\nUsage: prism-raster \n"; return 0; } if (argc != 2) { std::cerr << "Usage: prism-raster \n"; return 1; } try { auto image = prism::rasterize(prism::demo_raster_scene()); if (!image) { std::cerr << image.error().message << '\n'; return 1; } if (const auto result = prism::write_ppm(std::filesystem::path{argv[1]}, *image); !result) { std::cerr << result.error().message << '\n'; return 1; } std::cout << "Rasterized " << image->width << " × " << image->height << " pixels.\n"; return 0; } catch (const std::exception&) { std::cerr << "The raster experiment could not complete.\n"; return 1; } }