From 47c412ca1edcefb1730b1e05c014c76065cb20fe Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 15 Oct 2011 01:20:40 +0100 Subject: [PATCH] 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 --- .../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 f1cc8e6744..07f2612d2d 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 ac92b8b963..3bc99571b3 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 a93ad7f00e..e79b25a02b 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; @@ -1551,7 +1575,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; @@ -1609,7 +1633,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) { @@ -1622,7 +1646,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) { @@ -1646,7 +1670,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) { @@ -1659,7 +1689,7 @@ namespace OpenSim.Region.Physics.OdePlugin } } - public void RemoveCharacter(OdeCharacter chr) + internal void RemoveCharacter(OdeCharacter chr) { lock (_characters) { @@ -1670,7 +1700,7 @@ namespace OpenSim.Region.Physics.OdePlugin } } - public void BadCharacter(OdeCharacter chr) + internal void BadCharacter(OdeCharacter chr) { lock (_badCharacter) { @@ -1679,12 +1709,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) { @@ -1704,13 +1728,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"); } @@ -2083,12 +2111,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) @@ -2120,7 +2150,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) @@ -2216,7 +2246,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++) { @@ -2228,10 +2258,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 @@ -2240,7 +2270,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. @@ -2371,7 +2401,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); @@ -2387,7 +2417,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()); @@ -2399,7 +2429,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]; @@ -2426,7 +2456,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 @@ -2699,7 +2729,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name); else { // Console.WriteLine("Simulate calls ProcessTaints for {0}", prim.Name); - prim.ProcessTaints(timeStep); + prim.ProcessTaints(); } processedtaints = true; @@ -2893,7 +2923,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 @@ -3084,7 +3114,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 @@ -3121,7 +3151,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]; @@ -3234,7 +3264,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]; @@ -3402,7 +3432,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 @@ -3531,7 +3561,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name); { } - public float GetWaterLevel() + internal float GetWaterLevel() { return waterlevel; } @@ -3606,7 +3636,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; @@ -3658,9 +3688,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() @@ -3707,6 +3735,7 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name); } } } + return returncolliders; }