[go: up one dir, main page]

Skip to content

Question: Building a standalone executable

I'm trying to build the ACVD executable, like you can on the original repo. This is probably not a goal of this repo, but it would be nice to have. I don't know how heavily it has been modified and if I should try to make this work or just use the original repo instead.

I tried to add_subdirectory(examples) but it doesn't work. I fixed some trivial include location errors and got the following compiler errors, so it seems like there have been some breaking changes.

acvd/DiscreteRemeshing/examples/ACVD.cxx:119:11: error: ‘class vtkSurface’ has no member named ‘CreateFromFile’
  119 |     Mesh->CreateFromFile(argv[1]);
      |           ^~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:158:21: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘SetOutputDirectory’
  158 |             Remesh->SetOutputDirectory(value);
      |                     ^~~~~~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:175:21: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘SetWriteToGlobalEnergyLog’
  175 |             Remesh->SetWriteToGlobalEnergyLog(atoi(value));
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:186:21: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘SetInputDensityFile’
  186 |             Remesh->SetInputDensityFile(value);
      |                     ^~~~~~~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:207:21: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘SetMinNumberOfSpareClusters’; did you mean ‘SetNumberOfClusters’?
  207 |             Remesh->SetMinNumberOfSpareClusters(atoi(value));
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     SetNumberOfClusters
acvd/DiscreteRemeshing/examples/ACVD.cxx:212:21: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘SetSpareFactor’
  212 |             Remesh->SetSpareFactor(atof(value));
      |                     ^~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:222:5: error: ‘RenderWindow’ was not declared in this scope
  222 |     RenderWindow* Window = 0;
      |     ^~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:222:19: error: ‘Window’ was not declared in this scope
  222 |     RenderWindow* Window = 0;
      |                   ^~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:224:18: error: ‘RenderWindow’ is not a class, namespace, or enumeration
  224 |         Window = RenderWindow::New();
      |                  ^~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:229:17: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘SetAnchorRenderWindow’
  229 |         Remesh->SetAnchorRenderWindow(Window);
      |                 ^~~~~~~~~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:237:13: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘SetFileLoadSaveOption’
  237 |     Remesh->SetFileLoadSaveOption(0);
      |             ^~~~~~~~~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:242:13: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘SetDisplay’
  242 |     Remesh->SetDisplay(Display);
      |             ^~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:261:30: error: ‘class vtkSurface’ has no member named ‘WriteToFile’
  261 |         Remesh->GetOutput()->WriteToFile(REALFILE);
      |                              ^~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:316:27: error: ‘OptimizedMeshWindow’ was not declared in this scope
  316 |             RenderWindow* OptimizedMeshWindow = RenderWindow::New();
      |                           ^~~~~~~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:316:49: error: ‘RenderWindow’ is not a class, namespace, or enumeration
  316 |             RenderWindow* OptimizedMeshWindow = RenderWindow::New();
      |                                                 ^~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:318:25: error: ‘class vtkIsotropicDiscreteRemeshing’ has no member named ‘GetDisplayWindow’
  318 |                 Remesh->GetDisplayWindow());
      |                         ^~~~~~~~~~~~~~~~
acvd/DiscreteRemeshing/examples/ACVD.cxx:336:26: error: ‘class vtkSurface’ has no member named ‘WriteToFile’
  336 |     Remesh->GetOutput()->WriteToFile(REALFILE);
      |                          ^~~~~~~~~~~
make[2]: *** [DiscreteRemeshing/examples/CMakeFiles/ACVD.dir/build.make:76: DiscreteRemeshing/examples/CMakeFiles/ACVD.dir/ACVD.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:177: DiscreteRemeshing/examples/CMakeFiles/ACVD.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

I guess I could look at how VC uses this package and write my own code using this. In that case, how do I build against this? I need to "install" this before I can setup another cmake project that uses find_package(ACVD) to find it? The example subdirectory wasn't automatically picking up the include dirs, don't know if that's because of a cmake or vtk version change or what...

Thank you

Edited by Santiago Pelufo