GwieF.com : project.GrieF.com : Classes : Color3D
logo

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;
    }
}