diff options
author | 53hornet <53hornet@gmail.com> | 2019-02-02 23:33:15 -0500 |
---|---|---|
committer | 53hornet <53hornet@gmail.com> | 2019-02-02 23:33:15 -0500 |
commit | db072ad4dc181eca5a1458656b130beb43f475bf (patch) | |
tree | a3c03c7f5497cb70503e2486662fa85cfb53415a /hw6/bin/HW5.cpp | |
download | csci427-db072ad4dc181eca5a1458656b130beb43f475bf.tar.xz csci427-db072ad4dc181eca5a1458656b130beb43f475bf.zip |
Diffstat (limited to 'hw6/bin/HW5.cpp')
-rw-r--r-- | hw6/bin/HW5.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/hw6/bin/HW5.cpp b/hw6/bin/HW5.cpp new file mode 100644 index 0000000..2908fb6 --- /dev/null +++ b/hw6/bin/HW5.cpp @@ -0,0 +1,56 @@ +#include <string> +#include <chrono> +#include <iostream> + +#include "util.h" +#include "image.h" +#include "scene.h" +#include "imageIO.h" +#include "sceneIO.h" + +int main(int argc, char** argv) +{ + // parse command line + if(argc < 2) + { + std::cout << "Usage: " << argv[0] << " <scene.xml> [scene2.xml ...]" << std::endl; + return -1; + } + + // for each filename, import scene and render + unsigned int pos=1; + while(pos < argc) + { + // get filename + std::string filename = argv[pos++]; + + // import + std::cerr << " * Reading " << filename << "..."; + auto startImport = std::chrono::system_clock::now(); + + scene s; + importScene(filename, s); + + auto endImport = std::chrono::system_clock::now(); + std::chrono::duration<float> durationImport = endImport - startImport; + std::cerr << durationImport.count() << " seconds." << std::endl; + + // render + std::cerr << " * Rendering... "; + auto startTime = std::chrono::system_clock::now(); + + image result = s.render(); + + auto endTime = std::chrono::system_clock::now(); + std::chrono::duration<float> duration = endTime - startTime; + std::cerr << duration.count() << " seconds." << std::endl; + + // save image (both pfm and ppm) + std::cerr << " * Writing result." << std::endl; + exportImage(getFilename(filename) + ".pfm", result); + exportImage(getFilename(filename) + ".ppm", result); + } + + // Done. + return 0; +} |