Как правильно использовать функцию LibABL AABB.signed_distance ()?

Я пытаюсь использовать LibIgl, чтобы получить квадрат расстояния от точки до меша. Вот фрагмент кода, который я пытаюсь запустить:

// load a mesh
std::ifstream fileStream;
std::string filePath = R"(C:\path\to\stl\1x1x1Cube.stl)";
Eigen::MatrixXd Vs;
Eigen::MatrixXi Fs;
Eigen::MatrixXd Ns;
igl::readSTL(filePath, Vs, Fs, Ns);

// build the AABB tree for the mesh
igl::AABB<Eigen::MatrixXd, 3> tree;
tree.init(Vs, Fs);

Eigen::MatrixXd queryPoint = (Eigen::MatrixXd(1, 3) << 0.5, 0.5, 0.5).finished();
Eigen::VectorXd sqrD;
{
Eigen::VectorXi I;
Eigen::VectorXd C;
tree.squared_distance(Vs, Fs, queryPoint, sqrD, I, C);
}

Тем не менее, когда я запускаю этот код, он не работает при вызове tree.squared_distance(), Это не удалось утверждать где-то глубоко внутри Эйгена. Неудачное утверждение находится в библиотеке Eigen, в Block.h, когда он пытается запустить конструктор динамического размера inline Block(),

Для чего это стоит, утверждение, что не eigen_assert(a_startRow <= xpr.rows() - blockRows)

Я новичок и в LibIgl, и в Eigen. Есть ли что-то очевидное, чего мне не хватает?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]