// Description: Traverses points in an integral aligned box.
// Documentation: grid_traversal.txt
#ifndef PASTELSYS_FOR_EACH_POINT_H
#define PASTELSYS_FOR_EACH_POINT_H
#include "pastel/sys/alignedbox.h"
#include "pastel/sys/output/output_concept.h"
namespace Pastel
{
//! Traverses points in an integral aligned box.
/*!
RowMajor:
Whether to traverse the points in row-major order.
The alternative is column-major order.
box:
The traversed points are given by the half-open box
[box.min(), box.max()). If this set is empty, then
nothing is done.
report:
An output called with a point of the type
Vector<integer, N>.
*/
template <
bool RowMajor = true,
integer N,
typename Vector_Output>
void forEachPoint(
AlignedBox<integer, N> box,
Vector_Output report);
}
#include "pastel/sys/for_each_point.hpp"
#endif