LLWearable Class Reference

#include <llwearable.h>

Collaboration diagram for LLWearable:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LLWearable (const LLTransactionID &transactionID)
 LLWearable (const LLAssetID &assetID)
 ~LLWearable ()
const LLAssetIDgetID ()
const LLTransactionIDgetTransactionID ()
BOOL readData (const char *buffer)
BOOL isDirty ()
BOOL isOldVersion ()
void writeToAvatar (BOOL set_by_user)
void readFromAvatar ()
void removeFromAvatar (BOOL set_by_user)
BOOL exportFile (FILE *file)
BOOL importFile (FILE *file)
EWearableType getType () const
void setType (EWearableType type)
void setName (const LLString &name)
const LLStringgetName ()
void setDescription (const LLString &desc)
const LLStringgetDescription ()
void setPermissions (const LLPermissions &p)
const LLPermissionsgetPermissions ()
void setSaleInfo (const LLSaleInfo &info)
const LLSaleInfogetSaleInfo ()
const char * getTypeLabel () const
const char * getTypeName () const
void setParamsToDefaults ()
void setTexturesToDefaults ()
LLAssetType::EType getAssetType () const
void saveNewAsset ()
BOOL isMatchedToInventoryItem (LLViewerInventoryItem *item)
void copyDataFrom (LLWearable *src)
void dump ()

Static Public Member Functions

static void removeFromAvatar (EWearableType type, BOOL set_by_user)
static EWearableType typeNameToType (const LLString &type_name)
static const char * typeToTypeName (EWearableType type)
static const char * typeToTypeLabel (EWearableType type)
static LLAssetType::EType typeToAssetType (EWearableType wearable_type)
static void onSaveNewAssetComplete (const LLUUID &asset_uuid, void *user_data, S32 status, LLExtStat ext_status)
static void setCurrentDefinitionVersion (S32 version)

Private Attributes

S32 mDefinitionVersion
LLString mName
LLString mDescription
LLPermissions mPermissions
LLSaleInfo mSaleInfo
LLAssetID mAssetID
LLTransactionID mTransactionID
EWearableType mType
LLPtrSkipMap< S32, F32 * > mVisualParamMap
LLPtrSkipMap< S32, LLUUID * > mTEMap

Static Private Attributes

static S32 sCurrentDefinitionVersion = 1
static const char * sTypeName [WT_COUNT]
static const char * sTypeLabel [WT_COUNT]

Detailed Description

Definition at line 63 of file llwearable.h.


Constructor & Destructor Documentation

LLWearable::LLWearable ( const LLTransactionID transactionID  ) 

Definition at line 120 of file llwearable.cpp.

References gAgent, LLAgent::getSecureSessionID(), LLTransactionID::makeAssetID(), mAssetID, and mTransactionID.

LLWearable::LLWearable ( const LLAssetID assetID  ) 

Definition at line 128 of file llwearable.cpp.

References mAssetID, mTransactionID, and LLUUID::setNull().

LLWearable::~LLWearable (  ) 

Definition at line 136 of file llwearable.cpp.

References mTEMap, and mVisualParamMap.


Member Function Documentation

void LLWearable::copyDataFrom ( LLWearable src  ) 

Definition at line 828 of file llwearable.cpp.

References gAgent, LLAgent::getAvatarObject(), LLVOAvatar::getDefaultTEImageID(), LLCharacter::getFirstVisualParam(), LLCharacter::getNextVisualParam(), LLVOAvatar::getTEWearableType(), llassert, mDefinitionVersion, mDescription, mName, mPermissions, mSaleInfo, mTEMap, mType, mVisualParamMap, param, S32, sCurrentDefinitionVersion, LLVOAvatar::TEX_NUM_ENTRIES, and VISUAL_PARAM_GROUP_TWEAKABLE.

Referenced by LLWearableList::createCopy(), LLWearableList::createCopyFromAvatar(), and LLWearableList::createWearableMatchedToInventoryItem().

void LLWearable::dump (  ) 

Definition at line 982 of file llwearable.cpp.

References llendl, llinfos, mDescription, mName, mTEMap, mType, mVisualParamMap, S32, and typeToTypeName().

BOOL LLWearable::exportFile ( FILE *  file  ) 

Definition at line 193 of file llwearable.cpp.

References LLSaleInfo::exportFile(), LLPermissions::exportFile(), FALSE, MAX_STRING, mDefinitionVersion, mDescription, mName, mPermissions, mSaleInfo, mTEMap, mType, mVisualParamMap, s, S32, terse_F32_to_string(), TRUE, type, and UUID_STR_LENGTH.

Referenced by saveNewAsset().

LLAssetType::EType LLWearable::getAssetType (  )  const [inline]

Definition at line 106 of file llwearable.h.

References mType, and typeToAssetType().

Referenced by LLAgent::addWearableToAgentInventory(), LLFolderBridge::createWearable(), LLPanelEditWearable::onSelectAutoWearOption(), saveNewAsset(), and LLAgent::saveWearable().

const LLString& LLWearable::getDescription ( void   )  [inline]

Definition at line 92 of file llwearable.h.

References mDescription.

Referenced by LLAgent::addWearableToAgentInventory(), LLFolderBridge::createWearable(), and LLPanelEditWearable::onSelectAutoWearOption().

const LLAssetID& LLWearable::getID (  )  [inline]

Definition at line 70 of file llwearable.h.

References mAssetID.

Referenced by LLAgent::addWearabletoAgentInventoryDone(), LLAgent::queryWearableCache(), LLAgent::saveWearable(), LLAgent::sendAgentSetAppearance(), LLAgent::sendAgentWearablesUpdate(), LLAgent::setWearable(), LLAgent::setWearableFinal(), LLAgent::setWearableOutfit(), and wear_inventory_category_on_avatar_loop().

const LLString& LLWearable::getName ( void   )  [inline]

Definition at line 89 of file llwearable.h.

References mName.

Referenced by LLAgent::addWearableToAgentInventory(), LLFolderBridge::createWearable(), LLPanelEditWearable::draw(), LLPanelEditWearable::onBtnSaveAs(), and LLPanelEditWearable::onSelectAutoWearOption().

const LLPermissions& LLWearable::getPermissions (  )  [inline]

Definition at line 95 of file llwearable.h.

References mPermissions.

Referenced by LLAgent::addWearableToAgentInventory(), LLWearableList::createCopy(), LLWearableList::createCopyFromAvatar(), LLFolderBridge::createWearable(), and LLPanelEditWearable::onSelectAutoWearOption().

const LLSaleInfo& LLWearable::getSaleInfo (  )  [inline]

Definition at line 98 of file llwearable.h.

References mSaleInfo.

const LLTransactionID& LLWearable::getTransactionID (  )  [inline]

Definition at line 71 of file llwearable.h.

References mTransactionID.

Referenced by LLAgent::addWearableToAgentInventory(), LLAgent::addWearabletoAgentInventoryDone(), LLFolderBridge::createWearable(), LLPanelEditWearable::onSelectAutoWearOption(), and LLAgent::saveWearable().

EWearableType LLWearable::getType (  )  const [inline]

Definition at line 85 of file llwearable.h.

References mType.

Referenced by LLAgent::addWearableToAgentInventory(), LLFolderBridge::createWearable(), LLPanelEditWearable::draw(), LLWearableBridge::editOnAvatar(), LLAgent::onInitialWearableAssetArrived(), LLPanelEditWearable::onSelectAutoWearOption(), LLAgent::onSetWearableDialog(), LLAgent::setWearable(), and LLAgent::setWearableFinal().

const char* LLWearable::getTypeLabel (  )  const [inline]

Definition at line 100 of file llwearable.h.

References mType, and sTypeLabel.

Referenced by LLWearableList::createLegacyWearableFromAvatar(), LLWearableList::createNewWearable(), and LLAgent::makeNewOutfit().

const char* LLWearable::getTypeName (  )  const [inline]

Definition at line 101 of file llwearable.h.

References mType, and sTypeName.

BOOL LLWearable::importFile ( FILE *  file  ) 

Definition at line 272 of file llwearable.cpp.

References DB_INV_ITEM_DESC_STR_LEN, DB_INV_ITEM_NAME_STR_LEN, FALSE, i, LLSaleInfo::importFile(), LLPermissions::importFile(), llendl, llwarns, mAssetID, mDefinitionVersion, mDescription, mName, mPermissions, mSaleInfo, mTEMap, mType, mVisualParamMap, PERM_COPY, PERM_TRANSFER, S32, sCurrentDefinitionVersion, LLPermissions::setMaskNext(), TRUE, LLStringBase< char >::truncate(), type, LLUUID::validate(), and WT_COUNT.

Referenced by LLWearableList::processGetAssetReply().

BOOL LLWearable::isDirty (  ) 

Definition at line 533 of file llwearable.cpp.

References a, b, F32_to_U8(), FALSE, gAgent, LLAgent::getAvatarObject(), LLVOAvatar::getDefaultTEImageID(), LLCharacter::getFirstVisualParam(), LLCharacter::getNextVisualParam(), LLViewerObject::getTEImage(), LLVOAvatar::getTEWearableType(), llassert, llclamp(), mTEMap, mType, mVisualParamMap, param, S32, LLVOAvatar::TEX_NUM_ENTRIES, TRUE, and VISUAL_PARAM_GROUP_TWEAKABLE.

Referenced by LLAgent::copyWearableToInventory(), LLPanelEditWearable::isDirty(), LLAgent::saveWearable(), LLAgent::setWearable(), and LLAgent::setWearableOutfit().

BOOL LLWearable::isMatchedToInventoryItem ( LLViewerInventoryItem item  ) 

Definition at line 973 of file llwearable.cpp.

References LLInventoryItem::getDescription(), LLInventoryObject::getName(), LLInventoryItem::getPermissions(), LLInventoryItem::getSaleInfo(), mDescription, mName, mPermissions, and mSaleInfo.

BOOL LLWearable::isOldVersion (  ) 

Definition at line 466 of file llwearable.cpp.

References FALSE, gAgent, LLAgent::getAvatarObject(), LLCharacter::getFirstVisualParam(), LLCharacter::getNextVisualParam(), LLVOAvatar::getTEWearableType(), llassert, llendl, llwarns, mDefinitionVersion, mTEMap, mType, mVisualParamMap, param, S32, sCurrentDefinitionVersion, LLVOAvatar::TEX_NUM_ENTRIES, TRUE, and VISUAL_PARAM_GROUP_TWEAKABLE.

Referenced by LLAgent::saveWearable().

void LLWearable::onSaveNewAssetComplete ( const LLUUID asset_uuid,
void user_data,
S32  status,
LLExtStat  ext_status 
) [static]

Definition at line 940 of file llwearable.cpp.

References LLViewerWindow::alertXml(), gDirUtilp, LLDir::getExpandedFilename(), gViewerWindow, LL_MAX_PATH, LL_PATH_CACHE, llendl, llinfos, llwarns, MAX_STRING, LLWearableSaveData::mType, LLFile::remove(), LLUUID::toString(), typeToTypeName(), and UUID_STR_LENGTH.

Referenced by saveNewAsset().

BOOL LLWearable::readData ( const char *  buffer  ) 

void LLWearable::readFromAvatar (  ) 

Definition at line 787 of file llwearable.cpp.

References gAgent, LLAgent::getAvatarObject(), LLCharacter::getFirstVisualParam(), LLCharacter::getNextVisualParam(), LLViewerObject::getTEImage(), LLVOAvatar::getTEWearableType(), llassert, mDefinitionVersion, mTEMap, mType, mVisualParamMap, param, S32, sCurrentDefinitionVersion, LLVOAvatar::TEX_NUM_ENTRIES, and VISUAL_PARAM_GROUP_TWEAKABLE.

Referenced by LLWearableList::createCopyFromAvatar(), and LLWearableList::createLegacyWearableFromAvatar().

void LLWearable::removeFromAvatar ( EWearableType  type,
BOOL  set_by_user 
) [static]

Definition at line 732 of file llwearable.cpp.

References gAgent, LLAgent::getAvatarObject(), LLCharacter::getFirstVisualParam(), LLViewerImageList::getImage(), LLCharacter::getNextVisualParam(), LLVOAvatar::getTEWearableType(), gFloaterCustomize, gImageList, IMG_DEFAULT_AVATAR, llassert, NULL, param, PERM_ALL, S32, LLVOAvatar::setLocTexTE(), LLCharacter::setVisualParamWeight(), LLFloaterCustomize::setWearable(), LLVOAvatar::TEX_NUM_ENTRIES, TRUE, LLVOAvatar::updateMeshTextures(), LLVOAvatar::updateVisualParams(), VISUAL_PARAM_GROUP_TWEAKABLE, WT_EYES, WT_HAIR, WT_SHAPE, and WT_SKIN.

void LLWearable::removeFromAvatar ( BOOL  set_by_user  )  [inline]

Definition at line 79 of file llwearable.h.

References mType.

Referenced by LLAgent::processAgentInitialWearablesUpdate(), and LLAgent::removeWearableFinal().

void LLWearable::saveNewAsset (  ) 

Definition at line 876 of file llwearable.cpp.

References LLViewerWindow::alertXml(), exportFile(), FALSE, LLFile::fopen(), gAssetStorage, gDirUtilp, getAssetType(), LLDir::getExpandedFilename(), gViewerWindow, LL_MAX_PATH, LL_PATH_CACHE, llendl, llwarns, mAssetID, MAX_STRING, mName, mTransactionID, mType, LLWearableSaveData::mType, NULL, onSaveNewAssetComplete(), LLAssetStorage::storeAssetData(), LLUUID::toString(), TRUE, and UUID_STR_LENGTH.

Referenced by LLWearableList::createCopy(), LLWearableList::createCopyFromAvatar(), LLWearableList::createLegacyWearableFromAvatar(), LLWearableList::createNewWearable(), and LLWearableList::createWearableMatchedToInventoryItem().

static void LLWearable::setCurrentDefinitionVersion ( S32  version  )  [inline, static]

Definition at line 120 of file llwearable.h.

References sCurrentDefinitionVersion.

Referenced by LLVOAvatar::initClass().

void LLWearable::setDescription ( const LLString desc  )  [inline]

Definition at line 91 of file llwearable.h.

References mDescription.

Referenced by LLWearableList::createLegacyWearableFromAvatar(), and LLWearableList::createWearableMatchedToInventoryItem().

void LLWearable::setName ( const LLString name  )  [inline]

Definition at line 88 of file llwearable.h.

References mName.

Referenced by LLWearableList::createCopyFromAvatar(), LLWearableList::createLegacyWearableFromAvatar(), LLWearableList::createNewWearable(), LLWearableList::createWearableMatchedToInventoryItem(), and LLAgent::makeNewOutfit().

void LLWearable::setParamsToDefaults (  ) 

Definition at line 600 of file llwearable.cpp.

References gAgent, LLAgent::getAvatarObject(), LLCharacter::getFirstVisualParam(), LLCharacter::getNextVisualParam(), llassert, mType, mVisualParamMap, param, and VISUAL_PARAM_GROUP_TWEAKABLE.

Referenced by LLWearableList::createNewWearable().

void LLWearable::setPermissions ( const LLPermissions p  )  [inline]

Definition at line 94 of file llwearable.h.

References mPermissions, and p.

Referenced by LLAgent::copyWearableToInventory(), LLWearableList::createCopy(), LLWearableList::createCopyFromAvatar(), LLWearableList::createLegacyWearableFromAvatar(), LLWearableList::createNewWearable(), LLWearableList::createWearableMatchedToInventoryItem(), and LLAgent::setWearableName().

void LLWearable::setSaleInfo ( const LLSaleInfo info  )  [inline]

Definition at line 97 of file llwearable.h.

References mSaleInfo.

Referenced by LLWearableList::createWearableMatchedToInventoryItem().

void LLWearable::setTexturesToDefaults (  ) 

Definition at line 619 of file llwearable.cpp.

References LLVOAvatar::getDefaultTEImageID(), LLVOAvatar::getTEWearableType(), mTEMap, mType, S32, and LLVOAvatar::TEX_NUM_ENTRIES.

Referenced by LLWearableList::createNewWearable().

void LLWearable::setType ( EWearableType  type  )  [inline]

Definition at line 86 of file llwearable.h.

References mType.

Referenced by LLWearableList::createLegacyWearableFromAvatar(), and LLWearableList::createNewWearable().

EWearableType LLWearable::typeNameToType ( const LLString type_name  )  [static]

Definition at line 144 of file llwearable.cpp.

References i, S32, sTypeName, WT_COUNT, and WT_INVALID.

Referenced by LLViewerVisualParamInfo::parseXml().

LLAssetType::EType LLWearable::typeToAssetType ( EWearableType  wearable_type  )  [static]

Definition at line 95 of file llwearable.cpp.

References LLAssetType::AT_BODYPART, LLAssetType::AT_CLOTHING, LLAssetType::AT_NONE, WT_EYES, WT_GLOVES, WT_HAIR, WT_JACKET, WT_PANTS, WT_SHAPE, WT_SHIRT, WT_SHOES, WT_SKIN, WT_SKIRT, WT_SOCKS, WT_UNDERPANTS, and WT_UNDERSHIRT.

Referenced by getAssetType(), LLPanelEditWearable::postBuild(), and LLAgent::processAgentInitialWearablesUpdate().

static const char* LLWearable::typeToTypeLabel ( EWearableType  type  )  [inline, static]

Definition at line 110 of file llwearable.h.

References sTypeLabel, and WT_COUNT.

Referenced by LLFloaterClothing::buildClothingList(), LLPanelEditWearable::draw(), LLPanelEditWearable::getLabel(), LLMakeOutfitDialog::LLMakeOutfitDialog(), LLAgent::processAgentInitialWearablesUpdate(), LLAgent::recoverMissingWearable(), LLAgent::sendAgentWearablesUpdate(), and LLMakeOutfitDialog::setWearableToInclude().

static const char* LLWearable::typeToTypeName ( EWearableType  type  )  [inline, static]

Definition at line 109 of file llwearable.h.

References sTypeName, and WT_COUNT.

Referenced by dump(), LLVOAvatar::dumpArchetypeXML(), onSaveNewAssetComplete(), LLAgent::setWearable(), and LLAgent::setWearableOutfit().

void LLWearable::writeToAvatar ( BOOL  set_by_user  ) 

Definition at line 632 of file llwearable.cpp.

References FALSE, LLViewerInventoryItem::fetchFromServer(), gAgent, LLAgent::getAvatarObject(), LLVOAvatar::getDefaultTEImageID(), LLCharacter::getFirstVisualParam(), LLViewerImageList::getImage(), LLInventoryModel::getItem(), LLPermissions::getMaskOwner(), LLCharacter::getNextVisualParam(), LLInventoryItem::getPermissions(), LLCharacter::getSex(), LLVOAvatar::getTEWearableType(), LLAgent::getWearableItem(), gFloaterCustomize, gImageList, gInventory, LLViewerInventoryItem::isComplete(), llassert, mTEMap, mType, mVisualParamMap, param, PERM_NONE, S32, LLFloaterCustomize::setCurrentWearableType(), LLVOAvatar::setLocTexTE(), LLCharacter::setVisualParamWeight(), LLFloaterCustomize::setWearable(), LLVOAvatar::startAppearanceAnimation(), LLVOAvatar::TEX_NUM_ENTRIES, TRUE, LLVOAvatar::updateMeshTextures(), LLVOAvatar::updateSexDependentLayerSets(), LLVOAvatar::updateVisualParams(), and VISUAL_PARAM_GROUP_TWEAKABLE.

Referenced by LLAgent::createStandardWearablesDone(), LLAgent::onInitialWearableAssetArrived(), LLAgent::recoverMissingWearable(), and LLAgent::setWearableFinal().


Member Data Documentation

LLAssetID LLWearable::mAssetID [private]

Definition at line 131 of file llwearable.h.

Referenced by getID(), importFile(), LLWearable(), and saveNewAsset().

S32 LLWearable::mDefinitionVersion [private]

Definition at line 126 of file llwearable.h.

Referenced by copyDataFrom(), exportFile(), importFile(), isOldVersion(), and readFromAvatar().

LLString LLWearable::mDescription [private]

Definition at line 128 of file llwearable.h.

Referenced by copyDataFrom(), dump(), exportFile(), getDescription(), importFile(), isMatchedToInventoryItem(), and setDescription().

LLString LLWearable::mName [private]

Definition at line 127 of file llwearable.h.

Referenced by copyDataFrom(), dump(), exportFile(), getName(), importFile(), isMatchedToInventoryItem(), saveNewAsset(), and setName().

LLPermissions LLWearable::mPermissions [private]

Definition at line 129 of file llwearable.h.

Referenced by copyDataFrom(), exportFile(), getPermissions(), importFile(), isMatchedToInventoryItem(), and setPermissions().

LLSaleInfo LLWearable::mSaleInfo [private]

Definition at line 130 of file llwearable.h.

Referenced by copyDataFrom(), exportFile(), getSaleInfo(), importFile(), isMatchedToInventoryItem(), and setSaleInfo().

LLPtrSkipMap<S32, LLUUID*> LLWearable::mTEMap [private]

Definition at line 136 of file llwearable.h.

Referenced by copyDataFrom(), dump(), exportFile(), importFile(), isDirty(), isOldVersion(), readFromAvatar(), setTexturesToDefaults(), writeToAvatar(), and ~LLWearable().

LLTransactionID LLWearable::mTransactionID [private]

Definition at line 132 of file llwearable.h.

Referenced by getTransactionID(), LLWearable(), and saveNewAsset().

EWearableType LLWearable::mType [private]

Definition at line 133 of file llwearable.h.

Referenced by copyDataFrom(), dump(), exportFile(), getAssetType(), getType(), getTypeLabel(), getTypeName(), importFile(), isDirty(), isOldVersion(), readFromAvatar(), removeFromAvatar(), saveNewAsset(), setParamsToDefaults(), setTexturesToDefaults(), setType(), and writeToAvatar().

LLPtrSkipMap<S32, F32*> LLWearable::mVisualParamMap [private]

Definition at line 135 of file llwearable.h.

Referenced by copyDataFrom(), dump(), exportFile(), importFile(), isDirty(), isOldVersion(), readFromAvatar(), setParamsToDefaults(), writeToAvatar(), and ~LLWearable().

S32 LLWearable::sCurrentDefinitionVersion = 1 [static, private]

Definition at line 125 of file llwearable.h.

Referenced by copyDataFrom(), importFile(), isOldVersion(), readFromAvatar(), and setCurrentDefinitionVersion().

const char * LLWearable::sTypeLabel [static, private]

Initial value:

{
        "Shape",
        "Skin",
        "Hair",
        "Eyes",
        "Shirt",
        "Pants",
        "Shoes",
        "Socks",
        "Jacket",
        "Gloves",
        "Undershirt",
        "Underpants",
        "Skirt"
}

Definition at line 139 of file llwearable.h.

Referenced by getTypeLabel(), and typeToTypeLabel().

const char * LLWearable::sTypeName [static, private]

Initial value:

{
        "shape",
        "skin",
        "hair",
        "eyes",
        "shirt",
        "pants",
        "shoes",
        "socks",
        "jacket",
        "gloves",
        "undershirt",
        "underpants",
        "skirt"
}

Definition at line 138 of file llwearable.h.

Referenced by getTypeName(), typeNameToType(), and typeToTypeName().


The documentation for this class was generated from the following files:
Generated on Thu Jul 1 06:12:03 2010 for Second Life Viewer by  doxygen 1.4.7