boFull = (Bounds) EcoreUtil.copy( bo );
boFull = BoundsImpl.copyInstance( bo );
	public final Bounds getBounds( )	{		Bounds bo, boFull = null;		PrimitiveRenderEvent pre;		double dDelta;		for ( int i = 0; i < getElementCount( ); i++ )		{			pre = getElement( i );			try			{				bo = pre.getBounds( );				if ( i == 0 )				{					boFull = (Bounds) EcoreUtil.copy( bo );				}				else				{					if ( bo.getLeft( ) < boFull.getLeft( ) )					{						dDelta = boFull.getLeft( ) - bo.getLeft( );						boFull.setLeft( boFull.getLeft( ) - dDelta );						boFull.setWidth( boFull.getWidth( ) + dDelta );					}					if ( bo.getTop( ) < boFull.getTop( ) )					{						dDelta = boFull.getTop( ) - bo.getTop( );						boFull.setTop( boFull.getTop( ) - dDelta );						boFull.setHeight( boFull.getHeight( ) + dDelta );					}					if ( bo.getLeft( ) + bo.getWidth( ) > boFull.getLeft( )							+ boFull.getWidth( ) )					{						dDelta = bo.getLeft( )								+ bo.getWidth( )								- ( boFull.getLeft( ) + boFull.getWidth( ) );						boFull.setWidth( boFull.getWidth( ) + dDelta );					}					if ( bo.getTop( ) + bo.getHeight( ) > boFull.getTop( )							+ boFull.getHeight( ) )					{						dDelta = bo.getTop( )								+ bo.getHeight( )								- ( boFull.getTop( ) + boFull.getHeight( ) );						boFull.setHeight( boFull.getHeight( ) + dDelta );					}				}			}			catch ( ChartException ufex )			{				logger.log( ufex );			}		}		return boFull;	}