aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin
diff options
context:
space:
mode:
authorDahlia Trimble2008-07-24 07:45:58 +0000
committerDahlia Trimble2008-07-24 07:45:58 +0000
commitf74a9bcdc7b0682c1c205e9d640fbfa5f214840b (patch)
tree6d30a6964db7d79771a4ec7b655077b813f983b3 /OpenSim/Region/Physics/OdePlugin
parentRefactor some tests. (diff)
downloadopensim-SC_OLD-f74a9bcdc7b0682c1c205e9d640fbfa5f214840b.zip
opensim-SC_OLD-f74a9bcdc7b0682c1c205e9d640fbfa5f214840b.tar.gz
opensim-SC_OLD-f74a9bcdc7b0682c1c205e9d640fbfa5f214840b.tar.bz2
opensim-SC_OLD-f74a9bcdc7b0682c1c205e9d640fbfa5f214840b.tar.xz
Implements llSetForce() and llGetForce(). These are experimental and the units may not match the Linden implementation.
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs1
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs10
2 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index 7f08cb4..5d3e986 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -534,6 +534,7 @@ namespace OpenSim.Region.Physics.OdePlugin
534 public override PhysicsVector Force 534 public override PhysicsVector Force
535 { 535 {
536 get { return new PhysicsVector(_target_velocity.X, _target_velocity.Y, _target_velocity.Z); } 536 get { return new PhysicsVector(_target_velocity.X, _target_velocity.Y, _target_velocity.Z); }
537 set { return; }
537 } 538 }
538 539
539 public override PhysicsVector CenterOfMass 540 public override PhysicsVector CenterOfMass
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index 59655d7..a4c0d79 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -103,6 +103,7 @@ namespace OpenSim.Region.Physics.OdePlugin
103 private CollisionLocker ode; 103 private CollisionLocker ode;
104 104
105 private bool m_taintforce = false; 105 private bool m_taintforce = false;
106 private PhysicsVector m_force = new PhysicsVector(0.0f, 0.0f, 0.0f);
106 private List<PhysicsVector> m_forcelist = new List<PhysicsVector>(); 107 private List<PhysicsVector> m_forcelist = new List<PhysicsVector>();
107 108
108 private IMesh _mesh; 109 private IMesh _mesh;
@@ -749,7 +750,7 @@ namespace OpenSim.Region.Physics.OdePlugin
749 changeshape(timestep); 750 changeshape(timestep);
750 // 751 //
751 752
752 if (m_taintforce) 753 if (m_taintforce || m_force != new PhysicsVector(0.0f, 0.0f, 0.0f))
753 changeAddForce(timestep); 754 changeAddForce(timestep);
754 755
755 if (m_taintdisable) 756 if (m_taintdisable)
@@ -1751,7 +1752,8 @@ namespace OpenSim.Region.Physics.OdePlugin
1751 //m_log.Info("[PHYSICS]: dequeing forcelist"); 1752 //m_log.Info("[PHYSICS]: dequeing forcelist");
1752 if (IsPhysical) 1753 if (IsPhysical)
1753 { 1754 {
1754 PhysicsVector iforce = new PhysicsVector(); 1755 //PhysicsVector iforce = new PhysicsVector();
1756 PhysicsVector iforce = m_force * 100.0f;
1755 for (int i = 0; i < m_forcelist.Count; i++) 1757 for (int i = 0; i < m_forcelist.Count; i++)
1756 { 1758 {
1757 iforce = iforce + (m_forcelist[i] * 100); 1759 iforce = iforce + (m_forcelist[i] * 100);
@@ -1856,7 +1858,9 @@ namespace OpenSim.Region.Physics.OdePlugin
1856 1858
1857 public override PhysicsVector Force 1859 public override PhysicsVector Force
1858 { 1860 {
1859 get { return PhysicsVector.Zero; } 1861 //get { return PhysicsVector.Zero; }
1862 get { return m_force; }
1863 set { m_force = value; }
1860 } 1864 }
1861 1865
1862 public override PhysicsVector CenterOfMass 1866 public override PhysicsVector CenterOfMass