Я столкнулся с проблемой, с которой, надеюсь, уже сталкивались некоторые другие, потому что я не могу найти выхода!
У меня есть обычная триангуляция в CGAL, в которую я хочу вставить несколько взвешенных точек с информацией std::pair<myweightpoint, myinfo>
одну за другой и получить дескриптор вершины (Vertex_handle
) после ее вставки! Дело в том, что такой функции нет. Существует несколько функций для вставки:
Vertex_handle
Regular_triangulation::insert
( const Weighted_point & p ) ;
Это возвращает Vertex_handle
, что здорово, но не учитывает взвешенные точки с ИНФОРМАЦИЕЙ, что очень важно для меня и того, что я делаю с этими вершинами.
std::ptrdiff_t
Regular_triangulation::insert
( WeightedPointWithInfoInputIterator first, WeightedPointWithInfoInputIterator last ) ;
Это позволяет мне вставлять некоторые взвешенные точки с информацией (что хорошо), но не дает мне указателя на вставленную вершину. Более того, поскольку я вставляю точки по одной, сейчас я делаю такие вещи:
v_wpoints.resize(1) ;
v_wpoints[0] = std::make_pair(myweightpoint, myinfo) ;
rt.insert(v_wpoints.begin(), v_wpoints.end()) ;
что кажется действительно грязным. Итак, мои вопросы: почему нет такой функции:
Vertex_handle Regular_triangulation::insert( const Weighted_point_with_info & p ) ;
и как я могу вставить взвешенную точку с информацией в обычную триангуляцию и получить дескриптор вставленной вершины.
Большое спасибо.