aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorUbitUmarov2012-04-13 20:34:56 +0100
committerUbitUmarov2012-04-13 20:34:56 +0100
commitb574d43c5d5706cf6325c909ddf0ff573e44e49b (patch)
tree9253deb93ff3f46f9202bd4dd48d9a46e51d1735
parent don't do Animator.UpdateMovementAnimations() in scenepresence RegionHeartbea... (diff)
downloadopensim-SC_OLD-b574d43c5d5706cf6325c909ddf0ff573e44e49b.zip
opensim-SC_OLD-b574d43c5d5706cf6325c909ddf0ff573e44e49b.tar.gz
opensim-SC_OLD-b574d43c5d5706cf6325c909ddf0ff573e44e49b.tar.bz2
opensim-SC_OLD-b574d43c5d5706cf6325c909ddf0ff573e44e49b.tar.xz
Use presence absolute position to request raycast to camera. Used m_pos maybe a sitting offset. For reasons i don't understand that also seems to crash ode more when i let this rays colide with heighmaps (ubitODE with normal ode lib).
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs14
1 files changed, 11 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index c4b75bd..855a341 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -753,7 +753,7 @@ namespace OpenSim.Region.Framework.Scenes
753 if (m_movementAnimationUpdateCounter >= 2) 753 if (m_movementAnimationUpdateCounter >= 2)
754 { 754 {
755 m_movementAnimationUpdateCounter = 0; 755 m_movementAnimationUpdateCounter = 0;
756 if (Animator != null && ParentID == 0) // don't do it sitting 756 if (Animator != null && ParentID == 0) // skip it if sitting
757 { 757 {
758 Animator.UpdateMovementAnimations(); 758 Animator.UpdateMovementAnimations();
759 } 759 }
@@ -1386,8 +1386,16 @@ namespace OpenSim.Region.Framework.Scenes
1386 { 1386 {
1387 if (m_followCamAuto) 1387 if (m_followCamAuto)
1388 { 1388 {
1389 Vector3 posAdjusted = m_pos + HEAD_ADJUSTMENT; 1389 // Vector3 posAdjusted = m_pos + HEAD_ADJUSTMENT;
1390 m_scene.PhysicsScene.RaycastWorld(m_pos, Vector3.Normalize(CameraPosition - posAdjusted), Vector3.Distance(CameraPosition, posAdjusted) + 0.3f, RayCastCameraCallback); 1390 // m_scene.PhysicsScene.RaycastWorld(m_pos, Vector3.Normalize(CameraPosition - posAdjusted), Vector3.Distance(CameraPosition, posAdjusted) + 0.3f, RayCastCameraCallback);
1391 Vector3 posAdjusted = AbsolutePosition + HEAD_ADJUSTMENT;
1392 Vector3 distTocam = CameraPosition - posAdjusted;
1393 float distTocamlen = distTocam.Length();
1394 if (distTocamlen > 0)
1395 {
1396 distTocam *= 1.0f / distTocamlen;
1397 m_scene.PhysicsScene.RaycastWorld(posAdjusted, distTocam, distTocamlen + 0.3f, RayCastCameraCallback);
1398 }
1391 } 1399 }
1392 } 1400 }
1393 1401