intersection testing of line seg attached to moving node

New Message Reply Date view Thread view Subject view Author view

lisa++at++cs.unm.edu
Thu, 23 May 1996 14:35:55 -0600


Hello, Performers.

Can any of you tell me how to get back the position, in world
coordinates, of a point on a node well down in a scene graph?
More generally, I want to know how to do intersection testing for
a pfSegSet whose pfSegs are "attached" to a dynamically moving
node.

Are pfSegs used for intersection testing never part of the scene graph?
Do the pfSegs have to be described in world coordinates?
Is there a method for any pfNode to return its base position
in world coordinates? I can't find one.
Can this info only be gleaned from Performer during a traversal?

Background: I am developing a simulator for large numbers
of autonomous agents moving within and interacting with a physical
environment. The agents are tiny robots, or "robugs", which we will
eventually really build. For this version of the simulator, physical
aspects of the simulation will be implemented in Performer. I am
currently trying to implement my first sensor, a whisker, using
Performer's line segment intersection capability. I have a database
of simulator-specific objects, which contains xyz and hpr vectors
showing the geometric offset between PhysicalObjects and other
Physical Objects (or the world) to which they're attached and
the geometric offset between SimulatedSensors and the PhysicalObjects
to which they're attached, and a corresponding scene graph.

My problem concerns updating the position and direction of the line
segments against which intersections are tested in order to keep them
effectively attached to a geode in the scene graph. A complication is that
the line segments aren't part of the scene graph and the geode's position
changes dynamically, so that my application needs to keep updating the
line segment's position in world coordinates so that it APPEARS to be
attached to the geode. This is further complicated by the geode being
several layers down in a geometric hierarchy. For example, the line
segment could be simulating a proximity sensor that is at the toolpoint
of a multiple-link manipulator that is attached to a vehicle.
The vehicle moves. The links of the manipulator rotate or translate
relative to each other. They form a kinematic chain.

I am currently trying to reconstruct this info by going
forward down a kinematic chain using the xyz and hpr vectors
stored in my simulator's database. This seems really klunky.

Is there sample code, other than the collision avoidance in perfly and
/usr/share/Performer/src/pguide/libpf/C++/intersect.C, that shows
intersection testing? These examples do not seem to address my problem,
since they assume a line segment in a fixed orientation whose position
is independent of the movement of geometric objects in the scene graph.

How have other people implemented similar things (hint, Scott McMillan)?

By the way, I am developing in C++ under Performer 2.0.

Thank you.

        Lisa Desjarlais
        lmdesja++at++isrc.sandia.gov
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer.html
            Submissions: info-performer++at++sgi.com
        Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:55 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.