| 100 | } |
| 101 | |
| 102 | void Zone::selectWithin() |
| 103 | { |
| 104 | SimpleQueryList sql; |
| 105 | Zone* zoneClient = (Zone*)getClientObject(); |
| 106 | if (zoneClient) |
| 107 | { |
| 108 | SceneZoneSpaceManager* zoneManager = zoneClient->getSceneManager()->getZoneManager(); |
| 109 | if (zoneManager) |
| 110 | { |
| 111 | for (U32 zoneId = zoneClient->mZoneRangeStart; zoneId < zoneClient->mZoneRangeStart + zoneClient->mNumZones; ++zoneId) |
| 112 | for (SceneZoneSpaceManager::ZoneContentIterator iter(zoneManager, zoneId, false); iter.isValid(); ++iter) |
| 113 | { |
| 114 | SceneObject* obj = (SceneObject*)iter->getServerObject(); |
| 115 | bool fullyEnclosed = true; |
| 116 | |
| 117 | for (SceneObject::ObjectZonesIterator zoneIter(obj); zoneIter.isValid(); ++zoneIter) |
| 118 | { |
| 119 | if (*zoneIter != zoneId) |
| 120 | fullyEnclosed = false; |
| 121 | } |
| 122 | if (fullyEnclosed) |
| 123 | sql.insertObject(obj); |
| 124 | } |
| 125 | } |
| 126 | } |
| 127 | |
| 128 | |
| 129 | WorldEditor* wedit; |
| 130 | if (Sim::findObject("EWorldEditor", wedit)) |
| 131 | { |
| 132 | wedit->clearSelection(); |
| 133 | wedit->selectObject(this); |
| 134 | for (SceneObject** i = sql.mList.begin(); i != sql.mList.end(); i++) |
| 135 | { |
| 136 | wedit->selectObject(*i); |
| 137 | } |
| 138 | } |
| 139 | } |
| 140 | #endif |
| 141 | //============================================================================= |
| 142 | // Console API. |
no test coverage detected