#include namespace IMG { Box2d::Box2d() { mMinimum.x = BOUNDINGBOX_MAXVALUE; mMinimum.y = BOUNDINGBOX_MAXVALUE; mMaximum.x = -BOUNDINGBOX_MAXVALUE; mMaximum.y = -BOUNDINGBOX_MAXVALUE; } Box2d::~Box2d() { } Ogre::Vector2 Box2d::getMinimum() { return mMinimum; } Ogre::Vector2 Box2d::getMaximum() { return mMaximum; } void Box2d::setBoundBox(float x, float y, float X, float Y) { mMinimum.x = x; mMinimum.y = y; mMaximum.x = X; mMaximum.y = Y; } void Box2d::addBoundingVector3(float x, float y) { if (x < mMinimum.x) { mMinimum.x = x; } if (x > mMaximum.x) { mMaximum.x = x; } if (y < mMinimum.y) { mMinimum.y = y; } if (y > mMaximum.y) { mMaximum.y = y; } } void Box2d::print() { Ogre::LogManager::getSingleton().logMessage("Valor de la Caixa: (" + Ogre::StringConverter::toString(Ogre::Vector3(mMinimum.x, mMinimum.y, 0)) + ") - (" + Ogre::StringConverter::toString(Ogre::Vector3(mMaximum.x, mMaximum.y, 0)) + ")"); } Ogre::Vector2 Box2d::getCorner(int corner) const { Ogre::Vector2 vector; switch (corner) { case BOX_CORNER_xy: vector = Ogre::Vector2(mMinimum.x, mMinimum.y ); break; case BOX_CORNER_xY: vector = Ogre::Vector2(mMinimum.x, mMaximum.y ); break; case BOX_CORNER_Xy: vector = Ogre::Vector2(mMaximum.x, mMinimum.y ); break; case BOX_CORNER_XY: vector = Ogre::Vector2(mMaximum.x, mMaximum.y ); break; } return vector; } bool Box2d::in(int w, int h) { if (w <= (mMaximum.x - mMinimum.x) && h <= (mMaximum.y - mMinimum.y)) { return true; } return false; } bool Box2d::fitPerfect(int w, int h) { if (w == (mMaximum.x - mMinimum.x) && h == (mMaximum.y - mMinimum.y)) { return true; } return false; } }