SH-238 Add check boxes to upload skin weights (or not) and/or joint positions (or not).
Remove llfloaterimportcollada Reviewed by Prep.meow-7.2.2
parent
7c2b9221d6
commit
613894c8cc
|
|
@ -1288,11 +1288,11 @@ LLModel* LLModel::loadModelFromDomMesh(domMesh *mesh)
|
|||
}
|
||||
|
||||
//static
|
||||
LLSD LLModel::writeModel(std::string filename, LLModel* physics, LLModel* high, LLModel* medium, LLModel* low, LLModel* impostor, LLModel::physics_shape& decomp, BOOL nowrite)
|
||||
LLSD LLModel::writeModel(std::string filename, LLModel* physics, LLModel* high, LLModel* medium, LLModel* low, LLModel* impostor, LLModel::physics_shape& decomp, bool upload_skin, bool upload_joints, bool nowrite)
|
||||
{
|
||||
std::ofstream os(filename.c_str(), std::ofstream::out | std::ofstream::binary);
|
||||
|
||||
LLSD header = writeModel(os, physics, high, medium, low, impostor, decomp, nowrite);
|
||||
LLSD header = writeModel(os, physics, high, medium, low, impostor, decomp, upload_skin, upload_joints, nowrite);
|
||||
|
||||
os.close();
|
||||
|
||||
|
|
@ -1300,7 +1300,7 @@ LLSD LLModel::writeModel(std::string filename, LLModel* physics, LLModel* high,
|
|||
}
|
||||
|
||||
//static
|
||||
LLSD LLModel::writeModel(std::ostream& ostr, LLModel* physics, LLModel* high, LLModel* medium, LLModel* low, LLModel* impostor, LLModel::physics_shape& decomp, BOOL nowrite)
|
||||
LLSD LLModel::writeModel(std::ostream& ostr, LLModel* physics, LLModel* high, LLModel* medium, LLModel* low, LLModel* impostor, LLModel::physics_shape& decomp, bool upload_skin, bool upload_joints, bool nowrite)
|
||||
{
|
||||
LLSD mdl;
|
||||
|
||||
|
|
@ -1313,7 +1313,7 @@ LLSD LLModel::writeModel(std::ostream& ostr, LLModel* physics, LLModel* high, LL
|
|||
physics
|
||||
};
|
||||
|
||||
bool skinning = high && !high->mSkinWeights.empty();
|
||||
bool skinning = upload_skin && high && !high->mSkinWeights.empty();
|
||||
|
||||
if (skinning)
|
||||
{ //write skinning block
|
||||
|
|
@ -1343,7 +1343,7 @@ LLSD LLModel::writeModel(std::ostream& ostr, LLModel* physics, LLModel* high, LL
|
|||
}
|
||||
}
|
||||
|
||||
if ( high->mAlternateBindMatrix.size() > 0 )
|
||||
if ( upload_joints && high->mAlternateBindMatrix.size() > 0 )
|
||||
{
|
||||
for (U32 i = 0; i < high->mJointList.size(); ++i)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -60,8 +60,8 @@ public:
|
|||
typedef std::vector<std::vector<LLVector3> > physics_shape;
|
||||
|
||||
LLModel(LLVolumeParams& params, F32 detail);
|
||||
static LLSD writeModel(std::string filename, LLModel* physics, LLModel* high, LLModel* medium, LLModel* low, LLModel* imposotr, LLModel::physics_shape& physics_shape, BOOL nowrite = FALSE);
|
||||
static LLSD writeModel(std::ostream& ostr, LLModel* physics, LLModel* high, LLModel* medium, LLModel* low, LLModel* imposotr, LLModel::physics_shape& physics_shape, BOOL nowrite = FALSE);
|
||||
static LLSD writeModel(std::string filename, LLModel* physics, LLModel* high, LLModel* medium, LLModel* low, LLModel* imposotr, LLModel::physics_shape& physics_shape, bool upload_skin, bool upload_joints, bool nowrite = FALSE);
|
||||
static LLSD writeModel(std::ostream& ostr, LLModel* physics, LLModel* high, LLModel* medium, LLModel* low, LLModel* imposotr, LLModel::physics_shape& physics_shape, bool upload_skin, bool upload_joints, bool nowrite = FALSE);
|
||||
static LLSD writeModelToStream(std::ostream& ostr, LLSD& mdl, BOOL nowrite = FALSE);
|
||||
static LLModel* loadModelFromAsset(std::string filename, S32 lod);
|
||||
static LLModel* loadModelFromDae(std::string filename);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@
|
|||
#include "llinventorydefines.h"
|
||||
#include "llinventoryobserver.h"
|
||||
#include "llinventorypanel.h"
|
||||
#include "llfloaterimportcollada.h"
|
||||
#include "llpermissionsflags.h"
|
||||
#include "llpreviewnotecard.h"
|
||||
#include "llpreviewscript.h"
|
||||
|
|
@ -334,7 +333,7 @@ void LLNewAgentInventoryResponder::uploadFailure(const LLSD& content)
|
|||
{
|
||||
LLAssetUploadResponder::uploadFailure(content);
|
||||
|
||||
LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], FALSE);
|
||||
//LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], FALSE);
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
@ -424,7 +423,7 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content)
|
|||
userdata);
|
||||
}
|
||||
|
||||
LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], TRUE);
|
||||
//LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], TRUE);
|
||||
}
|
||||
|
||||
LLSendTexLayerResponder::LLSendTexLayerResponder(const LLSD& post_data,
|
||||
|
|
|
|||
|
|
@ -29,8 +29,11 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#if 0 //DEPRECATED
|
||||
|
||||
#include "llfloaterimportcollada.h"
|
||||
|
||||
#include "dae.h"
|
||||
|
|
@ -1111,3 +1114,4 @@ void LLImportCollada::onCommitCancel(LLUICtrl*, void*)
|
|||
getInstance()->endImport();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#if 0 //DEPRECATED
|
||||
|
||||
#ifndef LL_LLFLOATERIMPORTCOLLADA_H
|
||||
#define LL_LLFLOATERIMPORTCOLLADA_H
|
||||
|
||||
|
|
@ -136,3 +138,5 @@ private:
|
|||
};
|
||||
|
||||
#endif // LL_LLFLOATERIMPORTCOLLADA_H
|
||||
|
||||
#endif //DEPRECATED
|
||||
|
|
|
|||
|
|
@ -297,6 +297,12 @@ BOOL LLFloaterModelPreview::postBuild()
|
|||
|
||||
childSetCommitCallback("preview_lod_combo", onPreviewLODCommit, this);
|
||||
|
||||
childSetCommitCallback("upload_skin", onUploadSkinCommit, this);
|
||||
childSetCommitCallback("upload_joints", onUploadJointsCommit, this);
|
||||
|
||||
childDisable("upload_skin");
|
||||
childDisable("upload_joints");
|
||||
|
||||
const U32 width = 512;
|
||||
const U32 height = 512;
|
||||
|
||||
|
|
@ -389,6 +395,35 @@ void LLFloaterModelPreview::setLimit(S32 lod, S32 limit)
|
|||
}
|
||||
}
|
||||
|
||||
//static
|
||||
void LLFloaterModelPreview::onUploadJointsCommit(LLUICtrl*,void* userdata)
|
||||
{
|
||||
LLFloaterModelPreview *fp =(LLFloaterModelPreview *)userdata;
|
||||
|
||||
if (!fp->mModelPreview)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
fp->mModelPreview->refresh();
|
||||
}
|
||||
|
||||
//static
|
||||
void LLFloaterModelPreview::onUploadSkinCommit(LLUICtrl*,void* userdata)
|
||||
{
|
||||
LLFloaterModelPreview *fp =(LLFloaterModelPreview *)userdata;
|
||||
|
||||
if (!fp->mModelPreview)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
fp->mModelPreview->refresh();
|
||||
fp->mModelPreview->resetPreviewTarget();
|
||||
fp->mModelPreview->clearBuffers();
|
||||
}
|
||||
|
||||
//static
|
||||
void LLFloaterModelPreview::onPreviewLODCommit(LLUICtrl* ctrl, void* userdata)
|
||||
{
|
||||
LLFloaterModelPreview *fp =(LLFloaterModelPreview *)userdata;
|
||||
|
|
@ -2031,13 +2066,15 @@ U32 LLModelPreview::calcResourceCost()
|
|||
LLModel::physics_shape& physics_shape = instance.mLOD[LLModel::LOD_PHYSICS] ? instance.mLOD[LLModel::LOD_PHYSICS]->mPhysicsShape : instance.mModel->mPhysicsShape;
|
||||
|
||||
LLSD ret = LLModel::writeModel("",
|
||||
instance.mLOD[4],
|
||||
instance.mLOD[4],
|
||||
instance.mLOD[3],
|
||||
instance.mLOD[2],
|
||||
instance.mLOD[1],
|
||||
instance.mLOD[0],
|
||||
physics_shape,
|
||||
TRUE);
|
||||
mFMP->childGetValue("upload_skin").asBoolean(),
|
||||
mFMP->childGetValue("upload_joints").asBoolean(),
|
||||
true);
|
||||
cost += gMeshRepo.calcResourceCost(ret);
|
||||
|
||||
|
||||
|
|
@ -2203,12 +2240,17 @@ void LLModelPreview::loadModelCallback(S32 lod)
|
|||
|
||||
mDirty = true;
|
||||
|
||||
resetPreviewTarget();
|
||||
|
||||
mFMP->mLoading = FALSE;
|
||||
refresh();
|
||||
}
|
||||
|
||||
void LLModelPreview::resetPreviewTarget()
|
||||
{
|
||||
mPreviewTarget = (mModelLoader->mExtents[0] + mModelLoader->mExtents[1]) * 0.5f;
|
||||
mPreviewScale = (mModelLoader->mExtents[1] - mModelLoader->mExtents[0]) * 0.5f;
|
||||
setPreviewTarget(mPreviewScale.magVec()*2.f);
|
||||
|
||||
mFMP->mLoading = FALSE;
|
||||
refresh();
|
||||
}
|
||||
|
||||
void LLModelPreview::smoothNormals()
|
||||
|
|
@ -2556,7 +2598,7 @@ void LLModelPreview::genLODs(S32 which_lod)
|
|||
|
||||
if (mVertexBuffer[5].empty())
|
||||
{
|
||||
genBuffers(5);
|
||||
genBuffers(5, false);
|
||||
}
|
||||
|
||||
U32 tri_count = 0;
|
||||
|
|
@ -2935,7 +2977,15 @@ void LLModelPreview::setPreviewTarget(F32 distance)
|
|||
mCameraOffset.clearVec();
|
||||
}
|
||||
|
||||
void LLModelPreview::genBuffers(S32 lod)
|
||||
void LLModelPreview::clearBuffers()
|
||||
{
|
||||
for (U32 i = 0; i < 6; i++)
|
||||
{
|
||||
mVertexBuffer[i].clear();
|
||||
}
|
||||
}
|
||||
|
||||
void LLModelPreview::genBuffers(S32 lod, bool avatar_preview)
|
||||
{
|
||||
U32 tri_count = 0;
|
||||
U32 vertex_count = 0;
|
||||
|
|
@ -2986,7 +3036,7 @@ void LLModelPreview::genBuffers(S32 lod)
|
|||
|
||||
LLVertexBuffer* vb = NULL;
|
||||
|
||||
bool skinned = !mdl->mSkinWeights.empty();
|
||||
bool skinned = avatar_preview && !mdl->mSkinWeights.empty();
|
||||
|
||||
U32 mask = LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_NORMAL | LLVertexBuffer::MAP_TEXCOORD0;
|
||||
|
||||
|
|
@ -3021,13 +3071,12 @@ void LLModelPreview::genBuffers(S32 lod)
|
|||
|
||||
if (skinned)
|
||||
{
|
||||
// build vertices and normals
|
||||
for (U32 i = 0; i < num_vertices; i++)
|
||||
{
|
||||
//find closest weight to vf.mVertices[i].mPosition
|
||||
LLVector3 pos(vf.mPositions[i].getF32ptr());
|
||||
|
||||
LLModel::weight_list weight_list = base_mdl->getJointInfluences(pos);
|
||||
const LLModel::weight_list& weight_list = base_mdl->getJointInfluences(pos);
|
||||
|
||||
LLVector4 w(0,0,0,0);
|
||||
if (weight_list.size() > 4)
|
||||
|
|
@ -3102,6 +3151,9 @@ BOOL LLModelPreview::render()
|
|||
gl_rect_2d_simple( width, height );
|
||||
|
||||
bool avatar_preview = false;
|
||||
bool upload_skin = mFMP->childGetValue("upload_skin").asBoolean();
|
||||
bool upload_joints = mFMP->childGetValue("upload_joints").asBoolean();
|
||||
|
||||
for (LLModelLoader::scene::iterator iter = mScene[mPreviewLOD].begin(); iter != mScene[mPreviewLOD].end(); ++iter)
|
||||
{
|
||||
for (LLModelLoader::model_instance_list::iterator model_iter = iter->second.begin(); model_iter != iter->second.end(); ++model_iter)
|
||||
|
|
@ -3115,6 +3167,39 @@ BOOL LLModelPreview::render()
|
|||
}
|
||||
}
|
||||
|
||||
if (upload_skin && !avatar_preview)
|
||||
{
|
||||
mFMP->childSetValue("upload_skin", false);
|
||||
upload_skin = false;
|
||||
}
|
||||
|
||||
if (!upload_skin && upload_joints)
|
||||
{
|
||||
mFMP->childSetValue("upload_joints", false);
|
||||
upload_joints = false;
|
||||
}
|
||||
|
||||
if (!avatar_preview)
|
||||
{
|
||||
mFMP->childDisable("upload_skin");
|
||||
}
|
||||
else
|
||||
{
|
||||
mFMP->childEnable("upload_skin");
|
||||
}
|
||||
|
||||
if (!upload_skin)
|
||||
{
|
||||
mFMP->childDisable("upload_joints");
|
||||
}
|
||||
else
|
||||
{
|
||||
mFMP->childEnable("upload_joints");
|
||||
}
|
||||
|
||||
avatar_preview = avatar_preview && upload_skin;
|
||||
|
||||
|
||||
mFMP->childSetEnabled("consolidate", !avatar_preview);
|
||||
|
||||
F32 explode = mFMP->mDecompFloater ? mFMP->mDecompFloater->childGetValue("explode").asReal() : 0.f;
|
||||
|
|
@ -3171,8 +3256,8 @@ BOOL LLModelPreview::render()
|
|||
|
||||
if (!mBaseModel.empty() && mVertexBuffer[5].empty())
|
||||
{
|
||||
genBuffers(-1);
|
||||
genBuffers(3);
|
||||
genBuffers(-1, avatar_preview);
|
||||
//genBuffers(3);
|
||||
//genLODs();
|
||||
}
|
||||
|
||||
|
|
@ -3194,7 +3279,7 @@ BOOL LLModelPreview::render()
|
|||
{
|
||||
if (mVertexBuffer[mPreviewLOD].empty())
|
||||
{
|
||||
genBuffers(mPreviewLOD);
|
||||
genBuffers(mPreviewLOD, avatar_preview);
|
||||
}
|
||||
|
||||
if (!avatar_preview)
|
||||
|
|
@ -3527,7 +3612,8 @@ void LLFloaterModelPreview::onUpload(void* user_data)
|
|||
|
||||
mp->mModelPreview->rebuildUploadData();
|
||||
|
||||
gMeshRepo.uploadModel(mp->mModelPreview->mUploadData, mp->mModelPreview->mPreviewScale, mp->childGetValue("upload_textures").asBoolean());
|
||||
gMeshRepo.uploadModel(mp->mModelPreview->mUploadData, mp->mModelPreview->mPreviewScale,
|
||||
mp->childGetValue("upload_textures").asBoolean(), mp->childGetValue("upload_skin"), mp->childGetValue("upload_joints"));
|
||||
|
||||
mp->closeFloater(false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,12 +113,14 @@ class LLModelPreview : public LLViewerDynamicTexture, public LLMutex
|
|||
LLModelPreview(S32 width, S32 height, LLFloaterModelPreview* fmp);
|
||||
virtual ~LLModelPreview();
|
||||
|
||||
void resetPreviewTarget();
|
||||
void setPreviewTarget(F32 distance);
|
||||
void setTexture(U32 name) { mTextureName = name; }
|
||||
|
||||
BOOL render();
|
||||
void update();
|
||||
void genBuffers(S32 lod);
|
||||
void genBuffers(S32 lod, bool skinned);
|
||||
void clearBuffers();
|
||||
void refresh();
|
||||
void rotate(F32 yaw_radians, F32 pitch_radians);
|
||||
void zoom(F32 zoom_amt);
|
||||
|
|
@ -225,6 +227,9 @@ protected:
|
|||
friend class LLPhysicsDecomp;
|
||||
friend class LLPhysicsDecompFloater;
|
||||
|
||||
static void onUploadJointsCommit(LLUICtrl*,void*);
|
||||
static void onUploadSkinCommit(LLUICtrl*,void*);
|
||||
|
||||
static void onPreviewLODCommit(LLUICtrl*,void*);
|
||||
|
||||
static void onHighLODCommit(LLUICtrl*,void*);
|
||||
|
|
|
|||
|
|
@ -1121,11 +1121,14 @@ bool LLMeshRepoThread::decompositionReceived(const LLUUID& mesh_id, U8* data, S3
|
|||
return true;
|
||||
}
|
||||
|
||||
LLMeshUploadThread::LLMeshUploadThread(LLMeshUploadThread::instance_list& data, LLVector3& scale, bool upload_textures)
|
||||
LLMeshUploadThread::LLMeshUploadThread(LLMeshUploadThread::instance_list& data, LLVector3& scale, bool upload_textures,
|
||||
bool upload_skin, bool upload_joints)
|
||||
: LLThread("mesh upload")
|
||||
{
|
||||
mInstanceList = data;
|
||||
mUploadTextures = upload_textures;
|
||||
mUploadSkin = upload_skin;
|
||||
mUploadJoints = upload_joints;
|
||||
mMutex = new LLMutex(NULL);
|
||||
mCurlRequest = NULL;
|
||||
mPendingConfirmations = 0;
|
||||
|
|
@ -2118,9 +2121,10 @@ const LLMeshDecomposition* LLMeshRepository::getDecomposition(const LLUUID& mesh
|
|||
return NULL;
|
||||
}
|
||||
|
||||
void LLMeshRepository::uploadModel(std::vector<LLModelInstance>& data, LLVector3& scale, bool upload_textures)
|
||||
void LLMeshRepository::uploadModel(std::vector<LLModelInstance>& data, LLVector3& scale, bool upload_textures,
|
||||
bool upload_skin, bool upload_joints)
|
||||
{
|
||||
LLMeshUploadThread* thread = new LLMeshUploadThread(data, scale, upload_textures);
|
||||
LLMeshUploadThread* thread = new LLMeshUploadThread(data, scale, upload_textures, upload_skin, upload_joints);
|
||||
mUploads.push_back(thread);
|
||||
thread->start();
|
||||
}
|
||||
|
|
@ -2165,6 +2169,8 @@ void LLMeshUploadThread::sendCostRequest(LLMeshUploadData& data)
|
|||
data.mModel[LLModel::LOD_LOW],
|
||||
data.mModel[LLModel::LOD_IMPOSTOR],
|
||||
phys_shape,
|
||||
mUploadSkin,
|
||||
mUploadJoints,
|
||||
true);
|
||||
|
||||
std::string desc = data.mBaseModel->mLabel;
|
||||
|
|
@ -2248,7 +2254,9 @@ void LLMeshUploadThread::doUploadModel(LLMeshUploadData& data)
|
|||
data.mModel[LLModel::LOD_MEDIUM],
|
||||
data.mModel[LLModel::LOD_LOW],
|
||||
data.mModel[LLModel::LOD_IMPOSTOR],
|
||||
phys_shape);
|
||||
phys_shape,
|
||||
mUploadSkin,
|
||||
mUploadJoints);
|
||||
|
||||
data.mAssetData = ostr.str();
|
||||
|
||||
|
|
|
|||
|
|
@ -334,6 +334,8 @@ public:
|
|||
bool mFinished;
|
||||
LLVector3 mOrigin;
|
||||
bool mUploadTextures;
|
||||
bool mUploadSkin;
|
||||
bool mUploadJoints;
|
||||
|
||||
LLHost mHost;
|
||||
std::string mUploadObjectAssetCapability;
|
||||
|
|
@ -348,7 +350,8 @@ public:
|
|||
|
||||
std::map<LLPointer<LLViewerFetchedTexture>, LLTextureUploadData> mTextureMap;
|
||||
|
||||
LLMeshUploadThread(instance_list& data, LLVector3& scale, bool upload_textures);
|
||||
LLMeshUploadThread(instance_list& data, LLVector3& scale, bool upload_textures,
|
||||
bool upload_skin, bool upload_joints);
|
||||
~LLMeshUploadThread();
|
||||
|
||||
void uploadTexture(LLTextureUploadData& data);
|
||||
|
|
@ -403,7 +406,8 @@ public:
|
|||
const LLMeshSkinInfo* getSkinInfo(const LLUUID& mesh_id);
|
||||
const LLMeshDecomposition* getDecomposition(const LLUUID& mesh_id);
|
||||
|
||||
void uploadModel(std::vector<LLModelInstance>& data, LLVector3& scale, bool upload_textures);
|
||||
void uploadModel(std::vector<LLModelInstance>& data, LLVector3& scale, bool upload_textures,
|
||||
bool upload_skin, bool upload_joints);
|
||||
|
||||
S32 getMeshSize(const LLUUID& mesh_id, S32 lod);
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,6 @@
|
|||
#include "llimfloater.h"
|
||||
#include "llfloaterinspect.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llfloaterimportcollada.h"
|
||||
#include "llfloaterjoystick.h"
|
||||
#include "llfloaterlagmeter.h"
|
||||
#include "llfloaterland.h"
|
||||
|
|
@ -175,7 +174,6 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
LLFloaterReg::add("hud", "floater_hud.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHUD>);
|
||||
|
||||
LLFloaterReg::add("impanel", "floater_im_session.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMFloater>);
|
||||
LLFloaterReg::add("import_collada", "floater_import_collada.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterImportCollada>);
|
||||
LLFloaterReg::add("im_container", "floater_im_container.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMFloaterContainer>);
|
||||
LLFloaterReg::add("im_well_window", "floater_sys_well.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMWellWindow>);
|
||||
LLFloaterReg::add("incoming_call", "floater_incoming_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIncomingCallDialog>);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@
|
|||
#include "llfilepicker.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llbuycurrencyhtml.h"
|
||||
#include "llfloaterimportcollada.h"
|
||||
#include "llfloatermodelpreview.h"
|
||||
#include "llfloatersnapshot.h"
|
||||
#include "llimage.h"
|
||||
|
|
@ -67,7 +66,6 @@
|
|||
#include "lluploaddialog.h"
|
||||
#include "lltrans.h"
|
||||
#include "llfloaterbuycurrency.h"
|
||||
#include "llfloaterimportcollada.h"
|
||||
|
||||
// linden libraries
|
||||
#include "llassetuploadresponders.h"
|
||||
|
|
@ -350,19 +348,6 @@ class LLFileUploadImage : public view_listener_t
|
|||
}
|
||||
};
|
||||
|
||||
class LLFileUploadScene : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
std::string filename = upload_pick((void *)LLFilePicker::FFLOAD_COLLADA);
|
||||
if (!filename.empty())
|
||||
{
|
||||
LLImportCollada::getInstance()->importFile(filename);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
};
|
||||
|
||||
class LLFileUploadModel : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
|
|
@ -1402,7 +1387,6 @@ void init_menu_file()
|
|||
view_listener_t::addCommit(new LLFileUploadSound(), "File.UploadSound");
|
||||
view_listener_t::addCommit(new LLFileUploadAnim(), "File.UploadAnim");
|
||||
view_listener_t::addCommit(new LLFileUploadModel(), "File.UploadModel");
|
||||
view_listener_t::addCommit(new LLFileUploadScene(), "File.UploadScene");
|
||||
view_listener_t::addCommit(new LLFileUploadBulk(), "File.UploadBulk");
|
||||
view_listener_t::addCommit(new LLFileCloseWindow(), "File.CloseWindow");
|
||||
view_listener_t::addCommit(new LLFileCloseAllWindows(), "File.CloseAllWindows");
|
||||
|
|
|
|||
|
|
@ -4036,10 +4036,10 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
const LLMeshSkinInfo* pSkinData = gMeshRepo.getSkinInfo( vobj->getVolume()->getParams().getSculptID() );
|
||||
if ( pSkinData )
|
||||
{
|
||||
static const int bindCnt = pSkinData->mAlternateBindMatrix.size();
|
||||
const int bindCnt = pSkinData->mAlternateBindMatrix.size();
|
||||
if ( bindCnt > 0 )
|
||||
{
|
||||
static const int jointCnt = pSkinData->mJointNames.size();
|
||||
const int jointCnt = pSkinData->mJointNames.size();
|
||||
for ( int i=0; i<jointCnt; ++i )
|
||||
{
|
||||
std::string lookingForJoint = pSkinData->mJointNames[i].c_str();
|
||||
|
|
|
|||
|
|
@ -134,8 +134,21 @@
|
|||
<text bottom_delta="25" follows="top|left" height="15" left="10" name="physics info" width="300">
|
||||
[TRIANGLES] Triangles, [HULLS] Hulls, [POINTS] Points
|
||||
</text>
|
||||
|
||||
<text bottom_delta="20" follows="top|left" height="15" name="description_label">
|
||||
|
||||
<text bottom_delta="25" follows="top|left" height="15" left="10" name="physics info" width="300">
|
||||
Include:
|
||||
</text>
|
||||
|
||||
<check_box bottom_delta="20" follow="bottom|left" height="20" label="Textures"
|
||||
left="15" width="125" name="upload_textures" tool_tip="Upload associated textures "/>
|
||||
|
||||
<check_box bottom_delta="20" follow="bottom|left" height="20" label="Skin Weights"
|
||||
left="15" width="125" name="upload_skin" tool_tip="Upload vertex skin weighting information."/>
|
||||
|
||||
<check_box bottom_delta="20" follow="bottom|left" height="20" label="Joint Positions"
|
||||
left="15" width="125" name="upload_joints" tool_tip="Upload joint position information (will override avatar joint positions when mesh is worn)."/>
|
||||
|
||||
<text bottom_delta="35" follows="top|left" height="15" name="description_label">
|
||||
Description:
|
||||
<!-- Info: [PRIM_COST] prim equivalents, [TEXTURES] textures. -->
|
||||
</text>
|
||||
|
|
@ -144,8 +157,6 @@
|
|||
<button bottom_delta="25" follows="bottom|left" height="20" label="Upload"
|
||||
left="15" name="ok_btn" width="125" tool_tip="Upload to simulator"/>
|
||||
|
||||
<check_box bottom_delta="0" follow="bottom|left" height="20" label="Upload Textures"
|
||||
left="160" width="125" name="upload_textures" tool_tip="Upload associated textures "/>
|
||||
<text bottom_delta="20" left="15" follows="top|left" height="15" name="description_label" text_color="1 0.82 0.46 1">
|
||||
(No charge for upload during First Look)
|
||||
</text>
|
||||
|
|
|
|||
Loading…
Reference in New Issue