KrisLibrary  1.0.0
AABB2D.h
1 #ifndef MATH3D_AABB2D_H
2 #define MATH3D_AABB2D_H
3 
4 #include "Point.h"
6 class File;
7 
8 namespace Math3D {
9 
13 struct AABB2D
14 {
15  AABB2D();
16  AABB2D(const Vector2& bmin,const Vector2& bmax);
17  AABB2D(const AABB2D&);
18  bool Read(File& f);
19  bool Write(File& f) const;
20 
21  void justify();
22  void setTransform(const AABB2D&,const Matrix3& mat);
23  void inplaceTransform(const Matrix3& mat);
24  void minimize();
25  void maximize();
26  void expand(const Point2D&);
27  void setPoint(const Point2D&);
28  void setIntersection(const AABB2D&);
29  void setUnion(const AABB2D&);
30  void getSize(Vector2&) const;
31  void getMidpoint(Point2D&) const;
32 
33  bool contains(const Point2D&) const;
34  bool contains(const AABB2D&) const;
35  bool intersects(const AABB2D&) const;
36  Real distance(const Point2D&) const;
37  Real distance(const Point2D& pt,Point2D& closest) const;
38  Real distanceSquared(const Point2D& pt,Point2D& closest) const;
39  Real signedDistance(const Point2D&) const;
40  Real signedDistance(const Point2D& pt,Point2D& closest) const;
41 
42  Vector2 bmin, bmax;
43 };
44 
45 } //namespace Math3D
46 
47 #endif
Common math typedefs, constants, functions.
void justify()
swaps negative sized entries (where min<max)
Definition: AABB2D.cpp:99
Contains all the definitions in the Math3D package.
Definition: AnyGeometry.h:13
A 3x3 matrix class.
Definition: math3d/primitives.h:469
A 2D vector class.
Definition: math3d/primitives.h:41
A 2D axis-aligned bounding box.
Definition: AABB2D.h:13
A cross-platform class for reading/writing binary data.
Definition: File.h:47