00001 #ifndef Impala_Core_Array_Reverse_h
00002 #define Impala_Core_Array_Reverse_h
00003 
00004 #include "Core/Array/Pattern/PatSet.h"
00005 #include "Util/Reverse.h"
00006 
00007 namespace Impala
00008 {
00009 namespace Core
00010 {
00011 namespace Array
00012 {
00013 
00014 template<class ArrayT>
00015 void
00016 Reverse(ArrayT*& dst, const ArrayT* src)
00017 {
00018     if (dst == 0)
00019         dst = ArrayClone<ArrayT>(src);
00020     Pattern::PatSet(dst, src);
00021     int length = dst->W() * dst->H();
00022     Util::Reverse(dst->CPB(), 0, length-1);
00023 }
00024 
00025 } 
00026 } 
00027 } 
00028 
00029 #endif