17 using std::make_unique;
19 using std::unique_ptr;
32 int main(
int argc,
char** argv)
34 Console::println(
string(
"optimizemodel ") + Version::getVersion());
35 Console::println(Version::getCopyright());
38 Console::println(
"Usage: optimizemodel file.tm [exclude_materials_with_specific_filename1] [exclude_materials_with_specific_filenameN]");
39 Application::exit(Application::EXITCODE_FAILURE);
41 string fileName = string(argv[1]);
42 if (StringTools::endsWith(StringTools::toLowerCase(fileName),
".tm") ==
false) {
43 Console::println(
"optimizemodel only accepts .tm model files");
46 vector<string> excludeDiffuseTextureFileNamePatterns;
47 for (
auto i = 2; i < argc; i++) excludeDiffuseTextureFileNamePatterns.push_back(argv[i]);
49 Console::println(
"Loading model: " + fileName);
50 auto model = unique_ptr<Model>(
52 FileSystem::getInstance()->getPathName(fileName),
53 FileSystem::getInstance()->getFileName(fileName)
56 if (ModelTools::isOptimizedModel(model.get()) ==
true) {
57 Console::println(
"Already optimized. Skipping.");
59 Console::println(
"Optimizing model: " + fileName);
60 auto originalModel = model.get();
61 auto optimizedModel = unique_ptr<Model>(
62 ModelTools::optimizeModel(
64 FileSystem::getInstance()->getPathName(fileName),
65 excludeDiffuseTextureFileNamePatterns
68 if (originalModel == optimizedModel.get()) {
69 Console::println(
"No optimization was required. Skipping.");
71 Console::println(
"Exporting model: " + fileName);
74 FileSystem::getInstance()->getPathName(fileName),
75 FileSystem::getInstance()->getFileName(fileName)
80 Console::println(
"An error occurred: " +
string(exception.what()));
84 Application::exit(Application::EXITCODE_SUCCESS);
Application base class, please make sure to allocate application on heap to have correct application ...
File system singleton class.
std::exception Exception
Exception base class.
int main(int argc, char **argv)