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);
		}
	}
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 ) ; } }
/*public Point2D getStemBegin() {
return new Point2D.Double(stemX, stemYBegin);
}