/* Une classe de manipulation d'energies colorees */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Octobre 2009 */ public class Energie { public float r; public float v; public float b; public Energie() { r = v = b = 0.0F; } public Energie(float r,float v,float b) { this.r = r; this.v = v; this.b = b; } public Energie(Energie e) { r = e.r; v = e.v; b = e.b; } public Energie(LumiereDirectionnelle ld,Materiel m,Direction n) { float ps = -ld.d.produitScalaire(n); if ( ps <= 0.0F ) { r = v = b = 0.0F; return; } float fact = ps*ld.i; r = fact*ld.c.r*m.kd.r; v = fact*ld.c.v*m.kd.v; b = fact*ld.c.b*m.kd.b; } public Energie(LumierePonctuelle lp,Materiel m,Direction n,Position p) { Direction l = new Direction(p,lp.p); float ps = l.produitScalaire(n); if ( ps <= 0.0F ) { r = v = b = 0.0F; return; } float fact = ps*lp.i/lp.p.carreDistance(p); r = fact*lp.c.r*m.kd.r; v = fact*lp.c.v*m.kd.v; b = fact*lp.c.b*m.kd.b; } }