diff options
author | Andrew Meadows <andrew@lindenlab.com> | 2011-01-07 15:22:33 -0800 |
---|---|---|
committer | Andrew Meadows <andrew@lindenlab.com> | 2011-01-07 15:22:33 -0800 |
commit | 1b7bd5e2d0d8f3c8f31c037aae8f46b1377178fd (patch) | |
tree | f4a4d2bd79cda3b8c4f787d7cedd92bd7358c70b /indra/newview/llviewerobject.cpp | |
parent | d23f7df822b6c0557f9426b5e1aa660b77aba01e (diff) | |
parent | d12b7b347ad4094b96ba2a650ae86dfb9db2a893 (diff) |
merge
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rw-r--r-- | indra/newview/llviewerobject.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index df89e6759d..18d6e4c8c8 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -518,10 +518,21 @@ void LLViewerObject::setNameValueList(const std::string& name_value_list) // agent. bool LLViewerObject::isReturnable() { - LLBBox box_in_region_frame(getPositionRegion(), getRotationRegion(), getScale() * -0.5f, getScale() * 0.5f); - return !isAttachment() - && mRegionp - && mRegionp->objectIsReturnable(getPositionRegion(), box_in_region_frame); + if (isAttachment()) + { + return false; + } + std::vector<LLBBox> boxes; + boxes.push_back(LLBBox(getPositionRegion(), getRotationRegion(), getScale() * -0.5f, getScale() * 0.5f).getAxisAligned()); + for (child_list_t::iterator iter = mChildList.begin(); + iter != mChildList.end(); iter++) + { + LLViewerObject* child = *iter; + boxes.push_back(LLBBox(child->getPositionRegion(), child->getRotationRegion(), child->getScale() * -0.5f, child->getScale() * 0.5f).getAxisAligned()); + } + + return mRegionp + && mRegionp->objectIsReturnable(getPositionRegion(), boxes); } BOOL LLViewerObject::setParent(LLViewerObject* parent) |