aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
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/ODEPrim.cs
parentRefactor some tests. (diff)
downloadopensim-SC-f74a9bcdc7b0682c1c205e9d640fbfa5f214840b.zip
opensim-SC-f74a9bcdc7b0682c1c205e9d640fbfa5f214840b.tar.gz
opensim-SC-f74a9bcdc7b0682c1c205e9d640fbfa5f214840b.tar.bz2
opensim-SC-f74a9bcdc7b0682c1c205e9d640fbfa5f214840b.tar.xz
Implements llSetForce() and llGetForce(). These are experimental and the units may not match the Linden implementation.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs10
1 files changed, 7 insertions, 3 deletions
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