KrisLibrary  1.0.0
Box2D.h
1 #ifndef MATH3D_BOX2D_H
2 #define MATH3D_BOX2D_H
3 
4 #include "LocalCoordinates2D.h"
5 
6 namespace Math3D {
7 
8 struct Segment2D;
9 struct Plane2D;
10 struct Triangle2D;
11 struct Circle2D;
12 
21 {
22  void set(const AABB2D& bb);
23  void setTransformed(const AABB2D& box,const RigidTransform2D& T);
24  void setTransformed(const Box2D& box,const RigidTransform2D& T);
25  void setTransformed(const AABB2D& box,Real angle,const Vector2& offset);
26  void setTransformed(const Box2D& box,Real angle,const Vector2& offset);
27  bool contains(const Point2D& pt) const;
28  Real distance(const Point2D& pt) const;
29  Real distance(const Point2D& pt,Point2D& closestPt) const;
30  Real distanceSquared(const Point2D& pt,Point2D& closestPt) const;
31  void getAABB(AABB2D& bb) const;
32  bool intersects(const AABB2D& b) const;
33  bool intersects(const Box2D& b) const;
34  bool intersects(const Segment2D& s) const;
35  bool intersects(const Line2D& l) const;
36  bool intersects(const Triangle2D& t) const;
37  bool intersects(const Circle2D& b) const;
38 };
39 
40 } //namespace Math3D
41 
42 #endif
A 2D circle class.
Definition: Circle2D.h:16
A 2D triangle class.
Definition: Triangle2D.h:25
A 2D line class.
Definition: Line2D.h:19
A 2D boxThe box is the unit square [0,1]^2 set in the scaled local coordinate system. That is, one corner is at the origin, and it has dimensions [dims.x,dims.y] in the coordinates given by {xbasis,ybasis}.
Definition: Box2D.h:20
A 2D segment class.
Definition: Segment2D.h:17
Contains all the definitions in the Math3D package.
Definition: AnyGeometry.h:12
Definition: LocalCoordinates2D.h:37
A 2D vector class.
Definition: math3d/primitives.h:41
A 2D axis-aligned bounding box.
Definition: AABB2D.h:13
Same as above, but in 2D.
Definition: math3d/primitives.h:902