diff options
Diffstat (limited to 'indra/newview/llmeshrepository.h')
-rw-r--r-- | indra/newview/llmeshrepository.h | 26 |
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; |