int main(int argc, char *argv[]) { int nsteps = 0; data_t a = 0, b = 0; char *s = NULL; if (argc != 1 && argc != 2 && argc != 4 && argc != 5) { EE("Usage:\n"); EE("To integrate each expression between a and b:" "%s a b nsteps\n", argv[0]); EE("If called without arguments it is a calculator\n"); return 1; } else if (argc >= 4) { a = strtod(argv[1], NULL); b = strtod(argv[2], NULL); nsteps = strtol(argv[3], NULL, 0); if (argc == 5) s = argv[4]; } else if (argc == 2) { s = argv[1]; } uiloop(a, b, nsteps, s); return 0; }
// runs the raytrace over all tests and saves the corresponding images int main(int argc, char** argv) { // test that glfw and glew are linked properly uiloop(); message("GLFW and GLEW seem to work\n\n"); // test max_component function vec3f v(1,2,-3); float max_val = max_component(v); message("Result of max_component: %f\n", max_val); // test sum of three vectors vec3f va(1,0,0); vec3f vb(0,4,0); vec3f vc(0,0,2); vec3f vabc = sum_three(va, vb, vc); message("Result of sum_three: %s\n", tostring(vabc).c_str()); // test sum of vectors vector<vec3f> vs = { {3.14,1.5,2.7}, {2.71,8.2,8.2}, {1.61,8.0,3.4}, {1.41,4.2,1.4}, }; vec3f vsum = sum_many(vs); message("Result of sum_many: %s\n", tostring(vsum).c_str()); message("\nThis message indicates a successful build!\n\n"); return 0; }
// main function int main(int argc, char** argv) { auto args = parse_cmdline(argc, argv, { "03_animate", "view scene", { {"resolution", "r", "image resolution", typeid(int), true, jsonvalue() } }, { {"scene_filename", "", "scene filename", typeid(string), false, jsonvalue("scene.json")}, {"image_filename", "", "image filename", typeid(string), true, jsonvalue("")} } }); // generate/load scene either by creating a test scene or loading from json file scene_filename = args.object_element("scene_filename").as_string(); scene = nullptr; if(scene_filename.length() > 9 and scene_filename.substr(0,9) == "testscene") { int scene_type = atoi(scene_filename.substr(9).c_str()); scene = create_test_scene(scene_type); scene_filename = scene_filename + ".json"; } else { scene = load_json_scene(scene_filename); } error_if_not(scene, "scene is nullptr"); image_filename = (args.object_element("image_filename").as_string() != "") ? args.object_element("image_filename").as_string() : scene_filename.substr(0,scene_filename.size()-5)+".png"; if(not args.object_element("resolution").is_null()) { scene->image_height = args.object_element("resolution").as_int(); scene->image_width = scene->camera->width * scene->image_height / scene->camera->height; } animate_reset(scene); subdivide(scene); uiloop(); }
// main function int main(int argc, char** argv) { auto args = parse_cmdline(argc, argv, { "03_model", "raytrace a scene", { {"resolution", "r", "image resolution", "int", true, jsonvalue() } }, { {"scene_filename", "", "scene filename", "string", false, jsonvalue("scene.json")}, {"image_filename", "", "image filename", "string", true, jsonvalue("")} } }); scene_filename = args.object_element("scene_filename").as_string(); image_filename = (args.object_element("image_filename").as_string() != "") ? args.object_element("image_filename").as_string() : scene_filename.substr(0,scene_filename.size()-5)+".png"; scene = load_json_scene(scene_filename); if(! args.object_element("resolution").is_null()) { scene->image_height = args.object_element("resolution").as_int(); scene->image_width = scene->camera->width * scene->image_height / scene->camera->height; } subdivide(scene); uiloop(); }