summaryrefslogtreecommitdiff
path: root/indra/newview/llmeshrepository.h
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2011-03-29 11:50:02 -0500
committerDave Parks <davep@lindenlab.com>2011-03-29 11:50:02 -0500
commit719610e68ba8275f08f51d127ab760799cb1d1c3 (patch)
tree3417bdc24d707e13f9eb4fe08792b5c11205b24f /indra/newview/llmeshrepository.h
parentc44fe35125b075b53bc13b38b5771ee38d65934d (diff)
SH-1225 Import convex hull data from .slm
Diffstat (limited to 'indra/newview/llmeshrepository.h')
-rw-r--r--indra/newview/llmeshrepository.h28
1 files changed, 7 insertions, 21 deletions
diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h
index 5960fe2949..31c2049c32 100644
--- a/indra/newview/llmeshrepository.h
+++ b/indra/newview/llmeshrepository.h
@@ -132,22 +132,6 @@ public:
LLSD asLLSD();
};
-class LLMeshDecomposition
-{
-public:
- LLMeshDecomposition() { }
-
- void merge(const LLMeshDecomposition* rhs);
-
- LLUUID mMeshID;
- LLModel::convex_hull_decomposition mHull;
- LLModel::hull mBaseHull;
-
- std::vector<LLPointer<LLVertexBuffer> > mMesh;
- LLPointer<LLVertexBuffer> mBaseHullMesh;
- LLPointer<LLVertexBuffer> mPhysicsShapeMesh;
-};
-
class LLPhysicsDecomp : public LLThread
{
public:
@@ -166,7 +150,7 @@ public:
//output state
std::string mStatusMessage;
- std::vector<LLPointer<LLVertexBuffer> > mHullMesh;
+ std::vector<LLModel::PhysicsMesh> mHullMesh;
LLModel::convex_hull_decomposition mHull;
//status message callback, called from decomposition thread
@@ -301,7 +285,7 @@ public:
std::set<LLUUID> mPhysicsShapeRequests;
//queue of completed Decomposition info requests
- std::queue<LLMeshDecomposition*> mDecompositionQ;
+ std::queue<LLModel::Decomposition*> mDecompositionQ;
//queue of requested headers
std::queue<HeaderRequest> mHeaderReqQ;
@@ -465,17 +449,19 @@ public:
void notifyMeshLoaded(const LLVolumeParams& mesh_params, LLVolume* volume);
void notifyMeshUnavailable(const LLVolumeParams& mesh_params, S32 lod);
void notifySkinInfoReceived(LLMeshSkinInfo& info);
- void notifyDecompositionReceived(LLMeshDecomposition* info);
+ void notifyDecompositionReceived(LLModel::Decomposition* info);
S32 getActualMeshLOD(const LLVolumeParams& mesh_params, S32 lod);
U32 calcResourceCost(LLSD& header);
U32 getResourceCost(const LLUUID& mesh_params);
const LLMeshSkinInfo* getSkinInfo(const LLUUID& mesh_id);
- const LLMeshDecomposition* getDecomposition(const LLUUID& mesh_id);
+ LLModel::Decomposition* getDecomposition(const LLUUID& mesh_id);
void fetchPhysicsShape(const LLUUID& mesh_id);
bool hasPhysicsShape(const LLUUID& mesh_id);
void buildHull(const LLVolumeParams& params, S32 detail);
+ void buildPhysicsMesh(LLModel::Decomposition& decomp);
+
const LLSD& getMeshHeader(const LLUUID& mesh_id);
void uploadModel(std::vector<LLModelInstance>& data, LLVector3& scale, bool upload_textures,
@@ -489,7 +475,7 @@ public:
typedef std::map<LLUUID, LLMeshSkinInfo> skin_map;
skin_map mSkinMap;
- typedef std::map<LLUUID, LLMeshDecomposition*> decomposition_map;
+ typedef std::map<LLUUID, LLModel::Decomposition*> decomposition_map;
decomposition_map mDecompositionMap;
LLMutex* mMeshMutex;