Beispiel #1
0
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;
}
Beispiel #2
0
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();
}