|
Boost Users : |
Subject: [Boost-users] logic operation in boost polygon
From: HxH (huangxinheng_at_[hidden])
Date: 2011-05-10 12:17:52
Help!
I wrote this function to load the data point to a boost polygon.
typedef vector<polygon_data<int> > LayoutSet;
static void addPolygonData(LayoutSet &sets,int* points,int size){
polygon_data<int> poly_data;
vector<point_data<int> > poly_points(size);
for(int i=0;i<size;i++)
{
int x=i*2;
int y=x+1;
poly_points[i]=point_data<int>(points[x],points[y]);
}
poly_data.set(poly_points.begin(),poly_points.end());
sets.push_back(poly_data);
}
Then I load two sets of points
int p1[8]={1200 2400 1200 3600 4000 3600 4000 2400};
int p2[8]={1800 600 1800 4700 3500 4700 3500 600};
LayoutSet group_2;
LayoutSet group_1;
addPolygonData(group_1,p1,8);
addPolygonData(group_1,p2,8);
boost::polygon::assign(group_2,group_1[0] & group_1[1]); // Here I do the
logic operation & (AND)
vector<point_data<int> > pts;
pts.insert(pts.begin(),group_2[0].begin(),group[0].end());
for(size_t i=0;i<group_2[0].size();i++){
cout<<pts[i].x()<<","<<pts[i].y()<<endl;
}
Here is the result I get:
6484944,0
3500,600
3500,3600
1800,3600
1800,600
3,1
0,0
6484944,0
It doesn't look correct. It gives me a hard time to fix it. Any suggestions
are welcome!!
Thank you!
-- View this message in context: http://boost.2283326.n4.nabble.com/logic-operation-in-boost-polygon-tp3512369p3512369.html Sent from the Boost - Users mailing list archive at Nabble.com.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net