# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NLMISC::CAABBox Class Reference

An Axis Aligned Bouding Box. More...

#include <aabbox.h>

Inheritance diagram for NLMISC::CAABBox

Inheritance graph
[legend]
Collaboration diagram for NLMISC::CAABBox:

Collaboration graph
[legend]
List of all members.

Public Methods

 CAABBox ()
 Empty bbox Constructor. (for AABBoxExt::getRadius() correctness). More...

void setCenter (const CVector &center)
void setHalfSize (const CVector &hs)
void setSize (const CVector &s)
void setMinMax (const CVector &bmin, const CVector &bmax)
 Build the bbox, with a min/max style bbox. More...

void extend (const CVector &v)
 extend the bbox so it contains v. More...

CVector getMin () const
CVector getMax () const
CVector getCenter () const
CVector getHalfSize () const
CVector getSize () const
 Return the size of the bbox. More...

float getRadius () const
 Return the radius of the bbox. More...

bool clipFront (const CPlane &p) const
 Is the bbox partially in front of the plane?? More...

bool clipBack (const CPlane &p) const
 Is the bbox partially in back of the plane?? More...

bool include (const CVector &a) const
 Does the bbox include this point. More...

bool intersect (const CAABBox &box) const
 Does the bbox intersect the bbox box. More...

bool intersect (const CVector &a, const CVector &b, const CVector &c) const
 Does the bbox intersect the triangle ABC. More...

void makePyramid (CPlane planes[6]) const
 Build the equivalent polytope of planes. More...

void serial (NLMISC::IStream &f)

Protected Attributes

CVector Center
 The center of the bbox. More...

CVector HalfSize
 The size/2 of the bbox. More...


Detailed Description

An Axis Aligned Bouding Box.

Note: Center/HalfSize set to private, to have same manipulation for CAABBox and CAABBoxExt.

Author(s):
Lionel Berenguier , Nevrax France
Date:
2000

Definition at line 52 of file aabbox.h.


Constructor & Destructor Documentation

NLMISC::CAABBox::CAABBox ( ) [inline]
 

Empty bbox Constructor. (for AABBoxExt::getRadius() correctness).

Definition at line 63 of file aabbox.h.


Member Function Documentation

bool NLMISC::CAABBox::clipBack ( const CPlane & p ) const
 

Is the bbox partially in back of the plane??

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 54 of file aabbox.cpp.

bool NLMISC::CAABBox::clipFront ( const CPlane & p ) const
 

Is the bbox partially in front of the plane??

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 34 of file aabbox.cpp.

void NLMISC::CAABBox::extend ( const CVector & v )
 

extend the bbox so it contains v.

Warning!! By default, a bbox is the vector 0,0,0. So set the first vertex with setCenter() or else the bbox will be the extension of v and (0,0,0)...

Definition at line 141 of file aabbox.cpp.

Referenced by NL3D::makeBBox().

CVector NLMISC::CAABBox::getCenter ( ) const [inline]
 

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 89 of file aabbox.h.

Referenced by NLPACS::CSurfaceQuadTree::addVertex(), NL3D::CPSUtil::transformAABBox(), and NLPACS::CSurfaceQuadTree::translate().

CVector NLMISC::CAABBox::getHalfSize ( ) const [inline]
 

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 90 of file aabbox.h.

Referenced by NL3D::CPSUtil::addRadiusToAABBox(), NLPACS::CSurfaceQuadTree::addVertex(), and NL3D::CPSUtil::transformAABBox().

CVector NLMISC::CAABBox::getMax ( ) const [inline]
 

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 88 of file aabbox.h.

Referenced by NL3D::CPSUtil::computeAABBoxUnion(), NL3D::CPSUtil::displayBBox(), NLPACS::CGlobalRetriever::getInstance(), NLPACS::CGlobalRetriever::getInstanceBounds(), NLPACS::CGlobalRetriever::getInstanceCenter(), NLPACS::CGlobalRetriever::getInstanceFullAccess(), and NLPACS::CChainQuad::selectEdges().

CVector NLMISC::CAABBox::getMin ( ) const [inline]
 

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 87 of file aabbox.h.

Referenced by NL3D::CPSUtil::computeAABBoxUnion(), NL3D::CPSUtil::displayBBox(), NLPACS::CGlobalRetriever::getInstance(), NLPACS::CGlobalRetriever::getInstanceBounds(), NLPACS::CGlobalRetriever::getInstanceCenter(), NLPACS::CGlobalRetriever::getInstanceFullAccess(), and NLPACS::CChainQuad::selectEdges().

float NLMISC::CAABBox::getRadius ( ) const [inline]
 

Return the radius of the bbox.

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 94 of file aabbox.h.

CVector NLMISC::CAABBox::getSize ( ) const [inline]
 

Return the size of the bbox.

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 92 of file aabbox.h.

bool NLMISC::CAABBox::include ( const CVector & a ) const
 

Does the bbox include this point.

Definition at line 76 of file aabbox.cpp.

Referenced by NLPACS::CSurfaceQuadTree::addVertex(), and NLPACS::CSurfaceQuadTree::getLeaf().

bool NLMISC::CAABBox::intersect ( const CVector & a,
const CVector & b,
const CVector & c ) const
 

Does the bbox intersect the triangle ABC.

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 103 of file aabbox.cpp.

bool NLMISC::CAABBox::intersect ( const CAABBox & box ) const
 

Does the bbox intersect the bbox box.

Definition at line 89 of file aabbox.cpp.

void NLMISC::CAABBox::makePyramid ( CPlane planes[6] ) const
 

Build the equivalent polytope of planes.

Definition at line 120 of file aabbox.cpp.

void NLMISC::CAABBox::serial ( NLMISC::IStream & f )
 

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 132 of file aabbox.cpp.

void NLMISC::CAABBox::setCenter ( const CVector & center ) [inline]
 

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 68 of file aabbox.h.

Referenced by NLPACS::CSurfaceQuadTree::CSurfaceQuadTree(), NLPACS::IQuadNode::getBBox(), NLPACS::CSurfaceQuadTree::init(), NL3D::makeBBox(), NLPACS::CGlobalRetriever::setCenter(), and NLPACS::CSurfaceQuadTree::translate().

void NLMISC::CAABBox::setHalfSize ( const CVector & hs ) [inline]
 

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 69 of file aabbox.h.

Referenced by NL3D::CPSUtil::addRadiusToAABBox(), NLPACS::IQuadNode::getBBox(), and NLPACS::CSurfaceQuadTree::init().

void NLMISC::CAABBox::setMinMax ( const CVector & bmin,
const CVector & bmax ) [inline]
 

Build the bbox, with a min/max style bbox.

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 72 of file aabbox.h.

Referenced by NL3D::CPSUtil::computeAABBoxUnion(), NL3D::CPSLocated::computeBBox(), and NL3D::CPSUtil::transformAABBox().

void NLMISC::CAABBox::setSize ( const CVector & s ) [inline]
 

Reimplemented in NLMISC::CAABBoxExt.

Definition at line 70 of file aabbox.h.

Referenced by NLPACS::CSurfaceQuadTree::CSurfaceQuadTree(), and NLPACS::CGlobalRetriever::updateBBox().


Member Data Documentation

CVector NLMISC::CAABBox::Center [protected]
 

The center of the bbox.

Definition at line 56 of file aabbox.h.

CVector NLMISC::CAABBox::HalfSize [protected]
 

The size/2 of the bbox.

Definition at line 58 of file aabbox.h.


The documentation for this class was generated from the following files: