58        std::vector<shark::KeyValuePair<double,double> > set(points.size());
 
   59        for(std::size_t i = 0; i != points.size(); ++i){
 
   60            set[i].key = points[i][0];
 
   61            set[i].value = points[i][1];
 
   63        std::sort( set.begin(), set.end());
 
   66        double volume = ( refPoint[0] - set[0].key ) * ( refPoint[1] - set[0].value);
 
   68        std::size_t lastValidIndex = 0;
 
   69        for( std::size_t i = 1; i < set.size(); ++i ) {
 
   70            double diffDim1 = set[lastValidIndex].value - set[i].value;
 
   74                volume += ( refPoint[0] - set[i].key ) * diffDim1;