RiBBoxHierarchyBuilder

Builder for Bounding Box Hierarchies

[ Ray | Source | Search | Keywords | Summary | Ancestors | All Members | Descendants ]

Quick Index

DESCRIPTION
THEORY
PATTERN

Class Summary

class RiBBoxHierarchyBuilder : public RiRayAcceleratorBuilder
{
public:
RiBBoxHierarchyBuilder();
~RiBBoxHierarchyBuilder();
void AddObject(RiRayObject *);
RiRayObject *Build();
bool IsDone();
void SetCullBBox(const RiBBox &cull);
protected:
}; // RiBBoxHierarchyBuilder


DESCRIPTION


THEORY

in case you actually want to know how it is being built from Arvo & Kirk Survey of Ray Tracing Acceleration (in Glassners Ray Tracing Book) based on the Goldsmith and Salmon article

       IC(A) = Sum( EC(Bi) + (Area(Bi) / Area(A)) * IC(Bi) )
       IC(A) = Sum( EC(Bi) ) + (1 / Area(A)) * Sum( Area(Bi) * IC(Bi) )
       IC(A) = Sum( EC(Bi) ) + (1 / Area(A)) * Sum( AIC(Bi) )
       IC(A) = sum_EC  + (1 / Area(A)) * sum_AIC

       AIC(A) = Area(A) * IC(A)
       AIC(A) = Area(A) * Sum( EC(Bi) + (Area(Bi) / Area(A)) * IC(Bi) )
       AIC(A) = Area(A) * Sum( EC(Bi) ) +  Sum( Area(Bi) * IC(Bi) )
       AIC(A) = Area(A) * Sum( EC(Bi) ) + Sum( AIC(Bi) )
       AIC(A) = Area(A) * sum_EC  + sum_AIC


PATTERN

Builder


RiBBoxHierarchyBuilder();

Default Constructor

    RiBBoxHierarchyBuilder();

~RiBBoxHierarchyBuilder();

Free all memory

    virtual ~RiBBoxHierarchyBuilder();

void AddObject(RiRayObject *);

Insert another object into the future RiBBoxHierarchy

    virtual void 	 AddObject(RiRayObject *);

RiRayObject *Build();

Build the RiRayObject and return it. Each call to Build will build and return the next object.

    virtual RiRayObject *Build();

bool IsDone();

Some situations result in a RiRayObjectBuilder building more than a single object. As long as IsDone returns false, there are more objects that need to be built

    virtual bool	 IsDone();

void SetCullBBox(const RiBBox &cull);

Cull box is intersected against the bounding box of all primitives useful for bboxes nested inside grids.

    void   SetCullBBox(const RiBBox &cull);

All Members

public:
void AddObject(RiRayObject *); // pure virtual
RiRayObject *Build(); // pure virtual
bool IsDone(); // pure virtual
void SetCullBBox(const RiBBox &cull);
protected:

Ancestors

Inheritance chain for RiBBoxHierarchyBuilder:


Descendants

Class is not inherited by any others.


Generated from source by the Cocoon utilities on Fri Feb 25 15:15:52 2000 .