diff options
Diffstat (limited to 'OpenSim/Region/Physics')
-rw-r--r-- | OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Manager/IMesher.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsActor.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Meshing/Extruder.cs | 26 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Meshing/HelperTypes.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Meshing/SculptMesh.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODETestClass.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 164 |
9 files changed, 107 insertions, 120 deletions
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index 213f1d4..3bf0956 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | |||
@@ -70,7 +70,7 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
70 | public BasicScene() | 70 | public BasicScene() |
71 | { | 71 | { |
72 | } | 72 | } |
73 | 73 | ||
74 | public override void Initialise(IMesher meshmerizer, IConfigSource config) | 74 | public override void Initialise(IMesher meshmerizer, IConfigSource config) |
75 | { | 75 | { |
76 | // Does nothing right now | 76 | // Does nothing right now |
diff --git a/OpenSim/Region/Physics/Manager/IMesher.cs b/OpenSim/Region/Physics/Manager/IMesher.cs index 48e4ba6..0042c40 100644 --- a/OpenSim/Region/Physics/Manager/IMesher.cs +++ b/OpenSim/Region/Physics/Manager/IMesher.cs | |||
@@ -48,6 +48,5 @@ namespace OpenSim.Region.Physics.Manager | |||
48 | int[] getIndexListAsIntLocked(); | 48 | int[] getIndexListAsIntLocked(); |
49 | float[] getVertexListAsFloatLocked(); | 49 | float[] getVertexListAsFloatLocked(); |
50 | void releasePinned(); | 50 | void releasePinned(); |
51 | |||
52 | } | 51 | } |
53 | } | 52 | } |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index beca4da..d4af271 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -209,10 +209,8 @@ namespace OpenSim.Region.Physics.Manager | |||
209 | public override bool Stopped | 209 | public override bool Stopped |
210 | { | 210 | { |
211 | get{ return false; } | 211 | get{ return false; } |
212 | |||
213 | } | 212 | } |
214 | 213 | ||
215 | |||
216 | public override PhysicsVector Position | 214 | public override PhysicsVector Position |
217 | { | 215 | { |
218 | get { return PhysicsVector.Zero; } | 216 | get { return PhysicsVector.Zero; } |
diff --git a/OpenSim/Region/Physics/Meshing/Extruder.cs b/OpenSim/Region/Physics/Meshing/Extruder.cs index b14deeb..0c94669 100644 --- a/OpenSim/Region/Physics/Meshing/Extruder.cs +++ b/OpenSim/Region/Physics/Meshing/Extruder.cs | |||
@@ -286,7 +286,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
286 | // It's not quite clear what pushY (Y top shear) does, but subtracting it from the start and end | 286 | // It's not quite clear what pushY (Y top shear) does, but subtracting it from the start and end |
287 | // angles appears to approximate it's effects on path cut. Likewise, adding it to the angle used | 287 | // angles appears to approximate it's effects on path cut. Likewise, adding it to the angle used |
288 | // to calculate the sine for generating the path radius appears to approximate it's effects there | 288 | // to calculate the sine for generating the path radius appears to approximate it's effects there |
289 | // too, but there are some subtle differences in the radius which are noticeable as the prim size | 289 | // too, but there are some subtle differences in the radius which are noticeable as the prim size |
290 | // increases and it may affect megaprims quite a bit. The effect of the Y top shear parameter on | 290 | // increases and it may affect megaprims quite a bit. The effect of the Y top shear parameter on |
291 | // the meshes generated with this technique appear nearly identical in shape to the same prims when | 291 | // the meshes generated with this technique appear nearly identical in shape to the same prims when |
292 | // displayed by the viewer. | 292 | // displayed by the viewer. |
@@ -369,28 +369,26 @@ namespace OpenSim.Region.Physics.Meshing | |||
369 | float yOffset; | 369 | float yOffset; |
370 | float zOffset; | 370 | float zOffset; |
371 | 371 | ||
372 | |||
373 | xOffset = 0.5f * (skewStart + totalSkew * (float)percentOfPath); | 372 | xOffset = 0.5f * (skewStart + totalSkew * (float)percentOfPath); |
374 | xOffset += (float) System.Math.Sin(angle) * pushX * 0.45f; | 373 | xOffset += (float) System.Math.Sin(angle) * pushX * 0.45f; |
375 | yOffset = (float)(System.Math.Cos(angle) * (0.5f - yPathScale)) * radiusScale; | 374 | yOffset = (float)(System.Math.Cos(angle) * (0.5f - yPathScale)) * radiusScale; |
376 | zOffset = (float)(System.Math.Sin(angle + pushY * 0.9f) * (0.5f - yPathScale)) * radiusScale; | 375 | zOffset = (float)(System.Math.Sin(angle + pushY * 0.9f) * (0.5f - yPathScale)) * radiusScale; |
377 | 376 | ||
378 | 377 | // next apply twist rotation to the profile layer | |
379 | // next apply twist rotation to the profile layer | 378 | if (twistTotal != 0.0f || twistBot != 0.0f) |
380 | if (twistTotal != 0.0f || twistBot != 0.0f) | 379 | { |
380 | Quaternion profileRot = new Quaternion(new Vertex(0.0f, 0.0f, 1.0f), twist); | ||
381 | foreach (Vertex v in newLayer.vertices) | ||
381 | { | 382 | { |
382 | Quaternion profileRot = new Quaternion(new Vertex(0.0f, 0.0f, 1.0f), twist); | 383 | if (v != null) |
383 | foreach (Vertex v in newLayer.vertices) | ||
384 | { | 384 | { |
385 | if (v != null) | 385 | vTemp = v * profileRot; |
386 | { | 386 | v.X = vTemp.X; |
387 | vTemp = v * profileRot; | 387 | v.Y = vTemp.Y; |
388 | v.X = vTemp.X; | 388 | v.Z = vTemp.Z; |
389 | v.Y = vTemp.Y; | ||
390 | v.Z = vTemp.Z; | ||
391 | } | ||
392 | } | 389 | } |
393 | } | 390 | } |
391 | } | ||
394 | 392 | ||
395 | // now orient the rotation of the profile layer relative to it's position on the path | 393 | // now orient the rotation of the profile layer relative to it's position on the path |
396 | // adding pushY to the angle used to generate the quat appears to approximate the viewer | 394 | // adding pushY to the angle used to generate the quat appears to approximate the viewer |
diff --git a/OpenSim/Region/Physics/Meshing/HelperTypes.cs b/OpenSim/Region/Physics/Meshing/HelperTypes.cs index 816b6bb..2cb8d04 100644 --- a/OpenSim/Region/Physics/Meshing/HelperTypes.cs +++ b/OpenSim/Region/Physics/Meshing/HelperTypes.cs | |||
@@ -118,7 +118,7 @@ public class Vertex : PhysicsVector, IComparable<Vertex> | |||
118 | { | 118 | { |
119 | return new Vertex(Y * v.Z - Z * v.Y, Z * v.X - X * v.Z, X * v.Y - Y * v.X); | 119 | return new Vertex(Y * v.Z - Z * v.Y, Z * v.X - X * v.Z, X * v.Y - Y * v.X); |
120 | } | 120 | } |
121 | 121 | ||
122 | // disable warning: mono compiler moans about overloading | 122 | // disable warning: mono compiler moans about overloading |
123 | // operators hiding base operator but should not according to C# | 123 | // operators hiding base operator but should not according to C# |
124 | // language spec | 124 | // language spec |
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index f041aec..a038dc2 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -941,7 +941,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
941 | extr.twistBot = (float)primShape.PathTwistBegin * (float)Math.PI * 0.01f; | 941 | extr.twistBot = (float)primShape.PathTwistBegin * (float)Math.PI * 0.01f; |
942 | extr.pathBegin = primShape.PathBegin; | 942 | extr.pathBegin = primShape.PathBegin; |
943 | extr.pathEnd = primShape.PathEnd; | 943 | extr.pathEnd = primShape.PathEnd; |
944 | 944 | ||
945 | //System.Console.WriteLine("[MESH]: twistTop = " + twistTop.ToString() + "|" + extr.twistTop.ToString() + ", twistMid = " + twistMid.ToString() + "|" + extr.twistMid.ToString() + ", twistbot = " + twistBot.ToString() + "|" + extr.twistBot.ToString()); | 945 | //System.Console.WriteLine("[MESH]: twistTop = " + twistTop.ToString() + "|" + extr.twistTop.ToString() + ", twistMid = " + twistMid.ToString() + "|" + extr.twistMid.ToString() + ", twistbot = " + twistBot.ToString() + "|" + extr.twistBot.ToString()); |
946 | //Mesh result = extr.Extrude(m); | 946 | //Mesh result = extr.Extrude(m); |
947 | Mesh result = extr.ExtrudeLinearPath(m); | 947 | Mesh result = extr.ExtrudeLinearPath(m); |
@@ -1340,7 +1340,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1340 | } | 1340 | } |
1341 | 1341 | ||
1342 | /// <summary> | 1342 | /// <summary> |
1343 | /// Creates a mesh for prim types torus, ring, tube, and sphere | 1343 | /// Creates a mesh for prim types torus, ring, tube, and sphere |
1344 | /// </summary> | 1344 | /// </summary> |
1345 | /// <param name="primName"></param> | 1345 | /// <param name="primName"></param> |
1346 | /// <param name="primShape"></param> | 1346 | /// <param name="primShape"></param> |
@@ -1655,7 +1655,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1655 | 1655 | ||
1656 | // Vertex vTemp = new Vertex(0.0f, 0.0f, 0.0f); | 1656 | // Vertex vTemp = new Vertex(0.0f, 0.0f, 0.0f); |
1657 | 1657 | ||
1658 | 1658 | ||
1659 | float skew = primShape.PathSkew * 0.01f; | 1659 | float skew = primShape.PathSkew * 0.01f; |
1660 | float pathScaleX = (float)(200 - primShape.PathScaleX) * 0.01f; | 1660 | float pathScaleX = (float)(200 - primShape.PathScaleX) * 0.01f; |
1661 | float pathScaleY = (float)(200 - primShape.PathScaleY) * 0.01f; | 1661 | float pathScaleY = (float)(200 - primShape.PathScaleY) * 0.01f; |
@@ -1700,7 +1700,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1700 | //System.Console.WriteLine("primShape.PathTaperX: " + primShape.PathTaperX.ToString()); | 1700 | //System.Console.WriteLine("primShape.PathTaperX: " + primShape.PathTaperX.ToString()); |
1701 | //System.Console.WriteLine("primShape.PathTaperY: " + primShape.PathTaperY.ToString()); | 1701 | //System.Console.WriteLine("primShape.PathTaperY: " + primShape.PathTaperY.ToString()); |
1702 | 1702 | ||
1703 | 1703 | ||
1704 | //System.Console.WriteLine("primShape.PathRadiusOffset: " + primShape.PathRadiusOffset.ToString()); | 1704 | //System.Console.WriteLine("primShape.PathRadiusOffset: " + primShape.PathRadiusOffset.ToString()); |
1705 | #endif | 1705 | #endif |
1706 | 1706 | ||
@@ -1875,7 +1875,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1875 | 1875 | ||
1876 | if (primShape.SculptEntry && primShape.SculptType != (byte)0 && primShape.SculptData.Length > 0) | 1876 | if (primShape.SculptEntry && primShape.SculptType != (byte)0 && primShape.SculptData.Length > 0) |
1877 | { | 1877 | { |
1878 | 1878 | ||
1879 | SculptMesh smesh = CreateSculptMesh(primName, primShape, size, lod); | 1879 | SculptMesh smesh = CreateSculptMesh(primName, primShape, size, lod); |
1880 | mesh = (Mesh)smesh; | 1880 | mesh = (Mesh)smesh; |
1881 | CalcNormals(mesh); | 1881 | CalcNormals(mesh); |
@@ -1967,7 +1967,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1967 | float pathShearY = primShape.PathShearY < 128 ? (float)primShape.PathShearY * 0.01f : (float)(primShape.PathShearY - 256) * 0.01f; | 1967 | float pathShearY = primShape.PathShearY < 128 ? (float)primShape.PathShearY * 0.01f : (float)(primShape.PathShearY - 256) * 0.01f; |
1968 | float pathBegin = (float)primShape.PathBegin * 2.0e-5f; | 1968 | float pathBegin = (float)primShape.PathBegin * 2.0e-5f; |
1969 | float pathEnd = 1.0f - (float)primShape.PathEnd * 2.0e-5f; | 1969 | float pathEnd = 1.0f - (float)primShape.PathEnd * 2.0e-5f; |
1970 | 1970 | ||
1971 | float profileBegin = (float)primShape.ProfileBegin * 2.0e-5f; | 1971 | float profileBegin = (float)primShape.ProfileBegin * 2.0e-5f; |
1972 | float profileEnd = 1.0f - (float)primShape.ProfileEnd * 2.0e-5f; | 1972 | float profileEnd = 1.0f - (float)primShape.ProfileEnd * 2.0e-5f; |
1973 | 1973 | ||
diff --git a/OpenSim/Region/Physics/Meshing/SculptMesh.cs b/OpenSim/Region/Physics/Meshing/SculptMesh.cs index 95a244d..1c3153a 100644 --- a/OpenSim/Region/Physics/Meshing/SculptMesh.cs +++ b/OpenSim/Region/Physics/Meshing/SculptMesh.cs | |||
@@ -52,7 +52,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
52 | { | 52 | { |
53 | if (_lod == 2f || _lod == 4f || _lod == 8f || _lod == 16f || _lod == 32f || _lod == 64f) | 53 | if (_lod == 2f || _lod == 4f || _lod == 8f || _lod == 16f || _lod == 32f || _lod == 64f) |
54 | lod = (int)_lod; | 54 | lod = (int)_lod; |
55 | 55 | ||
56 | try | 56 | try |
57 | { | 57 | { |
58 | idata = OpenJPEG.DecodeToImage(jpegData); | 58 | idata = OpenJPEG.DecodeToImage(jpegData); |
@@ -81,7 +81,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
81 | } | 81 | } |
82 | } | 82 | } |
83 | 83 | ||
84 | 84 | ||
85 | } | 85 | } |
86 | private Vertex ColorToVertex(Color input) | 86 | private Vertex ColorToVertex(Color input) |
87 | { | 87 | { |
@@ -225,7 +225,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
225 | // Create a vertex position from the RGB channels in the current pixel | 225 | // Create a vertex position from the RGB channels in the current pixel |
226 | // int ypos = y * bLOD.Width; | 226 | // int ypos = y * bLOD.Width; |
227 | 227 | ||
228 | 228 | ||
229 | if (y == 0) | 229 | if (y == 0) |
230 | { | 230 | { |
231 | v1 = northpole; | 231 | v1 = northpole; |
@@ -291,7 +291,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
291 | Add(tri2); | 291 | Add(tri2); |
292 | } | 292 | } |
293 | } | 293 | } |
294 | 294 | ||
295 | } | 295 | } |
296 | //Vertex vt31 = sVertices[(y * x_max + x)]; | 296 | //Vertex vt31 = sVertices[(y * x_max + x)]; |
297 | //Vertex vt32 = sVertices[(y * x_max + 0)]; | 297 | //Vertex vt32 = sVertices[(y * x_max + 0)]; |
@@ -311,7 +311,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
311 | //Add(tri3); | 311 | //Add(tri3); |
312 | // } | 312 | // } |
313 | //} | 313 | //} |
314 | 314 | ||
315 | //Vertex vt41 = sVertices[(y * x_max + x)]; | 315 | //Vertex vt41 = sVertices[(y * x_max + x)]; |
316 | //Vertex vt42 = sVertices[((y + 1) * x_max + 0)]; | 316 | //Vertex vt42 = sVertices[((y + 1) * x_max + 0)]; |
317 | //Vertex vt43 = sVertices[((y + 1) * x_max + x)]; | 317 | //Vertex vt43 = sVertices[((y + 1) * x_max + x)]; |
@@ -329,7 +329,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
329 | //Add(tri4); | 329 | //Add(tri4); |
330 | //} | 330 | //} |
331 | //} | 331 | //} |
332 | 332 | ||
333 | } | 333 | } |
334 | } | 334 | } |
335 | } | 335 | } |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs b/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs index bc2ad69..074170a 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
40 | private OdePlugin cbt; | 40 | private OdePlugin cbt; |
41 | private PhysicsScene ps; | 41 | private PhysicsScene ps; |
42 | private IMeshingPlugin imp; | 42 | private IMeshingPlugin imp; |
43 | 43 | ||
44 | [SetUp] | 44 | [SetUp] |
45 | public void Initialize() | 45 | public void Initialize() |
46 | { | 46 | { |
@@ -96,11 +96,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
96 | 96 | ||
97 | Assert.That(!oprim.m_taintadd); | 97 | Assert.That(!oprim.m_taintadd); |
98 | Console.WriteLine("Prim Position (" + oprim.m_localID + "): " + prim.Position.ToString()); | 98 | Console.WriteLine("Prim Position (" + oprim.m_localID + "): " + prim.Position.ToString()); |
99 | 99 | ||
100 | // Make sure we're above the ground | 100 | // Make sure we're above the ground |
101 | //Assert.That(prim.Position.Z > 20f); | 101 | //Assert.That(prim.Position.Z > 20f); |
102 | //Console.WriteLine("PrimCollisionScore (" + oprim.m_localID + "): " + oprim.m_collisionscore); | 102 | //Console.WriteLine("PrimCollisionScore (" + oprim.m_localID + "): " + oprim.m_collisionscore); |
103 | 103 | ||
104 | // Make sure we've got a Body | 104 | // Make sure we've got a Body |
105 | Assert.That(oprim.Body != (IntPtr)0); | 105 | Assert.That(oprim.Body != (IntPtr)0); |
106 | //Console.WriteLine( | 106 | //Console.WriteLine( |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 3f8aa26..f285911 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -252,7 +252,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
252 | public int physics_logging_interval = 0; | 252 | public int physics_logging_interval = 0; |
253 | public bool physics_logging_append_existing_logfile = false; | 253 | public bool physics_logging_append_existing_logfile = false; |
254 | 254 | ||
255 | |||
256 | /// <summary> | 255 | /// <summary> |
257 | /// Initiailizes the scene | 256 | /// Initiailizes the scene |
258 | /// Sets many properties that ODE requires to be stable | 257 | /// Sets many properties that ODE requires to be stable |
@@ -352,14 +351,13 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
352 | 351 | ||
353 | geomDefaultDensity = physicsconfig.GetFloat("geometry_default_density", 10.000006836f); | 352 | geomDefaultDensity = physicsconfig.GetFloat("geometry_default_density", 10.000006836f); |
354 | bodyFramesAutoDisable = physicsconfig.GetInt("body_frames_auto_disable", 20); | 353 | bodyFramesAutoDisable = physicsconfig.GetInt("body_frames_auto_disable", 20); |
355 | 354 | ||
356 | bodyPIDD = physicsconfig.GetFloat("body_pid_derivative", 35f); | 355 | bodyPIDD = physicsconfig.GetFloat("body_pid_derivative", 35f); |
357 | bodyPIDG = physicsconfig.GetFloat("body_pid_gain", 25f); | 356 | bodyPIDG = physicsconfig.GetFloat("body_pid_gain", 25f); |
358 | 357 | ||
359 | meshSculptedPrim = physicsconfig.GetBoolean("mesh_sculpted_prim", true); | 358 | meshSculptedPrim = physicsconfig.GetBoolean("mesh_sculpted_prim", true); |
360 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); | 359 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); |
361 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); | 360 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); |
362 | |||
363 | 361 | ||
364 | if (Environment.OSVersion.Platform == PlatformID.Unix) | 362 | if (Environment.OSVersion.Platform == PlatformID.Unix) |
365 | { | 363 | { |
@@ -367,7 +365,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
367 | avPIDP = physicsconfig.GetFloat("av_pid_proportional_linux", 1400.0f); | 365 | avPIDP = physicsconfig.GetFloat("av_pid_proportional_linux", 1400.0f); |
368 | avStandupTensor = physicsconfig.GetFloat("av_capsule_standup_tensor_linux", 2000000f); | 366 | avStandupTensor = physicsconfig.GetFloat("av_capsule_standup_tensor_linux", 2000000f); |
369 | bodyMotorJointMaxforceTensor = physicsconfig.GetFloat("body_motor_joint_maxforce_tensor_linux", 2f); | 367 | bodyMotorJointMaxforceTensor = physicsconfig.GetFloat("body_motor_joint_maxforce_tensor_linux", 2f); |
370 | |||
371 | } | 368 | } |
372 | else | 369 | else |
373 | { | 370 | { |
@@ -547,7 +544,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
547 | } | 544 | } |
548 | catch (AccessViolationException) | 545 | catch (AccessViolationException) |
549 | { | 546 | { |
550 | |||
551 | m_log.Warn("[PHYSICS]: Unable to collide test an object"); | 547 | m_log.Warn("[PHYSICS]: Unable to collide test an object"); |
552 | return; | 548 | return; |
553 | } | 549 | } |
@@ -603,7 +599,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
603 | p2.CollidingGround = true; | 599 | p2.CollidingGround = true; |
604 | break; | 600 | break; |
605 | } | 601 | } |
606 | |||
607 | 602 | ||
608 | // we don't want prim or avatar to explode | 603 | // we don't want prim or avatar to explode |
609 | 604 | ||
@@ -850,87 +845,87 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
850 | case ActorTypes.Agent: | 845 | case ActorTypes.Agent: |
851 | cc2 = (OdeCharacter)p2; | 846 | cc2 = (OdeCharacter)p2; |
852 | 847 | ||
853 | // obj1LocalID = cc2.m_localID; | 848 | // obj1LocalID = cc2.m_localID; |
854 | switch ((ActorTypes)p1.PhysicsActorType) | 849 | switch ((ActorTypes)p1.PhysicsActorType) |
855 | { | 850 | { |
856 | case ActorTypes.Agent: | 851 | case ActorTypes.Agent: |
857 | cc1 = (OdeCharacter)p1; | 852 | cc1 = (OdeCharacter)p1; |
858 | obj2LocalID = cc1.m_localID; | 853 | obj2LocalID = cc1.m_localID; |
859 | cc1.AddCollisionEvent(cc2.m_localID, collisiondepth); | 854 | cc1.AddCollisionEvent(cc2.m_localID, collisiondepth); |
860 | //ctype = (int)CollisionCategories.Character; | 855 | //ctype = (int)CollisionCategories.Character; |
861 | 856 | ||
862 | //if (cc1.CollidingObj) | 857 | //if (cc1.CollidingObj) |
863 | //cStartStop = (int)StatusIndicators.Generic; | 858 | //cStartStop = (int)StatusIndicators.Generic; |
864 | //else | 859 | //else |
865 | //cStartStop = (int)StatusIndicators.Start; | 860 | //cStartStop = (int)StatusIndicators.Start; |
866 | 861 | ||
867 | //returncollisions = true; | 862 | //returncollisions = true; |
868 | break; | 863 | break; |
869 | case ActorTypes.Prim: | 864 | case ActorTypes.Prim: |
870 | cp1 = (OdePrim)p1; | 865 | cp1 = (OdePrim)p1; |
871 | obj2LocalID = cp1.m_localID; | 866 | obj2LocalID = cp1.m_localID; |
872 | cp1.AddCollisionEvent(cc2.m_localID, collisiondepth); | 867 | cp1.AddCollisionEvent(cc2.m_localID, collisiondepth); |
873 | //ctype = (int)CollisionCategories.Geom; | 868 | //ctype = (int)CollisionCategories.Geom; |
874 | 869 | ||
875 | //if (cp1.CollidingObj) | 870 | //if (cp1.CollidingObj) |
876 | //cStartStop = (int)StatusIndicators.Generic; | 871 | //cStartStop = (int)StatusIndicators.Generic; |
877 | //else | 872 | //else |
878 | //cStartStop = (int)StatusIndicators.Start; | 873 | //cStartStop = (int)StatusIndicators.Start; |
879 | 874 | ||
880 | //returncollisions = true; | 875 | //returncollisions = true; |
881 | break; | 876 | break; |
882 | 877 | ||
883 | case ActorTypes.Ground: | 878 | case ActorTypes.Ground: |
884 | case ActorTypes.Unknown: | 879 | case ActorTypes.Unknown: |
885 | obj2LocalID = 0; | 880 | obj2LocalID = 0; |
886 | //ctype = (int)CollisionCategories.Land; | 881 | //ctype = (int)CollisionCategories.Land; |
887 | //returncollisions = true; | 882 | //returncollisions = true; |
888 | break; | 883 | break; |
889 | } | 884 | } |
890 | 885 | ||
891 | cc2.AddCollisionEvent(obj2LocalID, collisiondepth); | 886 | cc2.AddCollisionEvent(obj2LocalID, collisiondepth); |
892 | break; | 887 | break; |
893 | case ActorTypes.Prim: | 888 | case ActorTypes.Prim: |
894 | cp2 = (OdePrim)p2; | 889 | cp2 = (OdePrim)p2; |
895 | 890 | ||
896 | // obj1LocalID = cp2.m_localID; | 891 | // obj1LocalID = cp2.m_localID; |
897 | switch ((ActorTypes)p1.PhysicsActorType) | 892 | switch ((ActorTypes)p1.PhysicsActorType) |
898 | { | 893 | { |
899 | case ActorTypes.Agent: | 894 | case ActorTypes.Agent: |
900 | cc1 = (OdeCharacter)p1; | 895 | cc1 = (OdeCharacter)p1; |
901 | obj2LocalID = cc1.m_localID; | 896 | obj2LocalID = cc1.m_localID; |
902 | cc1.AddCollisionEvent(cp2.m_localID, collisiondepth); | 897 | cc1.AddCollisionEvent(cp2.m_localID, collisiondepth); |
903 | //ctype = (int)CollisionCategories.Character; | 898 | //ctype = (int)CollisionCategories.Character; |
904 | 899 | ||
905 | //if (cc1.CollidingObj) | 900 | //if (cc1.CollidingObj) |
906 | //cStartStop = (int)StatusIndicators.Generic; | 901 | //cStartStop = (int)StatusIndicators.Generic; |
907 | //else | 902 | //else |
908 | //cStartStop = (int)StatusIndicators.Start; | 903 | //cStartStop = (int)StatusIndicators.Start; |
909 | //returncollisions = true; | 904 | //returncollisions = true; |
910 | 905 | ||
911 | break; | 906 | break; |
912 | case ActorTypes.Prim: | 907 | case ActorTypes.Prim: |
913 | cp1 = (OdePrim)p1; | 908 | cp1 = (OdePrim)p1; |
914 | obj2LocalID = cp1.m_localID; | 909 | obj2LocalID = cp1.m_localID; |
915 | cp1.AddCollisionEvent(cp2.m_localID, collisiondepth); | 910 | cp1.AddCollisionEvent(cp2.m_localID, collisiondepth); |
916 | //ctype = (int)CollisionCategories.Geom; | 911 | //ctype = (int)CollisionCategories.Geom; |
917 | 912 | ||
918 | //if (cp1.CollidingObj) | 913 | //if (cp1.CollidingObj) |
919 | //cStartStop = (int)StatusIndicators.Generic; | 914 | //cStartStop = (int)StatusIndicators.Generic; |
920 | //else | 915 | //else |
921 | //cStartStop = (int)StatusIndicators.Start; | 916 | //cStartStop = (int)StatusIndicators.Start; |
922 | 917 | ||
923 | //returncollisions = true; | 918 | //returncollisions = true; |
924 | break; | 919 | break; |
925 | 920 | ||
926 | case ActorTypes.Ground: | 921 | case ActorTypes.Ground: |
927 | case ActorTypes.Unknown: | 922 | case ActorTypes.Unknown: |
928 | obj2LocalID = 0; | 923 | obj2LocalID = 0; |
929 | //ctype = (int)CollisionCategories.Land; | 924 | //ctype = (int)CollisionCategories.Land; |
930 | 925 | ||
931 | //returncollisions = true; | 926 | //returncollisions = true; |
932 | break; | 927 | break; |
933 | } | 928 | } |
934 | 929 | ||
935 | cp2.AddCollisionEvent(obj2LocalID, collisiondepth); | 930 | cp2.AddCollisionEvent(obj2LocalID, collisiondepth); |
936 | break; | 931 | break; |
@@ -1015,7 +1010,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1015 | /// <param name="timeStep"></param> | 1010 | /// <param name="timeStep"></param> |
1016 | private void collision_optimized(float timeStep) | 1011 | private void collision_optimized(float timeStep) |
1017 | { | 1012 | { |
1018 | |||
1019 | foreach (OdeCharacter chr in _characters) | 1013 | foreach (OdeCharacter chr in _characters) |
1020 | { | 1014 | { |
1021 | // Reset the collision values to false | 1015 | // Reset the collision values to false |
@@ -1579,7 +1573,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1579 | // if (pbs.ProfileShape == ProfileShape.EquilateralTriangle) | 1573 | // if (pbs.ProfileShape == ProfileShape.EquilateralTriangle) |
1580 | // return true; | 1574 | // return true; |
1581 | 1575 | ||
1582 | 1576 | ||
1583 | 1577 | ||
1584 | // return false; | 1578 | // return false; |
1585 | 1579 | ||
@@ -1625,7 +1619,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1625 | //m_log.Info(timeStep.ToString()); | 1619 | //m_log.Info(timeStep.ToString()); |
1626 | step_time += timeStep; | 1620 | step_time += timeStep; |
1627 | 1621 | ||
1628 | |||
1629 | // If We're loaded down by something else, | 1622 | // If We're loaded down by something else, |
1630 | // or debugging with the Visual Studio project on pause | 1623 | // or debugging with the Visual Studio project on pause |
1631 | // skip a few frames to catch up gracefully. | 1624 | // skip a few frames to catch up gracefully. |
@@ -1739,7 +1732,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1739 | } | 1732 | } |
1740 | 1733 | ||
1741 | d.WorldQuickStep(world, ODE_STEPSIZE); | 1734 | d.WorldQuickStep(world, ODE_STEPSIZE); |
1742 | |||
1743 | d.JointGroupEmpty(contactgroup); | 1735 | d.JointGroupEmpty(contactgroup); |
1744 | //ode.dunlock(world); | 1736 | //ode.dunlock(world); |
1745 | } | 1737 | } |
@@ -2075,7 +2067,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2075 | if (resultarr2[y, x] <= 0) | 2067 | if (resultarr2[y, x] <= 0) |
2076 | { | 2068 | { |
2077 | returnarr[i] = 0.0000001f; | 2069 | returnarr[i] = 0.0000001f; |
2078 | 2070 | ||
2079 | } | 2071 | } |
2080 | else | 2072 | else |
2081 | returnarr[i] = resultarr2[y, x]; | 2073 | returnarr[i] = resultarr2[y, x]; |