//----------------------------------------------------------------------------- // ~LLCharacter() // Class Destructor //----------------------------------------------------------------------------- LLCharacter::~LLCharacter() { for (LLVisualParam *param = getFirstVisualParam(); param; param = getNextVisualParam()) { delete param; } U32 i ; U32 size = sInstances.size() ; for(i = 0 ; i < size ; i++) { if(sInstances[i] == this) { break ; } } llassert_always(i < size) ; llassert_always(sAllowInstancesChange) ; sInstances[i] = sInstances[size - 1] ; sInstances.pop_back() ; }
//----------------------------------------------------------------------------- // clearVisualParamWeights() //----------------------------------------------------------------------------- void LLCharacter::clearVisualParamWeights() { for (LLVisualParam *param = getFirstVisualParam(); param; param = getNextVisualParam()) { if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) { param->setWeight( param->getDefaultWeight(), FALSE ); } } }
//----------------------------------------------------------------------------- // clearVisualParamWeights() //----------------------------------------------------------------------------- void LLCharacter::clearVisualParamWeights() { for (LLVisualParam *param = getFirstVisualParam(); param; param = getNextVisualParam()) { if (param->isTweakable()) { param->setWeight( param->getDefaultWeight(), FALSE ); } } }
//----------------------------------------------------------------------------- // ~LLCharacter() // Class Destructor //----------------------------------------------------------------------------- LLCharacter::~LLCharacter() { for (LLVisualParam *param = getFirstVisualParam(); param; param = getNextVisualParam()) { delete param; } std::vector<LLCharacter*>::iterator iter = std::find(sInstances.begin(), sInstances.end(), this); if (iter != sInstances.end()) { sInstances.erase(iter); } }
//----------------------------------------------------------------------------- // BOOL visualParamWeightsAreDefault() //----------------------------------------------------------------------------- BOOL LLCharacter::visualParamWeightsAreDefault() { for (LLVisualParam *param = getFirstVisualParam(); param; param = getNextVisualParam()) { if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) { if (param->getWeight() != param->getDefaultWeight()) return false; } } return true; }
//----------------------------------------------------------------------------- // BOOL visualParamWeightsAreDefault() //----------------------------------------------------------------------------- BOOL LLCharacter::visualParamWeightsAreDefault() { for (LLVisualParam *param = getFirstVisualParam(); param; param = getNextVisualParam()) { if (param->isTweakable()) { if (param->getWeight() != param->getDefaultWeight()) return false; } } return true; }
//----------------------------------------------------------------------------- // updateVisualParams() //----------------------------------------------------------------------------- void LLCharacter::updateVisualParams() { for (LLVisualParam *param = getFirstVisualParam(); param; param = getNextVisualParam()) { if (param->isAnimating()) { continue; } // only apply parameters whose effective weight has changed F32 effective_weight = ( param->getSex() & mSex ) ? param->getWeight() : param->getDefaultWeight(); if (effective_weight != param->getLastWeight()) { param->apply( mSex ); } } }