void LLSpatialBridge::updateDistance(LLCamera& camera_in, bool force_update) { if (mDrawable == NULL) { markDead(); return; } LLCamera camera = transformCamera(camera_in); mDrawable->updateDistance(camera, force_update); if (mDrawable->getVObj()) { LLViewerObject::const_child_list_t& child_list = mDrawable->getVObj()->getChildren(); for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); iter != child_list.end(); iter++) { LLViewerObject* child = *iter; LLDrawable* drawable = child->mDrawable; if (!drawable) { continue; } if (!drawable->isAvatar()) { drawable->updateDistance(camera, force_update); } } } }
void LLSpatialBridge::updateDistance(LLCamera& camera_in) { if (mDrawable == NULL) { markDead(); return; } LLCamera camera = transformCamera(camera_in); mDrawable->updateDistance(camera); if (mDrawable->getVObj()) { LLViewerObject::const_child_list_t& child_list = mDrawable->getVObj()->getChildren(); for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); iter != child_list.end(); iter++) { LLViewerObject* child = *iter; LLDrawable* drawable = child->mDrawable; if (!drawable) { llwarns << "Corrupt drawable found while updating spatial bridge distance." << llendl; continue; } if (!drawable->isAvatar()) { drawable->updateDistance(camera); } } } }
void LLSpatialBridge::updateDistance(LLCamera& camera_in, bool force_update) { if (mDrawable == NULL) { markDead(); return; } if (gShiftFrame) { return; } if (mDrawable->getVObj()) { if (mDrawable->getVObj()->isAttachment()) { LLDrawable* parent = mDrawable->getParent(); if (parent) { LLViewerObject *obj = parent->getVObj(); if (obj && obj->isAvatar() && ((LLVOAvatar*)obj)->isImpostor()) { return; } } else { static const LLCachedControl<bool> draw_orphans("ShyotlDrawOrphanAttachments",false); if(!draw_orphans) return; } } LLCamera camera = transformCamera(camera_in); mDrawable->updateDistance(camera, force_update); LLViewerObject::const_child_list_t& child_list = mDrawable->getVObj()->getChildren(); for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); iter != child_list.end(); iter++) { LLViewerObject* child = *iter; LLDrawable* drawable = child->mDrawable; if (!drawable) { continue; } if (!drawable->isAvatar()) { drawable->updateDistance(camera, force_update); } } } }