summaryrefslogtreecommitdiff
path: root/indra/llprimitive/llmodel.h
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2011-04-01 10:58:34 -0600
committerXiaohong Bao <bao@lindenlab.com>2011-04-01 10:58:34 -0600
commitf0c70a4ee3739c34b1da2ce384bfcf420f8c6c72 (patch)
tree630e7c3f7a02224324ef2745e4bf7c06f04559b6 /indra/llprimitive/llmodel.h
parent3a08499572250b46d061106298e2d2777276efc1 (diff)
fix for SH-1176: A Mesh That Crashes Client on Upload Attempt (due to triangle number overflowing)
Diffstat (limited to 'indra/llprimitive/llmodel.h')
-rwxr-xr-xindra/llprimitive/llmodel.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/indra/llprimitive/llmodel.h b/indra/llprimitive/llmodel.h
index 962e422a26..23f4b5cb42 100755
--- a/indra/llprimitive/llmodel.h
+++ b/indra/llprimitive/llmodel.h
@@ -69,6 +69,13 @@ public:
NUM_LODS
};
+ enum EModelStatus
+ {
+ NO_ERRORS = 0,
+ VERTEX_NUMBER_OVERFLOW, //vertex number is >= 65535.
+ INVALID_STATUS
+ } ;
+
//convex_hull_decomposition is a vector of convex hulls
//each convex hull is a set of points
typedef std::vector<std::vector<LLVector3> > convex_hull_decomposition;
@@ -138,6 +145,8 @@ public:
static LLModel* loadModelFromDomMesh(domMesh* mesh);
static std::string getElementLabel(daeElement* element);
std::string getName() const;
+ EModelStatus getStatus() const {return mStatus;}
+ static std::string getStatusString(U32 status) ;
void appendFaces(LLModel* model, LLMatrix4& transform, LLMatrix4& normal_transform);
void appendFace(const LLVolumeFace& src_face, std::string src_material, LLMatrix4& mat, LLMatrix4& norm_mat);
@@ -237,6 +246,7 @@ public:
Decomposition mPhysics;
+ EModelStatus mStatus ;
protected:
void addVolumeFacesFromDomMesh(domMesh* mesh);
virtual BOOL createVolumeFacesFromDomMesh(domMesh *mesh);