Main Page   Class Hierarchy   Compound List   File List   Compound Members  

csrectrg.h

00001 /*
00002     Copyright (C) 2001 by Christopher Nelson
00003     
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation; either
00007     version 2 of the License, or (at your option) any later version.
00008   
00009     This library is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Library General Public License for more details.
00013   
00014     You should have received a copy of the GNU Library General Public
00015     License along with this library; if not, write to the Free
00016     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00017 */
00018 
00019 #ifndef __CS_CSRECTREGION_H__
00020 #define __CS_CSRECTREGION_H__
00021 
00022 #include "csgeom/csrect.h"
00023 
00036 class csRectRegion
00037 {
00038 protected:
00040   csRect* region;
00042   int region_count;
00044   int region_max;
00046   csRect  fragment[32];
00048   int gather_mark;
00049 
00051   void pushRect(csRect const &);
00053   void deleteRect(int);
00054   
00055   
00057   void fragmentRect(csRect&, csRect&, int mode);
00059   void fragmentContainedRect(csRect &r1, csRect &r2);
00061   void markForGather();
00063   void gatherFragments();
00064 
00065 public:
00067   csRectRegion();
00069   ~csRectRegion();
00070 
00072   void Include(csRect &rect);
00074   void Exclude(csRect &rect);
00075 
00077   int Count() { return region_count; }
00079   csRect& RectAt(int i) {  return region[i]; }
00081   void makeEmpty();
00082 };
00083 
00084 #endif //__CS_CSRECTREGION_H__

Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000