are3d.setEndAngle( 180.0 );
are3d.setAngleExtent( 180.0 );
	private void drawSemiCircle( IPrimitiveRenderer ipr ) throws ChartException	{		double offset = 0.5 * iSize;		if ( bRendering3D )		{			final Arc3DRenderEvent are3d = (Arc3DRenderEvent) ( (EventObjectCache) ipr ).getEventObject( oSource,					Arc3DRenderEvent.class );			are3d.setBackground( paletteEntry );			are3d.setOutline( la );			are3d.setStartAngle( -90.0 );			are3d.setEndAngle( 180.0 );			are3d.setTopLeft3D( Location3DImpl.create( lo3d.getX( )					- iSize					- offset, lo3d.getY( ) + iSize, lo3d.getZ( ) ) );			are3d.setHeight( iSize );			are3d.setWidth( iSize );			preCopy = are3d.copy( );			dc.addPlane( are3d, PrimitiveRenderEvent.FILL					| PrimitiveRenderEvent.DRAW );		}		else		{			final ArcRenderEvent are = (ArcRenderEvent) ( (EventObjectCache) ipr ).getEventObject( oSource,					ArcRenderEvent.class );			if ( bTransposed )			{				are.setStartAngle( 0 );				are.setEndAngle( 180.0 );				are.setBounds( BoundsImpl.create( lo.getX( ) - iSize, lo.getY( )						- offset, 2 * iSize, 2 * iSize ) );			}			else			{				are.setStartAngle( -90.0 );				are.setEndAngle( 180.0 );				are.setBounds( BoundsImpl.create( lo.getX( ) - iSize - offset,						lo.getY( ) - iSize,						2 * iSize,						2 * iSize ) );			}			are.setBackground( paletteEntry );			are.setOutline( la );			preCopy = are.copy( );			if ( bDeferred )			{				dc.addMarker( are, PrimitiveRenderEvent.FILL						| PrimitiveRenderEvent.DRAW );			}			else			{				ipr.fillArc( are );				ipr.drawArc( are );			}		}	}