Exemplo n.º 1
0
func Actualize(R, V, O, A *vect.Imp) {
	//
	right[0], right[1], right[2] = R.Coord3()
	front[0], front[1], front[2] = V.Coord3()
	top[0], top[1], top[2] = O.Coord3()
	eye[0], eye[1], eye[2] = A.Coord3()
}
Exemplo n.º 2
0
// 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
}
Exemplo n.º 3
0
func vector2yyy(v *vect.Imp) {
	//
	for i := 0; i < 3; i++ {
		yyy[i] = C.GLdouble(v.Coord(spc.Direction(i)))
	}
}