3 #ifndef _PROTO_COORD_PERMUTATION_ 4 #define _PROTO_COORD_PERMUTATION_ 78 template<
typename T,
unsigned int C=1,
unsigned int D=1,
unsigned int E=1>
80 const Box& srcBox,
const Box& dstBox)
const;
88 inline void print()
const;
101 #endif //end include guard
CoordPermutation()
Default / Identity constructor.
static CoordPermutation cw(int a_coord=2)
Clockwise (-90* rotation) in the XY plane.
Point operator()(Point a_pt) const
Direct Matrix Construction.
Defines discrete rotations in logically rectangular coordinate systems.
Definition: Proto_CoordPermutation.H:13
CoordPermutation inverse() const
Compute and return the inverse Permutation.
bool operator==(const CoordPermutation &a_rhs) const
An interval in DIM dimensional space.
Definition: Proto_Box.H:29
void rotateBuffer(T *srcData, T *dstData, const Box &srcBox, const Box &dstBox) const
Array< Array< int, DIM >, DIM > matrix() const
Definition: Proto_CoordPermutation.H:82
void defineMatrix(Array< Array< int, DIM >, DIM > a_matrix)
static CoordPermutation identity()
Trivial Permutation.
Definition: Proto_Array.H:17
Array< Array< int, DIM >, DIM > m_matrix
Definition: Proto_CoordPermutation.H:96
ACCEL_DECORATION Array< T, N > & operator*(int scale, Array< T, N > &arr)
Premultiplication by a scalar int.
A templated constant size array object similar to std::array, but with the ability to be used inside ...
Definition: Proto_Array.H:28
Integer Valued Vector.
Definition: Proto_Point.H:24
Point rotateCell(Point a_point, const Box &a_srcBox, const Box &a_dstBox) const
Rotate Cell.
static CoordPermutation rotatePlane(int a_c0, int a_c1)
Rotate the plane containing two coordinates such that c0 -> c1.
static CoordPermutation ccw(int a_coord=2)
Counter-Clockwise (+90* rotation) in the XY plane.
Point rotatePoint(Point a_point, const Box &a_srcBox, const Box &a_dstBox) const
Rotate Point.
static CoordPermutation reverse()
Invert all coordinates.
void define(std::vector< Array< int, 3 >> &a_args)