diff options
author | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 |
---|---|---|
committer | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 |
commit | a1f49564d670a2c41bfa25c833bba2564b9b7f48 (patch) | |
tree | 1d205e51bc37621916a17d459ad83782fe41f975 /indra/llmath/llvolumemgr.h | |
parent | 6af5db09faf5ea33a2d4c47b64e76f42edae178a (diff) | |
parent | 6377610f6587989c126b00f490dfc8d527a1c2ce (diff) |
Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into brad/merge-maint-a-to-dev
Diffstat (limited to 'indra/llmath/llvolumemgr.h')
-rw-r--r-- | indra/llmath/llvolumemgr.h | 104 |
1 files changed, 52 insertions, 52 deletions
diff --git a/indra/llmath/llvolumemgr.h b/indra/llmath/llvolumemgr.h index b0baf7054d..2e0ce3e88a 100644 --- a/indra/llmath/llvolumemgr.h +++ b/indra/llmath/llvolumemgr.h @@ -1,25 +1,25 @@ -/** +/** * @file llvolumemgr.h * @brief LLVolumeMgr class. * * $LicenseInfo:firstyear=2002&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -38,75 +38,75 @@ class LLVolumeLODGroup; class LLVolumeLODGroup { - LOG_CLASS(LLVolumeLODGroup); - + LOG_CLASS(LLVolumeLODGroup); + public: - enum - { - NUM_LODS = 4 - }; + enum + { + NUM_LODS = 4 + }; + + LLVolumeLODGroup(const LLVolumeParams ¶ms); + ~LLVolumeLODGroup(); + bool cleanupRefs(); - LLVolumeLODGroup(const LLVolumeParams ¶ms); - ~LLVolumeLODGroup(); - bool cleanupRefs(); + static S32 getDetailFromTan(const F32 tan_angle); + static void getDetailProximity(const F32 tan_angle, F32 &to_lower, F32& to_higher); + static F32 getVolumeScaleFromDetail(const S32 detail); + static S32 getVolumeDetailFromScale(F32 scale); - static S32 getDetailFromTan(const F32 tan_angle); - static void getDetailProximity(const F32 tan_angle, F32 &to_lower, F32& to_higher); - static F32 getVolumeScaleFromDetail(const S32 detail); - static S32 getVolumeDetailFromScale(F32 scale); + LLVolume* refLOD(const S32 detail); + bool derefLOD(LLVolume *volumep); + S32 getNumRefs() const { return mRefs; } - LLVolume* refLOD(const S32 detail); - bool derefLOD(LLVolume *volumep); - S32 getNumRefs() const { return mRefs; } - - const LLVolumeParams* getVolumeParams() const { return &mVolumeParams; }; + const LLVolumeParams* getVolumeParams() const { return &mVolumeParams; }; - F32 dump(); - friend std::ostream& operator<<(std::ostream& s, const LLVolumeLODGroup& volgroup); + F32 dump(); + friend std::ostream& operator<<(std::ostream& s, const LLVolumeLODGroup& volgroup); protected: - LLVolumeParams mVolumeParams; - - S32 mRefs; - S32 mLODRefs[NUM_LODS]; - LLPointer<LLVolume> mVolumeLODs[NUM_LODS]; - static F32 mDetailThresholds[NUM_LODS]; - static F32 mDetailScales[NUM_LODS]; - S32 mAccessCount[NUM_LODS]; + LLVolumeParams mVolumeParams; + + S32 mRefs; + S32 mLODRefs[NUM_LODS]; + LLPointer<LLVolume> mVolumeLODs[NUM_LODS]; + static F32 mDetailThresholds[NUM_LODS]; + static F32 mDetailScales[NUM_LODS]; + S32 mAccessCount[NUM_LODS]; }; class LLVolumeMgr { public: - LLVolumeMgr(); - virtual ~LLVolumeMgr(); - bool cleanup(); // Cleanup all volumes being managed, returns true if no dangling references + LLVolumeMgr(); + virtual ~LLVolumeMgr(); + bool cleanup(); // Cleanup all volumes being managed, returns true if no dangling references - virtual LLVolumeLODGroup* getGroup( const LLVolumeParams& volume_params ) const; + virtual LLVolumeLODGroup* getGroup( const LLVolumeParams& volume_params ) const; - // whatever calls getVolume() never owns the LLVolume* and - // cannot keep references for long since it may be deleted - // later. For best results hold it in an LLPointer<LLVolume>. - virtual LLVolume *refVolume(const LLVolumeParams &volume_params, const S32 detail); - virtual void unrefVolume(LLVolume *volumep); + // whatever calls getVolume() never owns the LLVolume* and + // cannot keep references for long since it may be deleted + // later. For best results hold it in an LLPointer<LLVolume>. + virtual LLVolume *refVolume(const LLVolumeParams &volume_params, const S32 detail); + virtual void unrefVolume(LLVolume *volumep); - void dump(); + void dump(); - // manually call this for mutex magic - void useMutex(); + // manually call this for mutex magic + void useMutex(); - friend std::ostream& operator<<(std::ostream& s, const LLVolumeMgr& volume_mgr); + friend std::ostream& operator<<(std::ostream& s, const LLVolumeMgr& volume_mgr); protected: - void insertGroup(LLVolumeLODGroup* volgroup); - // Overridden in llphysics/abstract/utils/llphysicsvolumemanager.h - virtual LLVolumeLODGroup* createNewGroup(const LLVolumeParams& volume_params); + void insertGroup(LLVolumeLODGroup* volgroup); + // Overridden in llphysics/abstract/utils/llphysicsvolumemanager.h + virtual LLVolumeLODGroup* createNewGroup(const LLVolumeParams& volume_params); protected: - typedef std::map<const LLVolumeParams*, LLVolumeLODGroup*, LLVolumeParams::compare> volume_lod_group_map_t; - volume_lod_group_map_t mVolumeLODGroups; + typedef std::map<const LLVolumeParams*, LLVolumeLODGroup*, LLVolumeParams::compare> volume_lod_group_map_t; + volume_lod_group_map_t mVolumeLODGroups; - LLMutex* mDataMutex; + LLMutex* mDataMutex; }; #endif // LL_LLVOLUMEMGR_H |