|
Boost Users : |
From: Tomas Rapkauskas (slidertom_at_[hidden])
Date: 2006-07-20 04:33:26
Hello,
I am newbie using boost library.
I have tried to use boost::minmax_element to calculate bounding box of
2D Points,
but I failed...
Here is some code:
struct S2DPoint { int x; int y; };
typedef std::vector<S2DPoint > Poly;
Poly vect;
...
std::pair<iterator, iterator> result =
boost::minmax_element(poly.begin(), poly.end());
this code does not compiles I need to define BinaryPredicate..
My code with out boost looks:
bool CalcPolyMinMax(const S2DPoint poly[], int nCount,
S2DPoint &ptMin,
S2DPoint &ptMax)
{
if ( nCount < 1 )
{
return false;
}
ptMin = poly[0];
ptMax = poly[0];
S2DPoint pt;
for ( int i1 = 0; i1 < nCount; ++i1 )
{
pt = poly[i1];
UpdateMinMaxPoints(ptMin, ptMax, pt);
}
return true;
}
void UpdateMinMaxPoints(S2DPoint &ptMin, S2DPoint &ptMax, const S2DPoint
&pt)
{
if ( ptMin.x > pt.x )
{
ptMin.x = pt.x;
}
if ( ptMax.x < pt.x )
{
ptMax.x = pt.x;
}
if ( ptMin.y > pt.y )
{
ptMin.y = pt.y;
}
if ( ptMax.y < pt.y )
{
ptMax.y = pt.y;
}
}
Question:
How to transform UpdateMinMaxPoints function to the BinaryPredicate?
Thanks,
Tomas
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