Color3D.java
package com.gwief.jTrace;
/*
Color3D.java by Damian Newport
stores a color as (r,g,b)
implements various behavior not found in standard java color object
*/
public class Color3D{
protected double r,g,b;
public Color3D(){
r = 0;
g = 0;
b = 0;
}
public Color3D(double a,double b,double c){
setr(a);
setg(b);
setb(c);
}
public Color3D(Color3D a){
r = a.r;
g = a.g;
b = a.b;
}
public double getr(){return r;}
public double getg(){return g;}
public double getb(){return b;}
public void setr(double a){
if(a<0){r = 0;}
else if(a>1){r = 1;}
else {r = a;}
}
public void setg(double a){
if(a<0){g = 0;}
else if(a>1){g = 1;}
else {g = a;}
}
public void setb(double a){
if(a<0){b = 0;}
else if(a>1){b = 1;}
else {b = a;}
}
public void setcolor(double R, double G, double B){
setr(R);
setg(G);
setb(B);
}
public void add(Color3D a){
setr(r + a.getr());
setg(g + a.getg());
setb(b + a.getb());
}
public void multiply(double a){
setr(r * a);
setg(g * a);
setb(b * a);
}
public void multiply(Color3D a){
setr(r * a.getr());
setg(g * a.getg());
setb(b * a.getb());
}
public final String out(){
String a = "";
a += "r=" + r + ", ";
a += "g=" + g + ", ";
a += "b=" + b;
return a;
}
}