# -*- coding: utf-8 -*-
# visual - Test Mausinteraktion 5
# Der Benutzer des Beispielprogramms kann Bälle in einer Ebene
# parallel zur xy-Ebene platzieren und zwar unabhängig vom Benutzerstandort
# Die Methode
#
# scene.mouse.project(normal=(x,y,z), point=(x,y,z))
#
# legt also eine Ebene fest, welche durch den senkrecht stehenden Normalenvektor und
# einem auf ihr befindlichen Punkt charakterisiert wird!


from visual import *
from random import random


scene.range = 4
scene.stereodepth=2
box() # display a box for context

while True:
    rate(20)
    if scene.mouse.clicked:
        m = scene.mouse.getclick()
        loc = m.project(normal=(0,0,1))
        # loc is None if no intersection with plane
        if loc:
            sphere(pos=loc, radius=0.2, color=color.hsv_to_rgb((random(),1,1)))
