diff --git a/AssimpToMesh/AssimpToMesh.vcxproj b/AssimpToMesh/AssimpToMesh.vcxproj
index 9a6409e..dd52f56 100644
--- a/AssimpToMesh/AssimpToMesh.vcxproj
+++ b/AssimpToMesh/AssimpToMesh.vcxproj
@@ -81,6 +81,10 @@
+
+
+
+
diff --git a/AssimpToMesh/AssimpToMesh.vcxproj.filters b/AssimpToMesh/AssimpToMesh.vcxproj.filters
index 7271fed..5b5e15e 100644
--- a/AssimpToMesh/AssimpToMesh.vcxproj.filters
+++ b/AssimpToMesh/AssimpToMesh.vcxproj.filters
@@ -18,5 +18,13 @@
Source Files
+
+ Source Files
+
+
+
+
+ Header Files
+
\ No newline at end of file
diff --git a/AssimpToMesh/src/main.cpp b/AssimpToMesh/src/main.cpp
index 01ad754..3b44270 100644
--- a/AssimpToMesh/src/main.cpp
+++ b/AssimpToMesh/src/main.cpp
@@ -1,7 +1,50 @@
#include
+#include
+#include
+
+#include
+#include
+#include
+
+#include "utils/utils.h"
int main(int argc, char *argv[])
{
- printf("Hello world!\n");
+ printf("ASSIMP-to-MESH Converter.\n");
+
+ if (argc == 1)
+ {
+ printf("Usage: assimptomesh.exe [inputfile]\n\n");
+ return 0;
+ }
+
+ std::string file = argv[1];
+ std::string outputFile = GetMeshFilenameFromInput(file);
+
+ if (outputFile.length() == 0)
+ {
+ printf("Unable to determine output mesh filename from the input file name.\n\n");
+ return 1;
+ }
+
+ printf("Input file: %s\n", file.c_str());
+ printf("Output file: %s\n", outputFile.c_str());
+
+ Assimp::Importer importer;
+ const aiScene *scene = importer.ReadFile(file,
+ aiProcess_JoinIdenticalVertices |
+ aiProcess_Triangulate |
+ aiProcess_RemoveRedundantMaterials |
+ aiProcess_SortByPType |
+ aiProcess_OptimizeMeshes |
+ aiProcess_OptimizeGraph
+ );
+
+ if (!scene)
+ {
+ printf("Failed to load input file: %s\n\n", importer.GetErrorString());
+ return 1;
+ }
+
return 0;
}
diff --git a/AssimpToMesh/src/utils/fileutils.cpp b/AssimpToMesh/src/utils/fileutils.cpp
new file mode 100644
index 0000000..f397ab4
--- /dev/null
+++ b/AssimpToMesh/src/utils/fileutils.cpp
@@ -0,0 +1,18 @@
+#include "utils.h"
+
+#include
+
+std::string GetMeshFilenameFromInput(const std::string &filename)
+{
+ std::string meshFilename = "";
+
+ // strip off the existing extension, and replace it with ".mesh"
+ size_t extStart = filename.find_last_of('.');
+ if (extStart != std::string::npos)
+ {
+ meshFilename = filename.substr(0, extStart);
+ meshFilename += ".mesh";
+ }
+
+ return meshFilename;
+}
diff --git a/AssimpToMesh/src/utils/utils.h b/AssimpToMesh/src/utils/utils.h
new file mode 100644
index 0000000..3b3bc06
--- /dev/null
+++ b/AssimpToMesh/src/utils/utils.h
@@ -0,0 +1,8 @@
+#ifndef __UTILS_UTILS_H_INCLUDED__
+#define __UTILS_UTILS_H_INCLUDED__
+
+#include
+
+std::string GetMeshFilenameFromInput(const std::string &filename);
+
+#endif