import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 * Component for ColorShadeDriver.
 * This class extends JPanel and overrides paint
 * @author Bob Futrelle
 * @version 0.1 1/20/04 (from "SwingApplication orig of 7/6/02)
 */

public class Shader extends JPanel {

    public void paintComponent(Graphics g) {
	super.paintComponent(g);
	Graphics2D g2 = (Graphics2D) g;
	Color red = Color.red;
	Color green  = Color.green;
	int rstart = 10;
	int cstart = 10;
	int rows = 100;
	int cols = 350;
	
	// iterate over rows
	for(int r = rstart; r < rstart + rows; r++)
		//iterate over columns
		for(int c = cstart; c < cstart + cols; c++){
			g2.setColor(mixColors(red, green, 
			0.5*((r-rstart)/(double)rows + 
			(c-cstart)/(double)cols)));
		g2.drawLine(c,r,c+1,r);
	    }
	}    
	/** Fraction should be between 0.0 and 1.0 */
	public Color mixColors(Color c1, Color c2, double fraction1) {
	
	double f1 = fraction1;
	double f2 = 1.0 - fraction1;
	
	double r1 = c1.getRed()/255.0;
	double g1 = c1.getGreen()/255.0;
	double b1 = c1.getBlue()/255.0;
	double r2 = c2.getRed()/255.0;
	double g2 = c2.getGreen()/255.0;
	double b2 = c2.getBlue()/255.0;
	
	return new Color((float)(f1*r1 + f2*r2), 
	(float)(f1*g1 + f2*g2), 
	(float)(f1*b1 + f2*b2));
	}
	
	
} // class Shader

