#include <llspatialpartition.h>
Definition at line 293 of file llspatialpartition.h.
typedef std::set<LLPointer<LLSpatialGroup> > LLSpatialPartition::spatial_group_set_t [protected] |
Definition at line 330 of file llspatialpartition.h.
typedef std::queue<LLPointer<LLSpatialGroup> > LLSpatialPartition::spatial_group_queue_t [protected] |
Definition at line 333 of file llspatialpartition.h.
Definition at line 1334 of file llspatialpartition.cpp.
References FALSE, mBufferUsage, mDepthMask, mDrawableType, mImageEnabled, mInfiniteFarClip, mLODPeriod, mLODSeed, mOcclusionEnabled, mOctree, mPartitionType, mRenderByGroup, mSlopRatio, LLMemType::MTYPE_SPACE_PARTITION, mVertexDataMask, NULL, LLViewerRegion::PARTITION_NONE, LLGLNamePool::registerPool(), and TRUE.
LLSpatialPartition::~LLSpatialPartition | ( | ) | [virtual] |
Definition at line 1359 of file llspatialpartition.cpp.
References mOctree, LLMemType::MTYPE_SPACE_PARTITION, and NULL.
LLSpatialGroup * LLSpatialPartition::put | ( | LLDrawable * | drawablep, | |
BOOL | was_visible = FALSE | |||
) |
Definition at line 1368 of file llspatialpartition.cpp.
References assert_octree_valid, LLSpatialGroup::DISCARD_QUERY, LLDrawable::getSpatialGroup(), LLOctreeNode< T >::insert(), LLSpatialGroup::isState(), mOctree, LLMemType::MTYPE_SPACE_PARTITION, LLSpatialGroup::QUERY_PENDING, LLSpatialGroup::setState(), LLDrawable::updateSpatialExtents(), and validate_drawable.
Referenced by LLSpatialBridge::LLSpatialBridge(), and move().
BOOL LLSpatialPartition::remove | ( | LLDrawable * | drawablep, | |
LLSpatialGroup * | curp | |||
) |
Definition at line 1392 of file llspatialpartition.cpp.
References assert_octree_valid, llendl, mOctree, LLMemType::MTYPE_SPACE_PARTITION, NULL, OCT_ERRS, LLSpatialGroup::removeObject(), LLDrawable::setSpatialGroup(), and TRUE.
Referenced by move(), and LLSpatialBridge::~LLSpatialBridge().
LLDrawable * LLSpatialPartition::pickDrawable | ( | const LLVector3 & | start, | |
const LLVector3 & | end, | |||
LLVector3 & | collision | |||
) |
Definition at line 2590 of file llspatialpartition.cpp.
References LLOctreePick::check(), LLOctreePick::mEnd, mOctree, and LLVector3::setVec().
Referenced by LLPipeline::pickObject().
void LLSpatialPartition::move | ( | LLDrawable * | drawablep, | |
LLSpatialGroup * | curp, | |||
BOOL | immediate = FALSE | |||
) | [virtual] |
Reimplemented in LLSpatialBridge.
Definition at line 1408 of file llspatialpartition.cpp.
References assert_octree_valid, FALSE, LLSpatialGroup::isVisible(), llendl, mOctree, LLSpatialGroup::mSpatialPartition, LLMemType::MTYPE_SPACE_PARTITION, OCT_ERRS, put(), remove(), and LLSpatialGroup::updateInGroup().
Referenced by LLSpatialBridge::move(), LLDrawable::movePartition(), and LLSpatialBridge::updateMove().
void LLSpatialPartition::shift | ( | const LLVector3 & | offset | ) | [virtual] |
Reimplemented in LLHUDPartition.
Definition at line 1466 of file llspatialpartition.cpp.
References mOctree, LLMemType::MTYPE_SPACE_PARTITION, and LLOctreeTraveler< T >::traverse().
Referenced by LLPipeline::shiftObjects(), and LLSpatialShift::visit().
F32 LLSpatialPartition::calcDistance | ( | LLSpatialGroup * | group, | |
LLCamera & | camera | |||
) | [virtual] |
Definition at line 981 of file llspatialpartition.cpp.
References LLSpatialGroup::ALPHA_DIRTY, LLCoordFrame::getAtAxis(), LLCoordFrame::getOrigin(), i, isBridge(), LLSpatialGroup::isState(), LLVector3::magVec(), LLSpatialGroup::mDepth, LLSpatialGroup::mDrawMap, LLSpatialGroup::mLastUpdateViewAngle, LLSpatialGroup::mObjectBounds, LLSpatialGroup::mSpatialPartition, LLVector3::mV, LLSpatialGroup::mViewAngle, LLVector3::normVec(), LLRenderPass::PASS_ALPHA, and LLSpatialGroup::setState().
Referenced by LLSpatialGroup::updateDistance().
F32 LLSpatialPartition::calcPixelArea | ( | LLSpatialGroup * | group, | |
LLCamera & | camera | |||
) | [virtual] |
Reimplemented in LLParticlePartition, and LLHUDBridge.
Definition at line 1039 of file llspatialpartition.cpp.
References LLPipeline::calcPixelArea(), and LLSpatialGroup::mObjectBounds.
Referenced by LLSpatialGroup::updateDistance().
void LLSpatialPartition::rebuildGeom | ( | LLSpatialGroup * | group | ) | [virtual] |
Implements LLGeometryManager.
Reimplemented in LLVolumePartition, and LLVolumeBridge.
Definition at line 574 of file llspatialpartition.cpp.
References LLGeometryManager::addGeometryCount(), LLSpatialGroup::changeLOD(), LLSpatialGroup::clearDrawMap(), LLSpatialGroup::clearState(), LLGeometryManager::createVertexBuffer(), LLFastTimer::FTM_REBUILD_VBO, LLSpatialGroup::GEOM_DIRTY, LLGeometryManager::getGeometry(), gFrameTimeSeconds, LLSpatialGroup::isDead(), LLPointer< Type >::isNull(), LLSpatialGroup::isState(), LLSpatialGroup::mBufferMap, LLSpatialGroup::mBufferUsage, LLSpatialGroup::mBuilt, LLSpatialGroup::mDistance, LLSpatialGroup::mLastUpdateDistance, LLSpatialGroup::mLastUpdateTime, LLSpatialGroup::mLastUpdateViewAngle, LLSpatialGroup::mVertexBuffer, mVertexDataMask, LLSpatialGroup::mViewAngle, NULL, LLVertexBuffer::sEnableVBOs, and stop_glerror.
Referenced by LLSpatialGroup::rebuildGeom().
S32 LLSpatialPartition::cull | ( | LLCamera & | camera, | |
std::vector< LLDrawable * > * | results = NULL , |
|||
BOOL | for_select = FALSE | |||
) |
Definition at line 1766 of file llspatialpartition.cpp.
References FALSE, LLFastTimer::FTM_CULL_REBOUND, LLFastTimer::FTM_FRUSTUM_CULL, LLTreeNode< T >::getListener(), mInfiniteFarClip, mOctree, LLMemType::MTYPE_SPACE_PARTITION, LLSpatialGroup::rebound(), sFreezeState, LLPipeline::sUseFarClip, and LLOctreeCull::traverse().
Referenced by LLToolSelectRect::handleRectangleSelection(), LLViewerObjectList::renderObjectsForSelect(), renderVisibility(), and LLPipeline::updateCull().
void LLSpatialPartition::markReimage | ( | LLSpatialGroup * | group | ) |
Definition at line 1834 of file llspatialpartition.cpp.
References LLSpatialGroup::IMAGE_DIRTY, LLSpatialGroup::IN_IMAGE_QUEUE, LLSpatialGroup::isState(), mImageEnabled, mImageQueue, and LLSpatialGroup::setState().
Referenced by LLOctreeCull::preprocess().
void LLSpatialPartition::processImagery | ( | LLCamera * | camera | ) |
Definition at line 1846 of file llspatialpartition.cpp.
References LLPipeline::blurReflectionMap(), LLPipeline::generateReflectionMap(), LLSpatialGroup::GEOM_DIRTY, gPipeline, LLSpatialGroup::IMAGE_DIRTY, LLSpatialGroup::IN_IMAGE_QUEUE, LLPointer< Type >::isNull(), LLPipeline::mCubeBuffer, mImageEnabled, mImageQueue, NULL, S32, LLPipeline::sDynamicReflections, LLCamera::setFar(), and LLCoordFrame::setOrigin().
Referenced by LLPipeline::processImagery().
Definition at line 2521 of file llspatialpartition.cpp.
References FALSE, LLSingleton< LLViewerCamera >::getInstance(), and TRUE.
virtual LLSpatialBridge* LLSpatialPartition::asBridge | ( | ) | [inline, virtual] |
Reimplemented in LLSpatialBridge.
Definition at line 321 of file llspatialpartition.h.
References NULL.
Referenced by isBridge(), LLPipeline::postSort(), renderDebug(), and LLSpatialGroup::validate().
virtual BOOL LLSpatialPartition::isBridge | ( | ) | [inline, virtual] |
Definition at line 322 of file llspatialpartition.h.
References asBridge(), and NULL.
Referenced by calcDistance(), and renderOctree().
void LLSpatialPartition::renderDebug | ( | ) |
Definition at line 2476 of file llspatialpartition.cpp.
References asBridge(), LLGLImmediate::blendFunc(), LLPipeline::disableLights(), LLSingleton< LLViewerCamera >::getInstance(), LLViewerCamera::getScreenPixelArea(), gGL, gPipeline, LLPipeline::hasRenderDebugMask(), mOctree, LLMemType::MTYPE_SPACE_PARTITION, NULL, LLPipeline::RENDER_DEBUG_BATCH_SIZE, LLPipeline::RENDER_DEBUG_BBOXES, LLPipeline::RENDER_DEBUG_LIGHTS, LLPipeline::RENDER_DEBUG_OCCLUSION, LLPipeline::RENDER_DEBUG_OCTREE, LLPipeline::RENDER_DEBUG_POINTS, LLPipeline::RENDER_DEBUG_TEXTURE_ANIM, LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY, sCurMaxTexPriority, sLastMaxTexPriority, LLOctreeRenderNonOccluded::traverse(), LLOctreeStateCheck::traverse(), and LLImageGL::unbindTexture().
Referenced by LLPipeline::renderDebug().
void LLSpatialPartition::restoreGL | ( | ) |
Definition at line 1755 of file llspatialpartition.cpp.
References LLMemType::MTYPE_SPACE_PARTITION.
Referenced by LLPipeline::restoreGL().
void LLSpatialPartition::resetVertexBuffers | ( | ) |
Definition at line 1760 of file llspatialpartition.cpp.
References mOctree, and LLOctreeTraveler< T >::traverse().
Referenced by LLPipeline::resetVertexBuffers().
BOOL LLSpatialPartition::sFreezeState = FALSE [static] |
Definition at line 296 of file llspatialpartition.h.
Referenced by LLSpatialGroup::clearState(), cull(), LLPipeline::generateWaterReflection(), LLSpatialGroup::setState(), LLSpatialGroup::setVisible(), and LLSpatialGroup::updateDistance().
Definition at line 331 of file llspatialpartition.h.
spatial_group_queue_t LLSpatialPartition::mImageQueue [protected] |
Definition at line 336 of file llspatialpartition.h.
Referenced by markReimage(), and processImagery().
Definition at line 339 of file llspatialpartition.h.
Referenced by cull(), LLPipeline::dirtyPoolObjectTextures(), LLPipeline::findReflectionMap(), LLSpatialBridge::LLSpatialBridge(), LLSpatialPartition(), move(), pickDrawable(), put(), remove(), renderDebug(), resetVertexBuffers(), LLSpatialBridge::setVisible(), shift(), LLSpatialBridge::updateBinRadius(), LLPipeline::updateMove(), LLSpatialBridge::updateMove(), LLSpatialBridge::updateSpatialExtents(), LLOctreeDirtyTexture::visit(), LLOctreeDirty::visit(), and ~LLSpatialPartition().
Definition at line 340 of file llspatialpartition.h.
Referenced by LLSpatialGroup::checkOcclusion(), LLSpatialGroup::doOcclusion(), LLSpatialPartition(), and LLTerrainPartition::LLTerrainPartition().
Definition at line 341 of file llspatialpartition.h.
Referenced by cull(), LLSpatialPartition(), LLTerrainPartition::LLTerrainPartition(), and LLWaterPartition::LLWaterPartition().
Definition at line 342 of file llspatialpartition.h.
Referenced by LLGeometryManager::addGeometryCount(), LLParticlePartition::addGeometryCount(), LLGrassPartition::LLGrassPartition(), LLParticlePartition::LLParticlePartition(), LLSpatialPartition(), LLTerrainPartition::LLTerrainPartition(), LLVolumeBridge::LLVolumeBridge(), LLVolumePartition::LLVolumePartition(), and LLVolumeGeometryManager::rebuildGeom().
Definition at line 343 of file llspatialpartition.h.
Referenced by LLBridgePartition::LLBridgePartition(), LLSpatialPartition(), LLTerrainPartition::LLTerrainPartition(), LLTreePartition::LLTreePartition(), LLWaterPartition::LLWaterPartition(), LLPipeline::markNotCulled(), LLDrawPoolAlpha::renderAlpha(), LLDrawPoolAlpha::renderAlphaHighlight(), renderOctree(), LLSpatialGroup::shift(), LLOctreeRenderNonOccluded::traverse(), LLSpatialGroup::updateDistance(), and LLOctreeDirty::visit().
Definition at line 344 of file llspatialpartition.h.
Referenced by LLSpatialPartition(), LLVolumePartition::LLVolumePartition(), markReimage(), processImagery(), and LLVolumeGeometryManager::rebuildGeom().
Definition at line 345 of file llspatialpartition.h.
Referenced by LLSpatialGroup::LLSpatialGroup(), and LLSpatialPartition().
Definition at line 346 of file llspatialpartition.h.
Referenced by LLBridgePartition::LLBridgePartition(), LLGrassPartition::LLGrassPartition(), LLHUDPartition::LLHUDPartition(), LLParticlePartition::LLParticlePartition(), LLSpatialGroup::LLSpatialGroup(), LLSpatialPartition(), LLTreePartition::LLTreePartition(), LLVolumeBridge::LLVolumeBridge(), LLVolumePartition::LLVolumePartition(), and LLSpatialGroup::needsUpdate().
Definition at line 347 of file llspatialpartition.h.
Referenced by LLSpatialPartition(), LLVolumeGeometryManager::rebuildGeom(), and rebuildGeom().
Definition at line 348 of file llspatialpartition.h.
Referenced by LLSpatialGroup::changeLOD(), LLBridgePartition::LLBridgePartition(), LLGrassPartition::LLGrassPartition(), LLHUDBridge::LLHUDBridge(), LLHUDPartition::LLHUDPartition(), LLParticlePartition::LLParticlePartition(), LLSpatialPartition(), LLTreePartition::LLTreePartition(), LLVolumeBridge::LLVolumeBridge(), and LLVolumePartition::LLVolumePartition().
Definition at line 349 of file llspatialpartition.h.
Referenced by LLGrassPartition::LLGrassPartition(), LLSpatialPartition(), LLVolumeBridge::LLVolumeBridge(), and LLVolumePartition::LLVolumePartition().
Definition at line 350 of file llspatialpartition.h.
Referenced by LLBridgePartition::LLBridgePartition(), LLCloudPartition::LLCloudPartition(), LLGrassPartition::LLGrassPartition(), LLHUDBridge::LLHUDBridge(), LLHUDPartition::LLHUDPartition(), LLParticlePartition::LLParticlePartition(), LLSpatialBridge::LLSpatialBridge(), LLSpatialPartition(), LLTerrainPartition::LLTerrainPartition(), LLTreePartition::LLTreePartition(), LLVolumeBridge::LLVolumeBridge(), LLVolumePartition::LLVolumePartition(), LLWaterPartition::LLWaterPartition(), LLPipeline::renderDebug(), LLDrawPoolAlpha::renderGroupAlpha(), LLPipeline::renderGroups(), LLSpatialBridge::setVisible(), and LLPipeline::updateCull().
Definition at line 351 of file llspatialpartition.h.
Referenced by LLBridgePartition::LLBridgePartition(), LLCloudPartition::LLCloudPartition(), LLGrassPartition::LLGrassPartition(), LLHUDBridge::LLHUDBridge(), LLHUDPartition::LLHUDPartition(), LLParticlePartition::LLParticlePartition(), LLSpatialBridge::LLSpatialBridge(), LLSpatialPartition(), LLTerrainPartition::LLTerrainPartition(), LLTreePartition::LLTreePartition(), LLVolumeBridge::LLVolumeBridge(), LLVolumePartition::LLVolumePartition(), LLWaterPartition::LLWaterPartition(), and LLSpatialBridge::updateMove().