diff options
author | Dahlia Trimble | 2008-07-24 07:45:58 +0000 |
---|---|---|
committer | Dahlia Trimble | 2008-07-24 07:45:58 +0000 |
commit | f74a9bcdc7b0682c1c205e9d640fbfa5f214840b (patch) | |
tree | 6d30a6964db7d79771a4ec7b655077b813f983b3 /OpenSim/Region/Physics | |
parent | Refactor some tests. (diff) | |
download | opensim-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')
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 |