From 6f2d80cc930c83e81cc351f6e66a206141cf084a Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 14 Dec 2011 21:27:47 +0000 Subject: minor: add some currently commented log lines for use in debugging --- OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics') diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index a6c2eca..da540fa 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs @@ -1699,6 +1699,10 @@ namespace OpenSim.Region.Physics.OdePlugin public override void RemoveAvatar(PhysicsActor actor) { +// m_log.DebugFormat( +// "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2}", +// actor.Name, actor.LocalID, Name); + //m_log.Debug("[PHYSICS]:ODELOCK"); ((OdeCharacter) actor).Destroy(); } @@ -1707,6 +1711,9 @@ namespace OpenSim.Region.Physics.OdePlugin { if (!_characters.Contains(chr)) { +// m_log.DebugFormat( +// "[ODE SCENE]: Adding physics character {0} {1} to physics scene {2}", chr.Name, chr.LocalID, Name); + _characters.Add(chr); if (chr.bad) @@ -1765,7 +1772,7 @@ namespace OpenSim.Region.Physics.OdePlugin public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, Vector3 size, Quaternion rotation, bool isPhysical, uint localid) { -// m_log.DebugFormat("[ODE SCENE]: Adding physics actor to {0} {1}", primName, localid); +// m_log.DebugFormat("[ODE SCENE]: Adding physics prim {0} {1} to physics scene {2}", primName, localid, Name); return AddPrim(primName, position, size, rotation, pbs, isPhysical, localid); } -- cgit v1.1 From 937c06db54f8152486d37a4ba604ffb3bcdccbb4 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 15 Dec 2011 21:57:22 +0000 Subject: Code cleanup related to ScenePresence.PhysicsActor and OdeScene/OdeCharacter Stop hiding RemoveAvatar failure, add log messages when characters are removed through defects or re-added unexpectedly. Add commented out log lines for future use. Use automatic property for PhysicsActor for better code readability and simplicity --- OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | 6 +++--- OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 26 +++++++++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/Physics') diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index 73c1c02..9c7e0ef 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs @@ -137,7 +137,7 @@ namespace OpenSim.Region.Physics.OdePlugin internal IntPtr Body = IntPtr.Zero; private OdeScene _parent_scene; internal IntPtr Shell = IntPtr.Zero; - internal IntPtr Amotor = IntPtr.Zero; + private IntPtr Amotor = IntPtr.Zero; private d.Mass ShellMass; private int m_eventsubscription = 0; @@ -549,8 +549,8 @@ namespace OpenSim.Region.Physics.OdePlugin { get { - float AVvolume = (float) (Math.PI*Math.Pow(CAPSULE_RADIUS, 2)*CAPSULE_LENGTH); - return m_density*AVvolume; + float AVvolume = (float)(Math.PI * Math.Pow(CAPSULE_RADIUS, 2) * CAPSULE_LENGTH); + return m_density * AVvolume; } } diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index da540fa..afe646c 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs @@ -1703,7 +1703,6 @@ namespace OpenSim.Region.Physics.OdePlugin // "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2}", // actor.Name, actor.LocalID, Name); - //m_log.Debug("[PHYSICS]:ODELOCK"); ((OdeCharacter) actor).Destroy(); } @@ -1711,11 +1710,12 @@ namespace OpenSim.Region.Physics.OdePlugin { if (!_characters.Contains(chr)) { -// m_log.DebugFormat( -// "[ODE SCENE]: Adding physics character {0} {1} to physics scene {2}", chr.Name, chr.LocalID, Name); - _characters.Add(chr); +// m_log.DebugFormat( +// "[ODE SCENE]: Adding physics character {0} {1} to physics scene {2}. Count now {3}", +// chr.Name, chr.LocalID, Name, _characters.Count); + if (chr.bad) m_log.ErrorFormat("[ODE SCENE]: Added BAD actor {0} to characters list", chr.m_uuid); } @@ -1730,11 +1730,19 @@ namespace OpenSim.Region.Physics.OdePlugin internal void RemoveCharacter(OdeCharacter chr) { if (_characters.Contains(chr)) + { _characters.Remove(chr); + +// m_log.DebugFormat( +// "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2}. Count now {3}", +// chr.Name, chr.LocalID, Name, _characters.Count); + } else + { m_log.ErrorFormat( "[ODE SCENE]: Tried to remove character {0} {1} but they are not in the list!", chr.Name, chr.LocalID); + } } private PhysicsActor AddPrim(String name, Vector3 position, Vector3 size, Quaternion rotation, @@ -1772,7 +1780,7 @@ namespace OpenSim.Region.Physics.OdePlugin public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, Vector3 size, Quaternion rotation, bool isPhysical, uint localid) { -// m_log.DebugFormat("[ODE SCENE]: Adding physics prim {0} {1} to physics scene {2}", primName, localid, Name); + m_log.DebugFormat("[ODE SCENE]: Adding physics prim {0} {1} to physics scene {2}", primName, localid, Name); return AddPrim(primName, position, size, rotation, pbs, isPhysical, localid); } @@ -2762,6 +2770,10 @@ namespace OpenSim.Region.Physics.OdePlugin { foreach (OdeCharacter actor in defects) { + m_log.ErrorFormat( + "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2} due to defect found when moving", + actor.Name, actor.LocalID, Name); + RemoveCharacter(actor); actor.DestroyOdeStructures(); } @@ -2832,6 +2844,10 @@ namespace OpenSim.Region.Physics.OdePlugin { foreach (OdeCharacter actor in defects) { + m_log.ErrorFormat( + "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2} due to defect found when updating position and velocity", + actor.Name, actor.LocalID, Name); + RemoveCharacter(actor); actor.DestroyOdeStructures(); } -- cgit v1.1 From c0ba99e5ada0b734b932091befce69dbd53d149a Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 15 Dec 2011 22:29:36 +0000 Subject: Stop having to call SetHeight again in ScenePresence.AddToPhysicalScene() when we've already passed size information to the avatar at PhysicsScene.AddAvatar() Eliminate some copypasta for height setting in OdeCharacter --- .../BasicPhysicsPlugin/BasicPhysicsActor.cs | 3 +- .../BasicPhysicsPlugin/BasicPhysicsScene.cs | 2 +- OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | 38 +++++++++++++--------- 3 files changed, 25 insertions(+), 18 deletions(-) (limited to 'OpenSim/Region/Physics') diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs index 5e2eeeb..1e1d5e3 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs @@ -44,8 +44,9 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin private bool flying; private bool iscolliding; - public BasicActor() + public BasicActor(Vector3 size) { + Size = size; } public override int PhysicsActorType diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsScene.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsScene.cs index 1ceed1a..2e14216 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsScene.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsScene.cs @@ -56,7 +56,7 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin } public override PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying) { - BasicActor act = new BasicActor(); + BasicActor act = new BasicActor(size); act.Position = position; act.Flying = isFlying; _actors.Add(act); diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index 9c7e0ef..9200016 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs @@ -199,9 +199,11 @@ namespace OpenSim.Region.Physics.OdePlugin { m_colliderarr[i] = false; } - CAPSULE_LENGTH = (size.Z * 1.15f) - CAPSULE_RADIUS * 2.0f; - //m_log.Info("[ODE CHARACTER]: " + CAPSULE_LENGTH.ToString()); - m_tainted_CAPSULE_LENGTH = CAPSULE_LENGTH; + + // We can set taint and actual to be the same here, since the entire character will be set up when the + // m_tainted_isPhysical is processed. + SetTaintedCapsuleLength(size); + CAPSULE_LENGTH = m_tainted_CAPSULE_LENGTH; m_isPhysical = false; // current status: no ODE information exists m_tainted_isPhysical = true; // new tainted status: need to create ODE information @@ -457,24 +459,28 @@ namespace OpenSim.Region.Physics.OdePlugin get { return new Vector3(CAPSULE_RADIUS * 2, CAPSULE_RADIUS * 2, CAPSULE_LENGTH); } set { - if (value.IsFinite()) - { - m_pidControllerActive = true; - - Vector3 SetSize = value; - m_tainted_CAPSULE_LENGTH = (SetSize.Z * 1.15f) - CAPSULE_RADIUS * 2.0f; -// m_log.Info("[ODE CHARACTER]: " + CAPSULE_LENGTH); + SetTaintedCapsuleLength(value); // If we reset velocity here, then an avatar stalls when it crosses a border for the first time // (as the height of the new root agent is set). // Velocity = Vector3.Zero; - _parent_scene.AddPhysicsActorTaint(this); - } - else - { - m_log.WarnFormat("[ODE CHARACTER]: Got a NaN Size from Scene on {0}", Name); - } + _parent_scene.AddPhysicsActorTaint(this); + } + } + + private void SetTaintedCapsuleLength(Vector3 size) + { + if (size.IsFinite()) + { + m_pidControllerActive = true; + + m_tainted_CAPSULE_LENGTH = (size.Z * 1.15f) - CAPSULE_RADIUS * 2.0f; +// m_log.Info("[ODE CHARACTER]: " + CAPSULE_LENGTH); + } + else + { + m_log.WarnFormat("[ODE CHARACTER]: Got a NaN Size for {0} in {1}", Name, _parent_scene.Name); } } -- cgit v1.1 From 8013c0d2f5cf964bde3bb212b5828f708ad3c816 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 15 Dec 2011 22:33:14 +0000 Subject: Stop pointlessly setting the m_colliderarr[] to false in the ODECharacter constructor --- OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | 5 ----- 1 file changed, 5 deletions(-) (limited to 'OpenSim/Region/Physics') diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index 9200016..f2bb4bf 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs @@ -195,11 +195,6 @@ namespace OpenSim.Region.Physics.OdePlugin // new d.Matrix3(0.5f, 0.7071068f, 0.5f, -0.7071068f, 0f, 0.7071068f, 0.5f, -0.7071068f, // 0.5f); - for (int i = 0; i < 11; i++) - { - m_colliderarr[i] = false; - } - // We can set taint and actual to be the same here, since the entire character will be set up when the // m_tainted_isPhysical is processed. SetTaintedCapsuleLength(size); -- cgit v1.1 From 5d79f857b0020715f4fed4fdd9d9b764c1864960 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 16 Dec 2011 20:54:28 +0000 Subject: Comment out accidentally left in "Adding physics prim" log message --- OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics') diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index afe646c..f716687 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs @@ -1780,7 +1780,7 @@ namespace OpenSim.Region.Physics.OdePlugin public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, Vector3 size, Quaternion rotation, bool isPhysical, uint localid) { - m_log.DebugFormat("[ODE SCENE]: Adding physics prim {0} {1} to physics scene {2}", primName, localid, Name); +// m_log.DebugFormat("[ODE SCENE]: Adding physics prim {0} {1} to physics scene {2}", primName, localid, Name); return AddPrim(primName, position, size, rotation, pbs, isPhysical, localid); } -- cgit v1.1