// Pre: n < MaxL, 0 <= h[i] <= 1 für i = 0, 1. // Wenn Licht n schon eingeschaltet war, ist nichts verändert; andernfalls ist es // an der Position v in Farbe f mit der Ambienz h[0] und der Diffusität h[1] eingeschaltet. func InitLight(n uint, v, h *vect.Imp, c col.Colour) { // // if lightInitialized[n] { return } var a [4]float64 a[0], a[1], a[2] = h.Coord3() // Arbeitsdrumrum, weil die Punkte bisher nur eine Farbe transportieren, hier die diffuse. // In L wird die ambiente Farbe geliefert. for i := 0; i < 3; i++ { aa[n][i] = C.GLfloat(a[i]) } aa[n][3] = C.GLfloat(1.0) lightColour[n] = c d0, d1, d2 := col.Float(c) dd[n][0], dd[n][1], dd[n][2] = C.GLfloat(d0), C.GLfloat(d1), C.GLfloat(d2) dd[n][3] = C.GLfloat(1.0) lightSource[n].Copy(v) ActualizeLight(n) lightInitialized[n] = true }
func Cls(c col.Colour) { // r, g, b := col.Float(c) // 0.0, 0.0, 0.0 C.glClearColor(C.GLclampf(r), C.GLclampf(g), C.GLclampf(b), C.GLclampf(0.0)) }