Speed up of particular inefficient part related to motions.
For these standard motions, the viewer likes to very frequently flood-call startMotion/stopMotion sometimes, which at the very least needs a LLUUID lookup in a std::map. In particular, this is done for two of them for every avatar in the sim every frame. This code makes it possible to test if that makes sense by merely doing a bit test. Conflicts: indra/llcharacter/llkeyframemotion.h
This commit is contained in:
@@ -146,6 +146,7 @@ public:
|
|||||||
|
|
||||||
// is this motion active?
|
// is this motion active?
|
||||||
BOOL isMotionActive( const LLUUID& id );
|
BOOL isMotionActive( const LLUUID& id );
|
||||||
|
bool isMotionActive(U32 bit) const { return mMotionController.isactive(bit); }
|
||||||
|
|
||||||
// Event handler for motion deactivation.
|
// Event handler for motion deactivation.
|
||||||
// Called when a motion has completely stopped and has been deactivated.
|
// Called when a motion has completely stopped and has been deactivated.
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ S32 LLEditingMotion::sHandPosePriority = 3;
|
|||||||
// LLEditingMotion()
|
// LLEditingMotion()
|
||||||
// Class Constructor
|
// Class Constructor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLEditingMotion::LLEditingMotion( const LLUUID &id) : LLMotion(id)
|
LLEditingMotion::LLEditingMotion(LLUUID const& id, LLMotionController& controller) : AIMaskedMotion(id, controller, ANIM_AGENT_EDITING)
|
||||||
{
|
{
|
||||||
mCharacter = NULL;
|
mCharacter = NULL;
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@ BOOL LLEditingMotion::onActivate()
|
|||||||
mShoulderJoint.setRotation( mShoulderState->getJoint()->getRotation() );
|
mShoulderJoint.setRotation( mShoulderState->getJoint()->getRotation() );
|
||||||
mElbowJoint.setRotation( mElbowState->getJoint()->getRotation() );
|
mElbowJoint.setRotation( mElbowState->getJoint()->getRotation() );
|
||||||
|
|
||||||
return TRUE;
|
return AIMaskedMotion::onActivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -256,12 +256,4 @@ BOOL LLEditingMotion::onUpdate(F32 time, U8* joint_mask)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// LLEditingMotion::onDeactivate()
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
void LLEditingMotion::onDeactivate()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// End
|
// End
|
||||||
|
|||||||
@@ -49,11 +49,11 @@
|
|||||||
// class LLEditingMotion
|
// class LLEditingMotion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLEditingMotion :
|
class LLEditingMotion :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLEditingMotion(const LLUUID &id);
|
LLEditingMotion(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
virtual ~LLEditingMotion();
|
virtual ~LLEditingMotion();
|
||||||
@@ -65,7 +65,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLEditingMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLEditingMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -107,9 +107,6 @@ public:
|
|||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||||
|
|
||||||
// called when a motion is deactivated
|
|
||||||
virtual void onDeactivate();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// joint states to be animated
|
// joint states to be animated
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ const F32 HAND_MORPH_BLEND_TIME = 0.2f;
|
|||||||
// LLHandMotion()
|
// LLHandMotion()
|
||||||
// Class Constructor
|
// Class Constructor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLHandMotion::LLHandMotion(const LLUUID &id) : LLMotion(id)
|
LLHandMotion::LLHandMotion(LLUUID const& id, LLMotionController& controller) : AIMaskedMotion(id, controller, ANIM_AGENT_HAND_MOTION)
|
||||||
{
|
{
|
||||||
mCharacter = NULL;
|
mCharacter = NULL;
|
||||||
mLastTime = 0.f;
|
mLastTime = 0.f;
|
||||||
@@ -112,7 +112,7 @@ BOOL LLHandMotion::onActivate()
|
|||||||
mCharacter->setVisualParamWeight(gHandPoseNames[mCurrentPose], 1.f);
|
mCharacter->setVisualParamWeight(gHandPoseNames[mCurrentPose], 1.f);
|
||||||
mCharacter->updateVisualParams();
|
mCharacter->updateVisualParams();
|
||||||
}
|
}
|
||||||
return TRUE;
|
return AIMaskedMotion::onActivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -235,14 +235,6 @@ BOOL LLHandMotion::onUpdate(F32 time, U8* joint_mask)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// LLHandMotion::onDeactivate()
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
void LLHandMotion::onDeactivate()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LLHandMotion::getHandPoseName()
|
// LLHandMotion::getHandPoseName()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
// class LLHandMotion
|
// class LLHandMotion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLHandMotion :
|
class LLHandMotion :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef enum e_hand_pose
|
typedef enum e_hand_pose
|
||||||
@@ -68,7 +68,7 @@ public:
|
|||||||
} eHandPose;
|
} eHandPose;
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
LLHandMotion(const LLUUID &id);
|
LLHandMotion(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
virtual ~LLHandMotion();
|
virtual ~LLHandMotion();
|
||||||
@@ -80,7 +80,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLHandMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLHandMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -122,9 +122,6 @@ public:
|
|||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||||
|
|
||||||
// called when a motion is deactivated
|
|
||||||
virtual void onDeactivate();
|
|
||||||
|
|
||||||
virtual BOOL canDeprecate() { return FALSE; }
|
virtual BOOL canDeprecate() { return FALSE; }
|
||||||
|
|
||||||
static std::string getHandPoseName(eHandPose pose);
|
static std::string getHandPoseName(eHandPose pose);
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ const F32 EYE_BLINK_TIME_DELTA = 0.005f; // time between one eye starting a blin
|
|||||||
// LLHeadRotMotion()
|
// LLHeadRotMotion()
|
||||||
// Class Constructor
|
// Class Constructor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLHeadRotMotion::LLHeadRotMotion(const LLUUID &id) :
|
LLHeadRotMotion::LLHeadRotMotion(LLUUID const& id, LLMotionController& controller) :
|
||||||
LLMotion(id),
|
AIMaskedMotion(id, controller, ANIM_AGENT_HEAD_ROT),
|
||||||
mCharacter(NULL),
|
mCharacter(NULL),
|
||||||
mTorsoJoint(NULL),
|
mTorsoJoint(NULL),
|
||||||
mHeadJoint(NULL)
|
mHeadJoint(NULL)
|
||||||
@@ -172,16 +172,6 @@ LLMotion::LLMotionInitStatus LLHeadRotMotion::onInitialize(LLCharacter *characte
|
|||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// LLHeadRotMotion::onActivate()
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
BOOL LLHeadRotMotion::onActivate()
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LLHeadRotMotion::onUpdate()
|
// LLHeadRotMotion::onUpdate()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -266,19 +256,11 @@ BOOL LLHeadRotMotion::onUpdate(F32 time, U8* joint_mask)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// LLHeadRotMotion::onDeactivate()
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
void LLHeadRotMotion::onDeactivate()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LLEyeMotion()
|
// LLEyeMotion()
|
||||||
// Class Constructor
|
// Class Constructor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLEyeMotion::LLEyeMotion(const LLUUID &id) : LLMotion(id)
|
LLEyeMotion::LLEyeMotion(LLUUID const& id, LLMotionController& controller) : AIMaskedMotion(id, controller, ANIM_AGENT_EYE)
|
||||||
{
|
{
|
||||||
mCharacter = NULL;
|
mCharacter = NULL;
|
||||||
mEyeJitterTime = 0.f;
|
mEyeJitterTime = 0.f;
|
||||||
@@ -346,16 +328,6 @@ LLMotion::LLMotionInitStatus LLEyeMotion::onInitialize(LLCharacter *character)
|
|||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// LLEyeMotion::onActivate()
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
BOOL LLEyeMotion::onActivate()
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LLEyeMotion::onUpdate()
|
// LLEyeMotion::onUpdate()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -536,6 +508,8 @@ void LLEyeMotion::onDeactivate()
|
|||||||
{
|
{
|
||||||
joint->setRotation(LLQuaternion::DEFAULT);
|
joint->setRotation(LLQuaternion::DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AIMaskedMotion::onDeactivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// End
|
// End
|
||||||
|
|||||||
@@ -46,11 +46,11 @@
|
|||||||
// class LLHeadRotMotion
|
// class LLHeadRotMotion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLHeadRotMotion :
|
class LLHeadRotMotion :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLHeadRotMotion(const LLUUID &id);
|
LLHeadRotMotion(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
virtual ~LLHeadRotMotion();
|
virtual ~LLHeadRotMotion();
|
||||||
@@ -62,7 +62,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLHeadRotMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLHeadRotMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -94,19 +94,11 @@ public:
|
|||||||
// must return true to indicate success and be available for activation
|
// must return true to indicate success and be available for activation
|
||||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||||
|
|
||||||
// called when a motion is activated
|
|
||||||
// must return TRUE to indicate success, or else
|
|
||||||
// it will be deactivated
|
|
||||||
virtual BOOL onActivate();
|
|
||||||
|
|
||||||
// called per time step
|
// called per time step
|
||||||
// must return TRUE while it is active, and
|
// must return TRUE while it is active, and
|
||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||||
|
|
||||||
// called when a motion is deactivated
|
|
||||||
virtual void onDeactivate();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// joint states to be animated
|
// joint states to be animated
|
||||||
@@ -129,11 +121,11 @@ public:
|
|||||||
// class LLEyeMotion
|
// class LLEyeMotion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLEyeMotion :
|
class LLEyeMotion :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLEyeMotion(const LLUUID &id);
|
LLEyeMotion(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
virtual ~LLEyeMotion();
|
virtual ~LLEyeMotion();
|
||||||
@@ -145,7 +137,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create( const LLUUID &id) { return new LLEyeMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLEyeMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -177,11 +169,6 @@ public:
|
|||||||
// must return true to indicate success and be available for activation
|
// must return true to indicate success and be available for activation
|
||||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||||
|
|
||||||
// called when a motion is activated
|
|
||||||
// must return TRUE to indicate success, or else
|
|
||||||
// it will be deactivated
|
|
||||||
virtual BOOL onActivate();
|
|
||||||
|
|
||||||
// called per time step
|
// called per time step
|
||||||
// must return TRUE while it is active, and
|
// must return TRUE while it is active, and
|
||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLKeyframeFallMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController&) { return new LLKeyframeFallMotion(id); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -468,7 +468,7 @@ LLKeyframeMotion::~LLKeyframeMotion()
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// create()
|
// create()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLMotion *LLKeyframeMotion::create(const LLUUID &id)
|
LLMotion* LLKeyframeMotion::create(LLUUID const& id, LLMotionController&)
|
||||||
{
|
{
|
||||||
return new LLKeyframeMotion(id);
|
return new LLKeyframeMotion(id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,7 @@
|
|||||||
class LLKeyframeDataCache;
|
class LLKeyframeDataCache;
|
||||||
class LLVFS;
|
class LLVFS;
|
||||||
class LLDataPacker;
|
class LLDataPacker;
|
||||||
|
class LLMotionController;
|
||||||
|
|
||||||
#define MIN_REQUIRED_PIXEL_AREA_KEYFRAME (40.f)
|
#define MIN_REQUIRED_PIXEL_AREA_KEYFRAME (40.f)
|
||||||
#define MAX_CHAIN_LENGTH (4)
|
#define MAX_CHAIN_LENGTH (4)
|
||||||
@@ -193,7 +194,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID& id);
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLKeyframeStandMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController&) { return new LLKeyframeStandMotion(id); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -138,8 +138,8 @@ BOOL LLKeyframeWalkMotion::onUpdate(F32 time, U8* joint_mask)
|
|||||||
// LLWalkAdjustMotion()
|
// LLWalkAdjustMotion()
|
||||||
// Class Constructor
|
// Class Constructor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLWalkAdjustMotion::LLWalkAdjustMotion(const LLUUID &id) :
|
LLWalkAdjustMotion::LLWalkAdjustMotion(LLUUID const& id, LLMotionController& controller) :
|
||||||
LLMotion(id),
|
AIMaskedMotion(id, controller, ANIM_AGENT_WALK_ADJUST),
|
||||||
mLastTime(0.f),
|
mLastTime(0.f),
|
||||||
mAnimSpeed(0.f),
|
mAnimSpeed(0.f),
|
||||||
mAdjustedSpeed(0.f),
|
mAdjustedSpeed(0.f),
|
||||||
@@ -193,7 +193,7 @@ BOOL LLWalkAdjustMotion::onActivate()
|
|||||||
F32 rightAnkleOffset = (mRightAnkleJoint->getWorldPosition() - mCharacter->getCharacterPosition()).magVec();
|
F32 rightAnkleOffset = (mRightAnkleJoint->getWorldPosition() - mCharacter->getCharacterPosition()).magVec();
|
||||||
mAnkleOffset = llmax(leftAnkleOffset, rightAnkleOffset);
|
mAnkleOffset = llmax(leftAnkleOffset, rightAnkleOffset);
|
||||||
|
|
||||||
return TRUE;
|
return AIMaskedMotion::onActivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -325,13 +325,14 @@ BOOL LLWalkAdjustMotion::onUpdate(F32 time, U8* joint_mask)
|
|||||||
void LLWalkAdjustMotion::onDeactivate()
|
void LLWalkAdjustMotion::onDeactivate()
|
||||||
{
|
{
|
||||||
mCharacter->removeAnimationData("Walk Speed");
|
mCharacter->removeAnimationData("Walk Speed");
|
||||||
|
AIMaskedMotion::onDeactivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LLFlyAdjustMotion::LLFlyAdjustMotion()
|
// LLFlyAdjustMotion::LLFlyAdjustMotion()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLFlyAdjustMotion::LLFlyAdjustMotion(const LLUUID &id)
|
LLFlyAdjustMotion::LLFlyAdjustMotion(LLUUID const& id, LLMotionController& controller)
|
||||||
: LLMotion(id),
|
: AIMaskedMotion(id, controller, ANIM_AGENT_FLY_ADJUST),
|
||||||
mRoll(0.f)
|
mRoll(0.f)
|
||||||
{
|
{
|
||||||
mName = "fly_adjust";
|
mName = "fly_adjust";
|
||||||
@@ -368,7 +369,7 @@ BOOL LLFlyAdjustMotion::onActivate()
|
|||||||
mPelvisState->setPosition(LLVector3::zero);
|
mPelvisState->setPosition(LLVector3::zero);
|
||||||
mPelvisState->setRotation(LLQuaternion::DEFAULT);
|
mPelvisState->setRotation(LLQuaternion::DEFAULT);
|
||||||
mRoll = 0.f;
|
mRoll = 0.f;
|
||||||
return TRUE;
|
return AIMaskedMotion::onActivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class LLKeyframeWalkMotion :
|
|||||||
friend class LLWalkAdjustMotion;
|
friend class LLWalkAdjustMotion;
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLKeyframeWalkMotion(const LLUUID &id);
|
LLKeyframeWalkMotion(LLUUID const& id);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
virtual ~LLKeyframeWalkMotion();
|
virtual ~LLKeyframeWalkMotion();
|
||||||
@@ -64,7 +64,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLKeyframeWalkMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController&) { return new LLKeyframeWalkMotion(id); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -86,11 +86,11 @@ public:
|
|||||||
S32 mDownFoot;
|
S32 mDownFoot;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LLWalkAdjustMotion : public LLMotion
|
class LLWalkAdjustMotion : public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLWalkAdjustMotion(const LLUUID &id);
|
LLWalkAdjustMotion(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -99,7 +99,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLWalkAdjustMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLWalkAdjustMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -136,11 +136,11 @@ public:
|
|||||||
F32 mAnkleOffset;
|
F32 mAnkleOffset;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LLFlyAdjustMotion : public LLMotion
|
class LLFlyAdjustMotion : public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLFlyAdjustMotion(const LLUUID &id);
|
LLFlyAdjustMotion(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -149,7 +149,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLFlyAdjustMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLFlyAdjustMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -157,7 +157,6 @@ public:
|
|||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||||
virtual BOOL onActivate();
|
virtual BOOL onActivate();
|
||||||
virtual void onDeactivate() {};
|
|
||||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||||
virtual LLJoint::JointPriority getPriority(){return LLJoint::HIGHER_PRIORITY;}
|
virtual LLJoint::JointPriority getPriority(){return LLJoint::HIGHER_PRIORITY;}
|
||||||
virtual BOOL getLoop() { return TRUE; }
|
virtual BOOL getLoop() { return TRUE; }
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
#include "llmotion.h"
|
#include "llmotion.h"
|
||||||
#include "llcriticaldamp.h"
|
#include "llcriticaldamp.h"
|
||||||
|
#include "llmotioncontroller.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -174,4 +175,19 @@ BOOL LLMotion::canDeprecate()
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// AIMaskedMotion
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
BOOL AIMaskedMotion::onActivate()
|
||||||
|
{
|
||||||
|
mController.activated(mMaskBit);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AIMaskedMotion::onDeactivate()
|
||||||
|
{
|
||||||
|
mController.deactivated(mMaskBit);
|
||||||
|
}
|
||||||
|
|
||||||
// End
|
// End
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
#include "lluuid.h"
|
#include "lluuid.h"
|
||||||
|
|
||||||
class LLCharacter;
|
class LLCharacter;
|
||||||
|
class LLMotionController;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// class LLMotion
|
// class LLMotion
|
||||||
@@ -201,7 +202,7 @@ class LLTestMotion : public LLMotion
|
|||||||
public:
|
public:
|
||||||
LLTestMotion(const LLUUID &id) : LLMotion(id){}
|
LLTestMotion(const LLUUID &id) : LLMotion(id){}
|
||||||
~LLTestMotion() {}
|
~LLTestMotion() {}
|
||||||
static LLMotion *create(const LLUUID& id) { return new LLTestMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController&) { return new LLTestMotion(id); }
|
||||||
BOOL getLoop() { return FALSE; }
|
BOOL getLoop() { return FALSE; }
|
||||||
F32 getDuration() { return 0.0f; }
|
F32 getDuration() { return 0.0f; }
|
||||||
F32 getEaseInDuration() { return 0.0f; }
|
F32 getEaseInDuration() { return 0.0f; }
|
||||||
@@ -225,7 +226,7 @@ class LLNullMotion : public LLMotion
|
|||||||
public:
|
public:
|
||||||
LLNullMotion(const LLUUID &id) : LLMotion(id) {}
|
LLNullMotion(const LLUUID &id) : LLMotion(id) {}
|
||||||
~LLNullMotion() {}
|
~LLNullMotion() {}
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLNullMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController&) { return new LLNullMotion(id); }
|
||||||
|
|
||||||
// motions must specify whether or not they loop
|
// motions must specify whether or not they loop
|
||||||
/*virtual*/ BOOL getLoop() { return TRUE; }
|
/*virtual*/ BOOL getLoop() { return TRUE; }
|
||||||
@@ -266,5 +267,42 @@ public:
|
|||||||
// called when a motion is deactivated
|
// called when a motion is deactivated
|
||||||
/*virtual*/ void onDeactivate() {}
|
/*virtual*/ void onDeactivate() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// AIMaskedMotion
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// These motions have a bit assigned in LLMotionController::mActiveMask
|
||||||
|
// that is set and uset upon activation/deactivation.
|
||||||
|
|
||||||
|
// This must be in the same order as ANIM_AGENT_BODY_NOISE_ID through ANIM_AGENT_WALK_ADJUST_ID in llvoavatar.cpp.
|
||||||
|
U32 const ANIM_AGENT_BODY_NOISE = 0x001;
|
||||||
|
U32 const ANIM_AGENT_BREATHE_ROT = 0x002;
|
||||||
|
U32 const ANIM_AGENT_PHYSICS_MOTION = 0x004;
|
||||||
|
U32 const ANIM_AGENT_EDITING = 0x008;
|
||||||
|
U32 const ANIM_AGENT_EYE = 0x010;
|
||||||
|
U32 const ANIM_AGENT_FLY_ADJUST = 0x020;
|
||||||
|
U32 const ANIM_AGENT_HAND_MOTION = 0x040;
|
||||||
|
U32 const ANIM_AGENT_HEAD_ROT = 0x080;
|
||||||
|
U32 const ANIM_AGENT_PELVIS_FIX = 0x100;
|
||||||
|
U32 const ANIM_AGENT_TARGET = 0x200;
|
||||||
|
U32 const ANIM_AGENT_WALK_ADJUST = 0x400;
|
||||||
|
|
||||||
|
class AIMaskedMotion : public LLMotion
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
LLMotionController& mController;
|
||||||
|
U32 mMaskBit;
|
||||||
|
|
||||||
|
public:
|
||||||
|
AIMaskedMotion(LLUUID const& id, LLMotionController& controller, U32 mask_bit) : LLMotion(id), mController(controller), mMaskBit(mask_bit) { }
|
||||||
|
|
||||||
|
/*virtual*/ BOOL onActivate();
|
||||||
|
/*virtual*/ void onDeactivate();
|
||||||
|
|
||||||
|
U32 getMaskBit(void) const { return mMaskBit; }
|
||||||
|
};
|
||||||
|
|
||||||
#endif // LL_LLMOTION_H
|
#endif // LL_LLMOTION_H
|
||||||
|
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ void LLMotionRegistry::markBad( const LLUUID& id )
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// createMotion()
|
// createMotion()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLMotion *LLMotionRegistry::createMotion( const LLUUID &id )
|
LLMotion* LLMotionRegistry::createMotion(LLUUID const& id, LLMotionController& controller)
|
||||||
{
|
{
|
||||||
LLMotionConstructor constructor = get_if_there(mMotionTable, id, LLMotionConstructor(NULL));
|
LLMotionConstructor constructor = get_if_there(mMotionTable, id, LLMotionConstructor(NULL));
|
||||||
LLMotion* motion = NULL;
|
LLMotion* motion = NULL;
|
||||||
@@ -105,11 +105,11 @@ LLMotion *LLMotionRegistry::createMotion( const LLUUID &id )
|
|||||||
if ( constructor == NULL )
|
if ( constructor == NULL )
|
||||||
{
|
{
|
||||||
// *FIX: need to replace with a better default scheme. RN
|
// *FIX: need to replace with a better default scheme. RN
|
||||||
motion = LLKeyframeMotion::create(id);
|
motion = LLKeyframeMotion::create(id, controller);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
motion = constructor(id);
|
motion = constructor(id, controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
return motion;
|
return motion;
|
||||||
@@ -126,18 +126,19 @@ LLMotion *LLMotionRegistry::createMotion( const LLUUID &id )
|
|||||||
// Class Constructor
|
// Class Constructor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLMotionController::LLMotionController()
|
LLMotionController::LLMotionController()
|
||||||
: mTimeFactor(sCurrentTimeFactor),
|
: mIsSelf(FALSE),
|
||||||
|
mTimeFactor(sCurrentTimeFactor),
|
||||||
mCharacter(NULL),
|
mCharacter(NULL),
|
||||||
mAnimTime(0.f),
|
mActiveMask(0),
|
||||||
mPrevTimerElapsed(0.f),
|
mPrevTimerElapsed(0.f),
|
||||||
|
mAnimTime(0.f),
|
||||||
mLastTime(0.0f),
|
mLastTime(0.0f),
|
||||||
mHasRunOnce(FALSE),
|
mHasRunOnce(FALSE),
|
||||||
mPaused(FALSE),
|
mPaused(FALSE),
|
||||||
mPauseTime(0.f),
|
mPauseTime(0.f),
|
||||||
mTimeStep(0.f),
|
mTimeStep(0.f),
|
||||||
mTimeStepCount(0),
|
mTimeStepCount(0),
|
||||||
mLastInterp(0.f),
|
mLastInterp(0.f)
|
||||||
mIsSelf(FALSE)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,6 +170,7 @@ void LLMotionController::deleteAllMotions()
|
|||||||
mLoadedMotions.clear();
|
mLoadedMotions.clear();
|
||||||
mActiveMotions.clear();
|
mActiveMotions.clear();
|
||||||
//<singu>
|
//<singu>
|
||||||
|
mActiveMask = 0;
|
||||||
for_each(mDeprecatedMotions.begin(), mDeprecatedMotions.end(), DeletePointer());
|
for_each(mDeprecatedMotions.begin(), mDeprecatedMotions.end(), DeletePointer());
|
||||||
mDeprecatedMotions.clear();
|
mDeprecatedMotions.clear();
|
||||||
//</singu>
|
//</singu>
|
||||||
@@ -357,7 +359,7 @@ LLMotion* LLMotionController::createMotion( const LLUUID &id )
|
|||||||
if (!motion)
|
if (!motion)
|
||||||
{
|
{
|
||||||
// look up constructor and create it
|
// look up constructor and create it
|
||||||
motion = sRegistry.createMotion(id);
|
motion = sRegistry.createMotion(id, *this);
|
||||||
if (!motion)
|
if (!motion)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|||||||
@@ -51,11 +51,12 @@
|
|||||||
// This is necessary because llcharacter.h includes this file.
|
// This is necessary because llcharacter.h includes this file.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLCharacter;
|
class LLCharacter;
|
||||||
|
class LLMotionController;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LLMotionRegistry
|
// LLMotionRegistry
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
typedef LLMotion*(*LLMotionConstructor)(const LLUUID &id);
|
typedef LLMotion* (*LLMotionConstructor)(LLUUID const& id, LLMotionController&);
|
||||||
|
|
||||||
class LLMotionRegistry
|
class LLMotionRegistry
|
||||||
{
|
{
|
||||||
@@ -72,7 +73,7 @@ public:
|
|||||||
|
|
||||||
// creates a new instance of a named motion
|
// creates a new instance of a named motion
|
||||||
// returns NULL motion is not registered
|
// returns NULL motion is not registered
|
||||||
LLMotion *createMotion( const LLUUID &id );
|
LLMotion* createMotion(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
// initialization of motion failed, don't try to create this motion again
|
// initialization of motion failed, don't try to create this motion again
|
||||||
void markBad( const LLUUID& id );
|
void markBad( const LLUUID& id );
|
||||||
@@ -149,6 +150,12 @@ public:
|
|||||||
//Flush is a liar.
|
//Flush is a liar.
|
||||||
void deactivateAllMotions();
|
void deactivateAllMotions();
|
||||||
|
|
||||||
|
//<edit>
|
||||||
|
void activated(U32 bit) { mActiveMask |= bit; }
|
||||||
|
void deactivated(U32 bit) { mActiveMask &= ~bit; }
|
||||||
|
bool isactive(U32 bit) const { return (mActiveMask & bit) != 0; }
|
||||||
|
//</edit>
|
||||||
|
|
||||||
// pause and continue all motions
|
// pause and continue all motions
|
||||||
void pauseAllMotions();
|
void pauseAllMotions();
|
||||||
void unpauseAllMotions();
|
void unpauseAllMotions();
|
||||||
@@ -220,6 +227,9 @@ protected:
|
|||||||
motion_list_t mActiveMotions;
|
motion_list_t mActiveMotions;
|
||||||
motion_set_t mDeprecatedMotions;
|
motion_set_t mDeprecatedMotions;
|
||||||
|
|
||||||
|
//<edit>
|
||||||
|
U32 mActiveMask;
|
||||||
|
//</edit>
|
||||||
LLFrameTimer mTimer;
|
LLFrameTimer mTimer;
|
||||||
F32 mPrevTimerElapsed;
|
F32 mPrevTimerElapsed;
|
||||||
F32 mAnimTime;
|
F32 mAnimTime;
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ const F32 TORSO_ROT_FRACTION = 0.5f;
|
|||||||
// LLTargetingMotion()
|
// LLTargetingMotion()
|
||||||
// Class Constructor
|
// Class Constructor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
LLTargetingMotion::LLTargetingMotion(const LLUUID &id) : LLMotion(id)
|
LLTargetingMotion::LLTargetingMotion(LLUUID const& id, LLMotionController& controller) : AIMaskedMotion(id, controller, ANIM_AGENT_TARGET)
|
||||||
{
|
{
|
||||||
mCharacter = NULL;
|
mCharacter = NULL;
|
||||||
mName = "targeting";
|
mName = "targeting";
|
||||||
@@ -99,14 +99,6 @@ LLMotion::LLMotionInitStatus LLTargetingMotion::onInitialize(LLCharacter *charac
|
|||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// LLTargetingMotion::onActivate()
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
BOOL LLTargetingMotion::onActivate()
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LLTargetingMotion::onUpdate()
|
// LLTargetingMotion::onUpdate()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -166,12 +158,4 @@ BOOL LLTargetingMotion::onUpdate(F32 time, U8* joint_mask)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// LLTargetingMotion::onDeactivate()
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
void LLTargetingMotion::onDeactivate()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// End
|
// End
|
||||||
|
|||||||
@@ -48,11 +48,11 @@
|
|||||||
// class LLTargetingMotion
|
// class LLTargetingMotion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLTargetingMotion :
|
class LLTargetingMotion :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLTargetingMotion(const LLUUID &id);
|
LLTargetingMotion(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
virtual ~LLTargetingMotion();
|
virtual ~LLTargetingMotion();
|
||||||
@@ -64,7 +64,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLTargetingMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLTargetingMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -96,19 +96,11 @@ public:
|
|||||||
// must return true to indicate success and be available for activation
|
// must return true to indicate success and be available for activation
|
||||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||||
|
|
||||||
// called when a motion is activated
|
|
||||||
// must return TRUE to indicate success, or else
|
|
||||||
// it will be deactivated
|
|
||||||
virtual BOOL onActivate();
|
|
||||||
|
|
||||||
// called per time step
|
// called per time step
|
||||||
// must return TRUE while it is active, and
|
// must return TRUE while it is active, and
|
||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||||
|
|
||||||
// called when a motion is deactivated
|
|
||||||
virtual void onDeactivate();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
LLCharacter *mCharacter;
|
LLCharacter *mCharacter;
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLEmote(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController&) { return new LLEmote(id); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -611,8 +611,9 @@ void LLHUDEffectLookAt::update()
|
|||||||
{
|
{
|
||||||
if (calcTargetPosition())
|
if (calcTargetPosition())
|
||||||
{
|
{
|
||||||
LLMotion* head_motion = ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->findMotion(ANIM_AGENT_HEAD_ROT);
|
//LLMotion* head_motion = ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->findMotion(ANIM_AGENT_HEAD_ROT);
|
||||||
if (!head_motion || head_motion->isStopped())
|
//if (!head_motion || head_motion->isStopped())
|
||||||
|
// singu: startMotion does basically the same as the above two lines... it starts it, unless it was already started.
|
||||||
{
|
{
|
||||||
((LLVOAvatar*)(LLViewerObject*)mSourceObject)->startMotion(ANIM_AGENT_HEAD_ROT);
|
((LLVOAvatar*)(LLViewerObject*)mSourceObject)->startMotion(ANIM_AGENT_HEAD_ROT);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -314,8 +314,8 @@ void LLPhysicsMotion::getString(std::ostringstream &oss)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LLPhysicsMotionController::LLPhysicsMotionController(const LLUUID &id) :
|
LLPhysicsMotionController::LLPhysicsMotionController(LLUUID const& id, LLMotionController& controller) :
|
||||||
LLMotion(id),
|
AIMaskedMotion(id, controller, ANIM_AGENT_PHYSICS_MOTION),
|
||||||
mCharacter(NULL),
|
mCharacter(NULL),
|
||||||
mIsDefault(true)
|
mIsDefault(true)
|
||||||
{
|
{
|
||||||
@@ -332,15 +332,6 @@ LLPhysicsMotionController::~LLPhysicsMotionController()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL LLPhysicsMotionController::onActivate()
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void LLPhysicsMotionController::onDeactivate()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
LLMotion::LLMotionInitStatus LLPhysicsMotionController::onInitialize(LLCharacter *character)
|
LLMotion::LLMotionInitStatus LLPhysicsMotionController::onInitialize(LLCharacter *character)
|
||||||
{
|
{
|
||||||
mCharacter = character;
|
mCharacter = character;
|
||||||
|
|||||||
@@ -42,14 +42,14 @@ class LLPhysicsMotion;
|
|||||||
// class LLPhysicsMotion
|
// class LLPhysicsMotion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLPhysicsMotionController :
|
class LLPhysicsMotionController :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
std::string getString();
|
std::string getString();
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
LLPhysicsMotionController(const LLUUID &id);
|
LLPhysicsMotionController(LLUUID const& id, LLMotionController& controller);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
virtual ~LLPhysicsMotionController();
|
virtual ~LLPhysicsMotionController();
|
||||||
@@ -61,7 +61,7 @@ public:
|
|||||||
|
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLPhysicsMotionController(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLPhysicsMotionController(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -93,19 +93,11 @@ public:
|
|||||||
// must return true to indicate success and be available for activation
|
// must return true to indicate success and be available for activation
|
||||||
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
virtual LLMotionInitStatus onInitialize(LLCharacter *character);
|
||||||
|
|
||||||
// called when a motion is activated
|
|
||||||
// must return TRUE to indicate success, or else
|
|
||||||
// it will be deactivated
|
|
||||||
virtual BOOL onActivate();
|
|
||||||
|
|
||||||
// called per time step
|
// called per time step
|
||||||
// must return TRUE while it is active, and
|
// must return TRUE while it is active, and
|
||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
virtual BOOL onUpdate(F32 time, U8* joint_mask);
|
||||||
|
|
||||||
// called when a motion is deactivated
|
|
||||||
virtual void onDeactivate();
|
|
||||||
|
|
||||||
LLCharacter* getCharacter() { return mCharacter; }
|
LLCharacter* getCharacter() { return mCharacter; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -145,18 +145,104 @@ using namespace LLAvatarAppearanceDefines;
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Global constants
|
// Global constants
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
const LLUUID ANIM_AGENT_BODY_NOISE = LLUUID("9aa8b0a6-0c6f-9518-c7c3-4f41f2c001ad"); //"body_noise"
|
const LLUUID ANIM_AGENT_BODY_NOISE_ID = LLUUID("9aa8b0a6-0c6f-9518-c7c3-4f41f2c001ad"); //"body_noise"
|
||||||
const LLUUID ANIM_AGENT_BREATHE_ROT = LLUUID("4c5a103e-b830-2f1c-16bc-224aa0ad5bc8"); //"breathe_rot"
|
const LLUUID ANIM_AGENT_BREATHE_ROT_ID = LLUUID("4c5a103e-b830-2f1c-16bc-224aa0ad5bc8"); //"breathe_rot"
|
||||||
const LLUUID ANIM_AGENT_EDITING = LLUUID("2a8eba1d-a7f8-5596-d44a-b4977bf8c8bb"); //"editing"
|
const LLUUID ANIM_AGENT_PHYSICS_MOTION_ID = LLUUID("7360e029-3cb8-ebc4-863e-212df440d987"); //"physics_motion"
|
||||||
const LLUUID ANIM_AGENT_EYE = LLUUID("5c780ea8-1cd1-c463-a128-48c023f6fbea"); //"eye"
|
const LLUUID ANIM_AGENT_EDITING_ID = LLUUID("2a8eba1d-a7f8-5596-d44a-b4977bf8c8bb"); //"editing"
|
||||||
const LLUUID ANIM_AGENT_FLY_ADJUST = LLUUID("db95561f-f1b0-9f9a-7224-b12f71af126e"); //"fly_adjust"
|
const LLUUID ANIM_AGENT_EYE_ID = LLUUID("5c780ea8-1cd1-c463-a128-48c023f6fbea"); //"eye"
|
||||||
const LLUUID ANIM_AGENT_HAND_MOTION = LLUUID("ce986325-0ba7-6e6e-cc24-b17c4b795578"); //"hand_motion"
|
const LLUUID ANIM_AGENT_FLY_ADJUST_ID = LLUUID("db95561f-f1b0-9f9a-7224-b12f71af126e"); //"fly_adjust"
|
||||||
const LLUUID ANIM_AGENT_HEAD_ROT = LLUUID("e6e8d1dd-e643-fff7-b238-c6b4b056a68d"); //"head_rot"
|
const LLUUID ANIM_AGENT_HAND_MOTION_ID = LLUUID("ce986325-0ba7-6e6e-cc24-b17c4b795578"); //"hand_motion"
|
||||||
const LLUUID ANIM_AGENT_PELVIS_FIX = LLUUID("0c5dd2a2-514d-8893-d44d-05beffad208b"); //"pelvis_fix"
|
const LLUUID ANIM_AGENT_HEAD_ROT_ID = LLUUID("e6e8d1dd-e643-fff7-b238-c6b4b056a68d"); //"head_rot"
|
||||||
const LLUUID ANIM_AGENT_TARGET = LLUUID("0e4896cb-fba4-926c-f355-8720189d5b55"); //"target"
|
const LLUUID ANIM_AGENT_PELVIS_FIX_ID = LLUUID("0c5dd2a2-514d-8893-d44d-05beffad208b"); //"pelvis_fix"
|
||||||
const LLUUID ANIM_AGENT_WALK_ADJUST = LLUUID("829bc85b-02fc-ec41-be2e-74cc6dd7215d"); //"walk_adjust"
|
const LLUUID ANIM_AGENT_TARGET_ID = LLUUID("0e4896cb-fba4-926c-f355-8720189d5b55"); //"target"
|
||||||
const LLUUID ANIM_AGENT_PHYSICS_MOTION = LLUUID("7360e029-3cb8-ebc4-863e-212df440d987"); //"physics_motion"
|
const LLUUID ANIM_AGENT_WALK_ADJUST_ID = LLUUID("829bc85b-02fc-ec41-be2e-74cc6dd7215d"); //"walk_adjust"
|
||||||
|
|
||||||
|
//<singu>
|
||||||
|
// This must be in the same order as ANIM_AGENT_BODY_NOISE through ANIM_AGENT_WALK_ADJUST (see llmotion.h)!
|
||||||
|
static LLUUID const* lookup[] = {
|
||||||
|
&ANIM_AGENT_BODY_NOISE_ID,
|
||||||
|
&ANIM_AGENT_BREATHE_ROT_ID,
|
||||||
|
&ANIM_AGENT_PHYSICS_MOTION_ID,
|
||||||
|
&ANIM_AGENT_EDITING_ID,
|
||||||
|
&ANIM_AGENT_EYE_ID,
|
||||||
|
&ANIM_AGENT_FLY_ADJUST_ID,
|
||||||
|
&ANIM_AGENT_HAND_MOTION_ID,
|
||||||
|
&ANIM_AGENT_HEAD_ROT_ID,
|
||||||
|
&ANIM_AGENT_PELVIS_FIX_ID,
|
||||||
|
&ANIM_AGENT_TARGET_ID,
|
||||||
|
&ANIM_AGENT_WALK_ADJUST_ID
|
||||||
|
};
|
||||||
|
|
||||||
|
LLUUID const& mask2ID(U32 bit)
|
||||||
|
{
|
||||||
|
int const lookupsize = sizeof(lookup) / sizeof(LLUUID const*);
|
||||||
|
int i = lookupsize - 1;
|
||||||
|
U32 mask = 1 << i;
|
||||||
|
for(;;)
|
||||||
|
{
|
||||||
|
if (bit == mask)
|
||||||
|
{
|
||||||
|
return *lookup[i];
|
||||||
|
}
|
||||||
|
--i;
|
||||||
|
mask >>= 1;
|
||||||
|
llassert_always(i >= 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef CWDEBUG
|
||||||
|
static char const* strlookup[] = {
|
||||||
|
"ANIM_AGENT_BODY_NOISE",
|
||||||
|
"ANIM_AGENT_BREATHE_ROT",
|
||||||
|
"ANIM_AGENT_PHYSICS_MOTION",
|
||||||
|
"ANIM_AGENT_EDITING",
|
||||||
|
"ANIM_AGENT_EYE",
|
||||||
|
"ANIM_AGENT_FLY_ADJUST",
|
||||||
|
"ANIM_AGENT_HAND_MOTION",
|
||||||
|
"ANIM_AGENT_HEAD_ROT",
|
||||||
|
"ANIM_AGENT_PELVIS_FIX",
|
||||||
|
"ANIM_AGENT_TARGET",
|
||||||
|
"ANIM_AGENT_WALK_ADJUST"
|
||||||
|
};
|
||||||
|
|
||||||
|
char const* mask2str(U32 bit)
|
||||||
|
{
|
||||||
|
int const lookupsize = sizeof(lookup) / sizeof(LLUUID const*);
|
||||||
|
int i = lookupsize - 1;
|
||||||
|
U32 mask = 1 << i;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (bit == mask)
|
||||||
|
{
|
||||||
|
return strlookup[i];
|
||||||
|
}
|
||||||
|
--i;
|
||||||
|
mask >>= 1;
|
||||||
|
}
|
||||||
|
while(i >= 0);
|
||||||
|
return "<unknown>";
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// stopMotion(ANIM_AGENT_WALK_ADJUST) is called every frame, and for every avatar on the radar.
|
||||||
|
// That can be like 1000 times per second, so... speed that up a bit and lets not lookup the same LLUUID 1000 times
|
||||||
|
// per second in a std::map. Added the rest of the animations while I was at it.
|
||||||
|
void LLVOAvatar::startMotion(U32 bit, F32 time_offset)
|
||||||
|
{
|
||||||
|
if (!isMotionActive(bit))
|
||||||
|
{
|
||||||
|
startMotion(mask2ID(bit), time_offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVOAvatar::stopMotion(U32 bit, BOOL stop_immediate)
|
||||||
|
{
|
||||||
|
if (isMotionActive(bit))
|
||||||
|
{
|
||||||
|
stopMotion(mask2ID(bit), stop_immediate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//</singu>
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Constants
|
// Constants
|
||||||
@@ -257,12 +343,12 @@ struct LLTextureMaskData
|
|||||||
// class LLBodyNoiseMotion
|
// class LLBodyNoiseMotion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLBodyNoiseMotion :
|
class LLBodyNoiseMotion :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLBodyNoiseMotion(const LLUUID &id)
|
LLBodyNoiseMotion(LLUUID const& id, LLMotionController& controller)
|
||||||
: LLMotion(id)
|
: AIMaskedMotion(id, controller, ANIM_AGENT_BODY_NOISE)
|
||||||
{
|
{
|
||||||
mName = "body_noise";
|
mName = "body_noise";
|
||||||
mTorsoState = new LLJointState;
|
mTorsoState = new LLJointState;
|
||||||
@@ -277,7 +363,7 @@ public:
|
|||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLBodyNoiseMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLBodyNoiseMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -320,11 +406,6 @@ public:
|
|||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when a motion is activated
|
|
||||||
// must return TRUE to indicate success, or else
|
|
||||||
// it will be deactivated
|
|
||||||
virtual BOOL onActivate() { return TRUE; }
|
|
||||||
|
|
||||||
// called per time step
|
// called per time step
|
||||||
// must return TRUE while it is active, and
|
// must return TRUE while it is active, and
|
||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
@@ -348,9 +429,6 @@ public:
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when a motion is deactivated
|
|
||||||
virtual void onDeactivate() {}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// joint states to be animated
|
// joint states to be animated
|
||||||
@@ -362,12 +440,12 @@ private:
|
|||||||
// class LLBreatheMotionRot
|
// class LLBreatheMotionRot
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLBreatheMotionRot :
|
class LLBreatheMotionRot :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLBreatheMotionRot(const LLUUID &id) :
|
LLBreatheMotionRot(LLUUID const& id, LLMotionController& controller) :
|
||||||
LLMotion(id),
|
AIMaskedMotion(id, controller, ANIM_AGENT_BREATHE_ROT),
|
||||||
mBreatheRate(1.f),
|
mBreatheRate(1.f),
|
||||||
mCharacter(NULL)
|
mCharacter(NULL)
|
||||||
{
|
{
|
||||||
@@ -384,7 +462,7 @@ public:
|
|||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID &id) { return new LLBreatheMotionRot(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLBreatheMotionRot(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -437,11 +515,6 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when a motion is activated
|
|
||||||
// must return TRUE to indicate success, or else
|
|
||||||
// it will be deactivated
|
|
||||||
virtual BOOL onActivate() { return TRUE; }
|
|
||||||
|
|
||||||
// called per time step
|
// called per time step
|
||||||
// must return TRUE while it is active, and
|
// must return TRUE while it is active, and
|
||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
@@ -456,9 +529,6 @@ public:
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when a motion is deactivated
|
|
||||||
virtual void onDeactivate() {}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// joint states to be animated
|
// joint states to be animated
|
||||||
@@ -472,12 +542,12 @@ private:
|
|||||||
// class LLPelvisFixMotion
|
// class LLPelvisFixMotion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class LLPelvisFixMotion :
|
class LLPelvisFixMotion :
|
||||||
public LLMotion
|
public AIMaskedMotion
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
LLPelvisFixMotion(const LLUUID &id)
|
LLPelvisFixMotion(LLUUID const& id, LLMotionController& controller)
|
||||||
: LLMotion(id), mCharacter(NULL)
|
: AIMaskedMotion(id, controller, ANIM_AGENT_PELVIS_FIX), mCharacter(NULL)
|
||||||
{
|
{
|
||||||
mName = "pelvis_fix";
|
mName = "pelvis_fix";
|
||||||
|
|
||||||
@@ -493,7 +563,7 @@ public:
|
|||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// static constructor
|
// static constructor
|
||||||
// all subclasses must implement such a function and register it
|
// all subclasses must implement such a function and register it
|
||||||
static LLMotion *create(const LLUUID& id) { return new LLPelvisFixMotion(id); }
|
static LLMotion* create(LLUUID const& id, LLMotionController& controller) { return new LLPelvisFixMotion(id, controller); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -538,11 +608,6 @@ public:
|
|||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when a motion is activated
|
|
||||||
// must return TRUE to indicate success, or else
|
|
||||||
// it will be deactivated
|
|
||||||
virtual BOOL onActivate() { return TRUE; }
|
|
||||||
|
|
||||||
// called per time step
|
// called per time step
|
||||||
// must return TRUE while it is active, and
|
// must return TRUE while it is active, and
|
||||||
// must return FALSE when the motion is completed.
|
// must return FALSE when the motion is completed.
|
||||||
@@ -553,9 +618,6 @@ public:
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when a motion is deactivated
|
|
||||||
virtual void onDeactivate() {}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// joint states to be animated
|
// joint states to be animated
|
||||||
@@ -1438,17 +1500,17 @@ void LLVOAvatar::deleteCachedImages(bool clearAll)
|
|||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
void LLVOAvatar::initClass()
|
void LLVOAvatar::initClass()
|
||||||
{
|
{
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_BODY_NOISE,"body_noise");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_BODY_NOISE_ID,"body_noise");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_BREATHE_ROT,"breathe_rot");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_BREATHE_ROT_ID,"breathe_rot");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_PHYSICS_MOTION,"physics_motion");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_PHYSICS_MOTION_ID,"physics_motion");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_EDITING,"editing");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_EDITING_ID,"editing");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_EYE,"eye");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_EYE_ID,"eye");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_FLY_ADJUST,"fly_adjust");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_FLY_ADJUST_ID,"fly_adjust");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_HAND_MOTION,"hand_motion");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_HAND_MOTION_ID,"hand_motion");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_HEAD_ROT,"head_rot");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_HEAD_ROT_ID,"head_rot");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_PELVIS_FIX,"pelvis_fix");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_PELVIS_FIX_ID,"pelvis_fix");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_TARGET,"target");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_TARGET_ID,"target");
|
||||||
gAnimLibrary.animStateSetString(ANIM_AGENT_WALK_ADJUST,"walk_adjust");
|
gAnimLibrary.animStateSetString(ANIM_AGENT_WALK_ADJUST_ID,"walk_adjust");
|
||||||
|
|
||||||
SHClientTagMgr::instance(); //Instantiate. Parse. Will fetch a new tag file if AscentUpdateTagsOnLoad is true.
|
SHClientTagMgr::instance(); //Instantiate. Parse. Will fetch a new tag file if AscentUpdateTagsOnLoad is true.
|
||||||
}
|
}
|
||||||
@@ -1506,19 +1568,19 @@ void LLVOAvatar::initInstance(void)
|
|||||||
registerMotion( ANIM_AGENT_WALK_NEW, LLKeyframeWalkMotion::create ); //v2
|
registerMotion( ANIM_AGENT_WALK_NEW, LLKeyframeWalkMotion::create ); //v2
|
||||||
|
|
||||||
// motions without a start/stop bit
|
// motions without a start/stop bit
|
||||||
registerMotion( ANIM_AGENT_BODY_NOISE, LLBodyNoiseMotion::create );
|
registerMotion( ANIM_AGENT_BODY_NOISE_ID, LLBodyNoiseMotion::create );
|
||||||
registerMotion( ANIM_AGENT_BREATHE_ROT, LLBreatheMotionRot::create );
|
registerMotion( ANIM_AGENT_BREATHE_ROT_ID, LLBreatheMotionRot::create );
|
||||||
registerMotion( ANIM_AGENT_PHYSICS_MOTION, LLPhysicsMotionController::create );
|
registerMotion( ANIM_AGENT_PHYSICS_MOTION_ID, LLPhysicsMotionController::create );
|
||||||
registerMotion( ANIM_AGENT_EDITING, LLEditingMotion::create );
|
registerMotion( ANIM_AGENT_EDITING_ID, LLEditingMotion::create );
|
||||||
registerMotion( ANIM_AGENT_EYE, LLEyeMotion::create );
|
registerMotion( ANIM_AGENT_EYE_ID, LLEyeMotion::create );
|
||||||
registerMotion( ANIM_AGENT_FLY_ADJUST, LLFlyAdjustMotion::create );
|
registerMotion( ANIM_AGENT_FLY_ADJUST_ID, LLFlyAdjustMotion::create );
|
||||||
registerMotion( ANIM_AGENT_HAND_MOTION, LLHandMotion::create );
|
registerMotion( ANIM_AGENT_HAND_MOTION_ID, LLHandMotion::create );
|
||||||
registerMotion( ANIM_AGENT_HEAD_ROT, LLHeadRotMotion::create );
|
registerMotion( ANIM_AGENT_HEAD_ROT_ID, LLHeadRotMotion::create );
|
||||||
registerMotion( ANIM_AGENT_PELVIS_FIX, LLPelvisFixMotion::create );
|
registerMotion( ANIM_AGENT_PELVIS_FIX_ID, LLPelvisFixMotion::create );
|
||||||
registerMotion( ANIM_AGENT_SIT_FEMALE, LLKeyframeMotion::create );
|
registerMotion( ANIM_AGENT_TARGET_ID, LLTargetingMotion::create );
|
||||||
registerMotion( ANIM_AGENT_TARGET, LLTargetingMotion::create );
|
registerMotion( ANIM_AGENT_WALK_ADJUST_ID, LLWalkAdjustMotion::create );
|
||||||
registerMotion( ANIM_AGENT_WALK_ADJUST, LLWalkAdjustMotion::create );
|
|
||||||
|
|
||||||
|
registerMotion( ANIM_AGENT_SIT_FEMALE, LLKeyframeMotion::create );
|
||||||
}
|
}
|
||||||
|
|
||||||
LLAvatarAppearance::initInstance();
|
LLAvatarAppearance::initInstance();
|
||||||
|
|||||||
@@ -54,6 +54,9 @@
|
|||||||
|
|
||||||
#include "llavatarname.h"
|
#include "llavatarname.h"
|
||||||
|
|
||||||
|
//<singu>
|
||||||
|
#if 0
|
||||||
|
// Hide these: should be using the bit masks everywhere.
|
||||||
extern const LLUUID ANIM_AGENT_BODY_NOISE;
|
extern const LLUUID ANIM_AGENT_BODY_NOISE;
|
||||||
extern const LLUUID ANIM_AGENT_BREATHE_ROT;
|
extern const LLUUID ANIM_AGENT_BREATHE_ROT;
|
||||||
extern const LLUUID ANIM_AGENT_PHYSICS_MOTION;
|
extern const LLUUID ANIM_AGENT_PHYSICS_MOTION;
|
||||||
@@ -65,6 +68,8 @@ extern const LLUUID ANIM_AGENT_HEAD_ROT;
|
|||||||
extern const LLUUID ANIM_AGENT_PELVIS_FIX;
|
extern const LLUUID ANIM_AGENT_PELVIS_FIX;
|
||||||
extern const LLUUID ANIM_AGENT_TARGET;
|
extern const LLUUID ANIM_AGENT_TARGET;
|
||||||
extern const LLUUID ANIM_AGENT_WALK_ADJUST;
|
extern const LLUUID ANIM_AGENT_WALK_ADJUST;
|
||||||
|
#endif
|
||||||
|
//</singu>
|
||||||
|
|
||||||
class LLAPRFile;
|
class LLAPRFile;
|
||||||
class LLViewerWearable;
|
class LLViewerWearable;
|
||||||
@@ -230,6 +235,10 @@ public:
|
|||||||
/*virtual*/ LLUUID remapMotionID(const LLUUID& id);
|
/*virtual*/ LLUUID remapMotionID(const LLUUID& id);
|
||||||
/*virtual*/ BOOL startMotion(const LLUUID& id, F32 time_offset = 0.f);
|
/*virtual*/ BOOL startMotion(const LLUUID& id, F32 time_offset = 0.f);
|
||||||
/*virtual*/ BOOL stopMotion(const LLUUID& id, BOOL stop_immediate = FALSE);
|
/*virtual*/ BOOL stopMotion(const LLUUID& id, BOOL stop_immediate = FALSE);
|
||||||
|
//<singu>
|
||||||
|
void startMotion(U32 bit, F32 start_offset = 0.f);
|
||||||
|
void stopMotion(U32 bit, BOOL stop_immediate = FALSE);
|
||||||
|
//</singu>
|
||||||
virtual void stopMotionFromSource(const LLUUID& source_id);
|
virtual void stopMotionFromSource(const LLUUID& source_id);
|
||||||
virtual void requestStopMotion(LLMotion* motion);
|
virtual void requestStopMotion(LLMotion* motion);
|
||||||
LLMotion* findMotion(const LLUUID& id) const;
|
LLMotion* findMotion(const LLUUID& id) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user