diff options
author | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
---|---|---|
committer | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
commit | 420b91db29485df39fd6e724e782c449158811cb (patch) | |
tree | b471a94563af914d3ed3edd3e856d21cb1b69945 /indra/llmath/llbboxlocal.h |
Print done when done.
Diffstat (limited to 'indra/llmath/llbboxlocal.h')
-rw-r--r-- | indra/llmath/llbboxlocal.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/indra/llmath/llbboxlocal.h b/indra/llmath/llbboxlocal.h new file mode 100644 index 0000000000..c8b7fbbbc8 --- /dev/null +++ b/indra/llmath/llbboxlocal.h @@ -0,0 +1,50 @@ +/** + * @file llbboxlocal.h + * @brief General purpose bounding box class. + * + * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_BBOXLOCAL_H +#define LL_BBOXLOCAL_H + +#include "v3math.h" + +class LLMatrix4; + +class LLBBoxLocal +{ +public: + LLBBoxLocal() {} + LLBBoxLocal( const LLVector3& min, const LLVector3& max ) : mMin( min ), mMax( max ) {} + // Default copy constructor is OK. + + const LLVector3& getMin() const { return mMin; } + void setMin( const LLVector3& min ) { mMin = min; } + + const LLVector3& getMax() const { return mMax; } + void setMax( const LLVector3& max ) { mMax = max; } + + LLVector3 getCenter() const { return (mMax - mMin) * 0.5f + mMin; } + LLVector3 getExtent() const { return mMax - mMin; } + + BOOL containsPoint(const LLVector3& p) const; + BOOL intersects(const LLBBoxLocal& b) const; + + void addPoint(const LLVector3& p); + void addBBox(const LLBBoxLocal& b) { addPoint( b.mMin ); addPoint( b.mMax ); } + + void expand( F32 delta ); + + friend LLBBoxLocal operator*(const LLBBoxLocal& a, const LLMatrix4& b); + +private: + LLVector3 mMin; + LLVector3 mMax; +}; + +LLBBoxLocal operator*(const LLBBoxLocal &a, const LLMatrix4 &b); + + +#endif // LL_BBOXLOCAL_H |