[comp.sys.hp] Picking from device independendent Starbase Display List

neil@yc.estec.nl (Neil Dixon) (12/12/89)

Is it possible to pick from a device independent display list? 

As a first guess I assume that the only way to do it is to traverse
the display list, issuing display_segment calls and checking for hits
on the pick aperture, but how do I get the correct segment when using
hidden surface removal? Do I have to traverse the list twice?
-- 
Neil Dixon <neil@yc.estec.nl> UUCP:...!mcvax!esatst!neil, BITNET: NDIXON@ESTEC
Thermal Control & Life Support Division (YC) 
European Space Research and Technology Centre (ESTEC),
Noordwijk, The Netherlands.

stroyan@hpfcdq.HP.COM (Mike Stroyan) (12/13/89)

>Is it possible to pick from a device independent display list? 

Yes.

>As a first guess I assume that the only way to do it is to traverse
>the display list, issuing display_segment calls and checking for hits
>on the pick aperture, but how do I get the correct segment when using
>hidden surface removal? Do I have to traverse the list twice?

The Starbase device independent display list supports pick_from_segment,
but it does not support hidden surface removal.  You could use a display
device's Z buffer by starting hit mode on the display device and using
display_segment or display_element calls seperated by inquire_hit calls
as you described.  You would need to traverse the list once to set up
the Z buffer and once again to test for hits.  This is discussed in the
hit_mode(3G) manual entry.

The same double traversal is performed inside a pick_from_segment from a
display list on a device which has hidden_surface enabled.

Mike Stroyan, stroyan@hpfcla.hp.com