Retrieving geode isected with.

New Message Reply Date view Thread view Subject view Author view

Scott McMillan (scott++at++er.ht.com)
Mon, 22 Apr 1996 13:20:22 -0400 (EDT)


I am trying to get a _pointer_ to the pfGeode in my scene graph that I have
detected an intersection with. This would be used to limit the isect() on
the next pass through the APP to checking against this geode first rather
than on the entire scene graph. I am using IRIX5.3/Performer2.0...

I have tried using

   pfGeode *node;
   if (scene->isect(&seg_set, hits))
   {
      static int flags;
      hits[0][0]->query(PFQHIT_FLAGS, &flags);

      if (flags & PFHIT_POINT)
      {
         hits[0][0]->query(PFQHIT_NODE, node);

but this last line bombs because it seems to expect a node with its own
instance already allocated as follows;

   pfGeode node;
    :
    :
   hits[0][0]->query(PFQHIT_NODE, &node);

This does not crash but subsequent node.isect() calls yield no intersections
when in fact there should be. I don't think I would want this anyway
because, at best, part of the scene graph would be copied into my node anyway
which is unwanted overhead....and what about the underlying pfGeoSets?

The next try was to use the pfPath:

   pfPath *prev_geometry_path = new pfPath(); // done once in the constructor
     :
     :
   hits[0][0]->query(PFQHIT_PATH, prev_geometry_path);

But this returns a path with zero length....what happened to the path the
isect took to get a valid intersection???

Can anybody out there help me get a handle on this?

Thanks in advance,
scott

-- 
Scott McMillan / scott++at++ht.com / (301)984-3706 x250 / FAX (301)984-2104
                      High Techsplanations Inc. 
       6001 Montrose Road, Suite 902 / Rockville, MD 20852-4874 

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:45 PDT

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