CCBox2i bbox() {
    if (_myBBox == null) {
      int x1 = Integer.MAX_VALUE;
      int y1 = Integer.MAX_VALUE;

      int x2 = 0;
      int y2 = 0;

      for (CCConnectedPixelRow myRun : _myConnectedPixelRows) {
        x1 = CCMath.min(x1, myRun.startX());
        y1 = CCMath.min(y1, myRun.y());
        x2 = CCMath.max(x2, myRun.endX());
        y2 = CCMath.max(y2, myRun.y());
      }
      _myBBox = new CCBox2i(x1, y1, x2 + 1, y2 + 1);
    }
    return _myBBox;
  }
 /**
  * Draws a debugging view of this pixel area
  *
  * @param g
  */
 public void draw(CCGraphics g) {
   g.color(255, 100);
   for (CCConnectedPixelRow myPixelRow : _myConnectedPixelRows) {
     g.rect(myPixelRow.startX(), myPixelRow.y(), myPixelRow.length(), 1);
   }
   g.polygonMode(CCPolygonMode.LINE);
   g.color(255, 0, 0);
   CCBox2i myBBox = bbox();
   g.rect(
       myBBox.minX(), myBBox.minY(), myBBox.maxX() - myBBox.minX(), myBBox.maxY() - myBBox.minY());
   g.polygonMode(CCPolygonMode.FILL);
   //		g.color(255,0,0);
   //		g.ellipse(center(),5);
 }