NLLIGO::SPiece Struct Reference

#include <zone_region.h>


Public Member Functions

void rotFlip (uint8 rot, uint8 flip)

Data Fields

sint32 h
std::vector< uint8Tab
sint32 w


Member Function Documentation

void NLLIGO::SPiece::rotFlip uint8  rot,
uint8  flip
 

Definition at line 336 of file zone_region.cpp.

References h, sint32, Tab, uint8, and w.

00337 {
00338         uint8 nTmp;
00339         sint32 i, j;
00340 
00341         if (flip == 1)
00342         {
00343                 for (j = 0; j < h; ++j)
00344                 for (i = 0; i < (w/2); ++i)
00345                 {
00346                         nTmp = Tab[i+j*w];
00347                         Tab[i+j*w] = Tab[(w-1-i)+j*w];
00348                         Tab[(w-1-i)+j*w] = nTmp;
00349                 }
00350         }
00351 
00352         if (rot == 1)
00353         {
00354                 vector<uint8> TabDest;
00355                 TabDest.resize (Tab.size());
00356                 for (j = 0; j < h; ++j)
00357                 for (i = 0; i < w;  ++i)
00358                         TabDest[j+i*h] = Tab[i+(h-1-j)*w];
00359                 Tab = TabDest;
00360                 i = w;
00361                 w = h;
00362                 h = i;
00363         }
00364 
00365         if (rot == 2)
00366         {
00367                 for (j = 0; j < (h/2); ++j)
00368                 for (i = 0; i < w; ++i)
00369                 {
00370                         nTmp = Tab[i+j*w];
00371                         Tab[i+j*w] = Tab[(w-1-i)+(h-1-j)*w];
00372                         Tab[(w-1-i)+(h-1-j)*w] = nTmp;
00373                 }
00374                 if ((h/2)*2 != h)
00375                 {
00376                         j = (h/2);
00377                         for (i = 0; i < (w/2); ++i)
00378                         {
00379                                 nTmp = Tab[i+j*w];
00380                                 Tab[i+j*w] = Tab[(w-1-i)+j*w];
00381                                 Tab[(w-1-i)+j*w] = nTmp;
00382                         }
00383                 }
00384         }
00385 
00386         if (rot == 3)
00387         {
00388                 vector<uint8> TabDest;
00389                 TabDest.resize (Tab.size());
00390                 for (j = 0; j < h; ++j)
00391                 for (i = 0; i < w;  ++i)
00392                         TabDest[j+i*h] = Tab[w-1-i+j*w];
00393                 Tab = TabDest;
00394                 i = w;
00395                 w = h;
00396                 h = i;
00397         }
00398 }


Field Documentation

sint32 NLLIGO::SPiece::h
 

Definition at line 47 of file zone_region.h.

Referenced by rotFlip().

std::vector<uint8> NLLIGO::SPiece::Tab
 

Definition at line 48 of file zone_region.h.

Referenced by rotFlip().

sint32 NLLIGO::SPiece::w
 

Definition at line 47 of file zone_region.h.


The documentation for this struct was generated from the following files:
Generated on Tue Mar 16 12:52:45 2004 for NeL by doxygen 1.3.6