diff options
| author | Oz Linden <oz@lindenlab.com> | 2011-01-17 10:30:36 -0500 |
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2011-01-17 10:30:36 -0500 |
| commit | 74fdba829574e5132fec6633b0ddcd2feb9fe51e (patch) | |
| tree | bf17dba56b38a3b228f6174f950e3d405b6329af /indra/newview/llviewerparceloverlay.cpp | |
| parent | fe28f89e7e79b9de5a455b9c9833d243d8039774 (diff) | |
| parent | 1d7b46e2c32c6bdf2e6cf5a8b9dcb0c8cb767b1b (diff) | |
merge changes for vwr-24420
Diffstat (limited to 'indra/newview/llviewerparceloverlay.cpp')
| -rw-r--r-- | indra/newview/llviewerparceloverlay.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp index eee653b0c1..d07e06f6a7 100644 --- a/indra/newview/llviewerparceloverlay.cpp +++ b/indra/newview/llviewerparceloverlay.cpp @@ -145,6 +145,35 @@ BOOL LLViewerParcelOverlay::isOwnedOther(const LLVector3& pos) const return (PARCEL_OWNED == overlay || PARCEL_FOR_SALE == overlay); } +bool LLViewerParcelOverlay::encroachesOwned(const std::vector<LLBBox>& boxes) const +{ + // boxes are expected to already be axis aligned + for (U32 i = 0; i < boxes.size(); ++i) + { + LLVector3 min = boxes[i].getMinAgent(); + LLVector3 max = boxes[i].getMaxAgent(); + + S32 left = S32(llclamp((min.mV[VX] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1)); + S32 right = S32(llclamp((max.mV[VX] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1)); + S32 top = S32(llclamp((min.mV[VY] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1)); + S32 bottom = S32(llclamp((max.mV[VY] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1)); + + for (S32 row = top; row <= bottom; row++) + { + for (S32 column = left; column <= right; column++) + { + U8 type = ownership(row, column); + if ((PARCEL_SELF == type) + || (PARCEL_GROUP == type)) + { + return true; + } + } + } + } + return false; +} + BOOL LLViewerParcelOverlay::isSoundLocal(const LLVector3& pos) const { S32 row = S32(pos.mV[VY] / PARCEL_GRID_STEP_METERS); |
