code: public Rectangle2D getBoundingBox() {
  		Dimension glyphDimension = getMetrics().getGlyphDimension(getNotationContext());
  		if (isStemUp()) {
  			return new Rectangle2D.Double(
  				(int)(getBase().getX()),
                  stemYEnd,
  				getWidth(),
  				getStemBeginPosition().getY()-stemYEnd+glyphDimension.getHeight()/2);
  		}
  		else {
  			return new Rectangle2D.Double(
  				(int)(getBase().getX()),
  				getStemBeginPosition().getY()-glyphDimension.getHeight()/2,
  				getWidth(),
  				stemYEnd-getStemBeginPosition().getY()+1+glyphDimension.getHeight()/2);
  		}
  	}
docs: /*public Point2D getStemBegin() {
  return new Point2D.Double(stemX, stemYBegin);
  }