Bounding boxes for dynamic GeoSets

New Message Reply Date view Thread view Subject view Author view

Aaron M. Hightower (aaron++at++skips.dseg.ti.com)
Tue, 17 May 94 12:04:40 CDT


I am doing some special effects that involve modifying the geometry of a
GeoSet

My dag looks something like this

            ViewState->Scenegroup
| |
(group1 = LoadFile()) group2 -+- pfSwitch - pfGeode - pfGeoSet -+- pfGeoState
|- pfSwitch - pfGeode - pfGeoSet -|
|- pfSwitch - pfGeode - pfGeoSet -|
|- pfSwitch - pfGeode - pfGeoSet -|
|- pfSwitch - pfGeode - pfGeoSet -|
|- pfSwitch - pfGeode - pfGeoSet -|
|- pfSwitch - pfGeode - pfGeoSet -|
                                                ...
|- pfSwitch - pfGeode - pfGeoSet -|

Each GeoSet is being modified as needed via a pfList of a structure like
this:

typedef struct {
  pfSwitch *sw; /* Whether or not this thing is being drawn */
  pfGeoSet *gset; /* Geoset for this strip */
  pfVec3 *p; /* Two points */
  pfVec4 *c; /* Two colors */
} Tracer;

-------------------------------------------------------------------------

This all worked fine, but only when the origin was in view. So I
figured that the bounding box was not being set when I modified the
geometry. So I tried using pfNodeBSphere().

No luck.

So I disabled culling on the pfGroup:

    pfNodeTravMask(group2,PFTRAV_CULL,0,PFTRAV_SELF,PF_SET);

that contains all of the pfSwitches. This worked, so I thought. And
was good enough for the demo.

But problems remain. I still suffer from the Geode disappearing when the
group1 object gets too far away from a channel. And I would prefer a more
efficient solution if such exists (more efficient than disabling culling on
the subgraph).

-------------------------------------------------------------------------

So my questions are:

(1) How do I recompute BSpheres when modifying pfGeoSets as illustrated in
    the figure above?
(2) Why, when I am completely disabling culling on group2, does the Geometry
    still disappear when it should not?

-------------------------------------------------------------------------
         _ _
Thanks, | | *-------------------------------------------* | |
      __| |___ | Aaron.Hightower++at++dseg.ti.com 214.575.6759 | __| |___
      \ / | Simulation & Planning Technology | \ /
       \_ / | 6620 Chase Oaks Blvd M/S 8518 | \_ /
         \ ( | Plano TX 75023 | \ (
          \/ *-------------------------------------------* \/


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:50:16 PDT

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