diff options
| author | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2026-06-24 23:48:50 +0300 |
|---|---|---|
| committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2026-07-22 20:10:26 +0300 |
| commit | 7a82e2619598ae6ed1a291d2f7257de8ea55185d (patch) | |
| tree | 062f674ee22cdae6f240f6d46095ae874b34fbf3 /indra/llmath/llvolume.h | |
| parent | b906284977b120c4c554fd08b78fac62759b160a (diff) | |
#3988 Don't render malformed sculpts
Diffstat (limited to 'indra/llmath/llvolume.h')
| -rw-r--r-- | indra/llmath/llvolume.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h index 3496928f7b..86a7bf0e6a 100644 --- a/indra/llmath/llvolume.h +++ b/indra/llmath/llvolume.h @@ -60,6 +60,8 @@ class LLVolumeOctree; #include "llalignedarray.h" #include "llrigginginfo.h" +#include <array> + //============================================================================ constexpr S32 MIN_DETAIL_FACES = 6; @@ -1040,7 +1042,7 @@ public: const LLVector4a& getMeshPt(const U32 i) const { return mMesh[i]; } - void setDirty() { mPathp->setDirty(); mProfilep->setDirty(); } + void setDirty(); void regen(); void genTangents(S32 face); @@ -1131,6 +1133,11 @@ public: bool mIsMeshAssetLoaded; bool mIsMeshAssetUnavaliable; + // Cache for sculpt geometry validation results + static constexpr S32 SCULPT_CACHE_SIZE = 6; // 0 to 5 inclusive + enum class LLSculptValidationState : S8 { Unvalidated, Valid, Invalid }; + std::array<LLSculptValidationState, SCULPT_CACHE_SIZE> mSculptValidationCache; + const LLVolumeParams mParams; LLPath *mPathp; LLProfile *mProfilep; |
