From 0d67000bd7c2b74f661e49ccbea57e1fd20af37f Mon Sep 17 00:00:00 2001
From: BEYER Astrid <astrid.beyer@etu.univ-amu.fr>
Date: Fri, 21 Apr 2023 15:30:13 +0200
Subject: [PATCH] init OFF reader, gestion d'erreurs

---
 main.cpp | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/main.cpp b/main.cpp
index 0ebd704..e8eff3c 100644
--- a/main.cpp
+++ b/main.cpp
@@ -18,7 +18,7 @@
 #include <vtkNew.h>
 #include <vtkSmartPointer.h>
 #include <vtkOBJReader.h>
-#include <ttkOFFReader.h>
+#include "vtkOFFReader.h"
 #include <vtksys/SystemTools.hxx>
 #include <vtkPolyData.h>
 
@@ -62,7 +62,7 @@ int main(int argc, char *argv[])
   vtkObject::GlobalWarningDisplayOff();
   if (argc != 2)
   {
-    std::cout << "Required arguments: Filename(.obj)" << std::endl;
+    std::cerr << "Required arguments: Filename(.obj)\n";
     return EXIT_FAILURE;
   }
 
@@ -80,9 +80,22 @@ int main(int argc, char *argv[])
     reader->Update();
     source = triangulate::buildValidTriangulation(reader->GetOutput());
   }
+  else if (extension == ".off")
+  {
+    vtkNew<vtkOFFReader> reader;
+    reader->SetFileName(filename.c_str());
+    reader->Update();
+    source = reader->GetOutput();
+  }
   else
   {
-    std::cout << "Required arguments: Filename(.obj)" << std::endl;
+    std::cerr << "Required arguments: Filename(.obj)\n";
+    return EXIT_FAILURE;
+  }
+
+  if (source->GetNumberOfCells() > 90000) // avoid segmentation fault
+  {
+    std::cerr << "Your mesh has too many polygones (" << source->GetNumberOfCells() << ") for this program to run properly.\n";
     return EXIT_FAILURE;
   }
 
-- 
GitLab