template<int D, typename T>
class awUtil::ArrayN< D, T >
#include <awUtilArrayN.h>
List of all
members.
Member Typedef Documentation
Constructor & Destructor Documentation
ArrayN |
( |
const int |
dim[D] |
) |
[inline] |
: m_size(1)
, m_data(0)
{
int d;
for( d=0; d<D; d++ )
{
m_dim[d] = dim[d];
m_size *= m_dim[d];
}
int s = 1;
for( d=D-1; d>=0; d-- )
{
m_stride[d] = s;
s *= m_dim[d];
}
m_data = new T[m_size];
}
{
delete[] m_data;
m_data = 0;
}
Member Function Documentation
const T* data |
( |
|
) |
const [inline] |
int size |
( |
|
) |
const [inline] |
int dim |
( |
int |
d |
) |
const [inline] |
{
assert( d >= 0 && d < D );
return m_dim[d];
}
void swap |
( |
ArrayN< D, T >
& |
array |
) |
[inline] |
{
swap_attrib(m_size, array.m_size);
swap_attrib(m_data, array.m_data);
for(int d=0 ; d<D ; d++ )
{
swap_attrib(m_dim[d], array.m_dim[d]);
swap_attrib(m_stride[d], array.m_stride[d]);
}
}
Slice<const T,D-2>
operator[] |
( |
const int |
i |
) |
const [inline] |
{
return Slice<const T,D-2>
( m_data + (i*m_stride[0]), m_stride + 1 );
}
Slice<T,D-2>
operator[] |
( |
const int |
i |
) |
[inline] |
{
return Slice<T,D-2>
( m_data + (i*m_stride[0]), m_stride + 1 );
}