| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #pragma once
- #include "CmPrerequisitesUtil.h"
- namespace CamelotFramework
- {
- /** Structure used to define a box in a 3-D integer space.
- Note that the left, top, and front edges are included but the right,
- bottom and back ones are not.
- */
- struct CM_UTILITY_EXPORT Box
- {
- UINT32 left, top, right, bottom, front, back;
- /// Parameterless constructor for setting the members manually
- Box()
- : left(0), top(0), right(1), bottom(1), front(0), back(1)
- {
- }
- /** Define a box from left, top, right and bottom coordinates
- This box will have depth one (front=0 and back=1).
- @param l x value of left edge
- @param t y value of top edge
- @param r x value of right edge
- @param b y value of bottom edge
- @note Note that the left, top, and front edges are included
- but the right, bottom and back ones are not.
- */
- Box( UINT32 l, UINT32 t, UINT32 r, UINT32 b ):
- left(l),
- top(t),
- right(r),
- bottom(b),
- front(0),
- back(1)
- {
- assert(right >= left && bottom >= top && back >= front);
- }
- /** Define a box from left, top, front, right, bottom and back
- coordinates.
- @param l x value of left edge
- @param t y value of top edge
- @param ff z value of front edge
- @param r x value of right edge
- @param b y value of bottom edge
- @param bb z value of back edge
- @note Note that the left, top, and front edges are included
- but the right, bottom and back ones are not.
- */
- Box( UINT32 l, UINT32 t, UINT32 ff, UINT32 r, UINT32 b, UINT32 bb ):
- left(l),
- top(t),
- right(r),
- bottom(b),
- front(ff),
- back(bb)
- {
- assert(right >= left && bottom >= top && back >= front);
- }
-
- /// Return true if the other box is a part of this one
- bool contains(const Box &def) const
- {
- return (def.left >= left && def.top >= top && def.front >= front &&
- def.right <= right && def.bottom <= bottom && def.back <= back);
- }
-
- /// Get the width of this box
- UINT32 getWidth() const { return right-left; }
- /// Get the height of this box
- UINT32 getHeight() const { return bottom-top; }
- /// Get the depth of this box
- UINT32 getDepth() const { return back-front; }
- };
- }
|