From f2132329a358db2c66c29501d35ef54eae8d6eed Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 15 Oct 2011 01:20:40 +0100
Subject: refactor: make methods that do not need to be public in ODE private
or internal to aid code reading/analysis. Remove some unused method
arguments
---
OpenSim/Region/Physics/Manager/PhysicsScene.cs | 1 -
OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 190 +++++++++++++++----------
OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 133 ++++++++++-------
3 files changed, 195 insertions(+), 129 deletions(-)
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
index f1cc8e6..07f2612 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
@@ -185,7 +185,6 @@ namespace OpenSim.Region.Physics.Manager
public virtual Vector3 GetJointAxis(PhysicsJoint joint)
{ return Vector3.Zero; }
-
public abstract void AddPhysicsActorTaint(PhysicsActor prim);
public abstract float Simulate(float timeStep);
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index ac92b8b..3bc9957 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -326,7 +326,7 @@ namespace OpenSim.Region.Physics.OdePlugin
/// Set a new geometry for this prim.
///
///
- public void SetGeom(IntPtr geom)
+ private void SetGeom(IntPtr geom)
{
prim_geom = geom;
//Console.WriteLine("SetGeom to " + prim_geom + " for " + Name);
@@ -351,7 +351,7 @@ namespace OpenSim.Region.Physics.OdePlugin
//m_log.Warn("Setting Geom to: " + prim_geom);
}
- public void enableBodySoft()
+ private void enableBodySoft()
{
if (!childPrim)
{
@@ -366,7 +366,7 @@ namespace OpenSim.Region.Physics.OdePlugin
}
}
- public void disableBodySoft()
+ private void disableBodySoft()
{
m_disabled = true;
@@ -379,7 +379,7 @@ namespace OpenSim.Region.Physics.OdePlugin
///
/// Make a prim subject to physics.
///
- public void enableBody()
+ private void enableBody()
{
// Don't enable this body if we're a child prim
// this should be taken care of in the parent function not here
@@ -423,7 +423,7 @@ namespace OpenSim.Region.Physics.OdePlugin
m_vehicle.Enable(Body, _parent_scene);
}
- _parent_scene.addActivePrim(this);
+ _parent_scene.ActivatePrim(this);
}
}
@@ -741,7 +741,7 @@ namespace OpenSim.Region.Physics.OdePlugin
#endregion
- public void setMass()
+ private void setMass()
{
if (Body != (IntPtr) 0)
{
@@ -757,7 +757,7 @@ namespace OpenSim.Region.Physics.OdePlugin
///
/// Stop a prim from being subject to physics.
///
- public void disableBody()
+ internal void disableBody()
{
//this kills the body so things like 'mesh' can re-create it.
lock (this)
@@ -766,7 +766,7 @@ namespace OpenSim.Region.Physics.OdePlugin
{
if (Body != IntPtr.Zero)
{
- _parent_scene.remActivePrim(this);
+ _parent_scene.DeactivatePrim(this);
m_collisionCategories &= ~CollisionCategories.Body;
m_collisionFlags &= ~(CollisionCategories.Wind | CollisionCategories.Land);
@@ -783,7 +783,7 @@ namespace OpenSim.Region.Physics.OdePlugin
{
foreach (OdePrim prm in childrenPrim)
{
- _parent_scene.remActivePrim(prm);
+ _parent_scene.DeactivatePrim(prm);
prm.Body = IntPtr.Zero;
}
}
@@ -793,7 +793,7 @@ namespace OpenSim.Region.Physics.OdePlugin
}
else
{
- _parent_scene.remActivePrim(this);
+ _parent_scene.DeactivatePrim(this);
m_collisionCategories &= ~CollisionCategories.Body;
m_collisionFlags &= ~(CollisionCategories.Wind | CollisionCategories.Land);
@@ -814,7 +814,7 @@ namespace OpenSim.Region.Physics.OdePlugin
private static Dictionary m_MeshToTriMeshMap = new Dictionary();
- public void setMesh(OdeScene parent_scene, IMesh mesh)
+ private void setMesh(OdeScene parent_scene, IMesh mesh)
{
// m_log.DebugFormat("[ODE PRIM]: Setting mesh on {0} to {1}", Name, mesh);
@@ -884,73 +884,73 @@ namespace OpenSim.Region.Physics.OdePlugin
// }
}
- public void ProcessTaints(float timestep)
+ internal void ProcessTaints()
{
#if SPAM
Console.WriteLine("ZProcessTaints for " + Name);
#endif
if (m_taintadd)
{
- changeadd(timestep);
+ changeadd();
}
if (prim_geom != IntPtr.Zero)
{
if (!_position.ApproxEquals(m_taintposition, 0f))
- changemove(timestep);
+ changemove();
if (m_taintrot != _orientation)
{
if (childPrim && IsPhysical) // For physical child prim...
{
- rotate(timestep);
+ rotate();
// KF: ODE will also rotate the parent prim!
// so rotate the root back to where it was
OdePrim parent = (OdePrim)_parent;
- parent.rotate(timestep);
+ parent.rotate();
}
else
{
//Just rotate the prim
- rotate(timestep);
+ rotate();
}
}
if (m_taintPhysics != IsPhysical && !(m_taintparent != _parent))
- changePhysicsStatus(timestep);
+ changePhysicsStatus();
if (!_size.ApproxEquals(m_taintsize, 0f))
- changesize(timestep);
+ changesize();
if (m_taintshape)
- changeshape(timestep);
+ changeshape();
if (m_taintforce)
- changeAddForce(timestep);
+ changeAddForce();
if (m_taintaddangularforce)
- changeAddAngularForce(timestep);
+ changeAddAngularForce();
if (!m_taintTorque.ApproxEquals(Vector3.Zero, 0.001f))
- changeSetTorque(timestep);
+ changeSetTorque();
if (m_taintdisable)
- changedisable(timestep);
+ changedisable();
if (m_taintselected != m_isSelected)
- changeSelectedStatus(timestep);
+ changeSelectedStatus();
if (!m_taintVelocity.ApproxEquals(Vector3.Zero, 0.001f))
- changevelocity(timestep);
+ changevelocity();
if (m_taintparent != _parent)
- changelink(timestep);
+ changelink();
if (m_taintCollidesWater != m_collidesWater)
- changefloatonwater(timestep);
+ changefloatonwater();
if (!m_angularlock.ApproxEquals(m_taintAngularLock,0f))
- changeAngularLock(timestep);
+ changeAngularLock();
}
else
{
@@ -958,7 +958,10 @@ Console.WriteLine("ZProcessTaints for " + Name);
}
}
- private void changeAngularLock(float timestep)
+ ///
+ /// Change prim in response to an angular lock taint.
+ ///
+ private void changeAngularLock()
{
// do we have a Physical object?
if (Body != IntPtr.Zero)
@@ -983,11 +986,15 @@ Console.WriteLine("ZProcessTaints for " + Name);
}
}
}
+
// Store this for later in case we get turned into a separate body
m_angularlock = m_taintAngularLock;
}
- private void changelink(float timestep)
+ ///
+ /// Change prim in response to a link taint.
+ ///
+ private void changelink()
{
// If the newly set parent is not null
// create link
@@ -1042,7 +1049,7 @@ Console.WriteLine("ZProcessTaints for " + Name);
/// Add a child prim to this parent prim.
///
/// Child prim
- public void AddChildPrim(OdePrim prim)
+ private void AddChildPrim(OdePrim prim)
{
//Console.WriteLine("AddChildPrim " + Name);
if (this.m_localID != prim.m_localID)
@@ -1134,7 +1141,7 @@ Console.WriteLine("ZProcessTaints for " + Name);
prm.createAMotor(m_angularlock);
}
prm.Body = Body;
- _parent_scene.addActivePrim(prm);
+ _parent_scene.ActivatePrim(prm);
}
m_collisionCategories |= CollisionCategories.Body;
@@ -1179,7 +1186,7 @@ Console.WriteLine("ZProcessTaints for " + Name);
if (m_vehicle.Type != Vehicle.TYPE_NONE)
m_vehicle.Enable(Body, _parent_scene);
- _parent_scene.addActivePrim(this);
+ _parent_scene.ActivatePrim(this);
}
}
}
@@ -1206,7 +1213,7 @@ Console.WriteLine("ZProcessTaints for " + Name);
if (Body != IntPtr.Zero)
{
- _parent_scene.remActivePrim(this);
+ _parent_scene.DeactivatePrim(this);
}
lock (childrenPrim)
@@ -1245,7 +1252,7 @@ Console.WriteLine("ZProcessTaints for " + Name);
if (Body != IntPtr.Zero)
{
- _parent_scene.remActivePrim(this);
+ _parent_scene.DeactivatePrim(this);
}
lock (childrenPrim)
@@ -1258,7 +1265,10 @@ Console.WriteLine("ZProcessTaints for " + Name);
}
}
- private void changeSelectedStatus(float timestep)
+ ///
+ /// Change prim in response to a selection taint.
+ ///
+ private void changeSelectedStatus()
{
if (m_taintselected)
{
@@ -1338,7 +1348,7 @@ Console.WriteLine("ZProcessTaints for " + Name);
m_isSelected = m_taintselected;
}//end changeSelectedStatus
- public void ResetTaints()
+ internal void ResetTaints()
{
m_taintposition = _position;
m_taintrot = _orientation;
@@ -1356,7 +1366,7 @@ Console.WriteLine("ZProcessTaints for " + Name);
///
///
/// If null, then a mesh is used that is based on the profile shape data.
- public void CreateGeom(IntPtr m_targetSpace, IMesh mesh)
+ private void CreateGeom(IntPtr m_targetSpace, IMesh mesh)
{
#if SPAM
Console.WriteLine("CreateGeom:");
@@ -1442,7 +1452,7 @@ Console.WriteLine("CreateGeom:");
///
/// If null, then a mesh is used that is based on the profile shape data.
/// true if the geom was successfully removed, false if it was already gone or the remove failed.
- public bool RemoveGeom()
+ internal bool RemoveGeom()
{
if (prim_geom != IntPtr.Zero)
{
@@ -1468,8 +1478,10 @@ Console.WriteLine("CreateGeom:");
return false;
}
}
-
- public void changeadd(float timestep)
+ ///
+ /// Add prim in response to an add taint.
+ ///
+ private void changeadd()
{
int[] iprimspaceArrItem = _parent_scene.calculateSpaceArrayItemFromPos(_position);
IntPtr targetspace = _parent_scene.calculateSpaceForGeom(_position);
@@ -1513,12 +1525,15 @@ Console.WriteLine("changeadd 1");
}
}
- changeSelectedStatus(timestep);
+ changeSelectedStatus();
m_taintadd = false;
}
- public void changemove(float timestep)
+ ///
+ /// Move prim in response to a move taint.
+ ///
+ private void changemove()
{
if (IsPhysical)
{
@@ -1589,13 +1604,13 @@ Console.WriteLine(" JointCreateFixed");
}
}
- changeSelectedStatus(timestep);
+ changeSelectedStatus();
resetCollisionAccounting();
m_taintposition = _position;
}
- public void Move(float timestep)
+ internal void Move(float timestep)
{
float fx = 0;
float fy = 0;
@@ -1842,7 +1857,7 @@ Console.WriteLine(" JointCreateFixed");
}
}
- public void rotate(float timestep)
+ private void rotate()
{
d.Quaternion myrot = new d.Quaternion();
myrot.X = _orientation.X;
@@ -1876,7 +1891,10 @@ Console.WriteLine(" JointCreateFixed");
m_disabled = false;
}
- public void changedisable(float timestep)
+ ///
+ /// Change prim in response to a disable taint.
+ ///
+ private void changedisable()
{
m_disabled = true;
if (Body != IntPtr.Zero)
@@ -1888,7 +1906,10 @@ Console.WriteLine(" JointCreateFixed");
m_taintdisable = false;
}
- public void changePhysicsStatus(float timestep)
+ ///
+ /// Change prim in response to a physics status taint
+ ///
+ private void changePhysicsStatus()
{
if (IsPhysical)
{
@@ -1896,7 +1917,7 @@ Console.WriteLine(" JointCreateFixed");
{
if (_pbs.SculptEntry && _parent_scene.meshSculptedPrim)
{
- changeshape(2f);
+ changeshape();
}
else
{
@@ -1913,7 +1934,7 @@ Console.WriteLine(" JointCreateFixed");
RemoveGeom();
//Console.WriteLine("changePhysicsStatus for " + Name);
- changeadd(2f);
+ changeadd();
}
if (childPrim)
@@ -1931,13 +1952,16 @@ Console.WriteLine(" JointCreateFixed");
}
}
- changeSelectedStatus(timestep);
+ changeSelectedStatus();
resetCollisionAccounting();
m_taintPhysics = IsPhysical;
}
- public void changesize(float timestamp)
+ ///
+ /// Change prim in response to a size taint.
+ ///
+ private void changesize()
{
#if SPAM
m_log.DebugFormat("[ODE PRIM]: Called changesize");
@@ -2007,7 +2031,8 @@ Console.WriteLine(" JointCreateFixed");
d.BodyEnable(Body);
}
- changeSelectedStatus(timestamp);
+ changeSelectedStatus();
+
if (childPrim)
{
if (_parent is OdePrim)
@@ -2020,7 +2045,11 @@ Console.WriteLine(" JointCreateFixed");
m_taintsize = _size;
}
- public void changefloatonwater(float timestep)
+ ///
+ /// Change prim in response to a float on water taint.
+ ///
+ ///
+ private void changefloatonwater()
{
m_collidesWater = m_taintCollidesWater;
@@ -2038,7 +2067,10 @@ Console.WriteLine(" JointCreateFixed");
}
}
- public void changeshape(float timestamp)
+ ///
+ /// Change prim in response to a shape taint.
+ ///
+ private void changeshape()
{
// Cleanup of old prim geometry and Bodies
if (IsPhysical && Body != IntPtr.Zero)
@@ -2101,7 +2133,8 @@ Console.WriteLine(" JointCreateFixed");
}
}
- changeSelectedStatus(timestamp);
+ changeSelectedStatus();
+
if (childPrim)
{
if (_parent is OdePrim)
@@ -2115,7 +2148,10 @@ Console.WriteLine(" JointCreateFixed");
m_taintshape = false;
}
- public void changeAddForce(float timestamp)
+ ///
+ /// Change prim in response to an add force taint.
+ ///
+ private void changeAddForce()
{
if (!m_isSelected)
{
@@ -2163,7 +2199,10 @@ Console.WriteLine(" JointCreateFixed");
m_taintforce = false;
}
- public void changeSetTorque(float timestamp)
+ ///
+ /// Change prim in response to a torque taint.
+ ///
+ private void changeSetTorque()
{
if (!m_isSelected)
{
@@ -2176,7 +2215,10 @@ Console.WriteLine(" JointCreateFixed");
m_taintTorque = Vector3.Zero;
}
- public void changeAddAngularForce(float timestamp)
+ ///
+ /// Change prim in response to an angular force taint.
+ ///
+ private void changeAddAngularForce()
{
if (!m_isSelected)
{
@@ -2204,7 +2246,10 @@ Console.WriteLine(" JointCreateFixed");
m_taintaddangularforce = false;
}
- private void changevelocity(float timestep)
+ ///
+ /// Change prim in response to a velocity taint.
+ ///
+ private void changevelocity()
{
if (!m_isSelected)
{
@@ -2219,10 +2264,11 @@ Console.WriteLine(" JointCreateFixed");
//resetCollisionAccounting();
}
+
m_taintVelocity = Vector3.Zero;
}
- public void setPrimForRemoval()
+ internal void setPrimForRemoval()
{
m_taintremove = true;
}
@@ -2438,16 +2484,13 @@ Console.WriteLine(" JointCreateFixed");
set
{
if (QuaternionIsFinite(value))
- {
_orientation = value;
- }
else
m_log.WarnFormat("[PHYSICS]: Got NaN quaternion Orientation from Scene in Object {0}", Name);
-
}
}
- internal static bool QuaternionIsFinite(Quaternion q)
+ private static bool QuaternionIsFinite(Quaternion q)
{
if (Single.IsNaN(q.X) || Single.IsInfinity(q.X))
return false;
@@ -2465,12 +2508,6 @@ Console.WriteLine(" JointCreateFixed");
get { return _acceleration; }
}
-
- public void SetAcceleration(Vector3 accel)
- {
- _acceleration = accel;
- }
-
public override void AddForce(Vector3 force, bool pushforce)
{
if (force.IsFinite())
@@ -2574,7 +2611,7 @@ Console.WriteLine(" JointCreateFixed");
}
}
- public void UpdatePositionAndVelocity()
+ internal void UpdatePositionAndVelocity()
{
// no lock; called from Simulate() -- if you call this from elsewhere, gotta lock or do Monitor.Enter/Exit!
if (_parent == null)
@@ -2943,7 +2980,7 @@ Console.WriteLine(" JointCreateFixed");
d.JointSetAMotorParam(Amotor, (int)dParam.FMax, Mass * 50f);//
}
- public Matrix4 FromDMass(d.Mass pMass)
+ private Matrix4 FromDMass(d.Mass pMass)
{
Matrix4 obj;
obj.M11 = pMass.I.M00;
@@ -2965,7 +3002,7 @@ Console.WriteLine(" JointCreateFixed");
return obj;
}
- public d.Mass FromMatrix4(Matrix4 pMat, ref d.Mass obj)
+ private d.Mass FromMatrix4(Matrix4 pMat, ref d.Mass obj)
{
obj.I.M00 = pMat[0, 0];
obj.I.M01 = pMat[0, 1];
@@ -3153,6 +3190,7 @@ Console.WriteLine(" JointCreateFixed");
break;
}
}
+
private static float determinant3x3(Matrix4 pMat)
{
float det = 0;
@@ -3190,4 +3228,4 @@ Console.WriteLine(" JointCreateFixed");
m_material = pMaterial;
}
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
index e8689a6..355d30b 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
@@ -193,9 +193,30 @@ namespace OpenSim.Region.Physics.OdePlugin
private readonly HashSet _characters = new HashSet();
private readonly HashSet _prims = new HashSet();
private readonly HashSet _activeprims = new HashSet();
- private readonly HashSet _taintedPrimH = new HashSet();
+
+ ///
+ /// Used to lock on manipulation of _taintedPrimL and _taintedPrimH
+ ///
private readonly Object _taintedPrimLock = new Object();
+
+ ///
+ /// List of tainted prims.
+ ///
+ ///
+ /// A tainted prim is one that has taints to process before performing any other operations. The list is
+ /// cleared after processing.
+ ///
private readonly List _taintedPrimL = new List();
+
+ ///
+ /// HashSet of tainted prims.
+ ///
+ ///
+ /// A tainted prim is one that has taints to process before performing any other operations. The hashset is
+ /// cleared after processing.
+ ///
+ private readonly HashSet _taintedPrimH = new HashSet();
+
private readonly HashSet _taintedActors = new HashSet();
private readonly List _perloopContact = new List();
@@ -257,6 +278,9 @@ namespace OpenSim.Region.Physics.OdePlugin
// split static geometry collision handling into spaces of 30 meters
public IntPtr[,] staticPrimspace;
+ ///
+ /// Used to lock the entire physics scene. Locked during the main part of Simulate()
+ ///
public Object OdeLock;
public IMesher mesher;
@@ -643,15 +667,15 @@ namespace OpenSim.Region.Physics.OdePlugin
//while (d.SpaceLockQuery(space)) { } // Wait and do nothing
}
- ///
- /// Debug space message for printing the space that a prim/avatar is in.
- ///
- ///
- /// Returns which split up space the given position is in.
- public string whichspaceamIin(Vector3 pos)
- {
- return calculateSpaceForGeom(pos).ToString();
- }
+// ///
+// /// Debug space message for printing the space that a prim/avatar is in.
+// ///
+// ///
+// /// Returns which split up space the given position is in.
+// public string whichspaceamIin(Vector3 pos)
+// {
+// return calculateSpaceForGeom(pos).ToString();
+// }
#region Collision Detection
@@ -1402,7 +1426,7 @@ namespace OpenSim.Region.Physics.OdePlugin
// }
}
- public int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount)
+ private int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount)
{
/* String name1 = null;
String name2 = null;
@@ -1421,7 +1445,7 @@ namespace OpenSim.Region.Physics.OdePlugin
return 1;
}
- public int TriCallback(IntPtr trimesh, IntPtr refObject, int triangleIndex)
+ private int TriCallback(IntPtr trimesh, IntPtr refObject, int triangleIndex)
{
// String name1 = null;
// String name2 = null;
@@ -1552,7 +1576,7 @@ namespace OpenSim.Region.Physics.OdePlugin
}
// Recovered for use by fly height. Kitto Flora
- public float GetTerrainHeightAtXY(float x, float y)
+ internal float GetTerrainHeightAtXY(float x, float y)
{
int offsetX = ((int)(x / (int)Constants.RegionSize)) * (int)Constants.RegionSize;
int offsetY = ((int)(y / (int)Constants.RegionSize)) * (int)Constants.RegionSize;
@@ -1610,7 +1634,7 @@ namespace OpenSim.Region.Physics.OdePlugin
/// Add actor to the list that should receive collision events in the simulate loop.
///
///
- public void AddCollisionEventReporting(PhysicsActor obj)
+ internal void AddCollisionEventReporting(PhysicsActor obj)
{
lock (_collisionEventPrim)
{
@@ -1623,7 +1647,7 @@ namespace OpenSim.Region.Physics.OdePlugin
/// Remove actor from the list that should receive collision events in the simulate loop.
///
///
- public void RemoveCollisionEventReporting(PhysicsActor obj)
+ internal void RemoveCollisionEventReporting(PhysicsActor obj)
{
lock (_collisionEventPrim)
{
@@ -1647,7 +1671,13 @@ namespace OpenSim.Region.Physics.OdePlugin
return newAv;
}
- public void AddCharacter(OdeCharacter chr)
+ public override void RemoveAvatar(PhysicsActor actor)
+ {
+ //m_log.Debug("[PHYSICS]:ODELOCK");
+ ((OdeCharacter) actor).Destroy();
+ }
+
+ internal void AddCharacter(OdeCharacter chr)
{
lock (_characters)
{
@@ -1660,7 +1690,7 @@ namespace OpenSim.Region.Physics.OdePlugin
}
}
- public void RemoveCharacter(OdeCharacter chr)
+ internal void RemoveCharacter(OdeCharacter chr)
{
lock (_characters)
{
@@ -1671,7 +1701,7 @@ namespace OpenSim.Region.Physics.OdePlugin
}
}
- public void BadCharacter(OdeCharacter chr)
+ internal void BadCharacter(OdeCharacter chr)
{
lock (_badCharacter)
{
@@ -1680,12 +1710,6 @@ namespace OpenSim.Region.Physics.OdePlugin
}
}
- public override void RemoveAvatar(PhysicsActor actor)
- {
- //m_log.Debug("[PHYSICS]:ODELOCK");
- ((OdeCharacter) actor).Destroy();
- }
-
private PhysicsActor AddPrim(String name, Vector3 position, Vector3 size, Quaternion rotation,
PrimitiveBaseShape pbs, bool isphysical, uint localID)
{
@@ -1705,13 +1729,17 @@ namespace OpenSim.Region.Physics.OdePlugin
return newPrim;
}
- public void addActivePrim(OdePrim activatePrim)
+ ///
+ /// Make this prim subject to physics.
+ ///
+ ///
+ internal void ActivatePrim(OdePrim prim)
{
// adds active prim.. (ones that should be iterated over in collisions_optimized
lock (_activeprims)
{
- if (!_activeprims.Contains(activatePrim))
- _activeprims.Add(activatePrim);
+ if (!_activeprims.Contains(prim))
+ _activeprims.Add(prim);
//else
// m_log.Warn("[PHYSICS]: Double Entry in _activeprims detected, potential crash immenent");
}
@@ -2084,12 +2112,14 @@ namespace OpenSim.Region.Physics.OdePlugin
return new Vector3(axis.X, axis.Y, axis.Z);
}
- public void remActivePrim(OdePrim deactivatePrim)
+ ///
+ /// Stop this prim being subject to physics
+ ///
+ ///
+ internal void DeactivatePrim(OdePrim prim)
{
lock (_activeprims)
- {
- _activeprims.Remove(deactivatePrim);
- }
+ _activeprims.Remove(prim);
}
public override void RemovePrim(PhysicsActor prim)
@@ -2121,7 +2151,7 @@ namespace OpenSim.Region.Physics.OdePlugin
/// that the space was using.
///
///
- public void RemovePrimThreadLocked(OdePrim prim)
+ internal void RemovePrimThreadLocked(OdePrim prim)
{
//Console.WriteLine("RemovePrimThreadLocked " + prim.m_primName);
lock (prim)
@@ -2217,7 +2247,7 @@ namespace OpenSim.Region.Physics.OdePlugin
/// Takes a space pointer and zeros out the array we're using to hold the spaces
///
///
- public void resetSpaceArrayItemToZero(IntPtr pSpace)
+ private void resetSpaceArrayItemToZero(IntPtr pSpace)
{
for (int x = 0; x < staticPrimspace.GetLength(0); x++)
{
@@ -2229,10 +2259,10 @@ namespace OpenSim.Region.Physics.OdePlugin
}
}
- public void resetSpaceArrayItemToZero(int arrayitemX, int arrayitemY)
- {
- staticPrimspace[arrayitemX, arrayitemY] = IntPtr.Zero;
- }
+// private void resetSpaceArrayItemToZero(int arrayitemX, int arrayitemY)
+// {
+// staticPrimspace[arrayitemX, arrayitemY] = IntPtr.Zero;
+// }
///
/// Called when a static prim moves. Allocates a space for the prim based on its position
@@ -2241,7 +2271,7 @@ namespace OpenSim.Region.Physics.OdePlugin
/// the position that the geom moved to
/// a pointer to the space it was in before it was moved.
/// a pointer to the new space it's in
- public IntPtr recalculateSpaceForGeom(IntPtr geom, Vector3 pos, IntPtr currentspace)
+ internal IntPtr recalculateSpaceForGeom(IntPtr geom, Vector3 pos, IntPtr currentspace)
{
// Called from setting the Position and Size of an ODEPrim so
// it's already in locked space.
@@ -2372,7 +2402,7 @@ namespace OpenSim.Region.Physics.OdePlugin
///
///
/// A pointer to the created space
- public IntPtr createprimspace(int iprimspaceArrItemX, int iprimspaceArrItemY)
+ internal IntPtr createprimspace(int iprimspaceArrItemX, int iprimspaceArrItemY)
{
// creating a new space for prim and inserting it into main space.
staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY] = d.HashSpaceCreate(IntPtr.Zero);
@@ -2388,7 +2418,7 @@ namespace OpenSim.Region.Physics.OdePlugin
///
///
/// a pointer to the space. This could be a new space or reused space.
- public IntPtr calculateSpaceForGeom(Vector3 pos)
+ internal IntPtr calculateSpaceForGeom(Vector3 pos)
{
int[] xyspace = calculateSpaceArrayItemFromPos(pos);
//m_log.Info("[Physics]: Attempting to use arrayItem: " + xyspace[0].ToString() + "," + xyspace[1].ToString());
@@ -2400,7 +2430,7 @@ namespace OpenSim.Region.Physics.OdePlugin
///
///
/// an array item based on the position
- public int[] calculateSpaceArrayItemFromPos(Vector3 pos)
+ internal int[] calculateSpaceArrayItemFromPos(Vector3 pos)
{
int[] returnint = new int[2];
@@ -2427,7 +2457,7 @@ namespace OpenSim.Region.Physics.OdePlugin
///
///
///
- public bool needsMeshing(PrimitiveBaseShape pbs)
+ internal bool needsMeshing(PrimitiveBaseShape pbs)
{
// most of this is redundant now as the mesher will return null if it cant mesh a prim
// but we still need to check for sculptie meshing being enabled so this is the most
@@ -2705,7 +2735,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
else
{
// Console.WriteLine("Simulate calls ProcessTaints for {0}", prim.Name);
- prim.ProcessTaints(timeStep);
+ prim.ProcessTaints();
}
processedtaints = true;
@@ -2910,7 +2940,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
///
/// Called by the main Simulate() loop if NINJA joints are active. Should not be called from anywhere else.
///
- protected void SimulatePendingNINJAJoints()
+ private void SimulatePendingNINJAJoints()
{
// Create pending joints, if possible
@@ -3101,7 +3131,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
/// Called as part of the Simulate() loop if NINJA physics is active. Must only be called from there.
///
///
- protected void SimulateActorPendingJoints(OdePrim actor)
+ private void SimulateActorPendingJoints(OdePrim actor)
{
// If an actor moved, move its joint proxy objects as well.
// There seems to be an event PhysicsActor.OnPositionUpdate that could be used
@@ -3138,7 +3168,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
}
#region ODE Specific Terrain Fixes
- public float[] ResizeTerrain512NearestNeighbour(float[] heightMap)
+ private float[] ResizeTerrain512NearestNeighbour(float[] heightMap)
{
float[] returnarr = new float[262144];
float[,] resultarr = new float[(int)WorldExtents.X, (int)WorldExtents.Y];
@@ -3251,7 +3281,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
return returnarr;
}
- public float[] ResizeTerrain512Interpolation(float[] heightMap)
+ private float[] ResizeTerrain512Interpolation(float[] heightMap)
{
float[] returnarr = new float[262144];
float[,] resultarr = new float[512,512];
@@ -3419,7 +3449,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
}
}
- public void SetTerrain(float[] heightMap, Vector3 pOffset)
+ private void SetTerrain(float[] heightMap, Vector3 pOffset)
{
// this._heightmap[i] = (double)heightMap[i];
// dbm (danx0r) -- creating a buffer zone of one extra sample all around
@@ -3548,7 +3578,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
{
}
- public float GetWaterLevel()
+ internal float GetWaterLevel()
{
return waterlevel;
}
@@ -3623,7 +3653,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
randomizeWater(waterlevel);
}
- public void randomizeWater(float baseheight)
+ private void randomizeWater(float baseheight)
{
const uint heightmapWidth = m_regionWidth + 2;
const uint heightmapHeight = m_regionHeight + 2;
@@ -3675,9 +3705,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
d.RFromAxisAndAngle(out R, v3.X, v3.Y, v3.Z, angle);
d.GeomSetRotation(WaterGeom, ref R);
d.GeomSetPosition(WaterGeom, 128, 128, 0);
-
}
-
}
public override void Dispose()
@@ -3724,6 +3752,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
}
}
}
+
return returncolliders;
}
--
cgit v1.1