gabyx / ApproxMVBB

Fast algorithms to compute an approximation of the minimal volume oriented bounding box of a point cloud in 3D.
Mozilla Public License 2.0
441 stars 93 forks source link

Can't run demo~/ApproxMVBB/example/approxMVBB/src/main.cpp #43

Closed XMPeng closed 4 years ago

XMPeng commented 4 years ago

Hi, I am new to this software, and I am trying to compile the cpp file using g++ main.cpp -std=c++11. But I got an error "main.cpp:13:44: fatal error: ApproxMVBB/ComputeApproxMVBB.hpp: No such file or directory compilation terminated."

It has to do with the link to the hpp and cpp files. I think I have installed the package correctly and successfully, as shown below

Install the project... /home/xiaoming/cmake-3.18.1-Linux-x86_64/bin/cmake -P cmake_install.cmake -- Install configuration: "" -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/AssertionDebug.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/ContainerTag.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/CPUTimer.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/Exception.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/FloatingPointComparision.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/LogDefines.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/MyContainerTypeDefs.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/MyMatrixTypeDefs.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/Platform.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/SfinaeMacros.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/StaticAssert.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/TypeDefs.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Common/TypeDefsPoints.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/AABB.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/AngleFunctions.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/ComputeApproxMVBB.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/ContainerFunctions.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/ConvexHull2D.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/GreatestCommonDivisor.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/KdTree.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/KdTreeXml.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/MakeCoordinateSystem.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/MinAreaRectangle.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/OOBB.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/PointFunctions.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/ProjectedPointSet.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/RandomGenerators.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Diameter/EstimateDiameter.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Diameter/TypeSegment.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/GeometryPredicates/PredicatesInit.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/GeometryPredicates/Predicates.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/GeometryPredicates/Rounding.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/GeometryPredicates/Config.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/include/ApproxMVBB/Config/Config.hpp -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/lib/libApproxMVBB.so.2.1.1 -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/lib/libApproxMVBB.so -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/share/ApproxMVBB/cmake/approxmvbb-config.cmake -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/share/ApproxMVBB/cmake/approxmvbb-config-noconfig.cmake -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/share/ApproxMVBB/cmake/approxmvbb-config-dependencies.cmake -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/share/ApproxMVBB/cmake/modules/FindMeta.cmake -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/share/ApproxMVBB/cmake/approxmvbb-config-version.cmake -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/share/ApproxMVBB/COPYING -- Up-to-date: /home/xiaoming/ApproxMVBB/Build/install/share/ApproxMVBB/README.md

Can anyone help please? Many many thanks!

gabyx commented 4 years ago

Have you set the cmake -DApproxMVBB_BUILD_EXAMPLE=ON or in the cmake-GUI. Can you go into the root of your build folder and run make -j ApproxMVBBExample-MVBB Please provide the output here by configuring with -DCMAKE_VERBOSE_MAKEFILE=ON or in the gui.

(I would not do insource builds, make the folder outside of the source of ApproxMVBB)

XMPeng commented 4 years ago

Hi gabyx and thanks for reply. The run of make -j ApproxMVBBExample-MVBB leads to the results like this:

/home/xiaoming/cmake-3.18.1-Linux-x86_64/bin/cmake -S/home/xiaoming/ApproxMVBB -B/home/xiaoming/ApproxMVBB/Build --check-build-system CMakeFiles/Makefile.cmake 0 make -f CMakeFiles/Makefile2 ApproxMVBBExample-MVBB make[1]: Entering directory '/home/xiaoming/ApproxMVBB/Build' /home/xiaoming/cmake-3.18.1-Linux-x86_64/bin/cmake -S/home/xiaoming/ApproxMVBB -B/home/xiaoming/ApproxMVBB/Build --check-build-system CMakeFiles/Makefile.cmake 0 /home/xiaoming/cmake-3.18.1-Linux-x86_64/bin/cmake -E cmake_progress_start /home/xiaoming/ApproxMVBB/Build/CMakeFiles 16 make -f CMakeFiles/Makefile2 example/approxMVBB/CMakeFiles/ApproxMVBBExample-MVBB.dir/all make[2]: Entering directory '/home/xiaoming/ApproxMVBB/Build' make -f lib/CMakeFiles/ApproxMVBB.dir/build.make lib/CMakeFiles/ApproxMVBB.dir/depend make[3]: Entering directory '/home/xiaoming/ApproxMVBB/Build' cd /home/xiaoming/ApproxMVBB/Build && /home/xiaoming/cmake-3.18.1-Linux-x86_64/bin/cmake -E cmake_depends "Unix Makefiles" /home/xiaoming/ApproxMVBB /home/xiaoming/ApproxMVBB/lib /home/xiaoming/ApproxMVBB/Build /home/xiaoming/ApproxMVBB/Build/lib /home/xiaoming/ApproxMVBB/Build/lib/CMakeFiles/ApproxMVBB.dir/DependInfo.cmake --color= make[3]: Leaving directory '/home/xiaoming/ApproxMVBB/Build' make -f lib/CMakeFiles/ApproxMVBB.dir/build.make lib/CMakeFiles/ApproxMVBB.dir/build make[3]: Entering directory '/home/xiaoming/ApproxMVBB/Build' make[3]: Nothing to be done for 'lib/CMakeFiles/ApproxMVBB.dir/build'. make[3]: Leaving directory '/home/xiaoming/ApproxMVBB/Build' [ 87%] Built target ApproxMVBB make -f example/approxMVBB/CMakeFiles/ApproxMVBBExample-MVBB.dir/build.make example/approxMVBB/CMakeFiles/ApproxMVBBExample-MVBB.dir/depend make[3]: Entering directory '/home/xiaoming/ApproxMVBB/Build' cd /home/xiaoming/ApproxMVBB/Build && /home/xiaoming/cmake-3.18.1-Linux-x86_64/bin/cmake -E cmake_depends "Unix Makefiles" /home/xiaoming/ApproxMVBB /home/xiaoming/ApproxMVBB/example/approxMVBB /home/xiaoming/ApproxMVBB/Build /home/xiaoming/ApproxMVBB/Build/example/approxMVBB /home/xiaoming/ApproxMVBB/Build/example/approxMVBB/CMakeFiles/ApproxMVBBExample-MVBB.dir/DependInfo.cmake --color= make[3]: Leaving directory '/home/xiaoming/ApproxMVBB/Build' make -f example/approxMVBB/CMakeFiles/ApproxMVBBExample-MVBB.dir/build.make example/approxMVBB/CMakeFiles/ApproxMVBBExample-MVBB.dir/build make[3]: Entering directory '/home/xiaoming/ApproxMVBB/Build' make[3]: Nothing to be done for 'example/approxMVBB/CMakeFiles/ApproxMVBBExample-MVBB.dir/build'. make[3]: Leaving directory '/home/xiaoming/ApproxMVBB/Build' [100%] Built target ApproxMVBBExample-MVBB make[2]: Leaving directory '/home/xiaoming/ApproxMVBB/Build' /home/xiaoming/cmake-3.18.1-Linux-x86_64/bin/cmake -E cmake_progress_start /home/xiaoming/ApproxMVBB/Build/CMakeFiles 0 make[1]: Leaving directory '/home/xiaoming/ApproxMVBB/Build'

======================================================================================= The results of running ApproxMVBBExample-MVBB in the folder ~/ApproxMVBB/Build/example/approxMVBB are Ok, as follows:

Sample 100000 points in unite cube (coordinates are in world coordinate system I ) p1: 0.988523 -0.990557 0.990198 p2: -0.993153 0.95828 -0.99485 l: 3.41547 estimated 3d diameter: 1.98168 -1.94884 1.98505 eps: 0.001 p1: 1.39543 0.810229 p2: -1.3767 -0.836249 l: 3.22422 Sampled Points incides: [ 22054, 95457, 3481, 43339, 28728, 76383, 98024, 59432, 12376, 32561, 71743, 340, 37637, 97215, 97493, 23843, 11171, 33673, 23037, 8708, 81684, 39361, 91852, 42184, 66512, 67495, 86063, 6767, 59418, 35641, 16895, 35053, 23181, 17489, 10120, 42075, 4253, 40365, 96006, 16066, 21414, 15953, 24867, 52447, 30791, 91456, 14400, 67498, 72398, 39719, 26276, 5450, 35231, 62417, 35829, 5076, 38553, 43251, 22638, 46370, 65425, 43327, 80085, 95680, 29880, 4560, 28398, 46813, 63177, 47491, 87284, 69741, 73284, 70995, 96741, 51808, 73261, 83774, 50957, 64572, 63970, 77036, 55337, 7698, 88007, 83909, 92919, 25653, 899, 39841, 80998, 5338, 33087, 71789, 82838, 98428, 94547, 61243, 1256, 73712, 7859, 22780, 2728, 58101, 95028, 2943, 4200, 15373, 71917, 21304, 48675, 71430, 38218, 27689, 84668, 27920, 58056, 28097, 50567, 38713, 2273, 83247, 71504, 27912, 62993, 54170, 58767, 1340, 7552, 69966, 86751, 63844, 79118, 71663, 72885, 96836, 45981, 14077, 20818, 95920, 37450, 67848, 75249, 29822, 19275, 49644, 24011, 37343, 24146, 1077, 37566, 18937, 37344, 5512, 6152, 36774, 42839, 69795, 95788, 69913, 78707, 6598, 71340, 7254, 16499, 45829, 37669, 87146, 93016, 71057, 74518, 63973, 86449, 15842, 31803, 62344, 12699, 7093, 80777, 25107, 45066, 58765, 8469, 93933, 7508, 54361, 17986, 8194, 66003, 66476, 78072, 77758, 34333, 90165, 60254, 26247, 83832, 84191, 27707, 44847, 42897, 12691, 98948, 60891, 12721, 40678, 62321, 89435, 39307, 33912, 18111, 72851, 52209, 39138, 27698, 48228, 6146, 19401, 56538, 17077, 22149, 3286, 37127, 98568, 22467, 26893, 21413, 61128, 27708, 27269, 35066, 1512, 53089, 36671, 57003, 13897, 82249, 77035, 6358, 72156, 53792, 59841, 74127, 43590, 13882, 47318, 89264, 14634, 95548, 11637, 92628, 37924, 23905, 6286, 74705, 97338, 98363, 37010, 36393, 26744, 26260, 98064, 66161, 63085, 26564, 50189, 93382, 60094, 34819, 62346, 81614, 57716, 23884, 8195, 92817, 69760, 79174, 39854, 75655, 92769, 93159, 13557, 35624, 68868, 21670, 99733, 91987, 89867, 56188, 90088, 61093, 87942, 17565, 27796, 93797, 76954, 54858, 66739, 89167, 19810, 35440, 12942, 6736, 15990, 74230, 59787, 40298, 47401, 15877, 86310, 494, 1637, 47692, 30700, 70905, 71851, 87119, 11543, 11349, 82023, 76697, 48747, 81536, 36411, 45442, 97402, 86822, 88424, 5059, 64317, 47578, 31825, 42950, 58724, 24419, 99904, 43743, 76545, 19220, 96806, 96164, 31794, 90589, 26263, 66931, 11325, 94488, 44014, 81390, 85124, 55455, 5024, 27401, 3512, 10356, 69821, 43322, 70328, 17143, 67957, 79571, 39716, 90570, 40976, 87993, 35257, 37679, 66806, 43038, 57449, 47679, 53393, 38867, 24180, 30984, 78819, 77611, 73500, 88170, 21789, 76996, 94246, 92884, 86629, 17535, 77700, 82929, 26758, 37048, 74484, 37922, 25671, 5913, 68667, 64946, 13465, 29026, 21564, 60320, 76418, 24180, 52878, 17502, 2054, 77769, 66633, 67224, 55755, 468, 38401, 86045, 31164, 26210, 41169, 36993, 91144, 76318, 37706, 68943, 4467, 300, 10488, 52755, 63878, 63763, 77265, 71893, 15457, 18844, 83612, 30977, 18770, 2124, 17526, 63754, 12160, 96395, 30978, 16555, 61755, 57894, 70455, 8590, 54548, 57059, 68710, 41249, 67044, 52246, 52798, 44215, 62763, 72378, 71857, 26973, 37070, 85412, 21207, 75224, 37298, 81287, 59303, 89664, 47593, 54878, 66646, 11802, 42248, 46302, 57910, 72414, 14489, 81590, 26679, 94407, 23861, 49772, 43103, 25137, 67275, 40943, 39915, 9044, 23626, 76537, 85185, 26805, 82371, 53543, 68608, 95148, 71031, 18502, 85410, 63424, 2340, 12124, 83396, 85448, 77920, ] gridSearch: new volume: 7.99193 for dir: 6.16112 0.96901 -3.47873 gridSearch: new volume: 7.9919 for dir: 6.74133 0.398419 -2.89754 gridSearch: new volume: 7.9919 for dir: 7.20148 -1.45664 -1.73693 gridSearch: new volume: 7.99177 for dir: 5.3408 -1.02934 -2.90109 gridSearch: new volume: 7.99176 for dir: -0.512965 -6.49904 -0.706603 gridSearch: new volume: 7.99174 for dir: 5.37352 0.331824 0.123169 Computed OOBB: ---> lower point in OOBB coordinate system: -0.999705 -0.999179 -0.999867 ---> upper point in OOBB coordinate system: 0.99947 0.99971 1 ---> coordinate transformation A_IK matrix from OOBB coordinate system K to world coordinate system I -6.97553e-05 1 -6.37152e-05 1 6.97528e-05 -3.86118e-05 -3.86074e-05 -6.37179e-05 -1 ---> this is also the rotation matrix R_KI which turns the world coordinate system I into the OOBB coordinate system K

OOBB with all point included: ---> lower point in OOBB coordinate system: -1.00002 -1.00001 -0.999993 ---> upper point in OOBB coordinate system: 1.00008 0.999988 1.00001

================================================================================================= But my question is: What if I want to write my own code and compile it? How to set the params when using gcc to do the job? Many many thanks!

XMPeng commented 4 years ago

I think I solved this issue by using cmake instead of gcc for the compilation.