Skip to content
Snippets Groups Projects
Commit ecd11724 authored by andreykproductengine's avatar andreykproductengine
Browse files

Backed out changeset: d3ffc46e9e92

parent 9e73d048
No related branches found
No related tags found
No related merge requests found
...@@ -195,7 +195,7 @@ LLJointStateBlender::~LLJointStateBlender() ...@@ -195,7 +195,7 @@ LLJointStateBlender::~LLJointStateBlender()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// addJointState() // addJointState()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
BOOL LLJointStateBlender::addJointState(const LLPointer<LLJointState>& joint_state, LLUUID source_id, S32 priority, BOOL additive_blend) BOOL LLJointStateBlender::addJointState(const LLPointer<LLJointState>& joint_state, S32 priority, BOOL additive_blend)
{ {
llassert(joint_state); llassert(joint_state);
...@@ -210,26 +210,23 @@ BOOL LLJointStateBlender::addJointState(const LLPointer<LLJointState>& joint_sta ...@@ -210,26 +210,23 @@ BOOL LLJointStateBlender::addJointState(const LLPointer<LLJointState>& joint_sta
mJointStates[i] = joint_state; mJointStates[i] = joint_state;
mPriorities[i] = priority; mPriorities[i] = priority;
mAdditiveBlends[i] = additive_blend; mAdditiveBlends[i] = additive_blend;
mMoutionIds[i] = source_id;
return TRUE; return TRUE;
} }
else if (priority > mPriorities[i] || (priority == mPriorities[i] && source_id > mMoutionIds[i])) else if (priority > mPriorities[i])
{ {
// we're at a higher priority than the current joint state in this slot // we're at a higher priority than the current joint state in this slot
// so shift everyone over // so shift everyone over
// previous joint states (newer motions) with same priority and source motion should stay in place // previous joint states (newer motions) with same priority should stay in place
for (S32 j = JSB_NUM_JOINT_STATES - 1; j > i; j--) for (S32 j = JSB_NUM_JOINT_STATES - 1; j > i; j--)
{ {
mJointStates[j] = mJointStates[j - 1]; mJointStates[j] = mJointStates[j - 1];
mPriorities[j] = mPriorities[j - 1]; mPriorities[j] = mPriorities[j - 1];
mAdditiveBlends[j] = mAdditiveBlends[j - 1]; mAdditiveBlends[j] = mAdditiveBlends[j - 1];
mMoutionIds[j] = mMoutionIds[j - 1];
} }
// now store ourselves in this slot // now store ourselves in this slot
mJointStates[i] = joint_state; mJointStates[i] = joint_state;
mPriorities[i] = priority; mPriorities[i] = priority;
mAdditiveBlends[i] = additive_blend; mAdditiveBlends[i] = additive_blend;
mMoutionIds[i] = source_id;
return TRUE; return TRUE;
} }
} }
...@@ -492,11 +489,11 @@ BOOL LLPoseBlender::addMotion(LLMotion* motion) ...@@ -492,11 +489,11 @@ BOOL LLPoseBlender::addMotion(LLMotion* motion)
if (jsp->getPriority() == LLJoint::USE_MOTION_PRIORITY) if (jsp->getPriority() == LLJoint::USE_MOTION_PRIORITY)
{ {
joint_blender->addJointState(jsp, motion->getID(), motion->getPriority(), motion->getBlendType() == LLMotion::ADDITIVE_BLEND); joint_blender->addJointState(jsp, motion->getPriority(), motion->getBlendType() == LLMotion::ADDITIVE_BLEND);
} }
else else
{ {
joint_blender->addJointState(jsp, motion->getID(), jsp->getPriority(), motion->getBlendType() == LLMotion::ADDITIVE_BLEND); joint_blender->addJointState(jsp, jsp->getPriority(), motion->getBlendType() == LLMotion::ADDITIVE_BLEND);
} }
// add it to our list of active blenders // add it to our list of active blenders
......
...@@ -85,13 +85,12 @@ class LLJointStateBlender ...@@ -85,13 +85,12 @@ class LLJointStateBlender
protected: protected:
LLPointer<LLJointState> mJointStates[JSB_NUM_JOINT_STATES]; LLPointer<LLJointState> mJointStates[JSB_NUM_JOINT_STATES];
S32 mPriorities[JSB_NUM_JOINT_STATES]; S32 mPriorities[JSB_NUM_JOINT_STATES];
LLUUID mMoutionIds[JSB_NUM_JOINT_STATES];
BOOL mAdditiveBlends[JSB_NUM_JOINT_STATES]; BOOL mAdditiveBlends[JSB_NUM_JOINT_STATES];
public: public:
LLJointStateBlender(); LLJointStateBlender();
~LLJointStateBlender(); ~LLJointStateBlender();
void blendJointStates(BOOL apply_now = TRUE); void blendJointStates(BOOL apply_now = TRUE);
BOOL addJointState(const LLPointer<LLJointState>& joint_state, LLUUID source_id, S32 priority, BOOL additive_blend); BOOL addJointState(const LLPointer<LLJointState>& joint_state, S32 priority, BOOL additive_blend);
void interpolate(F32 u); void interpolate(F32 u);
void clear(); void clear();
void resetCachedJoint(); void resetCachedJoint();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment