2015-07-26 2 views
0

Я пытаюсь использовать пример CGAL код реконструкции поверхности как подробно here, но когда я пытаюсь использовать эту строку кода:'Eigen_solver_traits' не называет тип?

Poisson_reconstruction_function function(points.begin(), points.end(),CGAL::make_normal_of_point_with_normal_pmap(PointList::value_type())); 

Я получаю эту ошибку:

/usr/local/include/CGAL/Poisson_reconstruction_function.h: In member function ‘bool CGAL::Poisson_reconstruction_function<Gt>::compute_implicit_function(bool)’: 
/usr/local/include/CGAL/Poisson_reconstruction_function.h:537:13: error: ‘Eigen_solver_traits’ does not name a type 
typedef Eigen_solver_traits<Eigen::ConjugateGradient<Eigen_sparse_symmetric_matrix<double>::EigenType> > Solver; 

Кто-нибудь знает Зачем?

+1

Потому что есть ошибка в CGAL? Такие вопросы относятся к списку рассылки библиотеки, а не к SO. –

ответ

1

Эта особая ошибка обычно означает, что вам нужно добавить typename. Попробуйте

typedef typename Eigen_solver_traits<Eigen::ConjugateGradient<Eigen_sparse_symmetric_matrix<double>::EigenType> > Solver; 
     ^^^^^^^^ 

или, возможно,

typedef Eigen_solver_traits<Eigen::ConjugateGradient<typename Eigen_sparse_symmetric_matrix<double>::EigenType> > Solver; 
                ^^^^^^^^ 
0

Nevermind, закрепленное его обеспечения CGAL_EIGEN3_ENABLED был включен. Еще раз спасибо за помощь!

0

При использовании CMake, добавьте следующие строки в файл CMakeLists:

find_package(Eigen3 REQUIRED) include_directories(${EIGEN3_INCLUDE_DIR})