Laxkit  0.0.7.1
doublebbox.h
1 //
2 //
3 // The Laxkit, a windowing toolkit
4 // Please consult http://laxkit.sourceforge.net about where to send any
5 // correspondence about this software.
6 //
7 // This library is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU Library General Public
9 // License as published by the Free Software Foundation; either
10 // version 2 of the License, or (at your option) any later version.
11 //
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 // Library General Public License for more details.
16 //
17 // You should have received a copy of the GNU Library General Public
18 // License along with this library; if not, write to the Free Software
19 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 //
21 // Copyright (C) 2004-2007 by Tom Lechner
22 //
23 #ifndef _LAX_DOUBLEBBOX_H
24 #define _LAX_DOUBLEBBOX_H
25 
26 #include <lax/vectors.h>
27 
28 namespace Laxkit {
29 
30 class DoubleBBox {
31  public:
32  double minx,maxx,miny,maxy;
33  DoubleBBox() { minx=miny=0; maxx=maxy=-1; }
34  DoubleBBox(flatpoint p) { minx=maxx=p.x; miny=maxy=p.y; }
35  DoubleBBox(double mix,double max,double miy,double may) { minx=mix; maxx=max; miny=miy; maxy=may; }
36  virtual ~DoubleBBox() {}
37  virtual void clear() { minx=miny=0; maxx=maxy=-1; }
38  virtual void addtobounds(double x,double y);
39  virtual void addtobounds(flatpoint p);
40  virtual void addtobounds(DoubleBBox *bbox);
41  virtual void addtobounds(const double *m, DoubleBBox *bbox);
42  virtual void setbounds(DoubleBBox *bbox);
43  virtual void setbounds(flatpoint *pts,int n);
44  virtual void setbounds(double mix,double max,double miy,double may) { minx=mix; maxx=max; miny=miy; maxy=may; }
45  virtual int validbounds() { return maxx>=minx && maxy>=miny; }
46  virtual int intersect(double mix,double max,double miy,double may, int settointersection=0);
47  virtual int intersect(DoubleBBox *bbox, int settointersection=0);
48  virtual int intersect(double *m,DoubleBBox *bbox, int touching, int settointersection);
49  virtual int boxcontains(double x, double y);
50  virtual flatpoint BBoxPoint(double x,double y);
51 };
52 
53 } // namespace Laxkit
54 
55 #endif
56 

Mon Feb 17 2014 11:52:56, Laxkit