From 70f8dc7a4f4be217fea5439e474fc75e567c23c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20N=C3=A6sbye=20Christensen?= Date: Sat, 10 Feb 2024 22:37:52 +0100 Subject: miscellaneous: BOOL (int) to real bool --- indra/llcharacter/llvisualparam.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indra/llcharacter/llvisualparam.cpp') diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp index 2235496ac5..9976de9f6f 100644 --- a/indra/llcharacter/llvisualparam.cpp +++ b/indra/llcharacter/llvisualparam.cpp @@ -138,7 +138,7 @@ BOOL LLVisualParamInfo::parseXml(LLXmlTreeNode *node) mMaxName = "More"; } - return TRUE; + return true; } //virtual @@ -215,7 +215,7 @@ BOOL LLVisualParam::setInfo(LLVisualParamInfo *info) mInfo = info; mID = info->mID; setWeight(getDefaultWeight(), FALSE ); - return TRUE; + return true; } //----------------------------------------------------------------------------- @@ -229,7 +229,7 @@ BOOL LLVisualParam::parseData(LLXmlTreeNode *node) if (!setInfo(info)) return FALSE; - return TRUE; + return true; } */ @@ -336,7 +336,7 @@ void LLVisualParam::stopAnimating() BOOL LLVisualParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params) { // nothing to do for non-driver parameters - return TRUE; + return true; } //virtual -- cgit v1.2.3 From 4419bb870986c6900fc096338622d27b999cd771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20N=C3=A6sbye=20Christensen?= Date: Sun, 11 Feb 2024 01:23:28 +0100 Subject: more misc: BOOL (int) to real bool --- indra/llcharacter/llvisualparam.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'indra/llcharacter/llvisualparam.cpp') diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp index 9976de9f6f..e19ef19e33 100644 --- a/indra/llcharacter/llvisualparam.cpp +++ b/indra/llcharacter/llvisualparam.cpp @@ -48,7 +48,7 @@ LLVisualParamInfo::LLVisualParamInfo() //----------------------------------------------------------------------------- // parseXml() //----------------------------------------------------------------------------- -BOOL LLVisualParamInfo::parseXml(LLXmlTreeNode *node) +bool LLVisualParamInfo::parseXml(LLXmlTreeNode *node) { // attribute: id static LLStdStringHandle id_string = LLXmlTree::addAttributeString("id"); @@ -102,7 +102,7 @@ BOOL LLVisualParamInfo::parseXml(LLXmlTreeNode *node) else { LL_WARNS() << "Avatar file: has invalid sex attribute: " << sex << LL_ENDL; - return FALSE; + return false; } // attribute: name @@ -110,7 +110,7 @@ BOOL LLVisualParamInfo::parseXml(LLXmlTreeNode *node) if( !node->getFastAttributeString( name_string, mName ) ) { LL_WARNS() << "Avatar file: is missing name attribute" << LL_ENDL; - return FALSE; + return false; } // attribute: label @@ -211,7 +211,7 @@ BOOL LLVisualParam::setInfo(LLVisualParamInfo *info) { llassert(mInfo == NULL); if (info->mID < 0) - return FALSE; + return false; mInfo = info; mID = info->mID; setWeight(getDefaultWeight(), FALSE ); @@ -227,7 +227,7 @@ BOOL LLVisualParam::parseData(LLXmlTreeNode *node) info->parseXml(node); if (!setInfo(info)) - return FALSE; + return false; return true; } -- cgit v1.2.3 From 1839def9dc6064a865f6cd05d1509358a53ac9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20N=C3=A6sbye=20Christensen?= Date: Sun, 11 Feb 2024 16:50:22 +0100 Subject: even more misc: BOOL (int) to real bool --- indra/llcharacter/llvisualparam.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/llcharacter/llvisualparam.cpp') diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp index e19ef19e33..2255191e59 100644 --- a/indra/llcharacter/llvisualparam.cpp +++ b/indra/llcharacter/llvisualparam.cpp @@ -333,7 +333,7 @@ void LLVisualParam::stopAnimating() } //virtual -BOOL LLVisualParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params) +bool LLVisualParam::linkDrivenParams(visual_param_mapper mapper, bool only_cross_params) { // nothing to do for non-driver parameters return true; -- cgit v1.2.3 From 9e854b697a06abed2a0917fb6120445f176764f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20N=C3=A6sbye=20Christensen?= Date: Fri, 16 Feb 2024 19:29:51 +0100 Subject: misc: BOOL to bool --- indra/llcharacter/llvisualparam.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'indra/llcharacter/llvisualparam.cpp') diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp index 2255191e59..5930a28ee8 100644 --- a/indra/llcharacter/llvisualparam.cpp +++ b/indra/llcharacter/llvisualparam.cpp @@ -164,8 +164,8 @@ LLVisualParam::LLVisualParam() mLastWeight( 0.f ), mNext( NULL ), mTargetWeight( 0.f ), - mIsAnimating( FALSE ), - mIsDummy(FALSE), + mIsAnimating( false ), + mIsDummy(false), mID( -1 ), mInfo( 0 ), mParamLocation(LOC_UNKNOWN) @@ -207,21 +207,21 @@ LLVisualParam::~LLVisualParam() // setInfo() //----------------------------------------------------------------------------- -BOOL LLVisualParam::setInfo(LLVisualParamInfo *info) +bool LLVisualParam::setInfo(LLVisualParamInfo *info) { llassert(mInfo == NULL); if (info->mID < 0) return false; mInfo = info; mID = info->mID; - setWeight(getDefaultWeight(), FALSE ); + setWeight(getDefaultWeight(), false ); return true; } //----------------------------------------------------------------------------- // parseData() //----------------------------------------------------------------------------- -BOOL LLVisualParam::parseData(LLXmlTreeNode *node) +bool LLVisualParam::parseData(LLXmlTreeNode *node) { LLVisualParamInfo *info = new LLVisualParamInfo; @@ -282,7 +282,7 @@ void LLVisualParam::setAnimationTarget(F32 target_value) { mTargetWeight = target_value; } - mIsAnimating = TRUE; + mIsAnimating = true; if (mNext) { @@ -327,7 +327,7 @@ void LLVisualParam::stopAnimating() { if (mIsAnimating && isTweakable()) { - mIsAnimating = FALSE; + mIsAnimating = false; setWeight(mTargetWeight); } } -- cgit v1.2.3 From e2e37cced861b98de8c1a7c9c0d3a50d2d90e433 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 22 May 2024 21:25:21 +0200 Subject: Fix line endlings --- indra/llcharacter/llvisualparam.cpp | 752 ++++++++++++++++++------------------ 1 file changed, 376 insertions(+), 376 deletions(-) (limited to 'indra/llcharacter/llvisualparam.cpp') diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp index 7a5c2654be..105b31de65 100644 --- a/indra/llcharacter/llvisualparam.cpp +++ b/indra/llcharacter/llvisualparam.cpp @@ -1,376 +1,376 @@ -/** - * @file llvisualparam.cpp - * @brief Implementation of LLPolyMesh class. - * - * $LicenseInfo:firstyear=2001&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -//----------------------------------------------------------------------------- -// Header Files -//----------------------------------------------------------------------------- -#include "linden_common.h" - -#include "llvisualparam.h" - -//----------------------------------------------------------------------------- -// LLVisualParamInfo() -//----------------------------------------------------------------------------- -LLVisualParamInfo::LLVisualParamInfo() - : - mID( -1 ), - mGroup( VISUAL_PARAM_GROUP_TWEAKABLE ), - mMinWeight( 0.f ), - mMaxWeight( 1.f ), - mDefaultWeight( 0.f ), - mSex( SEX_BOTH ) -{ -} - -//----------------------------------------------------------------------------- -// parseXml() -//----------------------------------------------------------------------------- -bool LLVisualParamInfo::parseXml(LLXmlTreeNode *node) -{ - // attribute: id - static LLStdStringHandle id_string = LLXmlTree::addAttributeString("id"); - node->getFastAttributeS32( id_string, mID ); - - // attribute: group - U32 group = 0; - static LLStdStringHandle group_string = LLXmlTree::addAttributeString("group"); - if( node->getFastAttributeU32( group_string, group ) ) - { - if( group < NUM_VISUAL_PARAM_GROUPS ) - { - mGroup = (EVisualParamGroup)group; - } - } - - // attribute: value_min, value_max - static LLStdStringHandle value_min_string = LLXmlTree::addAttributeString("value_min"); - static LLStdStringHandle value_max_string = LLXmlTree::addAttributeString("value_max"); - node->getFastAttributeF32( value_min_string, mMinWeight ); - node->getFastAttributeF32( value_max_string, mMaxWeight ); - - // attribute: value_default - F32 default_weight = 0; - static LLStdStringHandle value_default_string = LLXmlTree::addAttributeString("value_default"); - if( node->getFastAttributeF32( value_default_string, default_weight ) ) - { - mDefaultWeight = llclamp( default_weight, mMinWeight, mMaxWeight ); - if( default_weight != mDefaultWeight ) - { - LL_WARNS() << "value_default attribute is out of range in node " << mName << " " << default_weight << LL_ENDL; - } - } - - // attribute: sex - std::string sex = "both"; - static LLStdStringHandle sex_string = LLXmlTree::addAttributeString("sex"); - node->getFastAttributeString( sex_string, sex ); // optional - if( sex == "both" ) - { - mSex = SEX_BOTH; - } - else if( sex == "male" ) - { - mSex = SEX_MALE; - } - else if( sex == "female" ) - { - mSex = SEX_FEMALE; - } - else - { - LL_WARNS() << "Avatar file: has invalid sex attribute: " << sex << LL_ENDL; - return false; - } - - // attribute: name - static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name"); - if( !node->getFastAttributeString( name_string, mName ) ) - { - LL_WARNS() << "Avatar file: is missing name attribute" << LL_ENDL; - return false; - } - - // attribute: label - static LLStdStringHandle label_string = LLXmlTree::addAttributeString("label"); - if( !node->getFastAttributeString( label_string, mDisplayName ) ) - { - mDisplayName = mName; - } - - // JC - make sure the display name includes the capitalization in the XML file, - // not the lowercased version. - LLStringUtil::toLower(mName); - - // attribute: label_min - static LLStdStringHandle label_min_string = LLXmlTree::addAttributeString("label_min"); - if( !node->getFastAttributeString( label_min_string, mMinName ) ) - { - mMinName = "Less"; - } - - // attribute: label_max - static LLStdStringHandle label_max_string = LLXmlTree::addAttributeString("label_max"); - if( !node->getFastAttributeString( label_max_string, mMaxName ) ) - { - mMaxName = "More"; - } - - return true; -} - -//virtual -void LLVisualParamInfo::toStream(std::ostream &out) -{ - out << mID << "\t"; - out << mName << "\t"; - out << mDisplayName << "\t"; - out << mMinName << "\t"; - out << mMaxName << "\t"; - out << mGroup << "\t"; - out << mMinWeight << "\t"; - out << mMaxWeight << "\t"; - out << mDefaultWeight << "\t"; - out << mSex << "\t"; -} - -//----------------------------------------------------------------------------- -// LLVisualParam() -//----------------------------------------------------------------------------- -LLVisualParam::LLVisualParam() - : mCurWeight( 0.f ), - mLastWeight( 0.f ), - mNext( NULL ), - mTargetWeight( 0.f ), - mIsAnimating( false ), - mIsDummy(false), - mID( -1 ), - mInfo( 0 ), - mParamLocation(LOC_UNKNOWN) -{ -} - -//----------------------------------------------------------------------------- -// LLVisualParam() -//----------------------------------------------------------------------------- -LLVisualParam::LLVisualParam(const LLVisualParam& pOther) - : mCurWeight(pOther.mCurWeight), - mLastWeight(pOther.mLastWeight), - mNext(pOther.mNext), - mTargetWeight(pOther.mTargetWeight), - mIsAnimating(pOther.mIsAnimating), - mIsDummy(pOther.mIsDummy), - mID(pOther.mID), - mInfo(pOther.mInfo), - mParamLocation(pOther.mParamLocation) -{ -} - -//----------------------------------------------------------------------------- -// ~LLVisualParam() -//----------------------------------------------------------------------------- -LLVisualParam::~LLVisualParam() -{ - delete mNext; - mNext = NULL; -} - -/* -//============================================================================= -// These virtual functions should always be overridden, -// but are included here for use as templates -//============================================================================= - -//----------------------------------------------------------------------------- -// setInfo() -//----------------------------------------------------------------------------- - -bool LLVisualParam::setInfo(LLVisualParamInfo *info) -{ - llassert(mInfo == NULL); - if (info->mID < 0) - return false; - mInfo = info; - mID = info->mID; - setWeight(getDefaultWeight(), false ); - return true; -} - -//----------------------------------------------------------------------------- -// parseData() -//----------------------------------------------------------------------------- -bool LLVisualParam::parseData(LLXmlTreeNode *node) -{ - LLVisualParamInfo *info = new LLVisualParamInfo; - - info->parseXml(node); - if (!setInfo(info)) - return false; - - return true; -} -*/ - -//----------------------------------------------------------------------------- -// setWeight() -//----------------------------------------------------------------------------- -void LLVisualParam::setWeight(F32 weight) -{ - if (mIsAnimating) - { - //RN: allow overshoot - mCurWeight = weight; - } - else if (mInfo) - { - mCurWeight = llclamp(weight, mInfo->mMinWeight, mInfo->mMaxWeight); - } - else - { - mCurWeight = weight; - } - - if (mNext) - { - mNext->setWeight(weight); - } -} - -//----------------------------------------------------------------------------- -// setAnimationTarget() -//----------------------------------------------------------------------------- -void LLVisualParam::setAnimationTarget(F32 target_value) -{ - // don't animate dummy parameters - if (mIsDummy) - { - setWeight(target_value); - mTargetWeight = mCurWeight; - return; - } - - if (mInfo) - { - if (isTweakable()) - { - mTargetWeight = llclamp(target_value, mInfo->mMinWeight, mInfo->mMaxWeight); - } - } - else - { - mTargetWeight = target_value; - } - mIsAnimating = true; - - if (mNext) - { - mNext->setAnimationTarget(target_value); - } -} - -//----------------------------------------------------------------------------- -// setNextParam() -//----------------------------------------------------------------------------- -void LLVisualParam::setNextParam( LLVisualParam *next ) -{ - llassert(!mNext); - llassert(getWeight() == getDefaultWeight()); // need to establish mNext before we start changing values on this, else initial value won't get mirrored (we can fix that, but better to forbid this pattern) - mNext = next; -} - -//----------------------------------------------------------------------------- -// clearNextParam() -//----------------------------------------------------------------------------- -void LLVisualParam::clearNextParam() -{ - mNext = NULL; -} - -//----------------------------------------------------------------------------- -// animate() -//----------------------------------------------------------------------------- -void LLVisualParam::animate( F32 delta) -{ - if (mIsAnimating) - { - F32 new_weight = ((mTargetWeight - mCurWeight) * delta) + mCurWeight; - setWeight(new_weight); - } -} - -//----------------------------------------------------------------------------- -// stopAnimating() -//----------------------------------------------------------------------------- -void LLVisualParam::stopAnimating() -{ - if (mIsAnimating && isTweakable()) - { - mIsAnimating = false; - setWeight(mTargetWeight); - } -} - -//virtual -bool LLVisualParam::linkDrivenParams(visual_param_mapper mapper, bool only_cross_params) -{ - // nothing to do for non-driver parameters - return true; -} - -//virtual -void LLVisualParam::resetDrivenParams() -{ - // nothing to do for non-driver parameters - return; -} - -const std::string param_location_name(const EParamLocation& loc) -{ - switch (loc) - { - case LOC_UNKNOWN: return "unknown"; - case LOC_AV_SELF: return "self"; - case LOC_AV_OTHER: return "other"; - case LOC_WEARABLE: return "wearable"; - default: return "error"; - } -} - -void LLVisualParam::setParamLocation(EParamLocation loc) -{ - if (mParamLocation == LOC_UNKNOWN || loc == LOC_UNKNOWN) - { - mParamLocation = loc; - } - else if (mParamLocation == loc) - { - // no action - } - else - { - LL_DEBUGS() << "param location is already " << mParamLocation << ", not slamming to " << loc << LL_ENDL; - } -} - +/** + * @file llvisualparam.cpp + * @brief Implementation of LLPolyMesh class. + * + * $LicenseInfo:firstyear=2001&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +//----------------------------------------------------------------------------- +// Header Files +//----------------------------------------------------------------------------- +#include "linden_common.h" + +#include "llvisualparam.h" + +//----------------------------------------------------------------------------- +// LLVisualParamInfo() +//----------------------------------------------------------------------------- +LLVisualParamInfo::LLVisualParamInfo() + : + mID( -1 ), + mGroup( VISUAL_PARAM_GROUP_TWEAKABLE ), + mMinWeight( 0.f ), + mMaxWeight( 1.f ), + mDefaultWeight( 0.f ), + mSex( SEX_BOTH ) +{ +} + +//----------------------------------------------------------------------------- +// parseXml() +//----------------------------------------------------------------------------- +bool LLVisualParamInfo::parseXml(LLXmlTreeNode *node) +{ + // attribute: id + static LLStdStringHandle id_string = LLXmlTree::addAttributeString("id"); + node->getFastAttributeS32( id_string, mID ); + + // attribute: group + U32 group = 0; + static LLStdStringHandle group_string = LLXmlTree::addAttributeString("group"); + if( node->getFastAttributeU32( group_string, group ) ) + { + if( group < NUM_VISUAL_PARAM_GROUPS ) + { + mGroup = (EVisualParamGroup)group; + } + } + + // attribute: value_min, value_max + static LLStdStringHandle value_min_string = LLXmlTree::addAttributeString("value_min"); + static LLStdStringHandle value_max_string = LLXmlTree::addAttributeString("value_max"); + node->getFastAttributeF32( value_min_string, mMinWeight ); + node->getFastAttributeF32( value_max_string, mMaxWeight ); + + // attribute: value_default + F32 default_weight = 0; + static LLStdStringHandle value_default_string = LLXmlTree::addAttributeString("value_default"); + if( node->getFastAttributeF32( value_default_string, default_weight ) ) + { + mDefaultWeight = llclamp( default_weight, mMinWeight, mMaxWeight ); + if( default_weight != mDefaultWeight ) + { + LL_WARNS() << "value_default attribute is out of range in node " << mName << " " << default_weight << LL_ENDL; + } + } + + // attribute: sex + std::string sex = "both"; + static LLStdStringHandle sex_string = LLXmlTree::addAttributeString("sex"); + node->getFastAttributeString( sex_string, sex ); // optional + if( sex == "both" ) + { + mSex = SEX_BOTH; + } + else if( sex == "male" ) + { + mSex = SEX_MALE; + } + else if( sex == "female" ) + { + mSex = SEX_FEMALE; + } + else + { + LL_WARNS() << "Avatar file: has invalid sex attribute: " << sex << LL_ENDL; + return false; + } + + // attribute: name + static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name"); + if( !node->getFastAttributeString( name_string, mName ) ) + { + LL_WARNS() << "Avatar file: is missing name attribute" << LL_ENDL; + return false; + } + + // attribute: label + static LLStdStringHandle label_string = LLXmlTree::addAttributeString("label"); + if( !node->getFastAttributeString( label_string, mDisplayName ) ) + { + mDisplayName = mName; + } + + // JC - make sure the display name includes the capitalization in the XML file, + // not the lowercased version. + LLStringUtil::toLower(mName); + + // attribute: label_min + static LLStdStringHandle label_min_string = LLXmlTree::addAttributeString("label_min"); + if( !node->getFastAttributeString( label_min_string, mMinName ) ) + { + mMinName = "Less"; + } + + // attribute: label_max + static LLStdStringHandle label_max_string = LLXmlTree::addAttributeString("label_max"); + if( !node->getFastAttributeString( label_max_string, mMaxName ) ) + { + mMaxName = "More"; + } + + return true; +} + +//virtual +void LLVisualParamInfo::toStream(std::ostream &out) +{ + out << mID << "\t"; + out << mName << "\t"; + out << mDisplayName << "\t"; + out << mMinName << "\t"; + out << mMaxName << "\t"; + out << mGroup << "\t"; + out << mMinWeight << "\t"; + out << mMaxWeight << "\t"; + out << mDefaultWeight << "\t"; + out << mSex << "\t"; +} + +//----------------------------------------------------------------------------- +// LLVisualParam() +//----------------------------------------------------------------------------- +LLVisualParam::LLVisualParam() + : mCurWeight( 0.f ), + mLastWeight( 0.f ), + mNext( NULL ), + mTargetWeight( 0.f ), + mIsAnimating( false ), + mIsDummy(false), + mID( -1 ), + mInfo( 0 ), + mParamLocation(LOC_UNKNOWN) +{ +} + +//----------------------------------------------------------------------------- +// LLVisualParam() +//----------------------------------------------------------------------------- +LLVisualParam::LLVisualParam(const LLVisualParam& pOther) + : mCurWeight(pOther.mCurWeight), + mLastWeight(pOther.mLastWeight), + mNext(pOther.mNext), + mTargetWeight(pOther.mTargetWeight), + mIsAnimating(pOther.mIsAnimating), + mIsDummy(pOther.mIsDummy), + mID(pOther.mID), + mInfo(pOther.mInfo), + mParamLocation(pOther.mParamLocation) +{ +} + +//----------------------------------------------------------------------------- +// ~LLVisualParam() +//----------------------------------------------------------------------------- +LLVisualParam::~LLVisualParam() +{ + delete mNext; + mNext = NULL; +} + +/* +//============================================================================= +// These virtual functions should always be overridden, +// but are included here for use as templates +//============================================================================= + +//----------------------------------------------------------------------------- +// setInfo() +//----------------------------------------------------------------------------- + +bool LLVisualParam::setInfo(LLVisualParamInfo *info) +{ + llassert(mInfo == NULL); + if (info->mID < 0) + return false; + mInfo = info; + mID = info->mID; + setWeight(getDefaultWeight(), false ); + return true; +} + +//----------------------------------------------------------------------------- +// parseData() +//----------------------------------------------------------------------------- +bool LLVisualParam::parseData(LLXmlTreeNode *node) +{ + LLVisualParamInfo *info = new LLVisualParamInfo; + + info->parseXml(node); + if (!setInfo(info)) + return false; + + return true; +} +*/ + +//----------------------------------------------------------------------------- +// setWeight() +//----------------------------------------------------------------------------- +void LLVisualParam::setWeight(F32 weight) +{ + if (mIsAnimating) + { + //RN: allow overshoot + mCurWeight = weight; + } + else if (mInfo) + { + mCurWeight = llclamp(weight, mInfo->mMinWeight, mInfo->mMaxWeight); + } + else + { + mCurWeight = weight; + } + + if (mNext) + { + mNext->setWeight(weight); + } +} + +//----------------------------------------------------------------------------- +// setAnimationTarget() +//----------------------------------------------------------------------------- +void LLVisualParam::setAnimationTarget(F32 target_value) +{ + // don't animate dummy parameters + if (mIsDummy) + { + setWeight(target_value); + mTargetWeight = mCurWeight; + return; + } + + if (mInfo) + { + if (isTweakable()) + { + mTargetWeight = llclamp(target_value, mInfo->mMinWeight, mInfo->mMaxWeight); + } + } + else + { + mTargetWeight = target_value; + } + mIsAnimating = true; + + if (mNext) + { + mNext->setAnimationTarget(target_value); + } +} + +//----------------------------------------------------------------------------- +// setNextParam() +//----------------------------------------------------------------------------- +void LLVisualParam::setNextParam( LLVisualParam *next ) +{ + llassert(!mNext); + llassert(getWeight() == getDefaultWeight()); // need to establish mNext before we start changing values on this, else initial value won't get mirrored (we can fix that, but better to forbid this pattern) + mNext = next; +} + +//----------------------------------------------------------------------------- +// clearNextParam() +//----------------------------------------------------------------------------- +void LLVisualParam::clearNextParam() +{ + mNext = NULL; +} + +//----------------------------------------------------------------------------- +// animate() +//----------------------------------------------------------------------------- +void LLVisualParam::animate( F32 delta) +{ + if (mIsAnimating) + { + F32 new_weight = ((mTargetWeight - mCurWeight) * delta) + mCurWeight; + setWeight(new_weight); + } +} + +//----------------------------------------------------------------------------- +// stopAnimating() +//----------------------------------------------------------------------------- +void LLVisualParam::stopAnimating() +{ + if (mIsAnimating && isTweakable()) + { + mIsAnimating = false; + setWeight(mTargetWeight); + } +} + +//virtual +bool LLVisualParam::linkDrivenParams(visual_param_mapper mapper, bool only_cross_params) +{ + // nothing to do for non-driver parameters + return true; +} + +//virtual +void LLVisualParam::resetDrivenParams() +{ + // nothing to do for non-driver parameters + return; +} + +const std::string param_location_name(const EParamLocation& loc) +{ + switch (loc) + { + case LOC_UNKNOWN: return "unknown"; + case LOC_AV_SELF: return "self"; + case LOC_AV_OTHER: return "other"; + case LOC_WEARABLE: return "wearable"; + default: return "error"; + } +} + +void LLVisualParam::setParamLocation(EParamLocation loc) +{ + if (mParamLocation == LOC_UNKNOWN || loc == LOC_UNKNOWN) + { + mParamLocation = loc; + } + else if (mParamLocation == loc) + { + // no action + } + else + { + LL_DEBUGS() << "param location is already " << mParamLocation << ", not slamming to " << loc << LL_ENDL; + } +} + -- cgit v1.2.3