Ошибки компиляции с boost :: geometry :: inside - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь скомпилировать программу, которая использует boost :: geometry :: inside, но получаю следующую ошибку:

/ usr / include / boost / geometry / алгоритмы / inside.hpp: создание экземпляра ‘Bool boost :: geometry :: inside (const Geometry1 &, const Geometry2 &) [с Geometry1 = legacy_point; Geometry2 = std :: vector] ’: glcanvas.cpp: 1460: 57: требуется отсюда /usr/include/boost/geometry/algorithms/within.hpp:295:55: ошибка: «Подать заявку» не является членом ‘Boost :: geometry :: dispatch :: inside, boost :: geometry :: point_tag, повышение :: геометрия :: multi_point_tag>

Моя геометрия определяется следующим образом:

struct legacy_point{
float x, y, z;
};

BOOST_GEOMETRY_REGISTER_POINT_3D(legacy_point, float, cs::cartesian, x, y, z)
BOOST_GEOMETRY_REGISTER_MULTI_POINT(decltype(std::vector< legacy_point>{}))

И я вызываю следующую функцию:

boost::geometry::within(point, conv_layer);

, где point имеет тип legacy_point, а conv_layer - вектор legacy_point. Я могу использовать функцию boost :: geometry :: distance, но получаю вышеуказанную ошибку в пределах.

1 Ответ

0 голосов
/ 12 января 2019

Похоже, что boost::geometry::within не поддерживает проверку, находится ли multipoint в пределах multipoint.

См. Таблицу «Поддерживаемые геометрии» на странице справки, на которой большой красный крестик X находится на пересечении многоточечной и многоточечной точек таблицы.

enter image description here

...