PointVec::PointVec (const std::string& name, std::vector<Point*>* points, std::map<std::string, size_t>* name_id_map, PointType type, double rel_eps) : TemplateVec<Point> (name, points, name_id_map), _type(type), _sqr_shortest_dist (std::numeric_limits<double>::max()) { assert (_data_vec); size_t number_of_all_input_pnts (_data_vec->size()); calculateAxisAlignedBoundingBox (); rel_eps *= sqrt(MathLib::sqrDist (&(_aabb.getMinPoint()),&(_aabb.getMaxPoint()))); makePntsUnique (_data_vec, _pnt_id_map, rel_eps); if (number_of_all_input_pnts - _data_vec->size() > 0) std::cerr << "WARNING: there are " << number_of_all_input_pnts - _data_vec->size() << " double points" << std::endl; }
PointVec::PointVec (const std::string& name, std::vector<Point*>* points, std::map<std::string, std::size_t>* name_id_map, PointType type, double rel_eps) : TemplateVec<Point> (name, points, name_id_map), _type(type), _sqr_shortest_dist (std::numeric_limits<double>::max()), _aabb(points->begin(), points->end()) { assert (_data_vec); std::size_t number_of_all_input_pnts (_data_vec->size()); rel_eps *= sqrt(MathLib::sqrDist (&(_aabb.getMinPoint()),&(_aabb.getMaxPoint()))); makePntsUnique (_data_vec, _pnt_id_map, rel_eps); if (number_of_all_input_pnts - _data_vec->size() > 0) WARN("PointVec::PointVec(): there are %d double points.", number_of_all_input_pnts - _data_vec->size()); correctNameIDMapping(); }