View Single Post
  #1  
Old 01-07-2005, 11:55 AM
Johannes Johannes is offline
Member
 
Join Date: Jan 2005
Posts: 143
Draw Line between Points selected by mouse

Hi,
the following program should draw a line between two in the "world" selected by mouse.

As viz.screentoworld(viz.mousepos()) returns a vector - is there an easier way to figure out the point the mouse was pressed at (e.g. return value [3,4,5]?

I guess I really don't understand viz.screentoworld(viz.mousepos()) that much - where does this vector start - at the viewpoint?

Thank you,
Johannes



import viz

viz.go()

SPIsSet,EPIsSet=0,0
startPoint=[0,0,0]
endPoint=[0,0,0]


def mousedown(button):
#
if button == viz.MOUSEBUTTON_LEFT:
global startPoint,SPIsSet
global endPoint,EPIsSet
if SPIsSet==0:
startPoint=viz.screentoworld(viz.mousepos())
print 'startPoint:',startPoint
SPIsSet=1
elif (SPIsSet!=0 & EPIsSet==0):
endPoint=viz.screentoworld(viz.mousepos())
print 'ePoint:',endPoint
EPIsSet=1
drawLine(startPoint, endPoint)
EPIsSet=0
SPIsSet=0
else:
print 'forgot option 3'

def drawLine(begin, end):
viz.clearcolor(0.0,0.0,0.0)
viz.vertexcolor(2, 4, 4)
viz.startlayer(viz.LINE_LOOP)
viz.vertex(begin)
viz.vertex(end)
line = viz.endlayer()
#posBox=viz.add('../resources/models/box.wrl')
#posBox.scale(0.01,0.01,0.01)
#posBox.translate(begin)

#Create callbacks for timer events and mouse click events
viz.callback(viz.MOUSEDOWN_EVENT,mousedown)
Reply With Quote