summaryrefslogtreecommitdiff
path: root/indra/llmath/llvolumemgr.h
diff options
context:
space:
mode:
authorBrad Linden <brad@lindenlab.com>2024-05-23 11:31:19 -0700
committerBrad Linden <brad@lindenlab.com>2024-05-23 11:31:19 -0700
commita1f49564d670a2c41bfa25c833bba2564b9b7f48 (patch)
tree1d205e51bc37621916a17d459ad83782fe41f975 /indra/llmath/llvolumemgr.h
parent6af5db09faf5ea33a2d4c47b64e76f42edae178a (diff)
parent6377610f6587989c126b00f490dfc8d527a1c2ce (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.h104
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 &params);
+ ~LLVolumeLODGroup();
+ bool cleanupRefs();
- LLVolumeLODGroup(const LLVolumeParams &params);
- ~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