int main(int argc, const char* argv[]) { // Initialize the logger that will be used throughout the program. SuperLogger logger; // Make sure appleseed is correctly installed. Application::check_installation(logger); // Parse the command line. CommandLineHandler cl; cl.parse(argc, argv, logger); // Load an apply settings from the settings file. Dictionary settings; Application::load_settings("appleseed.tools.xml", settings, logger); logger.configure_from_settings(settings); // Apply command line arguments. cl.apply(logger); // Configure the renderer's global logger. // Must be done after settings have been loaded and the command line // has been parsed, because these two operations may replace the log // target of the global logger. global_logger().initialize_from(logger); // Retrieve the command line arguments. const string& input_filepath = cl.m_filenames.values()[0]; const string& output_filepath = cl.m_filenames.values()[1]; const FluffParams params(cl); // Construct the schema file path. const bf::path schema_filepath = bf::path(Application::get_root_path()) / "schemas" / "project.xsd"; // Read the input project from disk. ProjectFileReader reader; auto_release_ptr<Project> project( reader.read( input_filepath.c_str(), schema_filepath.string().c_str())); // Bail out if the project couldn't be loaded. if (project.get() == 0) return 1; // Fluffify the project. make_fluffy(project.ref(), params); // Write the project back to disk. const bool success = ProjectFileWriter::write( project.ref(), output_filepath.c_str()); return success ? 0 : 1; }
int main(int argc, const char* argv[]) { // Initialize the logger that will be used throughout the program. SuperLogger logger; // Make sure appleseed is correctly installed. Application::check_installation(logger); // Parse the command line. CommandLineHandler cl; cl.parse(argc, argv, logger); // Load an apply settings from the settings file. Dictionary settings; Application::load_settings("appleseed.tools.xml", settings, logger); logger.configure_from_settings(settings); // Apply command line arguments. cl.apply(logger); dump_metadata(cl.m_format.value(), logger); return 0; }
int main(int argc, const char* argv[]) { // Initialize the logger that will be used throughout the program. SuperLogger logger; // Make sure appleseed is correctly installed. Application::check_installation(logger); // Parse the command line. CommandLineHandler cl; cl.parse(argc, argv, logger); // Load an apply settings from the settings file. Dictionary settings; Application::load_settings("appleseed.tools.xml", settings, logger); logger.configure_from_settings(settings); // Apply command line arguments. cl.apply(logger); // Configure the renderer's global logger. // Must be done after settings have been loaded and the command line // has been parsed, because these two operations may replace the log // target of the global logger. global_logger().initialize_from(logger); // Retrieve the input file path. const string& input_filepath = cl.m_filename.value(); // Construct the schema file path. const bf::path schema_filepath = bf::path(Application::get_root_path()) / "schemas" / "project.xsd"; // Read the input project from disk. // Note: it is crucial that we read mesh files as well, so that we can collect // material slots declared by objects. Material slots are required by the project // file updater, for instance when migrating projects from rev. 7 to rev. 8. ProjectFileReader reader; auto_release_ptr<Project> project( reader.read( input_filepath.c_str(), schema_filepath.string().c_str(), ProjectFileReader::OmitProjectFileUpdate)); // Bail out if the project couldn't be loaded. if (project.get() == 0) return 1; // Update the project file to the desired revision. ProjectFileUpdater updater; if (cl.m_to_revision.is_set()) updater.update(project.ref(), cl.m_to_revision.value()); else updater.update(project.ref()); // Write the project back to disk. const bool success = ProjectFileWriter::write( project.ref(), project->get_path(), ProjectFileWriter::OmitWritingGeometryFiles | ProjectFileWriter::OmitHandlingAssetFiles); return success ? 0 : 1; }