diff options
author | Justin Clark-Casey (justincc) | 2010-09-25 01:07:37 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2010-09-25 01:07:37 +0100 |
commit | 30d3e8a13ef501c83c63a4cea07ee476df5e82f4 (patch) | |
tree | 6e5a92027eda915a84a7ba29ec4328fcc5ee09fc /OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |
parent | Add UUID to physics prim name parameter so that diagnostic messages can be ma... (diff) | |
download | opensim-SC_OLD-30d3e8a13ef501c83c63a4cea07ee476df5e82f4.zip opensim-SC_OLD-30d3e8a13ef501c83c63a4cea07ee476df5e82f4.tar.gz opensim-SC_OLD-30d3e8a13ef501c83c63a4cea07ee476df5e82f4.tar.bz2 opensim-SC_OLD-30d3e8a13ef501c83c63a4cea07ee476df5e82f4.tar.xz |
Add prim name to OdePrim Error and Warning messages.
This aims to make it easier to identify and remove rogue prims that are causing ODE to fall over.
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/ODEPrim.cs')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 87 |
1 files changed, 45 insertions, 42 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index 3cf4501..87cccad 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -170,7 +170,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
170 | private bool m_lastUpdateSent; | 170 | private bool m_lastUpdateSent; |
171 | 171 | ||
172 | public IntPtr Body = IntPtr.Zero; | 172 | public IntPtr Body = IntPtr.Zero; |
173 | public String m_primName; | 173 | public String Name { get; private set; } |
174 | private Vector3 _target_velocity; | 174 | private Vector3 _target_velocity; |
175 | public d.Mass pMass; | 175 | public d.Mass pMass; |
176 | 176 | ||
@@ -188,6 +188,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
188 | public OdePrim(String primName, OdeScene parent_scene, Vector3 pos, Vector3 size, | 188 | public OdePrim(String primName, OdeScene parent_scene, Vector3 pos, Vector3 size, |
189 | Quaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, bool pisPhysical, CollisionLocker dode) | 189 | Quaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, bool pisPhysical, CollisionLocker dode) |
190 | { | 190 | { |
191 | Name = primName; | ||
191 | m_vehicle = new ODEDynamics(); | 192 | m_vehicle = new ODEDynamics(); |
192 | //gc = GCHandle.Alloc(prim_geom, GCHandleType.Pinned); | 193 | //gc = GCHandle.Alloc(prim_geom, GCHandleType.Pinned); |
193 | ode = dode; | 194 | ode = dode; |
@@ -195,7 +196,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
195 | { | 196 | { |
196 | pos = new Vector3(((float)Constants.RegionSize * 0.5f), ((float)Constants.RegionSize * 0.5f), | 197 | pos = new Vector3(((float)Constants.RegionSize * 0.5f), ((float)Constants.RegionSize * 0.5f), |
197 | parent_scene.GetTerrainHeightAtXY(((float)Constants.RegionSize * 0.5f), ((float)Constants.RegionSize * 0.5f)) + 0.5f); | 198 | parent_scene.GetTerrainHeightAtXY(((float)Constants.RegionSize * 0.5f), ((float)Constants.RegionSize * 0.5f)) + 0.5f); |
198 | m_log.Warn("[PHYSICS]: Got nonFinite Object create Position"); | 199 | m_log.WarnFormat("[PHYSICS]: Got nonFinite Object create Position for {0}", Name); |
199 | } | 200 | } |
200 | _position = pos; | 201 | _position = pos; |
201 | m_taintposition = pos; | 202 | m_taintposition = pos; |
@@ -212,7 +213,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
212 | if (!pos.IsFinite()) | 213 | if (!pos.IsFinite()) |
213 | { | 214 | { |
214 | size = new Vector3(0.5f, 0.5f, 0.5f); | 215 | size = new Vector3(0.5f, 0.5f, 0.5f); |
215 | m_log.Warn("[PHYSICS]: Got nonFinite Object create Size"); | 216 | m_log.WarnFormat("[PHYSICS]: Got nonFinite Object create Size for {0}", Name); |
216 | } | 217 | } |
217 | 218 | ||
218 | if (size.X <= 0) size.X = 0.01f; | 219 | if (size.X <= 0) size.X = 0.01f; |
@@ -225,7 +226,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
225 | if (!QuaternionIsFinite(rotation)) | 226 | if (!QuaternionIsFinite(rotation)) |
226 | { | 227 | { |
227 | rotation = Quaternion.Identity; | 228 | rotation = Quaternion.Identity; |
228 | m_log.Warn("[PHYSICS]: Got nonFinite Object create Rotation"); | 229 | m_log.WarnFormat("[PHYSICS]: Got nonFinite Object create Rotation for {0}", Name); |
229 | } | 230 | } |
230 | 231 | ||
231 | _orientation = rotation; | 232 | _orientation = rotation; |
@@ -246,7 +247,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
246 | if (m_isphysical) | 247 | if (m_isphysical) |
247 | m_targetSpace = _parent_scene.space; | 248 | m_targetSpace = _parent_scene.space; |
248 | } | 249 | } |
249 | m_primName = primName; | 250 | |
250 | m_taintadd = true; | 251 | m_taintadd = true; |
251 | _parent_scene.AddPhysicsActorTaint(this); | 252 | _parent_scene.AddPhysicsActorTaint(this); |
252 | // don't do .add() here; old geoms get recycled with the same hash | 253 | // don't do .add() here; old geoms get recycled with the same hash |
@@ -304,7 +305,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
304 | { | 305 | { |
305 | prev_geom = prim_geom; | 306 | prev_geom = prim_geom; |
306 | prim_geom = geom; | 307 | prim_geom = geom; |
307 | //Console.WriteLine("SetGeom to " + prim_geom + " for " + m_primName); | 308 | //Console.WriteLine("SetGeom to " + prim_geom + " for " + Name); |
308 | if (prim_geom != IntPtr.Zero) | 309 | if (prim_geom != IntPtr.Zero) |
309 | { | 310 | { |
310 | d.GeomSetCategoryBits(prim_geom, (int)m_collisionCategories); | 311 | d.GeomSetCategoryBits(prim_geom, (int)m_collisionCategories); |
@@ -857,7 +858,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
857 | } | 858 | } |
858 | catch (AccessViolationException) | 859 | catch (AccessViolationException) |
859 | { | 860 | { |
860 | m_log.Error("[PHYSICS]: MESH LOCKED"); | 861 | m_log.ErrorFormat("[PHYSICS]: MESH LOCKED FOR {0}", Name); |
861 | return; | 862 | return; |
862 | } | 863 | } |
863 | 864 | ||
@@ -874,7 +875,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
874 | 875 | ||
875 | public void ProcessTaints(float timestep) | 876 | public void ProcessTaints(float timestep) |
876 | { | 877 | { |
877 | //Console.WriteLine("ProcessTaints for " + m_primName); | 878 | //Console.WriteLine("ProcessTaints for " + Name); |
878 | if (m_taintadd) | 879 | if (m_taintadd) |
879 | { | 880 | { |
880 | changeadd(timestep); | 881 | changeadd(timestep); |
@@ -945,7 +946,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
945 | } | 946 | } |
946 | else | 947 | else |
947 | { | 948 | { |
948 | m_log.Error("[PHYSICS]: The scene reused a disposed PhysActor! *waves finger*, Don't be evil. A couple of things can cause this. An improper prim breakdown(be sure to set prim_geom to zero after d.GeomDestroy! An improper buildup (creating the geom failed). Or, the Scene Reused a physics actor after disposing it.)"); | 949 | m_log.ErrorFormat("[PHYSICS]: The scene reused a disposed PhysActor for {0}! *waves finger*, Don't be evil. A couple of things can cause this. An improper prim breakdown(be sure to set prim_geom to zero after d.GeomDestroy! An improper buildup (creating the geom failed). Or, the Scene Reused a physics actor after disposing it.)", Name); |
949 | } | 950 | } |
950 | } | 951 | } |
951 | 952 | ||
@@ -1035,7 +1036,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1035 | // prim is the child | 1036 | // prim is the child |
1036 | public void ParentPrim(OdePrim prim) | 1037 | public void ParentPrim(OdePrim prim) |
1037 | { | 1038 | { |
1038 | //Console.WriteLine("ParentPrim " + m_primName); | 1039 | //Console.WriteLine("ParentPrim " + Name); |
1039 | if (this.m_localID != prim.m_localID) | 1040 | if (this.m_localID != prim.m_localID) |
1040 | { | 1041 | { |
1041 | if (Body == IntPtr.Zero) | 1042 | if (Body == IntPtr.Zero) |
@@ -1071,18 +1072,20 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1071 | d.MassTranslate(ref m2, Position.X - prm.Position.X, Position.Y - prm.Position.Y, Position.Z - prm.Position.Z); | 1072 | d.MassTranslate(ref m2, Position.X - prm.Position.X, Position.Y - prm.Position.Y, Position.Z - prm.Position.Z); |
1072 | d.MassAdd(ref pMass, ref m2); | 1073 | d.MassAdd(ref pMass, ref m2); |
1073 | } | 1074 | } |
1075 | |||
1074 | foreach (OdePrim prm in childrenPrim) | 1076 | foreach (OdePrim prm in childrenPrim) |
1075 | { | 1077 | { |
1076 | |||
1077 | prm.m_collisionCategories |= CollisionCategories.Body; | 1078 | prm.m_collisionCategories |= CollisionCategories.Body; |
1078 | prm.m_collisionFlags |= (CollisionCategories.Land | CollisionCategories.Wind); | 1079 | prm.m_collisionFlags |= (CollisionCategories.Land | CollisionCategories.Wind); |
1079 | 1080 | ||
1080 | if (prm.prim_geom == IntPtr.Zero) | 1081 | if (prm.prim_geom == IntPtr.Zero) |
1081 | { | 1082 | { |
1082 | m_log.Warn("[PHYSICS]: Unable to link one of the linkset elements. No geom yet"); | 1083 | m_log.WarnFormat( |
1084 | "[PHYSICS]: Unable to link one of the linkset elements {0} for parent {1}. No geom yet", | ||
1085 | prm.Name, prim.Name); | ||
1083 | continue; | 1086 | continue; |
1084 | } | 1087 | } |
1085 | //Console.WriteLine(" GeomSetCategoryBits 1: " + prm.prim_geom + " - " + (int)prm.m_collisionCategories + " for " + m_primName); | 1088 | //Console.WriteLine(" GeomSetCategoryBits 1: " + prm.prim_geom + " - " + (int)prm.m_collisionCategories + " for " + Name); |
1086 | d.GeomSetCategoryBits(prm.prim_geom, (int)prm.m_collisionCategories); | 1089 | d.GeomSetCategoryBits(prm.prim_geom, (int)prm.m_collisionCategories); |
1087 | d.GeomSetCollideBits(prm.prim_geom, (int)prm.m_collisionFlags); | 1090 | d.GeomSetCollideBits(prm.prim_geom, (int)prm.m_collisionFlags); |
1088 | 1091 | ||
@@ -1111,7 +1114,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1111 | } | 1114 | } |
1112 | else | 1115 | else |
1113 | { | 1116 | { |
1114 | m_log.Debug("[PHYSICS]:I ain't got no boooooooooddy, no body"); | 1117 | m_log.DebugFormat("[PHYSICS]: {0} ain't got no boooooooooddy, no body", Name); |
1115 | } | 1118 | } |
1116 | 1119 | ||
1117 | 1120 | ||
@@ -1130,7 +1133,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1130 | m_collisionCategories |= CollisionCategories.Body; | 1133 | m_collisionCategories |= CollisionCategories.Body; |
1131 | m_collisionFlags |= (CollisionCategories.Land | CollisionCategories.Wind); | 1134 | m_collisionFlags |= (CollisionCategories.Land | CollisionCategories.Wind); |
1132 | 1135 | ||
1133 | //Console.WriteLine("GeomSetCategoryBits 2: " + prim_geom + " - " + (int)m_collisionCategories + " for " + m_primName); | 1136 | //Console.WriteLine("GeomSetCategoryBits 2: " + prim_geom + " - " + (int)m_collisionCategories + " for " + Name); |
1134 | d.GeomSetCategoryBits(prim_geom, (int)m_collisionCategories); | 1137 | d.GeomSetCategoryBits(prim_geom, (int)m_collisionCategories); |
1135 | //Console.WriteLine(" Post GeomSetCategoryBits 2"); | 1138 | //Console.WriteLine(" Post GeomSetCategoryBits 2"); |
1136 | d.GeomSetCollideBits(prim_geom, (int)m_collisionFlags); | 1139 | d.GeomSetCollideBits(prim_geom, (int)m_collisionFlags); |
@@ -1373,7 +1376,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1373 | } | 1376 | } |
1374 | catch (AccessViolationException) | 1377 | catch (AccessViolationException) |
1375 | { | 1378 | { |
1376 | m_log.Warn("[PHYSICS]: Unable to create physics proxy for object"); | 1379 | m_log.WarnFormat("[PHYSICS]: Unable to create physics proxy for object {0}", Name); |
1377 | ode.dunlock(_parent_scene.world); | 1380 | ode.dunlock(_parent_scene.world); |
1378 | return; | 1381 | return; |
1379 | } | 1382 | } |
@@ -1388,7 +1391,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1388 | } | 1391 | } |
1389 | catch (AccessViolationException) | 1392 | catch (AccessViolationException) |
1390 | { | 1393 | { |
1391 | m_log.Warn("[PHYSICS]: Unable to create physics proxy for object"); | 1394 | m_log.WarnFormat("[PHYSICS]: Unable to create physics proxy for object {0}", Name); |
1392 | ode.dunlock(_parent_scene.world); | 1395 | ode.dunlock(_parent_scene.world); |
1393 | return; | 1396 | return; |
1394 | } | 1397 | } |
@@ -1404,7 +1407,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1404 | } | 1407 | } |
1405 | catch (AccessViolationException) | 1408 | catch (AccessViolationException) |
1406 | { | 1409 | { |
1407 | m_log.Warn("[PHYSICS]: Unable to create physics proxy for object"); | 1410 | m_log.WarnFormat("[PHYSICS]: Unable to create physics proxy for object {0}", Name); |
1408 | ode.dunlock(_parent_scene.world); | 1411 | ode.dunlock(_parent_scene.world); |
1409 | return; | 1412 | return; |
1410 | } | 1413 | } |
@@ -1421,7 +1424,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1421 | } | 1424 | } |
1422 | catch (AccessViolationException) | 1425 | catch (AccessViolationException) |
1423 | { | 1426 | { |
1424 | m_log.Warn("[PHYSICS]: Unable to create physics proxy for object"); | 1427 | m_log.WarnFormat("[PHYSICS]: Unable to create physics proxy for object {0}", Name); |
1425 | ode.dunlock(_parent_scene.world); | 1428 | ode.dunlock(_parent_scene.world); |
1426 | return; | 1429 | return; |
1427 | } | 1430 | } |
@@ -1444,7 +1447,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1444 | if (_parent_scene.needsMeshing(_pbs)) | 1447 | if (_parent_scene.needsMeshing(_pbs)) |
1445 | { | 1448 | { |
1446 | // Don't need to re-enable body.. it's done in SetMesh | 1449 | // Don't need to re-enable body.. it's done in SetMesh |
1447 | _mesh = _parent_scene.mesher.CreateMesh(m_primName, _pbs, _size, _parent_scene.meshSculptLOD, IsPhysical); | 1450 | _mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, _parent_scene.meshSculptLOD, IsPhysical); |
1448 | // createmesh returns null when it's a shape that isn't a cube. | 1451 | // createmesh returns null when it's a shape that isn't a cube. |
1449 | // m_log.Debug(m_localID); | 1452 | // m_log.Debug(m_localID); |
1450 | } | 1453 | } |
@@ -1473,7 +1476,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1473 | } | 1476 | } |
1474 | } | 1477 | } |
1475 | 1478 | ||
1476 | _parent_scene.geom_name_map[prim_geom] = this.m_primName; | 1479 | _parent_scene.geom_name_map[prim_geom] = this.Name; |
1477 | _parent_scene.actor_name_map[prim_geom] = (PhysicsActor)this; | 1480 | _parent_scene.actor_name_map[prim_geom] = (PhysicsActor)this; |
1478 | 1481 | ||
1479 | changeSelectedStatus(timestep); | 1482 | changeSelectedStatus(timestep); |
@@ -1524,7 +1527,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1524 | } | 1527 | } |
1525 | else | 1528 | else |
1526 | { | 1529 | { |
1527 | m_log.Warn("[PHYSICS]: Body Still null after enableBody(). This is a crash scenario."); | 1530 | m_log.WarnFormat("[PHYSICS]: Body for {0} still null after enableBody(). This is a crash scenario.", Name); |
1528 | } | 1531 | } |
1529 | } | 1532 | } |
1530 | //else | 1533 | //else |
@@ -1573,7 +1576,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1573 | } | 1576 | } |
1574 | else | 1577 | else |
1575 | { | 1578 | { |
1576 | //Console.WriteLine("Move " + m_primName); | 1579 | //Console.WriteLine("Move " + Name); |
1577 | if (!d.BodyIsEnabled (Body)) d.BodyEnable (Body); // KF add 161009 | 1580 | if (!d.BodyIsEnabled (Body)) d.BodyEnable (Body); // KF add 161009 |
1578 | // NON-'VEHICLES' are dealt with here | 1581 | // NON-'VEHICLES' are dealt with here |
1579 | // if (d.BodyIsEnabled(Body) && !m_angularlock.ApproxEquals(Vector3.Zero, 0.003f)) | 1582 | // if (d.BodyIsEnabled(Body) && !m_angularlock.ApproxEquals(Vector3.Zero, 0.003f)) |
@@ -1605,7 +1608,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1605 | 1608 | ||
1606 | if (m_usePID) | 1609 | if (m_usePID) |
1607 | { | 1610 | { |
1608 | //Console.WriteLine("PID " + m_primName); | 1611 | //Console.WriteLine("PID " + Name); |
1609 | // KF - this is for object move? eg. llSetPos() ? | 1612 | // KF - this is for object move? eg. llSetPos() ? |
1610 | //if (!d.BodyIsEnabled(Body)) | 1613 | //if (!d.BodyIsEnabled(Body)) |
1611 | //d.BodySetForce(Body, 0f, 0f, 0f); | 1614 | //d.BodySetForce(Body, 0f, 0f, 0f); |
@@ -1677,7 +1680,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1677 | // Hover PID Controller needs to be mutually exlusive to MoveTo PID controller | 1680 | // Hover PID Controller needs to be mutually exlusive to MoveTo PID controller |
1678 | if (m_useHoverPID && !m_usePID) | 1681 | if (m_useHoverPID && !m_usePID) |
1679 | { | 1682 | { |
1680 | //Console.WriteLine("Hover " + m_primName); | 1683 | //Console.WriteLine("Hover " + Name); |
1681 | 1684 | ||
1682 | // If we're using the PID controller, then we have no gravity | 1685 | // If we're using the PID controller, then we have no gravity |
1683 | fz = (-1 * _parent_scene.gravityz) * m_mass; | 1686 | fz = (-1 * _parent_scene.gravityz) * m_mass; |
@@ -1803,7 +1806,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
1803 | { // is not physical, or is not a body or is selected | 1806 | { // is not physical, or is not a body or is selected |
1804 | // _zeroPosition = d.BodyGetPosition(Body); | 1807 | // _zeroPosition = d.BodyGetPosition(Body); |
1805 | return; | 1808 | return; |
1806 | //Console.WriteLine("Nothing " + m_primName); | 1809 | //Console.WriteLine("Nothing " + Name); |
1807 | 1810 | ||
1808 | } | 1811 | } |
1809 | } | 1812 | } |
@@ -1891,10 +1894,10 @@ Console.WriteLine(" JointCreateFixed"); | |||
1891 | catch (System.AccessViolationException) | 1894 | catch (System.AccessViolationException) |
1892 | { | 1895 | { |
1893 | prim_geom = IntPtr.Zero; | 1896 | prim_geom = IntPtr.Zero; |
1894 | m_log.Error("[PHYSICS]: PrimGeom dead"); | 1897 | m_log.ErrorFormat("[PHYSICS]: PrimGeom dead for {0}", Name); |
1895 | } | 1898 | } |
1896 | } | 1899 | } |
1897 | //Console.WriteLine("changePhysicsStatus for " + m_primName); | 1900 | //Console.WriteLine("changePhysicsStatus for " + Name); |
1898 | changeadd(2f); | 1901 | changeadd(2f); |
1899 | } | 1902 | } |
1900 | if (childPrim) | 1903 | if (childPrim) |
@@ -2063,7 +2066,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2063 | catch (System.AccessViolationException) | 2066 | catch (System.AccessViolationException) |
2064 | { | 2067 | { |
2065 | prim_geom = IntPtr.Zero; | 2068 | prim_geom = IntPtr.Zero; |
2066 | m_log.Error("[PHYSICS]: PrimGeom dead"); | 2069 | m_log.ErrorFormat("[PHYSICS]: PrimGeom dead for {0}", Name); |
2067 | } | 2070 | } |
2068 | prim_geom = IntPtr.Zero; | 2071 | prim_geom = IntPtr.Zero; |
2069 | // we don't need to do space calculation because the client sends a position update also. | 2072 | // we don't need to do space calculation because the client sends a position update also. |
@@ -2307,7 +2310,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2307 | } | 2310 | } |
2308 | else | 2311 | else |
2309 | { | 2312 | { |
2310 | m_log.Warn("[PHYSICS]: Got NaN Size on object"); | 2313 | m_log.WarnFormat("[PHYSICS]: Got NaN Size on object {0}", Name); |
2311 | } | 2314 | } |
2312 | } | 2315 | } |
2313 | } | 2316 | } |
@@ -2329,7 +2332,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2329 | } | 2332 | } |
2330 | else | 2333 | else |
2331 | { | 2334 | { |
2332 | m_log.Warn("[PHYSICS]: NaN in Force Applied to an Object"); | 2335 | m_log.WarnFormat("[PHYSICS]: NaN in Force Applied to an Object {0}", Name); |
2333 | } | 2336 | } |
2334 | } | 2337 | } |
2335 | } | 2338 | } |
@@ -2413,7 +2416,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2413 | } | 2416 | } |
2414 | else | 2417 | else |
2415 | { | 2418 | { |
2416 | m_log.Warn("[PHYSICS]: Got NaN Velocity in Object"); | 2419 | m_log.WarnFormat("[PHYSICS]: Got NaN Velocity in Object {0}", Name); |
2417 | } | 2420 | } |
2418 | 2421 | ||
2419 | } | 2422 | } |
@@ -2438,7 +2441,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2438 | } | 2441 | } |
2439 | else | 2442 | else |
2440 | { | 2443 | { |
2441 | m_log.Warn("[PHYSICS]: Got NaN Torque in Object"); | 2444 | m_log.WarnFormat("[PHYSICS]: Got NaN Torque in Object {0}", Name); |
2442 | } | 2445 | } |
2443 | } | 2446 | } |
2444 | } | 2447 | } |
@@ -2465,7 +2468,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2465 | _orientation = value; | 2468 | _orientation = value; |
2466 | } | 2469 | } |
2467 | else | 2470 | else |
2468 | m_log.Warn("[PHYSICS]: Got NaN quaternion Orientation from Scene in Object"); | 2471 | m_log.WarnFormat("[PHYSICS]: Got NaN quaternion Orientation from Scene in Object {0}", Name); |
2469 | 2472 | ||
2470 | } | 2473 | } |
2471 | } | 2474 | } |
@@ -2505,7 +2508,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2505 | } | 2508 | } |
2506 | else | 2509 | else |
2507 | { | 2510 | { |
2508 | m_log.Warn("[PHYSICS]: Got Invalid linear force vector from Scene in Object"); | 2511 | m_log.WarnFormat("[PHYSICS]: Got Invalid linear force vector from Scene in Object {0}", Name); |
2509 | } | 2512 | } |
2510 | //m_log.Info("[PHYSICS]: Added Force:" + force.ToString() + " to prim at " + Position.ToString()); | 2513 | //m_log.Info("[PHYSICS]: Added Force:" + force.ToString() + " to prim at " + Position.ToString()); |
2511 | } | 2514 | } |
@@ -2519,7 +2522,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2519 | } | 2522 | } |
2520 | else | 2523 | else |
2521 | { | 2524 | { |
2522 | m_log.Warn("[PHYSICS]: Got Invalid Angular force vector from Scene in Object"); | 2525 | m_log.WarnFormat("[PHYSICS]: Got Invalid Angular force vector from Scene in Object {0}", Name); |
2523 | } | 2526 | } |
2524 | } | 2527 | } |
2525 | 2528 | ||
@@ -2545,7 +2548,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2545 | } | 2548 | } |
2546 | else | 2549 | else |
2547 | { | 2550 | { |
2548 | m_log.Warn("[PHYSICS]: Got NaN RotationalVelocity in Object"); | 2551 | m_log.WarnFormat("[PHYSICS]: Got NaN RotationalVelocity in Object {0}", Name); |
2549 | } | 2552 | } |
2550 | } | 2553 | } |
2551 | } | 2554 | } |
@@ -2560,7 +2563,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2560 | } | 2563 | } |
2561 | else if (m_crossingfailures == _parent_scene.geomCrossingFailuresBeforeOutofbounds) | 2564 | else if (m_crossingfailures == _parent_scene.geomCrossingFailuresBeforeOutofbounds) |
2562 | { | 2565 | { |
2563 | m_log.Warn("[PHYSICS]: Too many crossing failures for: " + m_primName); | 2566 | m_log.Warn("[PHYSICS]: Too many crossing failures for: " + Name); |
2564 | } | 2567 | } |
2565 | } | 2568 | } |
2566 | 2569 | ||
@@ -2593,7 +2596,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2593 | } | 2596 | } |
2594 | else | 2597 | else |
2595 | { | 2598 | { |
2596 | m_log.Warn("[PHYSICS]: Got NaN locking axis from Scene on Object"); | 2599 | m_log.WarnFormat("[PHYSICS]: Got NaN locking axis from Scene on Object {0}", Name); |
2597 | } | 2600 | } |
2598 | } | 2601 | } |
2599 | 2602 | ||
@@ -2685,7 +2688,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2685 | } | 2688 | } |
2686 | 2689 | ||
2687 | //float Adiff = 1.0f - Math.Abs(Quaternion.Dot(m_lastorientation, l_orientation)); | 2690 | //float Adiff = 1.0f - Math.Abs(Quaternion.Dot(m_lastorientation, l_orientation)); |
2688 | //Console.WriteLine("Adiff " + m_primName + " = " + Adiff); | 2691 | //Console.WriteLine("Adiff " + Name + " = " + Adiff); |
2689 | if ((Math.Abs(m_lastposition.X - l_position.X) < 0.02) | 2692 | if ((Math.Abs(m_lastposition.X - l_position.X) < 0.02) |
2690 | && (Math.Abs(m_lastposition.Y - l_position.Y) < 0.02) | 2693 | && (Math.Abs(m_lastposition.Y - l_position.Y) < 0.02) |
2691 | && (Math.Abs(m_lastposition.Z - l_position.Z) < 0.02) | 2694 | && (Math.Abs(m_lastposition.Z - l_position.Z) < 0.02) |
@@ -2826,7 +2829,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
2826 | m_PIDTarget = value; | 2829 | m_PIDTarget = value; |
2827 | } | 2830 | } |
2828 | else | 2831 | else |
2829 | m_log.Warn("[PHYSICS]: Got NaN PIDTarget from Scene on Object"); | 2832 | m_log.WarnFormat("[PHYSICS]: Got NaN PIDTarget from Scene on Object {0}", Name); |
2830 | } | 2833 | } |
2831 | } | 2834 | } |
2832 | public override bool PIDActive { set { m_usePID = value; } } | 2835 | public override bool PIDActive { set { m_usePID = value; } } |