summaryrefslogtreecommitdiff
path: root/indra/llmath/llvolume.h
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-06-24 23:48:50 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-07-22 20:10:26 +0300
commit7a82e2619598ae6ed1a291d2f7257de8ea55185d (patch)
tree062f674ee22cdae6f240f6d46095ae874b34fbf3 /indra/llmath/llvolume.h
parentb906284977b120c4c554fd08b78fac62759b160a (diff)
#3988 Don't render malformed sculpts
Diffstat (limited to 'indra/llmath/llvolume.h')
-rw-r--r--indra/llmath/llvolume.h9
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;