#include "edgemesh.hpp" #include "hexagonremesher.hpp" #include "polyscope/curve_network.h" #include "polyscope/polyscope.h" #include "polyscope/surface_mesh.h" #include "reducedmodeloptimizer_structs.hpp" #include "reducedpatternsimulator.hpp" #include "simulationmesh.hpp" #include "trianglepatterngeometry.hpp" #include int main(int argc, char *argv[]) { if (argc != 3) { return 1; } // DRMSimulationModel::runUnitTests(); // const std::string tileInto_triMesh_filename("/home/iason/Models/" // "hexagon_384tri.ply"); const std::string tileInto_triMesh_filename = argv[1]; // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/fra/ex5_56.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/fra/ex3_96.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/fra/ex2_230.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/fra/ex1_74.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/fra/ex2_122.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/" // "instantMeshes_plane_200_big_1x1_100x100.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/" // "instantMeshes_plane_500_big_1x1_100x100.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/" // "instantMeshes_plane_1000_big_1x1_100x100.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/" // "instantMeshes_strip_45.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/" // "instantMeshes_widerStrip_100.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/Meshes/" // "instantMeshes_plane_34.ply"); // const std::string tileInto_triMesh_filename( // "/home/iason/Coding/build/PatternTillingReducedModel/RelWithDebInfo/" // "instantMeshes_plane4Hexagon_5.ply"); VCGTriMesh tileInto_triMesh; const bool surfaceLoadSuccessfull = tileInto_triMesh.load(tileInto_triMesh_filename); assert(surfaceLoadSuccessfull); std::shared_ptr pTileInto_polyMesh = PolygonalRemeshing::remeshWithPolygons( tileInto_triMesh); // //Load optimization results // const size_t numberOfOptimizationResults = argc - 1; // std::vector optimizationResults( // numberOfOptimizationResults); // for (size_t commandLineParameterIndex = 0; // commandLineParameterIndex < numberOfOptimizationResults; // commandLineParameterIndex++) // optimizationResults[commandLineParameterIndex].load(argv[commandLineParameterIndex + 1]); const std::filesystem::path optimizationResultsPath = argv[2]; // std::filesystem::path optimizationResultsPath0( // "/home/iason/Coding/Projects/Approximating shapes with flat " // "patterns/ReducedModelOptimization/Results/selectionOfPatterns2"); // std::filesystem::path optimizationResultsPath1( // "/home/iason/Coding/Projects/Approximating shapes with flat " // "patterns/ReducedModelOptimization/Results/selectionOfPatterns_0.2To1.6/" // "selectionOfPatterns/1.2/ConvergedJobs"); // std::filesystem::path optimizationResultsPath2( // "/home/iason/Coding/Projects/Approximating shapes with flat " // "patterns/ReducedModelOptimization/Results/selectionOfPatterns3"); // std::filesystem::path optimizationResultsPath3( // "/home/iason/Coding/Projects/Approximating shapes with flat " // "patterns/ReducedModelOptimization/Results/selectionOfPatterns4"); std::vector optimizationResults = ReducedPatternSimulator::loadOptimizationResults(optimizationResultsPath); //Load reduced const std::filesystem::path patternFilePath( "/home/iason/Coding/Projects/Approximating shapes with flat " "patterns/ReducedModelOptimization/TestSet/ReducedPatterns/single_reduced.ply"); PatternGeometry reducedPattern(patternFilePath.string()); reducedPattern.setLabel(std::filesystem::path(patternFilePath).stem().string()); PolyscopeInterface::init(); ReducedPatternSimulator reducedPatternSimulator(optimizationResults); reducedPatternSimulator.simulate(pTileInto_polyMesh, optimizationResults, reducedPattern); return 0; }