In file include/csgeom/math2d.h:

## class csBox

> A bounding box in 2D space

### Public Methods

  void | AddBoundingVertex (const csVector2& v) Add a new vertex and recalculate the bounding box.
  void | AddBoundingVertex (float x, float y) Add a new vertex and recalculate the bounding box.
  void | AddBoundingVertexSmart (float x, float y) Add a new vertex and recalculate the bounding box
  void | AddBoundingVertexSmart (const csVector2& v) Add a new vertex and recalculate the bounding box.
  | csBox (float x1, float y1, float x2, float y2) Initialize this box with the given values.
  | csBox () Initialize this box to empty.
  | csBox (const csVector2& v) Initialize this box with one point.
  bool | Empty () Test if this box is empty.
  bool | In (float x, float y) Test if the given coordinate is in this box.
  float | MaxX ()
  float | MaxY ()
  float | MinX ()
  float | MinY ()
  friend bool | operator!= (const csBox& box1, const csBox& box2) Tests if two bounding boxes are unequal.
  friend csBox | operator* (const csBox& box1, const csBox& box2) Compute the intersection of two bounding boxes.
  csBox& | operator*= (const csBox& box) Compute the intersection of two bounding boxes.
  friend csBox | operator+ (const csBox& box1, const csBox& box2) Compute the union of two bounding boxes.
  friend csBox | operator+ (const csBox& box, const csVector2& point) Compute the union of a bounding box and a point.
  csBox& | operator+= (const csBox& box) Compute the union of two bounding boxes.
  csBox& | operator+= (const csVector2& point) Compute the union of a point with this bounding box.
  friend bool | operator< (const csVector2& point, const csBox& box) Tests if a point is contained in a box.
  friend bool | operator< (const csBox& box1, const csBox& box2) Tests if box1 is a subset of box2.
  friend bool | operator== (const csBox& box1, const csBox& box2) Tests if two bounding boxes are equal.
  friend bool | operator> (const csBox& box1, const csBox& box2) Tests if box1 is a superset of box2.
  bool | Overlap (const csBox& box) Test if this box overlaps with the given box.
  void | Set (float x1, float y1, float x2, float y2) Sets the bounds of the box with the given values.
  void | StartBoundingBox (csVector2& v) Initialize this box to one vertex.
  void | StartBoundingBox () Initialize this box to empty.

### Public

  | constructors were listed at the top of the file, rather than here, the
  | -----
  | Maintenance Note: The csBox constructors and Set() appear at this point
  | in the file, rather than earlier, in order to appease the OpenStep 4.2
  | compiler. Specifically, the problem is that the compiler botches code
  | generation if an unseen method (which is later declared inline) is
  | called from within another inline method. For instance, if the
  | -----
  | compiler would see calls to Empty() and StartBoundingBox() before seeing
  | declarations for them. In such a situation, the buggy compiler
  | generated a broken object file. The simple work-around of textually
  | reorganizing the file ensures that the declarations for Empty() and
  | StartBoundingBox() are seen before they are called.

### Protected Fields

  float | maxx The bottom-right x coordinate of the bounding box.
  float | maxy The bottom-right y coordinate of the bounding box.
  float | minx The top-left x coordinate of the bounding box.
  float | miny The top-left y coordinate of the bounding box.

## Documentation

> A bounding box in 2D space. In order to operate correctly, this bounding box assumes that all values entered or compared against lie within the range (-CS_BOUNDINGBOX_MAXVALUE, CS_BOUNDINGBOX_MAXVALUE). It is not recommended to use points outside of this range.

`float minx`
  The top-left x coordinate of the bounding box.

`float miny`
  The top-left y coordinate of the bounding box.

`float maxx`
  The bottom-right x coordinate of the bounding box.

`float maxy`
  The bottom-right y coordinate of the bounding box.

`float MinX()`

`float MinY()`

`float MaxX()`

`float MaxY()`

`bool In(float x, float y)`
  Test if the given coordinate is in this box.

`bool Overlap(const csBox& box)`
  Test if this box overlaps with the given box.

`bool Empty()`
  Test if this box is empty.

`void StartBoundingBox()`
  Initialize this box to empty.

`void StartBoundingBox(csVector2& v)`
  Initialize this box to one vertex.

`void AddBoundingVertex(float x, float y)`
  Add a new vertex and recalculate the bounding box.

`void AddBoundingVertexSmart(float x, float y)`
  Add a new vertex and recalculate the bounding box. This version is a little more optimal. It assumes however that at least one point has been added to the bounding box.

`void AddBoundingVertex(const csVector2& v)`
  Add a new vertex and recalculate the bounding box.

`void AddBoundingVertexSmart(const csVector2& v)`
  Add a new vertex and recalculate the bounding box.

``
  -----

``
  Maintenance Note: The csBox constructors and Set() appear at this point

``
  in the file, rather than earlier, in order to appease the OpenStep 4.2

``
  compiler. Specifically, the problem is that the compiler botches code

``
  generation if an unseen method (which is later declared inline) is

``
  called from within another inline method. For instance, if the

``
  constructors were listed at the top of the file, rather than here, the

``
  compiler would see calls to Empty() and StartBoundingBox() before seeing

``
  declarations for them. In such a situation, the buggy compiler

``
  generated a broken object file. The simple work-around of textually

``
  reorganizing the file ensures that the declarations for Empty() and

``
  StartBoundingBox() are seen before they are called.

``
  -----

`csBox()`
  Initialize this box to empty.

`csBox(const csVector2& v)`
  Initialize this box with one point.

`csBox(float x1, float y1, float x2, float y2)`
  Initialize this box with the given values.

`void Set(float x1, float y1, float x2, float y2)`
  Sets the bounds of the box with the given values.

`csBox& operator+= (const csBox& box)`
  Compute the union of two bounding boxes.

`csBox& operator+= (const csVector2& point)`
  Compute the union of a point with this bounding box.

`csBox& operator*= (const csBox& box)`
  Compute the intersection of two bounding boxes.

`friend csBox operator+ (const csBox& box1, const csBox& box2)`
  Compute the union of two bounding boxes.

`friend csBox operator+ (const csBox& box, const csVector2& point)`
  Compute the union of a bounding box and a point.

`friend csBox operator* (const csBox& box1, const csBox& box2)`
  Compute the intersection of two bounding boxes.

`friend bool operator== (const csBox& box1, const csBox& box2)`
  Tests if two bounding boxes are equal.

`friend bool operator!= (const csBox& box1, const csBox& box2)`
  Tests if two bounding boxes are unequal.

`friend bool operator< (const csBox& box1, const csBox& box2)`
  Tests if box1 is a subset of box2.

`friend bool operator> (const csBox& box1, const csBox& box2)`
  Tests if box1 is a superset of box2.

`friend bool operator< (const csVector2& point, const csBox& box)`
  Tests if a point is contained in a box.

This class has no child classes.

alphabetic index hierarchy of classes

this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de