本文整理汇总了C++中SiteList::begin方法的典型用法代码示例。如果您正苦于以下问题:C++ SiteList::begin方法的具体用法?C++ SiteList::begin怎么用?C++ SiteList::begin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SiteList
的用法示例。
在下文中一共展示了SiteList::begin方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: boundingBox
/*
* calculate the bounding box of all specified sites
*/
Iso_rectangle_2 boundingBox(SiteList sites)
{
double xmin, xmax, ymin, ymax;
xmin = xmax = sites.front().point().x();
ymin = ymax = sites.front().point().y();
SiteList::iterator itr;
for (itr = sites.begin(); itr != sites.end(); ++itr) {
Site_2 site = *itr;
Point_2 point = site.point();
if (point.x() < xmin) {
xmin = point.x();
}
if (point.x() > xmax) {
xmax = point.x();
}
if (point.y() < ymin) {
ymin = point.y();
}
if (point.y() > ymax) {
ymax = point.y();
}
}
Iso_rectangle_2 rect(xmin, ymin, xmax, ymax);
return rect;
}
示例2: printSites
void printSites(SiteList& sites)
{
SiteList::iterator itr;
for (itr = sites.begin(); itr != sites.end(); ++itr) {
Site_2 site = *itr;
Point_2 point = site.point();
std::cerr << "site: " << site << std::endl;
}
}
示例3: on_deleteButton_clicked
void UserAgentDlg::on_deleteButton_clicked()
{
SiteList selectedItems = ui.sitePolicyTreeWidget->selectedItems();
SiteListIterator endIt = selectedItems.end();
QString siteName;
for (SiteListIterator it = selectedItems.begin(); it != endIt; ++it)
delete (*it);
updateButtons();
configChanged();
}
示例4: createArtificialSites
SiteList createArtificialSites(SiteList& sites, Iso_rectangle_2 crect)
{
SiteList artificialSites;
// add artificial sites
SiteList::iterator itr;
for (itr = sites.begin(); itr != sites.end(); ++itr) {
Site_2 site = *itr;
Point_2 point = site.point();
double weight = site.weight();
Point_2 apoint1(2 * crect.xmin() - point.x(), point.y());
Site_2 asite1(apoint1, weight);
Point_2 apoint2(2 * crect.xmax() - point.x(), point.y());
Site_2 asite2(apoint2, weight);
Point_2 apoint3(point.x(), 2 * crect.ymin() - point.y());
Site_2 asite3(apoint3, weight);
Point_2 apoint4(point.x(), 2 * crect.ymax() - point.y());
Site_2 asite4(apoint4, weight);
artificialSites.push_back(asite1);
artificialSites.push_back(asite2);
artificialSites.push_back(asite3);
artificialSites.push_back(asite4);
}
return artificialSites;
}
示例5: main
int main(int argc , char* argv[])
{
if (argc < 7) {
std::cerr << "usage: test <input file> <output folder> "
"<format (wkt | geojson | sql)> <weight city> <weight town> <weight village>" << std::endl;
exit(1);
}
char* input = argv[1];
char* outdir = argv[2];
char* format = argv[3];
char* swc = argv[4];
char* swt = argv[5];
char* swv = argv[6];
std::ifstream ifs(input);
assert( ifs );
double wc, wt, wv;
std::istringstream stmc, stmt, stmv;
stmc.str(swc);
stmc >> wc;
stmt.str(swt);
stmt >> wt;
stmv.str(swv);
stmv >> wv;
std::cerr << "using weights: city: " << wc << ", town: " << wt << ", village: " << wv << std::endl;
/*
* prepare data
*/
// we use a ScalingFactor(SF) here to stretch input values at the
// beginning, and divide by SF in the end. This is used because the
// point-generation of the hyperbola class is using some arbitrary
// internal decision thresholds to decide how many points to generate for
// a certain part of the curve. Rule of thumb is: the higher SF the more
// detail is used in approximation of the hyperbolas.
double SF = 4000;
// read in sites from input file
SiteList sites = readSites(ifs, SF, wc, wt, wv);
printSites(sites);
// calculate bounding box of all input sites (and extend it a little).
// Extension is important, because we later add artificial sites which are
// actually mirrored on the bounds of this rectangle. If we did not extend
// some points would lie on the boundary of the bounding box and so would
// their artificial clones. This would complicate the whole stuff a lot :)
Iso_rectangle_2 crect = extend(boundingBox(sites), 0.1*SF);
std::cerr << "rect: " << crect << std::endl;
// a number of artificial sites
SiteList artificialSites = createArtificialSites(sites, crect);
/*
* create Apollonius graph
*/
Apollonius_graph ag;
SiteList::iterator itr;
// add all original sites to the apollonius graph
for (itr = sites.begin(); itr != sites.end(); ++itr) {
Site_2 site = *itr;
ag.insert(site);
}
// add all artificial sites to the apollonius graph
for (itr = artificialSites.begin(); itr != artificialSites.end(); ++itr) {
Site_2 site = *itr;
ag.insert(site);
}
// validate the Apollonius graph
assert( ag.is_valid(true, 1) );
std::cerr << std::endl;
/*
* create polygons from cells
*/
// we want an identifier for each vertex within the iteration.
// this is a loop iteration counter
int vertexIndex = 0;
// for each vertex in the apollonius graph (this are the sites)
for (All_vertices_iterator viter = ag.all_vertices_begin ();
viter != ag.all_vertices_end(); ++viter) {
// get the corresponding site
Site_2 site = viter->site();
Point_2 point = site.point();
// ignore artifical sites, detect them by their position
if (!CGAL::do_intersect(crect, point)) {
continue;
}
std::cerr << "vertex " << ++vertexIndex << std::endl;
//.........这里部分代码省略.........