DataPointHints dph, int markerSize, boolean bDeferred,
DataPointHints dph, Integer markerSize, boolean bDeferred,
	protected final void renderMarker( Object oParent, IPrimitiveRenderer ipr,			Marker m, Location lo, LineAttributes lia, Fill fPaletteEntry,			DataPointHints dph, int markerSize, boolean bDeferred,			boolean bConsiderTranspostion ) throws ChartException	{		if ( dph != null && isNaN( dph.getOrthogonalValue( ) ) )		{			return;		}				// Convert Fill for negative value		if ( dph != null && dph.getOrthogonalValue( ) instanceof Double )		{			fPaletteEntry = ChartUtil.convertFill( fPaletteEntry,					( (Double) dph.getOrthogonalValue( ) ).doubleValue( ) );		}		Series se = getSeries( );		Object oSource = ( oParent instanceof Legend ) ? ( StructureSource.createLegend( (Legend) oParent ) )				: ( WrappedStructureSource.createSeriesDataPoint( se, dph ) );		boolean bTransposed = bConsiderTranspostion				&& ( (ChartWithAxes) getModel( ) ).isTransposed( );		final Location panningOffset = this.getPanningOffset( );		PrimitiveRenderEvent preCopy = null;		if ( m == null				|| ( m != null && !( m.isSetVisible( ) && m.isVisible( ) ) ) )		{			int iSize = 5;			if ( m != null )			{				iSize = m.getSize( );			}			// prepare hotspot only			if ( lo instanceof Location3D )			{				final Oval3DRenderEvent ore = (Oval3DRenderEvent) ( (EventObjectCache) ipr ).getEventObject( oSource,						Oval3DRenderEvent.class );				Location3D lo3d = (Location3D) lo;				ore.setLocation3D( new Location3D[]{						Location3DImpl.create( lo3d.getX( ) - iSize,								lo3d.getY( ) + iSize,								lo3d.getZ( ) ),						Location3DImpl.create( lo3d.getX( ) - iSize,								lo3d.getY( ) - iSize,								lo3d.getZ( ) ),						Location3DImpl.create( lo3d.getX( ) + iSize,								lo3d.getY( ) - iSize,								lo3d.getZ( ) ),						Location3DImpl.create( lo3d.getX( ) + iSize,								lo3d.getY( ) + iSize,								lo3d.getZ( ) )				} );				preCopy = ore.copy( );			}			else			{				final OvalRenderEvent ore = (OvalRenderEvent) ( (EventObjectCache) ipr ).getEventObject( oSource,						OvalRenderEvent.class );				ore.setBounds( BoundsImpl.create( lo.getX( ) - iSize, lo.getY( )						- iSize, iSize * 2, iSize * 2 ) );				preCopy = ore.copy( );			}		}		else if ( m.isSetVisible( ) && m.isVisible( ) )		{			final MarkerRenderer mr = new MarkerRenderer( this.getDevice( ),					oSource,					lo,					lia,					fPaletteEntry,					m,					markerSize,					this.getDeferredCache( ),					bDeferred,					bTransposed );			mr.draw( ipr );			preCopy = mr.getRenderArea( );		}		if ( this.isInteractivityEnabled( ) && dph != null )		{			if ( !( lo instanceof Location3D )					|| ( ( lo instanceof Location3D ) && ( this.get3DEngine( )							.processEvent( preCopy,									panningOffset.getX( ),									panningOffset.getY( ) ) != null ) ) )			{				final EList elTriggers = se.getTriggers( );				if ( !elTriggers.isEmpty( ) )				{					final StructureSource iSource = ( oParent instanceof Legend ) ? ( StructureSource.createSeries( se ) )							: ( WrappedStructureSource.createSeriesDataPoint( se,									dph ) );					final InteractionEvent iev = (InteractionEvent) ( (EventObjectCache) ipr ).getEventObject( iSource,							InteractionEvent.class );					Trigger tg;					for ( int t = 0; t < elTriggers.size( ); t++ )					{						tg = TriggerImpl.copyInstance( (Trigger) elTriggers.get( t ) );						this.processTrigger( tg, iSource );						iev.addTrigger( tg );					}					iev.setHotSpot( preCopy );					ipr.enableInteraction( iev );				}			}		}	}