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
This commit is contained in:
Justin Clark-Casey (justincc)
2011-12-15 21:57:22 +00:00
parent 6f2d80cc93
commit 937c06db54
3 changed files with 56 additions and 35 deletions

View File

@@ -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;
}
}

View File

@@ -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();
}