summaryrefslogtreecommitdiff
path: root/indra/llcharacter
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-08-05 12:04:29 -0700
committerGraham Linden <graham@lindenlab.com>2019-08-05 12:04:29 -0700
commit76128c4357bc36acd54575153516c6d337fe4263 (patch)
tree7910d8415bf394fd15f5dca35dd3779b39acc15a /indra/llcharacter
parent9bb6da1e76efa951da7e740f80b1e4e72e67b878 (diff)
SL-10566 Use vector for some high-traffic, low-item count containers instead of list.
Provide method of storing joint indices sep from weight data for faster runtime processing.
Diffstat (limited to 'indra/llcharacter')
-rw-r--r--indra/llcharacter/llcharacter.cpp2
-rw-r--r--indra/llcharacter/lljoint.cpp14
-rw-r--r--indra/llcharacter/lljoint.h4
-rw-r--r--indra/llcharacter/llkeyframemotion.cpp2
4 files changed, 11 insertions, 11 deletions
diff --git a/indra/llcharacter/llcharacter.cpp b/indra/llcharacter/llcharacter.cpp
index 4df975ecc5..b764ef0c7e 100644
--- a/indra/llcharacter/llcharacter.cpp
+++ b/indra/llcharacter/llcharacter.cpp
@@ -252,7 +252,7 @@ void LLCharacter::dumpCharacter( LLJoint* joint )
LL_INFOS() << "DEBUG: " << joint->getName() << " (" << (joint->getParent()?joint->getParent()->getName():std::string("ROOT")) << ")" << LL_ENDL;
// recurse
- for (LLJoint::child_list_t::iterator iter = joint->mChildren.begin();
+ for (LLJoint::joints_t::iterator iter = joint->mChildren.begin();
iter != joint->mChildren.end(); ++iter)
{
LLJoint* child_joint = *iter;
diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp
index e2f512f86e..36ecf8cb4b 100644
--- a/indra/llcharacter/lljoint.cpp
+++ b/indra/llcharacter/lljoint.cpp
@@ -209,7 +209,7 @@ void LLJoint::touch(U32 flags)
child_flags |= POSITION_DIRTY;
}
- for (child_list_t::iterator iter = mChildren.begin();
+ for (joints_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLJoint* joint = *iter;
@@ -251,7 +251,7 @@ LLJoint *LLJoint::findJoint( const std::string &name )
if (name == getName())
return this;
- for (child_list_t::iterator iter = mChildren.begin();
+ for (joints_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLJoint* joint = *iter;
@@ -286,7 +286,7 @@ void LLJoint::addChild(LLJoint* joint)
//--------------------------------------------------------------------
void LLJoint::removeChild(LLJoint* joint)
{
- child_list_t::iterator iter = std::find(mChildren.begin(), mChildren.end(), joint);
+ joints_t::iterator iter = std::find(mChildren.begin(), mChildren.end(), joint);
if (iter != mChildren.end())
{
mChildren.erase(iter);
@@ -303,10 +303,10 @@ void LLJoint::removeChild(LLJoint* joint)
//--------------------------------------------------------------------
void LLJoint::removeAllChildren()
{
- for (child_list_t::iterator iter = mChildren.begin();
+ for (joints_t::iterator iter = mChildren.begin();
iter != mChildren.end();)
{
- child_list_t::iterator curiter = iter++;
+ joints_t::iterator curiter = iter++;
LLJoint* joint = *curiter;
mChildren.erase(curiter);
joint->mXform.setParent(NULL);
@@ -985,7 +985,7 @@ void LLJoint::updateWorldMatrixChildren()
{
updateWorldMatrix();
}
- for (child_list_t::iterator iter = mChildren.begin();
+ for (joints_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLJoint* joint = *iter;
@@ -1031,7 +1031,7 @@ void LLJoint::clampRotation(LLQuaternion old_rot, LLQuaternion new_rot)
{
LLVector3 main_axis(1.f, 0.f, 0.f);
- for (child_list_t::iterator iter = mChildren.begin();
+ for (joints_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLJoint* joint = *iter;
diff --git a/indra/llcharacter/lljoint.h b/indra/llcharacter/lljoint.h
index 8112d246f2..aa997a4cf7 100644
--- a/indra/llcharacter/lljoint.h
+++ b/indra/llcharacter/lljoint.h
@@ -139,8 +139,8 @@ public:
S32 mJointNum;
// child joints
- typedef std::list<LLJoint*> child_list_t;
- child_list_t mChildren;
+ typedef std::vector<LLJoint*> joints_t;
+ joints_t mChildren;
// debug statics
static S32 sNumTouches;
diff --git a/indra/llcharacter/llkeyframemotion.cpp b/indra/llcharacter/llkeyframemotion.cpp
index 5d323ed5d6..cde38c8091 100644
--- a/indra/llcharacter/llkeyframemotion.cpp
+++ b/indra/llcharacter/llkeyframemotion.cpp
@@ -2321,7 +2321,7 @@ void LLKeyframeMotion::onLoadComplete(LLVFS *vfs,
LLCharacter* character = *char_iter;
// look for an existing instance of this motion
- LLKeyframeMotion* motionp = dynamic_cast<LLKeyframeMotion*> (character->findMotion(asset_uuid));
+ LLKeyframeMotion* motionp = static_cast<LLKeyframeMotion*> (character->findMotion(asset_uuid));
if (motionp)
{
if (0 == status)