summaryrefslogtreecommitdiff
path: root/indra/newview/llmeshrepository.h
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2010-10-06 12:55:22 -0500
committerDave Parks <davep@lindenlab.com>2010-10-06 12:55:22 -0500
commit9fa00ed52d634bf2c1023a886d228ae8f4640b32 (patch)
tree27bcd36a31c570c4e21d430e0b9d5605b94c967d /indra/newview/llmeshrepository.h
parentadc73f48471330617cc1e52902abd8123920ada3 (diff)
parent24e0d62a5eb3299a877d7a6b37e1881ec3d1ca0c (diff)
merge
Diffstat (limited to 'indra/newview/llmeshrepository.h')
-rw-r--r--indra/newview/llmeshrepository.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h
index e7270cc47d..4f790227b1 100644
--- a/indra/newview/llmeshrepository.h
+++ b/indra/newview/llmeshrepository.h
@@ -144,8 +144,10 @@ public:
LLUUID mMeshID;
LLModel::physics_shape mHull;
+ LLModel::hull mBaseHull;
std::vector<LLPointer<LLVertexBuffer> > mMesh;
+ LLPointer<LLVertexBuffer> mBaseHullMesh;
};
class LLPhysicsDecomp : public LLThread
@@ -189,6 +191,10 @@ public:
static S32 llcdCallback(const char*, S32, S32);
void cancel();
+ void setMeshData(LLCDMeshData& mesh);
+ void doDecomposition();
+ void doDecompositionSingleHull();
+
virtual void run();
std::map<std::string, S32> mStageID;
@@ -337,6 +343,26 @@ public:
class LLMeshUploadThread : public LLThread
{
public:
+ class DecompRequest : public LLPhysicsDecomp::Request
+ {
+ public:
+ LLPointer<LLModel> mModel;
+ LLPointer<LLModel> mBaseModel;
+
+ LLMeshUploadThread* mThread;
+
+ DecompRequest(LLModel* mdl, LLModel* base_model, LLMeshUploadThread* thread);
+
+ S32 statusCallback(const char* status, S32 p1, S32 p2) { return 1; }
+ void completed();
+ };
+
+ LLPointer<DecompRequest> mFinalDecomp;
+ bool mPhysicsComplete;
+
+ typedef std::map<LLPointer<LLModel>, std::vector<LLVector3> > hull_map;
+ hull_map mHullMap;
+
typedef std::vector<LLModelInstance> instance_list;
instance_list mInstanceList;