aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2008-06-20 04:57:32 +0000
committerTeravus Ovares2008-06-20 04:57:32 +0000
commite02a2e31e0e8a189b63e60dc402ac0ccd3bae876 (patch)
treeea1ddaa8de1fb528bb66b1b7762fe4d0ca35d570
parentImplemented plugin support for ClientStack, with LindenUDP as the default plu... (diff)
downloadopensim-SC_OLD-e02a2e31e0e8a189b63e60dc402ac0ccd3bae876.zip
opensim-SC_OLD-e02a2e31e0e8a189b63e60dc402ac0ccd3bae876.tar.gz
opensim-SC_OLD-e02a2e31e0e8a189b63e60dc402ac0ccd3bae876.tar.bz2
opensim-SC_OLD-e02a2e31e0e8a189b63e60dc402ac0ccd3bae876.tar.xz
* Patch from nlin to enable DIF state file writing from the ODEPlugin
* Rebuilt libode.so, ode.dll * If you roll your own ODE library, make sure to update your opensim-libs.
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs28
-rw-r--r--bin/Ode.NET.dllbin61440 -> 61440 bytes
-rw-r--r--bin/OpenSim.ini.example11
-rw-r--r--bin/libode.sobin3259877 -> 3260494 bytes
-rw-r--r--bin/ode.dllbin655360 -> 663552 bytes
5 files changed, 38 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 787cb12..81e03ca 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -30,6 +30,7 @@ using System.Collections.Generic;
30using System.Reflection; 30using System.Reflection;
31using System.Runtime.InteropServices; 31using System.Runtime.InteropServices;
32using System.Threading; 32using System.Threading;
33using System.IO;
33using Axiom.Math; 34using Axiom.Math;
34using log4net; 35using log4net;
35using Nini.Config; 36using Nini.Config;
@@ -247,6 +248,11 @@ namespace OpenSim.Region.Physics.OdePlugin
247 248
248 private IConfigSource m_config; 249 private IConfigSource m_config;
249 250
251 public bool physics_logging = false;
252 public int physics_logging_interval = 0;
253 public bool physics_logging_append_existing_logfile = false;
254
255
250 /// <summary> 256 /// <summary>
251 /// Initiailizes the scene 257 /// Initiailizes the scene
252 /// Sets many properties that ODE requires to be stable 258 /// Sets many properties that ODE requires to be stable
@@ -370,6 +376,10 @@ namespace OpenSim.Region.Physics.OdePlugin
370 avStandupTensor = physicsconfig.GetFloat("av_capsule_standup_tensor_win", 550000f); 376 avStandupTensor = physicsconfig.GetFloat("av_capsule_standup_tensor_win", 550000f);
371 bodyMotorJointMaxforceTensor = physicsconfig.GetFloat("body_motor_joint_maxforce_tensor_win", 5f); 377 bodyMotorJointMaxforceTensor = physicsconfig.GetFloat("body_motor_joint_maxforce_tensor_win", 5f);
372 } 378 }
379
380 physics_logging = physicsconfig.GetBoolean("physics_logging", false);
381 physics_logging_interval = physicsconfig.GetInt("physics_logging_interval", 0);
382 physics_logging_append_existing_logfile = physicsconfig.GetBoolean("physics_logging_append_existing_logfile", false);
373 } 383 }
374 } 384 }
375 385
@@ -1759,7 +1769,25 @@ namespace OpenSim.Region.Physics.OdePlugin
1759 } 1769 }
1760 } 1770 }
1761 } 1771 }
1772
1773
1774 // Finished with all sim stepping. If requested, dump world state to file for debugging.
1775 // TODO: This call to the export function is already inside lock(OdeLock) - but is an extra lock needed?
1776 // TODO: This overwrites all dump files in-place. Should this be a growing logfile, or separate snapshots?
1777 if(physics_logging && (physics_logging_interval>0) && (framecount % physics_logging_interval == 0) ) {
1778 string fname = "state-" + world.ToString() + ".DIF"; // give each physics world a separate filename
1779 string prefix = "world" + world.ToString(); // prefix for variable names in exported .DIF file
1780
1781 if(physics_logging_append_existing_logfile) {
1782 string header = "-------------- START OF PHYSICS FRAME " + framecount.ToString() + " --------------";
1783 TextWriter fwriter = File.AppendText(fname);
1784 fwriter.WriteLine(header);
1785 fwriter.Close();
1786 }
1787 d.WorldExportDIF(world, fname, physics_logging_append_existing_logfile, prefix);
1788 }
1762 } 1789 }
1790
1763 return fps; 1791 return fps;
1764 } 1792 }
1765 1793
diff --git a/bin/Ode.NET.dll b/bin/Ode.NET.dll
index 8826b5e..5b296eb 100644
--- a/bin/Ode.NET.dll
+++ b/bin/Ode.NET.dll
Binary files differ
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index d61eef0..eb52e6b 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -309,6 +309,15 @@ mesh_lod = 32
309; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies 309; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
310mesh_physical_lod = 16 310mesh_physical_lod = 16
311 311
312; ##
313; ## Physics logging settings - logfiles are saved to *.DIF files
314; ##
315
316;physics_logging = true
317;; every n simulation iterations, the physics snapshot file is updated
318;physics_logging_interval = 50
319;; append to existing physics logfile, or overwrite existing logfiles?
320;physics_logging_append_existing_logfile = true
312 321
313[RemoteAdmin] 322[RemoteAdmin]
314enabled = false 323enabled = false
@@ -617,4 +626,4 @@ EventLimit = 30
617; If a script overruns it's event limit, kill the script? 626; If a script overruns it's event limit, kill the script?
618KillTimedOutScripts = false 627KillTimedOutScripts = false
619; Allow OS console command functionality (VERY DANGEROUS!!) 628; Allow OS console command functionality (VERY DANGEROUS!!)
620AllowosConsoleCommand = false \ No newline at end of file 629AllowosConsoleCommand = false
diff --git a/bin/libode.so b/bin/libode.so
index b614780..fccdf5b 100644
--- a/bin/libode.so
+++ b/bin/libode.so
Binary files differ
diff --git a/bin/ode.dll b/bin/ode.dll
index 6fd9f1e..7ac31ad 100644
--- a/bin/ode.dll
+++ b/bin/ode.dll
Binary files differ