mirror of
https://github.com/ncblakely/GiantsTools
synced 2024-11-05 14:55:38 +01:00
70 lines
1.7 KiB
C++
70 lines
1.7 KiB
C++
#include "Framework/InputGeom.h"
|
|
|
|
#include "NavMeshGenerator.h"
|
|
#include "RecastContext.h"
|
|
|
|
using namespace std::filesystem;
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
path inputPath;
|
|
path outputPath;
|
|
path outputPath2;
|
|
bool enableLogging = false;
|
|
|
|
for (int i = 1; i < argc; ++i)
|
|
{
|
|
if (!_stricmp(argv[i], "--input"))
|
|
{
|
|
inputPath = argv[++i];
|
|
}
|
|
else if (!_stricmp(argv[i], "--output"))
|
|
{
|
|
outputPath = argv[++i];
|
|
}
|
|
else if (!_stricmp(argv[i], "--output2"))
|
|
{
|
|
outputPath2 = argv[++i];
|
|
}
|
|
else if (!_stricmp(argv[i], "--enableLogging"))
|
|
{
|
|
enableLogging = true;
|
|
}
|
|
}
|
|
|
|
const auto context = std::make_shared<RecastContext>(enableLogging);
|
|
|
|
auto geom = std::make_shared<InputGeom>();
|
|
geom->load(context.get(), inputPath.string());
|
|
|
|
if (outputPath.empty())
|
|
{
|
|
printf("Warning: no output path set, no file will be generated.\n");
|
|
}
|
|
|
|
|
|
NavMeshGenerator generator(geom, context);
|
|
bool success = generator.BuildNavMesh();
|
|
|
|
float totalTime = context->getAccumulatedTime(RC_TIMER_TOTAL) / 1000.0f;
|
|
|
|
printf("Success: %d\n", success);
|
|
printf("Total time in milliseconds: %.2f\n", totalTime);
|
|
|
|
if (!outputPath.empty())
|
|
{
|
|
generator.Serialize(outputPath);
|
|
|
|
if (!outputPath2.empty())
|
|
{
|
|
try
|
|
{
|
|
copy_file(outputPath, outputPath2, copy_options::overwrite_existing);
|
|
}
|
|
catch (const filesystem_error& ex)
|
|
{
|
|
printf("Unable to copy output file to secondary path: %s.\n", ex.what());
|
|
}
|
|
}
|
|
}
|
|
} |