Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

volSurfaceRegularization #437

Open
ngophuc opened this issue Jun 2, 2022 · 18 comments
Open

volSurfaceRegularization #437

ngophuc opened this issue Jun 2, 2022 · 18 comments
Assignees
Milestone

Comments

@ngophuc
Copy link
Contributor

ngophuc commented Jun 2, 2022

I got the following errors while compiling volSegment:
error: no template named 'not_equal_to' in namespace 'Eigen::numext'; did you mean 'itksys_VA_LIST::not_equal_to'?
inline const CwiseBinaryOp<numext::not_equal_to, const Derived, const OtherDerived>
^~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/__functional/operations.h:436:29: note: 'itksys_VA_LIST::not_equal_to' declared here
struct _LIBCPP_TEMPLATE_VIS not_equal_to
error: no member named 'get_fixed_value' in namespace 'Eigen::internal'
typename FixedBlockXpr<internal::get_fixed_value::value,internal::get_fixed_value::value>::Type
~~~~~~~~~~^
error: 'NRowsType' does not refer to a value
typename FixedBlockXpr<internal::get_fixed_value::value,internal::get_fixed_value::value>::Type
error: expected member name or ';' after declaration specifiers
typename FixedBlockXpr<internal::get_fixed_value::value,internal::get_fixed_value::value>::Type

@dcoeurjo
Copy link
Member

dcoeurjo commented Jun 2, 2022

Hi @ngophuc, thx for the bug report.

Just to clarify: is it related to volSegment or volSurfaceRegulariation ?

The issue seems to be related to Eigen, which version of eigen are you using ?

@dcoeurjo
Copy link
Member

ping @ngophuc ?

@kerautret
Copy link
Member

@ngophuc always present ? or can we close it?

@kerautret
Copy link
Member

@dcoeurjo I just have the same issue than @ngophuc for me it is in volSurfaceRegularization only

@kerautret kerautret added this to the 1.4 milestone Oct 6, 2023
@dcoeurjo
Copy link
Member

dcoeurjo commented Oct 6, 2023

Well... it is not really related to the regularization tool.
Maybe a side effect with the ITK internal eigen version.
Maybe more an itk bug than a DGtal one

@kerautret
Copy link
Member

I see, I confirm that only appears when ITK is activated in DGtal. Looks complicated to solve perhaps by forcing to use the DGtal eigen version instead the one ITK but sure if cmake can do it.

@dcoeurjo
Copy link
Member

dcoeurjo commented Oct 6, 2023

When including ITk, is there a way to disable its internal eigen version ?

@kerautret
Copy link
Member

I remember some option in cmake process configuration with some use "system eigen" but not sure that will avoid the issue.

@kerautret
Copy link
Member

When including ITk, is there a way to disable its internal eigen version ?

Potentially "ITK_USE_SYSTEM_EIGEN"
However I not sure that it is related because for me, it well mention the eigen version of the local fetched eigen version (perhaps boost related in fact). Else people from kitware suggest me to use superbuild using the ExternalProject_Add cmake command to avoid conflicting dependancies. It could be interesting to test it (https://cmake.org/cmake/help/latest/module/ExternalProject.html)

@kerautret
Copy link
Member

looks very strange, I tested other tools with itk activated and it produce also some. eigen related errors but it come well with the same version of eigen, so it looks like that ITK activation make eigen compilation issue. Perhaps @phcerdan have you an idea of such potential issue (here are another example of issue:) (the version of eigen is well the fetch by DGtal I verified it)
DGtalTools-contrib/build/_deps/eigen-src/Eigen/src/SparseCore/../plugins/MatrixCwiseBinaryOps.h:42:28: error: no template named 'equal_to' in namespace 'Eigen::numext'; did you mean 'boost_swap_impl::equal_to'? inline const CwiseBinaryOp<numext::equal_to<Scalar>, const Derived, const OtherDerived>

@phcerdan
Copy link
Member

phcerdan commented Nov 3, 2023

I cannot reproduce it.
I build DGtal with default options, build DGtalTools (default options) pointing to it: OK
I build DGtal with ITK (ITK from a local build), build DGtalTools (default options) pointing to it: OK.

Do I have to add any extra option to DGtalTools?

@phcerdan
Copy link
Member

phcerdan commented Nov 3, 2023

Not sure from that cryptic error, but seems you are maybe missing linking to the target Eigen3::Eigen?

@kerautret
Copy link
Member

many thanks @phcerdan for the tests. I obtain it by defining a new tools based on polyscope viewer which is on my branch here: https://github.com/kerautret/DGtalTools-contrib/tree/polyMeshEdit

@phcerdan
Copy link
Member

phcerdan commented Nov 3, 2023

I cannot reproduce it either. I had to fix a missing include for the polyscope project (from FetchContent), but polyscope compiles all right, and DGtalTools-contrib with main and your polyMeshEdit branch compiles good here.

It would be awesome to know what's going on.

My ITK settings are default, with ITK_USE_SYSTEM_EIGEN:BOOL=OFF

@kerautret
Copy link
Member

Thanks again! perhaps it is something wrong installed on my system. I will try to remove ITK and retest again in particular with the ITK_USE_SYSTEM_EIGEN perhaps.

@kerautret
Copy link
Member

which version of ITK did you have ?

@phcerdan
Copy link
Member

phcerdan commented Nov 3, 2023

which version of ITK did you have ?

I tested it with a recent master I had installed: sha a661e0e7

@phcerdan
Copy link
Member

phcerdan commented Nov 5, 2023

I have been thinking about this. Not sure what generates that error that you see. Do you have any eigen library installed in your system (/usr/include?)

If a fresh build of ITK, DGtal and DGtalTools-contrib doesn't solve, we can investigate a bit more. Let me know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants