Boost logo

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