From 420b91db29485df39fd6e724e782c449158811cb Mon Sep 17 00:00:00 2001 From: James Cook Date: Tue, 2 Jan 2007 08:33:20 +0000 Subject: Print done when done. --- indra/llmath/llbboxlocal.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 indra/llmath/llbboxlocal.h (limited to 'indra/llmath/llbboxlocal.h') 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 -- cgit v1.2.3