RiBBoxNode

A bounding box with the notion of a hierarchy of RiBBox and storage of RiRayObject

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

Quick Index

DESCRIPTION
WARNINGS

Class Summary

class RiBBoxNode : public RiBBox
{
public:
RiBBoxNode();
RiBBoxNode(RiRayObject *);
RiReal EC();
RiReal AIC();
RiReal &SumEC();
RiReal &SumAIC();
RiBBoxNode *&SkipNode() ;
RiBBoxNode *&LeftChild();
RiBBoxNode *&RightSibling();
RiBBoxNode *&Parent();
RiRayObject *&Primitive();
RiBBoxNode *SkipNode() const ;
RiBBoxNode *LeftChild() const;
RiBBoxNode *RightSibling() const;
RiBBoxNode *Parent() const;
RiRayObject *Primitive() const;
void SwapData(RiBBoxNode &node2);
int NumChildren() const;
void AddAsSibling(RiBBoxNode *child, RiBBoxNode *sib);
void AddAsChild(RiBBoxNode *child);
protected:
}; // RiBBoxNode


DESCRIPTION

Holds RiRayObject in a tree while the hierarchy is being built. The tree is then cleaned up and converted into an RiBBoxArray for efficient traversal.


WARNINGS

User is responsible for cleaning up all RiRayObject and RiBBoxNode stored in a node.


RiBBoxNode();

oxNode();No documentation available.

    RiBBoxNode();

RiBBoxNode(RiRayObject *);

oxNode(RiRayObject *);No documentation available.

    RiBBoxNode(RiRayObject *);

RiReal EC();

al EC();No documentation available.

    RiReal  	 EC();

RiReal AIC();

al AIC();No documentation available.

    RiReal  	 AIC();

RiReal &SumEC();

al &SumEC();No documentation available.

    RiReal  	&SumEC();

RiReal &SumAIC();

al &SumAIC();No documentation available.

    RiReal	&SumAIC();

RiBBoxNode *&SkipNode() ;

oxNode *&SkipNode() {return skip;}No documentation available.

    RiBBoxNode	*&SkipNode()               
;

Function is currently defined inline.


RiBBoxNode *&LeftChild();

oxNode *&LeftChild();No documentation available.

    RiBBoxNode	*&LeftChild();

RiBBoxNode *&RightSibling();

oxNode *&RightSibling();No documentation available.

    RiBBoxNode	*&RightSibling();

RiBBoxNode *&Parent();

oxNode *&Parent();No documentation available.

    RiBBoxNode	*&Parent();

RiRayObject *&Primitive();

yObject *&Primitive();No documentation available.

    RiRayObject	*&Primitive();

RiBBoxNode *SkipNode() const ;

oxNode *SkipNode() const {return skip;}No documentation available.

    RiBBoxNode	 *SkipNode() 	 const               
;

Function is currently defined inline.


RiBBoxNode *LeftChild() const;

oxNode *LeftChild() const;No documentation available.

    RiBBoxNode	 *LeftChild() 	 const;

RiBBoxNode *RightSibling() const;

oxNode *RightSibling() const;No documentation available.

    RiBBoxNode	 *RightSibling() const;

RiBBoxNode *Parent() const;

oxNode *Parent() const;No documentation available.

    RiBBoxNode	 *Parent() 	 const;

RiRayObject *Primitive() const;

yObject *Primitive() const;No documentation available.

    RiRayObject	 *Primitive() 	 const;

void SwapData(RiBBoxNode &node2);

SwapData(RiBBoxNode &node2);No documentation available.

    void	  SwapData(RiBBoxNode &node2);

int NumChildren() const;

NumChildren() const;No documentation available.

    int	  NumChildren() const;

void AddAsSibling(RiBBoxNode *child, RiBBoxNode *sib);

AddAsSibling(RiBBoxNode *child, RiBBoxNode *sib); create new node, *this & *sib become children (sib is an empty node allocated by the caller)

    void  AddAsSibling(RiBBoxNode *child, RiBBoxNode *sib); 

void AddAsChild(RiBBoxNode *child);

AddAsChild(RiBBoxNode *child); // not if *this has primitive (use AddAsSibling)No documentation available.

    void  AddAsChild(RiBBoxNode *child);  		// not if *this has primitive (use AddAsSibling)

All Members

public:
RiReal GetArea();
RiBBox operator|(const RiBBox &) const;
const RiBBox &operator|==(const RiBBox &);
const RiBBox &operator&=(const RiBBox &);
bool Intersect(RiReal bmin, RiReal bmax, RiReal *num, RiReal *den) const;
bool IntersectPPP(RiReal bmin, RiReal bmax, const RiReal *num, const RiReal *den) const;
bool IntersectPPM(RiReal bmin, RiReal bmax, const RiReal *num, const RiReal *den) const;
bool IntersectPMP(RiReal bmin, RiReal bmax, const RiReal *num, const RiReal *den) const;
bool IntersectPMM(RiReal bmin, RiReal bmax, const RiReal *num, const RiReal *den) const;
bool IntersectMPP(RiReal bmin, RiReal bmax, const RiReal *num, const RiReal *den) const;
bool IntersectMPM(RiReal bmin, RiReal bmax, const RiReal *num, const RiReal *den) const;
bool IntersectMMP(RiReal bmin, RiReal bmax, const RiReal *num, const RiReal *den) const;
bool IntersectMMM(RiReal bmin, RiReal bmax, const RiReal *num, const RiReal *den) const;
RiInterval GetSlab(int i) const;
RiInterval GetMinMax(const RiUnitVector3 &dir) const ;
RiReal EC();
RiReal AIC();
RiReal &SumEC();
RiReal &SumAIC();
RiBBoxNode *&SkipNode() ;
RiBBoxNode *&LeftChild();
RiBBoxNode *&RightSibling();
RiBBoxNode *&Parent();
RiRayObject *&Primitive();
RiBBoxNode *SkipNode() const ;
RiBBoxNode *LeftChild() const;
RiBBoxNode *RightSibling() const;
RiBBoxNode *Parent() const;
RiRayObject *Primitive() const;
void SwapData(RiBBoxNode &node2);
int NumChildren() const;
void AddAsSibling(RiBBoxNode *child, RiBBoxNode *sib);
void AddAsChild(RiBBoxNode *child);
protected:

Ancestors

Inheritance chain for RiBBoxNode:


Descendants

Class is not inherited by any others.


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