aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin')
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs10
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs2
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt18
3 files changed, 18 insertions, 12 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
index 1f186c3..f442ca2 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
@@ -204,7 +204,7 @@ public sealed class BSCharacter : BSPhysObject
204 // move. Thus, the velocity cannot be forced to zero. The problem is that small velocity 204 // move. Thus, the velocity cannot be forced to zero. The problem is that small velocity
205 // errors can creap in and the avatar will slowly float off in some direction. 205 // errors can creap in and the avatar will slowly float off in some direction.
206 // So, the problem is that, when an avatar is standing, we cannot tell creaping error 206 // So, the problem is that, when an avatar is standing, we cannot tell creaping error
207 // from real pushing.OMV.Vector3.Zero; 207 // from real pushing.
208 // The code below keeps setting the velocity to zero hoping the world will keep pushing. 208 // The code below keeps setting the velocity to zero hoping the world will keep pushing.
209 209
210 _velocityMotor.Step(timeStep); 210 _velocityMotor.Step(timeStep);
@@ -254,9 +254,11 @@ public sealed class BSCharacter : BSPhysObject
254 } 254 }
255 255
256 // If falling, we keep the world's downward vector no matter what the other axis specify. 256 // If falling, we keep the world's downward vector no matter what the other axis specify.
257 // The check for _velocity.Z < 0 makes jumping work (temporary upward force).
257 if (!Flying && !IsColliding) 258 if (!Flying && !IsColliding)
258 { 259 {
259 stepVelocity.Z = _velocity.Z; 260 if (_velocity.Z < 0)
261 stepVelocity.Z = _velocity.Z;
260 // DetailLog("{0},BSCharacter.MoveMotor,taint,overrideStepZWithWorldZ,stepVel={1}", LocalID, stepVelocity); 262 // DetailLog("{0},BSCharacter.MoveMotor,taint,overrideStepZWithWorldZ,stepVel={1}", LocalID, stepVelocity);
261 } 263 }
262 264
@@ -512,7 +514,7 @@ public sealed class BSCharacter : BSPhysObject
512 // just assign to "Position" because of potential call loops. 514 // just assign to "Position" because of potential call loops.
513 PhysicsScene.TaintedObject(inTaintTime, "BSCharacter.PositionSanityCheck", delegate() 515 PhysicsScene.TaintedObject(inTaintTime, "BSCharacter.PositionSanityCheck", delegate()
514 { 516 {
515 DetailLog("{0},BSCharacter.PositionSanityCheck,taint,pos={1},orient={2}", LocalID, _position, _orientation); 517 DetailLog("{0},BSCharacter.PositionSanityCheck,taint,pos={1},orient={2}", LocalID, _position, _orientation);
516 ForcePosition = _position; 518 ForcePosition = _position;
517 }); 519 });
518 ret = true; 520 ret = true;
@@ -572,7 +574,7 @@ public sealed class BSCharacter : BSPhysObject
572 m_targetVelocity = value; 574 m_targetVelocity = value;
573 OMV.Vector3 targetVel = value; 575 OMV.Vector3 targetVel = value;
574 if (_setAlwaysRun) 576 if (_setAlwaysRun)
575 targetVel *= BSParam.AvatarAlwaysRunFactor; 577 targetVel *= new OMV.Vector3(BSParam.AvatarAlwaysRunFactor, BSParam.AvatarAlwaysRunFactor, 0f);
576 578
577 PhysicsScene.TaintedObject("BSCharacter.setTargetVelocity", delegate() 579 PhysicsScene.TaintedObject("BSCharacter.setTargetVelocity", delegate()
578 { 580 {
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
index 4dff927..8f660c4 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
@@ -470,7 +470,7 @@ public class BSPrim : BSPhysObject
470 // Note that this does not change _mass! 470 // Note that this does not change _mass!
471 public override void UpdatePhysicalMassProperties(float physMass, bool inWorld) 471 public override void UpdatePhysicalMassProperties(float physMass, bool inWorld)
472 { 472 {
473 if (PhysBody.HasPhysicalBody) 473 if (PhysBody.HasPhysicalBody && PhysShape.HasPhysicalShape)
474 { 474 {
475 if (IsStatic) 475 if (IsStatic)
476 { 476 {
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
index 49718c4..4dc16f4 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
+++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
@@ -1,5 +1,12 @@
1CURRENT PRIORITIES 1CURRENT PRIORITIES
2================================================= 2=================================================
3Use the HACD convex hull routine in Bullet rather than the C# version.
4 Speed up hullifying large meshes.
5Enable vehicle border crossings (at least as poorly as ODE)
6 Terrain skirts
7 Avatar created in previous region and not new region when crossing border
8 Vehicle recreated in new sim at small Z value (offset from root value?) (DONE)
9Lock axis
3Deleting a linkset while standing on the root will leave the physical shape of the root behind. 10Deleting a linkset while standing on the root will leave the physical shape of the root behind.
4 Not sure if it is because standing on it. Done with large prim linksets. 11 Not sure if it is because standing on it. Done with large prim linksets.
5Vehicle angular vertical attraction 12Vehicle angular vertical attraction
@@ -7,16 +14,11 @@ vehicle angular banking
7Center-of-gravity 14Center-of-gravity
8Vehicle angular deflection 15Vehicle angular deflection
9 Preferred orientation angular correction fix 16 Preferred orientation angular correction fix
10Enable vehicle border crossings (at least as poorly as ODE)
11 Terrain skirts
12 Avatar created in previous region and not new region when crossing border
13 Vehicle recreated in new sim at small Z value (offset from root value?) (DONE)
14when should angular and linear motor targets be zeroed? when selected? 17when should angular and linear motor targets be zeroed? when selected?
15 Need a vehicle.clear()? Or an 'else' in prestep if not physical. 18 Need a vehicle.clear()? Or an 'else' in prestep if not physical.
16Teravus llMoveToTarget script debug 19Teravus llMoveToTarget script debug
17 Mixing of hover, buoyancy/gravity, moveToTarget, into one force 20 Mixing of hover, buoyancy/gravity, moveToTarget, into one force
18 Setting hover height to zero disables hover even if hover flags are on (from SL wiki) 21 Setting hover height to zero disables hover even if hover flags are on (from SL wiki)
19Nebadon vehicles turning funny in arena
20limitMotorUp calibration (more down?) 22limitMotorUp calibration (more down?)
21llRotLookAt 23llRotLookAt
22llLookAt 24llLookAt
@@ -66,6 +68,8 @@ Vehicle attributes are not restored when a vehicle is rezzed on region creation
66 68
67GENERAL TODO LIST: 69GENERAL TODO LIST:
68================================================= 70=================================================
71Resitution of a prim works on another prim but not on terrain.
72 The dropped prim doesn't bounce properly on the terrain.
69Add a sanity check for PIDTarget location. 73Add a sanity check for PIDTarget location.
70Level-of-detail for mesh creation. Prims with circular interiors require lod of 32. 74Level-of-detail for mesh creation. Prims with circular interiors require lod of 32.
71 Is much saved with lower LODs? At the moment, all set to 32. 75 Is much saved with lower LODs? At the moment, all set to 32.
@@ -163,7 +167,6 @@ Create tests for different interface components
163 Have test objects/scripts measure themselves and turn color if correct/bad 167 Have test objects/scripts measure themselves and turn color if correct/bad
164 Test functions in SL and calibrate correctness there 168 Test functions in SL and calibrate correctness there
165 Create auto rezzer and tracker to run through the tests 169 Create auto rezzer and tracker to run through the tests
166Use the HACD convex hull routine in Bullet rather than the C# version.
167Do we need to do convex hulls all the time? Can complex meshes be left meshes? 170Do we need to do convex hulls all the time? Can complex meshes be left meshes?
168 There is some problem with meshes and collisions 171 There is some problem with meshes and collisions
169 Hulls are not as detailed as meshes. Hulled vehicles insides are different shape. 172 Hulls are not as detailed as meshes. Hulled vehicles insides are different shape.
@@ -334,4 +337,5 @@ Child movement in linkset (don't rebuild linkset) (DONE 20130122))
334Avatar standing on a moving object should start to move with the object. (DONE 20130125) 337Avatar standing on a moving object should start to move with the object. (DONE 20130125)
335Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. 338Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE.
336 Verify that angular motion specified around Z moves in the vehicle coordinates. 339 Verify that angular motion specified around Z moves in the vehicle coordinates.
337 DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. \ No newline at end of file 340 DONE 20130120: BulletSim properly applies force in vehicle relative coordinates.
341Nebadon vehicles turning funny in arena (DONE) \ No newline at end of file