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); }