aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs167
1 files changed, 97 insertions, 70 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
index 1017c1d..56b8b30 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
@@ -48,7 +48,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
48 48
49 public AnimationSet Animations 49 public AnimationSet Animations
50 { 50 {
51 get { return m_animations; } 51 get { return m_animations; }
52 } 52 }
53 protected AnimationSet m_animations = new AnimationSet(); 53 protected AnimationSet m_animations = new AnimationSet();
54 54
@@ -61,9 +61,9 @@ namespace OpenSim.Region.Framework.Scenes.Animation
61 private int m_animTickLand; 61 private int m_animTickLand;
62 private int m_animTickJump; 62 private int m_animTickJump;
63 63
64 public bool m_jumping = false; 64 public bool m_jumping = false;
65 65
66// private int m_landing = 0; 66 // private int m_landing = 0;
67 67
68 /// <summary> 68 /// <summary>
69 /// Is the avatar falling? 69 /// Is the avatar falling?
@@ -76,7 +76,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
76 /// The scene presence that this animator applies to 76 /// The scene presence that this animator applies to
77 /// </value> 77 /// </value>
78 protected ScenePresence m_scenePresence; 78 protected ScenePresence m_scenePresence;
79 79
80 public ScenePresenceAnimator(ScenePresence sp) 80 public ScenePresenceAnimator(ScenePresence sp)
81 { 81 {
82 m_scenePresence = sp; 82 m_scenePresence = sp;
@@ -91,7 +91,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
91 // m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} for {1}", animID, m_scenePresence.Name); 91 // m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} for {1}", animID, m_scenePresence.Name);
92 if (m_scenePresence.Scene.DebugAnimations) 92 if (m_scenePresence.Scene.DebugAnimations)
93 m_log.DebugFormat( 93 m_log.DebugFormat(
94 "[SCENE PRESENCE ANIMATOR]: Adding animation {0} {1} for {2}", 94 "[SCENE PRESENCE ANIMATOR]: Adding animation {0} {1} for {2}",
95 GetAnimName(animID), animID, m_scenePresence.Name); 95 GetAnimName(animID), animID, m_scenePresence.Name);
96 96
97 if (m_animations.Add(animID, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, objectID)) 97 if (m_animations.Add(animID, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, objectID))
@@ -113,7 +113,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
113 if (animID == UUID.Zero) 113 if (animID == UUID.Zero)
114 return; 114 return;
115 115
116// m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} {1} for {2}", animID, name, m_scenePresence.Name); 116 // m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} {1} for {2}", animID, name, m_scenePresence.Name);
117 117
118 AddAnimation(animID, objectID); 118 AddAnimation(animID, objectID);
119 } 119 }
@@ -133,7 +133,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
133 133
134 if (m_scenePresence.Scene.DebugAnimations) 134 if (m_scenePresence.Scene.DebugAnimations)
135 m_log.DebugFormat( 135 m_log.DebugFormat(
136 "[SCENE PRESENCE ANIMATOR]: Removing animation {0} {1} for {2}", 136 "[SCENE PRESENCE ANIMATOR]: Removing animation {0} {1} for {2}",
137 GetAnimName(animID), animID, m_scenePresence.Name); 137 GetAnimName(animID), animID, m_scenePresence.Name);
138 138
139 if (m_animations.Remove(animID, allowNoDefault)) 139 if (m_animations.Remove(animID, allowNoDefault))
@@ -155,7 +155,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
155 else 155 else
156 m_animations.Remove(animID, false); 156 m_animations.Remove(animID, false);
157 } 157 }
158 if(sendPack) 158 if (sendPack)
159 SendAnimPack(); 159 SendAnimPack();
160 } 160 }
161 161
@@ -201,9 +201,9 @@ namespace OpenSim.Region.Framework.Scenes.Animation
201 bool ret = false; 201 bool ret = false;
202 if (!m_scenePresence.IsChildAgent) 202 if (!m_scenePresence.IsChildAgent)
203 { 203 {
204// m_log.DebugFormat( 204 // m_log.DebugFormat(
205// "[SCENE PRESENCE ANIMATOR]: Setting movement animation {0} for {1}", 205 // "[SCENE PRESENCE ANIMATOR]: Setting movement animation {0} for {1}",
206// anim, m_scenePresence.Name); 206 // anim, m_scenePresence.Name);
207 207
208 if (aoSitGndAnim != UUID.Zero) 208 if (aoSitGndAnim != UUID.Zero)
209 { 209 {
@@ -299,29 +299,44 @@ namespace OpenSim.Region.Framework.Scenes.Animation
299 AgentManager.ControlFlags controlFlags = (AgentManager.ControlFlags)m_scenePresence.AgentControlFlags; 299 AgentManager.ControlFlags controlFlags = (AgentManager.ControlFlags)m_scenePresence.AgentControlFlags;
300 PhysicsActor actor = m_scenePresence.PhysicsActor; 300 PhysicsActor actor = m_scenePresence.PhysicsActor;
301 301
302
303// there is no point on having this meaningless movement values, much less in world coordenates
304// situation may change if vertical Axis of avatar is allowed to rotate.
305// then jumping etc will need some care
306
302 // Create forward and left vectors from the current avatar rotation 307 // Create forward and left vectors from the current avatar rotation
303 Matrix4 rotMatrix = Matrix4.CreateFromQuaternion(m_scenePresence.Rotation); 308 /* yes matrix are better, but getting it from the Quaternion will kill the advantage
304 Vector3 fwd = Vector3.Transform(Vector3.UnitX, rotMatrix); 309 Matrix4 rotMatrix = Matrix4.CreateFromQuaternion(m_scenePresence.Rotation);
305 Vector3 left = Vector3.Transform(Vector3.UnitY, rotMatrix); 310 Vector3 fwd = Vector3.Transform(Vector3.UnitX, rotMatrix);
311 Vector3 left = Vector3.Transform(Vector3.UnitY, rotMatrix);
312 */
313 // there is still a better way
314// Vector3 fwd = Vector3.UnitX * m_scenePresence.Rotation;
315// Vector3 left = Vector3.UnitY * m_scenePresence.Rotation;
306 316
307 // Check control flags 317 // Check control flags
308 bool heldForward = ((controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_AT_POS) == AgentManager.ControlFlags.AGENT_CONTROL_AT_POS || (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS) == AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS); 318 bool heldForward = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_AT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS)) != 0);
309 bool heldBack = ((controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG || (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG); 319 bool heldBack = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG)) != 0);
310 bool heldLeft = ((controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS || (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS) == AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS); 320 bool heldLeft = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS)) != 0);
311 bool heldRight = ((controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG || (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG); 321 bool heldRight = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG)) != 0);
312 bool heldTurnLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT; 322 bool heldTurnLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT;
313 bool heldTurnRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT; 323 bool heldTurnRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT;
314 bool heldUp = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) == AgentManager.ControlFlags.AGENT_CONTROL_UP_POS; 324// bool heldUp = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_UP_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS)) != 0);
315 bool heldDown = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG; 325 // excluded nudge up so it doesn't trigger jump state
326 bool heldUp = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_UP_POS)) != 0);
327 bool heldDown = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG)) != 0);
316 //bool flying = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) == AgentManager.ControlFlags.AGENT_CONTROL_FLY; 328 //bool flying = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) == AgentManager.ControlFlags.AGENT_CONTROL_FLY;
317 //bool mouselook = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) == AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK; 329 //bool mouselook = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) == AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK;
318 if (heldForward || heldBack || heldLeft || heldRight || heldUp || heldDown) 330
331 bool heldOnXY = (heldForward || heldBack || heldLeft || heldRight);
332 if (heldOnXY || heldUp || heldDown)
319 { 333 {
320 heldTurnLeft = false; 334 heldTurnLeft = false;
321 heldTurnRight = false; 335 heldTurnRight = false;
322 } 336 }
323 337
324 // Direction in which the avatar is trying to move 338 // Direction in which the avatar is trying to move
339/*
325 Vector3 move = Vector3.Zero; 340 Vector3 move = Vector3.Zero;
326 if (heldForward) { move.X += fwd.X; move.Y += fwd.Y; } 341 if (heldForward) { move.X += fwd.X; move.Y += fwd.Y; }
327 if (heldBack) { move.X -= fwd.X; move.Y -= fwd.Y; } 342 if (heldBack) { move.X -= fwd.X; move.Y -= fwd.Y; }
@@ -329,9 +344,11 @@ namespace OpenSim.Region.Framework.Scenes.Animation
329 if (heldRight) { move.X -= left.X; move.Y -= left.Y; } 344 if (heldRight) { move.X -= left.X; move.Y -= left.Y; }
330 if (heldUp) { move.Z += 1; } 345 if (heldUp) { move.Z += 1; }
331 if (heldDown) { move.Z -= 1; } 346 if (heldDown) { move.Z -= 1; }
347*/
348
332 349
333 // Is the avatar trying to move? 350 // Is the avatar trying to move?
334// bool moving = (move != Vector3.Zero); 351 // bool moving = (move != Vector3.Zero);
335 #endregion Inputs 352 #endregion Inputs
336 353
337 // no physics actor case 354 // no physics actor case
@@ -340,13 +357,13 @@ namespace OpenSim.Region.Framework.Scenes.Animation
340 // well what to do? 357 // well what to do?
341 358
342 currentControlState = motionControlStates.onsurface; 359 currentControlState = motionControlStates.onsurface;
343 if (move.X != 0f || move.Y != 0f) 360// if (move.X != 0f || move.Y != 0f)
361 if (heldOnXY)
344 return "WALK"; 362 return "WALK";
345 363
346 return "STAND"; 364 return "STAND";
347 } 365 }
348 366
349
350 #region Flying 367 #region Flying
351 368
352 bool isColliding = actor.IsColliding; 369 bool isColliding = actor.IsColliding;
@@ -360,15 +377,19 @@ namespace OpenSim.Region.Framework.Scenes.Animation
360 377
361 currentControlState = motionControlStates.flying; 378 currentControlState = motionControlStates.flying;
362 379
363 if (move.X != 0f || move.Y != 0f) 380// if (move.X != 0f || move.Y != 0f)
381 if (heldOnXY)
364 { 382 {
365 return (m_scenePresence.Scene.m_useFlySlow ? "FLYSLOW" : "FLY"); 383 return (m_scenePresence.Scene.m_useFlySlow ? "FLYSLOW" : "FLY");
366 } 384 }
367 else if (move.Z > 0f) 385// else if (move.Z > 0f)
386 else if (heldUp)
387
368 { 388 {
369 return "HOVER_UP"; 389 return "HOVER_UP";
370 } 390 }
371 else if (move.Z < 0f) 391// else if (move.Z < 0f)
392 else if (heldDown)
372 { 393 {
373 if (isColliding) 394 if (isColliding)
374 { 395 {
@@ -423,7 +444,8 @@ namespace OpenSim.Region.Framework.Scenes.Animation
423 } 444 }
424 445
425 // Check if the user has stopped walking just now 446 // Check if the user has stopped walking just now
426 if (CurrentMovementAnimation == "WALK" && (move == Vector3.Zero)) 447// if (CurrentMovementAnimation == "WALK" && move == Vector3.Zero))
448 if (CurrentMovementAnimation == "WALK" && !heldOnXY && !heldDown && !heldUp)
427 return "STAND"; 449 return "STAND";
428 450
429 return CurrentMovementAnimation; 451 return CurrentMovementAnimation;
@@ -435,8 +457,9 @@ namespace OpenSim.Region.Framework.Scenes.Animation
435 457
436 #region Jumping // section added for jumping... 458 #region Jumping // section added for jumping...
437 459
438 if (isColliding && move.Z > 0f && currentControlState != motionControlStates.jumping) 460// if (isColliding && move.Z > 0f && currentControlState != motionControlStates.jumping)
439 { 461 if (isColliding && heldUp && currentControlState != motionControlStates.jumping)
462 {
440 // Start jumping, prejump 463 // Start jumping, prejump
441 currentControlState = motionControlStates.jumping; 464 currentControlState = motionControlStates.jumping;
442 m_jumping = true; 465 m_jumping = true;
@@ -481,7 +504,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
481 currentControlState = motionControlStates.landing; 504 currentControlState = motionControlStates.landing;
482 m_animTickLand = Environment.TickCount; 505 m_animTickLand = Environment.TickCount;
483 // TODO: SOFT_LAND support 506 // TODO: SOFT_LAND support
484 float fallVsq =m_lastFallVelocity*m_lastFallVelocity; 507 float fallVsq = m_lastFallVelocity * m_lastFallVelocity;
485 if (fallVsq > 300f) // aprox 20*h 508 if (fallVsq > 300f) // aprox 20*h
486 return "STANDUP"; 509 return "STANDUP";
487 else if (fallVsq > 160f) 510 else if (fallVsq > 160f)
@@ -514,12 +537,15 @@ namespace OpenSim.Region.Framework.Scenes.Animation
514 537
515 538
516 // next section moved outside paren. and realigned for jumping 539 // next section moved outside paren. and realigned for jumping
517 if (move.X != 0f || move.Y != 0f) 540
541// if (move.X != 0f || move.Y != 0f)
542 if (heldOnXY)
518 { 543 {
519 currentControlState = motionControlStates.onsurface; 544 currentControlState = motionControlStates.onsurface;
520 Falling = false; 545 Falling = false;
521 // Walking / crouchwalking / running 546 // Walking / crouchwalking / running
522 if (move.Z < 0f) 547// if (move.Z < 0f)
548 if (heldDown)
523 { 549 {
524 return "CROUCHWALK"; 550 return "CROUCHWALK";
525 } 551 }
@@ -538,7 +564,8 @@ namespace OpenSim.Region.Framework.Scenes.Animation
538 currentControlState = motionControlStates.onsurface; 564 currentControlState = motionControlStates.onsurface;
539 Falling = false; 565 Falling = false;
540 // Not walking 566 // Not walking
541 if (move.Z < 0) 567// if (move.Z < 0)
568 if(heldDown)
542 return "CROUCH"; 569 return "CROUCH";
543 else if (heldTurnLeft) 570 else if (heldTurnLeft)
544 return "TURNLEFT"; 571 return "TURNLEFT";
@@ -558,7 +585,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
558 /// <returns>'true' if the animation was changed</returns> 585 /// <returns>'true' if the animation was changed</returns>
559 public bool UpdateMovementAnimations() 586 public bool UpdateMovementAnimations()
560 { 587 {
561// m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Updating movement animations for {0}", m_scenePresence.Name); 588 // m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Updating movement animations for {0}", m_scenePresence.Name);
562 589
563 bool ret = false; 590 bool ret = false;
564 lock (m_animations) 591 lock (m_animations)
@@ -568,9 +595,9 @@ namespace OpenSim.Region.Framework.Scenes.Animation
568 { 595 {
569 CurrentMovementAnimation = newMovementAnimation; 596 CurrentMovementAnimation = newMovementAnimation;
570 597
571// m_log.DebugFormat( 598 // m_log.DebugFormat(
572// "[SCENE PRESENCE ANIMATOR]: Determined animation {0} for {1} in UpdateMovementAnimations()", 599 // "[SCENE PRESENCE ANIMATOR]: Determined animation {0} for {1} in UpdateMovementAnimations()",
573// CurrentMovementAnimation, m_scenePresence.Name); 600 // CurrentMovementAnimation, m_scenePresence.Name);
574 601
575 // Only set it if it's actually changed, give a script 602 // Only set it if it's actually changed, give a script
576 // a chance to stop a default animation 603 // a chance to stop a default animation
@@ -606,19 +633,19 @@ namespace OpenSim.Region.Framework.Scenes.Animation
606 m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs); 633 m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs);
607 return animIDs; 634 return animIDs;
608 } 635 }
609 636
610 public BinBVHAnimation GenerateRandomAnimation() 637 public BinBVHAnimation GenerateRandomAnimation()
611 { 638 {
612 int rnditerations = 3; 639 int rnditerations = 3;
613 BinBVHAnimation anim = new BinBVHAnimation(); 640 BinBVHAnimation anim = new BinBVHAnimation();
614 List<string> parts = new List<string>(); 641 List<string> parts = new List<string>();
615 parts.Add("mPelvis");parts.Add("mHead");parts.Add("mTorso"); 642 parts.Add("mPelvis"); parts.Add("mHead"); parts.Add("mTorso");
616 parts.Add("mHipLeft");parts.Add("mHipRight");parts.Add("mHipLeft");parts.Add("mKneeLeft"); 643 parts.Add("mHipLeft"); parts.Add("mHipRight"); parts.Add("mHipLeft"); parts.Add("mKneeLeft");
617 parts.Add("mKneeRight");parts.Add("mCollarLeft");parts.Add("mCollarRight");parts.Add("mNeck"); 644 parts.Add("mKneeRight"); parts.Add("mCollarLeft"); parts.Add("mCollarRight"); parts.Add("mNeck");
618 parts.Add("mElbowLeft");parts.Add("mElbowRight");parts.Add("mWristLeft");parts.Add("mWristRight"); 645 parts.Add("mElbowLeft"); parts.Add("mElbowRight"); parts.Add("mWristLeft"); parts.Add("mWristRight");
619 parts.Add("mShoulderLeft");parts.Add("mShoulderRight");parts.Add("mAnkleLeft");parts.Add("mAnkleRight"); 646 parts.Add("mShoulderLeft"); parts.Add("mShoulderRight"); parts.Add("mAnkleLeft"); parts.Add("mAnkleRight");
620 parts.Add("mEyeRight");parts.Add("mChest");parts.Add("mToeLeft");parts.Add("mToeRight"); 647 parts.Add("mEyeRight"); parts.Add("mChest"); parts.Add("mToeLeft"); parts.Add("mToeRight");
621 parts.Add("mFootLeft");parts.Add("mFootRight");parts.Add("mEyeLeft"); 648 parts.Add("mFootLeft"); parts.Add("mFootRight"); parts.Add("mEyeLeft");
622 anim.HandPose = 1; 649 anim.HandPose = 1;
623 anim.InPoint = 0; 650 anim.InPoint = 0;
624 anim.OutPoint = (rnditerations * .10f); 651 anim.OutPoint = (rnditerations * .10f);
@@ -642,12 +669,12 @@ namespace OpenSim.Region.Framework.Scenes.Animation
642 for (int i = 0; i < rnditerations; i++) 669 for (int i = 0; i < rnditerations; i++)
643 { 670 {
644 anim.Joints[j].rotationkeys[i] = new binBVHJointKey(); 671 anim.Joints[j].rotationkeys[i] = new binBVHJointKey();
645 anim.Joints[j].rotationkeys[i].time = (i*.10f); 672 anim.Joints[j].rotationkeys[i].time = (i * .10f);
646 anim.Joints[j].rotationkeys[i].key_element.X = ((float) rnd.NextDouble()*2 - 1); 673 anim.Joints[j].rotationkeys[i].key_element.X = ((float)rnd.NextDouble() * 2 - 1);
647 anim.Joints[j].rotationkeys[i].key_element.Y = ((float) rnd.NextDouble()*2 - 1); 674 anim.Joints[j].rotationkeys[i].key_element.Y = ((float)rnd.NextDouble() * 2 - 1);
648 anim.Joints[j].rotationkeys[i].key_element.Z = ((float) rnd.NextDouble()*2 - 1); 675 anim.Joints[j].rotationkeys[i].key_element.Z = ((float)rnd.NextDouble() * 2 - 1);
649 anim.Joints[j].positionkeys[i] = new binBVHJointKey(); 676 anim.Joints[j].positionkeys[i] = new binBVHJointKey();
650 anim.Joints[j].positionkeys[i].time = (i*.10f); 677 anim.Joints[j].positionkeys[i].time = (i * .10f);
651 anim.Joints[j].positionkeys[i].key_element.X = 0; 678 anim.Joints[j].positionkeys[i].key_element.X = 0;
652 anim.Joints[j].positionkeys[i].key_element.Y = 0; 679 anim.Joints[j].positionkeys[i].key_element.Y = 0;
653 anim.Joints[j].positionkeys[i].key_element.Z = 0; 680 anim.Joints[j].positionkeys[i].key_element.Z = 0;
@@ -674,22 +701,22 @@ namespace OpenSim.Region.Framework.Scenes.Animation
674 /// <param name="objectIDs"></param> 701 /// <param name="objectIDs"></param>
675 public void SendAnimPack(UUID[] animations, int[] seqs, UUID[] objectIDs) 702 public void SendAnimPack(UUID[] animations, int[] seqs, UUID[] objectIDs)
676 { 703 {
677/* 704 /*
678 if (m_scenePresence.IsChildAgent) 705 if (m_scenePresence.IsChildAgent)
679 return; 706 return;
680 707
681// m_log.DebugFormat( 708 // m_log.DebugFormat(
682// "[SCENE PRESENCE ANIMATOR]: Sending anim pack with animations '{0}', sequence '{1}', uuids '{2}'", 709 // "[SCENE PRESENCE ANIMATOR]: Sending anim pack with animations '{0}', sequence '{1}', uuids '{2}'",
683// string.Join(",", Array.ConvertAll<UUID, string>(animations, a => a.ToString())), 710 // string.Join(",", Array.ConvertAll<UUID, string>(animations, a => a.ToString())),
684// string.Join(",", Array.ConvertAll<int, string>(seqs, s => s.ToString())), 711 // string.Join(",", Array.ConvertAll<int, string>(seqs, s => s.ToString())),
685// string.Join(",", Array.ConvertAll<UUID, string>(objectIDs, o => o.ToString()))); 712 // string.Join(",", Array.ConvertAll<UUID, string>(objectIDs, o => o.ToString())));
686 713
687 m_scenePresence.Scene.ForEachClient( 714 m_scenePresence.Scene.ForEachClient(
688 delegate(IClientAPI client) 715 delegate(IClientAPI client)
689 { 716 {
690 client.SendAnimations(animations, seqs, m_scenePresence.ControllingClient.AgentId, objectIDs); 717 client.SendAnimations(animations, seqs, m_scenePresence.ControllingClient.AgentId, objectIDs);
691 }); 718 });
692 */ 719 */
693 m_scenePresence.SendAnimPack(animations, seqs, objectIDs); 720 m_scenePresence.SendAnimPack(animations, seqs, objectIDs);
694 } 721 }
695 722
@@ -699,7 +726,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
699 sequenceNums = null; 726 sequenceNums = null;
700 objectIDs = null; 727 objectIDs = null;
701 728
702 if(m_animations != null) 729 if (m_animations != null)
703 m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs); 730 m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs);
704 } 731 }
705 732
@@ -722,7 +749,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
722 public void SendAnimPack() 749 public void SendAnimPack()
723 { 750 {
724 //m_log.Debug("Sending animation pack to all"); 751 //m_log.Debug("Sending animation pack to all");
725 752
726 if (m_scenePresence.IsChildAgent) 753 if (m_scenePresence.IsChildAgent)
727 return; 754 return;
728 755
@@ -732,7 +759,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
732 759
733 m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs); 760 m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs);
734 761
735// SendAnimPack(animIDs, sequenceNums, objectIDs); 762 // SendAnimPack(animIDs, sequenceNums, objectIDs);
736 m_scenePresence.SendAnimPack(animIDs, sequenceNums, objectIDs); 763 m_scenePresence.SendAnimPack(animIDs, sequenceNums, objectIDs);
737 } 764 }
738 765