ColorDefinitionImpl.TRANSPARENT( ) );
null );
	protected final void renderMarker( Object oParent, IPrimitiveRenderer ipr,			Marker m, Location lo, LineAttributes lia, Fill fPaletteEntry,			DataPointHints dph, Integer 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( ),					ColorDefinitionImpl.TRANSPARENT( ) );		}		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 );				}			}		}	}