aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics
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
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 'OpenSim/Region/Physics')
-rw-r--r--OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs1
-rw-r--r--OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs1
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsActor.cs3
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs1
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs10
-rw-r--r--OpenSim/Region/Physics/POSPlugin/POSCharacter.cs1
-rw-r--r--OpenSim/Region/Physics/POSPlugin/POSPrim.cs1
-rw-r--r--OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs2
8 files changed, 16 insertions, 4 deletions
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
index ee30e54..213f1d4 100644
--- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
+++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
@@ -332,6 +332,7 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
332 public override PhysicsVector Force 332 public override PhysicsVector Force
333 { 333 {
334 get { return PhysicsVector.Zero; } 334 get { return PhysicsVector.Zero; }
335 set { return; }
335 } 336 }
336 337
337 public override PhysicsVector CenterOfMass 338 public override PhysicsVector CenterOfMass
diff --git a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs
index 5ef196f..cc55f6e 100644
--- a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs
+++ b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs
@@ -943,6 +943,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin
943 public override PhysicsVector Force 943 public override PhysicsVector Force
944 { 944 {
945 get { return PhysicsVector.Zero; } 945 get { return PhysicsVector.Zero; }
946 set { return; }
946 } 947 }
947 948
948 public override PhysicsVector CenterOfMass 949 public override PhysicsVector CenterOfMass
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
index 22e21a5..beca4da 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
@@ -173,7 +173,7 @@ namespace OpenSim.Region.Physics.Manager
173 173
174 public abstract PhysicsVector Position { get; set; } 174 public abstract PhysicsVector Position { get; set; }
175 public abstract float Mass { get; } 175 public abstract float Mass { get; }
176 public abstract PhysicsVector Force { get; } 176 public abstract PhysicsVector Force { get; set; }
177 public abstract PhysicsVector GeometricCenter { get; } 177 public abstract PhysicsVector GeometricCenter { get; }
178 public abstract PhysicsVector CenterOfMass { get; } 178 public abstract PhysicsVector CenterOfMass { get; }
179 public abstract PhysicsVector Velocity { get; set; } 179 public abstract PhysicsVector Velocity { get; set; }
@@ -277,6 +277,7 @@ namespace OpenSim.Region.Physics.Manager
277 public override PhysicsVector Force 277 public override PhysicsVector Force
278 { 278 {
279 get { return PhysicsVector.Zero; } 279 get { return PhysicsVector.Zero; }
280 set { return; }
280 } 281 }
281 282
282 public override PhysicsVector CenterOfMass 283 public override PhysicsVector CenterOfMass
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
diff --git a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
index d146b60..c674d15 100644
--- a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
+++ b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs
@@ -156,6 +156,7 @@ namespace OpenSim.Region.Physics.POSPlugin
156 public override PhysicsVector Force 156 public override PhysicsVector Force
157 { 157 {
158 get { return PhysicsVector.Zero; } 158 get { return PhysicsVector.Zero; }
159 set { return; }
159 } 160 }
160 161
161 public override PhysicsVector CenterOfMass 162 public override PhysicsVector CenterOfMass
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs
index c767917..fed67dd 100644
--- a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs
+++ b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs
@@ -118,6 +118,7 @@ namespace OpenSim.Region.Physics.POSPlugin
118 public override PhysicsVector Force 118 public override PhysicsVector Force
119 { 119 {
120 get { return PhysicsVector.Zero; } 120 get { return PhysicsVector.Zero; }
121 set { return; }
121 } 122 }
122 123
123 public override PhysicsVector CenterOfMass 124 public override PhysicsVector CenterOfMass
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs
index c9e1e30..197da0a 100644
--- a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs
+++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs
@@ -340,6 +340,7 @@ namespace OpenSim.Region.Physics.PhysXPlugin
340 public override PhysicsVector Force 340 public override PhysicsVector Force
341 { 341 {
342 get { return PhysicsVector.Zero; } 342 get { return PhysicsVector.Zero; }
343 set { return; }
343 } 344 }
344 345
345 public override PhysicsVector CenterOfMass 346 public override PhysicsVector CenterOfMass
@@ -669,6 +670,7 @@ namespace OpenSim.Region.Physics.PhysXPlugin
669 public override PhysicsVector Force 670 public override PhysicsVector Force
670 { 671 {
671 get { return PhysicsVector.Zero; } 672 get { return PhysicsVector.Zero; }
673 set { return; }
672 } 674 }
673 675
674 public override PhysicsVector CenterOfMass 676 public override PhysicsVector CenterOfMass