diff options
Diffstat (limited to 'indra/llmath')
| -rw-r--r-- | indra/llmath/llbbox.cpp | 22 | ||||
| -rw-r--r-- | indra/llmath/llbbox.h | 4 | 
2 files changed, 26 insertions, 0 deletions
| diff --git a/indra/llmath/llbbox.cpp b/indra/llmath/llbbox.cpp index b46a6e03d2..d2208f604e 100644 --- a/indra/llmath/llbbox.cpp +++ b/indra/llmath/llbbox.cpp @@ -89,6 +89,19 @@ void LLBBox::addBBoxAgent(const LLBBox& b)  	}  } +LLBBox LLBBox::getAxisAligned() const +{ +	// no rotiation = axis aligned rotation +	LLBBox aligned(mPosAgent, LLQuaternion(), LLVector3(), LLVector3()); + +	// add the center point so that it's not empty +	aligned.addPointAgent(mPosAgent); + +	// add our BBox +	aligned.addBBoxAgent(*this); + +	return aligned; +}  void LLBBox::expand( F32 delta )  { @@ -147,6 +160,15 @@ BOOL LLBBox::containsPointAgent(const LLVector3& p) const  	return containsPointLocal(point_local);  } +LLVector3 LLBBox::getMinAgent() const +{ +	return localToAgent(mMinLocal); +} + +LLVector3 LLBBox::getMaxAgent() const +{ +	return localToAgent(mMaxLocal); +}  /*  LLBBox operator*(const LLBBox &a, const LLMatrix4 &b) diff --git a/indra/llmath/llbbox.h b/indra/llmath/llbbox.h index 5b911793f0..28e69b75e1 100644 --- a/indra/llmath/llbbox.h +++ b/indra/llmath/llbbox.h @@ -51,9 +51,11 @@ public:  	const LLVector3&	getPositionAgent() const			{ return mPosAgent; }  	const LLQuaternion&	getRotation() const					{ return mRotation; } +	LLVector3           getMinAgent() const;  	const LLVector3&	getMinLocal() const					{ return mMinLocal; }  	void				setMinLocal( const LLVector3& min )	{ mMinLocal = min; } +	LLVector3           getMaxAgent() const;  	const LLVector3&	getMaxLocal() const					{ return mMaxLocal; }  	void				setMaxLocal( const LLVector3& max )	{ mMaxLocal = max; } @@ -80,6 +82,8 @@ public:  	LLVector3			localToAgentBasis(const LLVector3& v) const;  	LLVector3			agentToLocalBasis(const LLVector3& v) const; +	// Get the smallest possible axis aligned bbox that contains this bbox +	LLBBox              getAxisAligned() const;  //	friend LLBBox operator*(const LLBBox& a, const LLMatrix4& b); | 
