PDA

View Full Version : Small doc error & clarification


JimC
02-10-2010, 01:38 PM
In the docs for viz.phys.intersectLine(), the last argument is called 'listAll'; 'all' is correct.

On this page and for viz.phys.intersect() it states that the function returns a VizIntersect object; if 'all' is True, it returns a list of VizIntersects.

JimC
02-10-2010, 02:16 PM
viz.phys.intersectLine() doesn't seem to work with all=True, anyway; I never get more than one intersection. viz.intersect() (sorry, mis-typed it in the original post) works fine, though.

JimC
02-11-2010, 07:25 AM
It seems that the argument names in the docs often don't match those in the code; that is, the docs make it look as though you can pass arguments in keyword form (which I think makes for more readable code), but it often doesn't work that way using the names as given. Of course, I can always look at the source...

Jeff
02-12-2010, 10:36 AM
Thanks for the note the about the incorrect argument name. If you notice something like that again, please mention it and we'll make the correction.

Here's an example that uses all = True with viz.phys.intersectLine() to turn intersected nodes.
import viz
viz.go()

box = viz.add('box.wrl', pos = [0,1,5])
shape1 = box.collideBox()
box2 = viz.add('box.wrl', pos = [0,1,7])
shape2 = box2.collideBox()

def FireLine():
line = viz.MainWindow.screenToWorld(viz.mouse.getPosition ()+[0])
dir = viz.Vector(line.dir)
dir.setLength(200)
begin = line.begin
end = line.begin + dir
info = viz.phys.intersectLine(begin,end, all = True)
for i in info:
i.object.color(viz.BLUE)

vizact.onmousedown(viz.MOUSEBUTTON_LEFT,FireLine)

viz.mouse(viz.OFF)


Can you post an example where it did notwork for you?

JimC
02-16-2010, 07:42 AM
Actually, I think it's just me not realizing that viz.phys.intersectLine() and viz.intersect() behave differently when all==True. viz.intersectLine() tells you which objects are intersected (one intersection/object), whereas viz.intersect() gives you every intersection point (e.g, where the line intersects front _and_ back faces of the same object)--which is the behavior I was looking for.

I guess the docs could be a bit more explicit about that.