BulletSim: don't modify angular parameters when doing LIMIT_MOTOR_UP.
It was a dumb idea to try and do a nose over feature for jumping cars anyway. Add better logging of native shape creation/reuse so can tell the difference.user_profiles
							parent
							
								
									61ff79587b
								
							
						
					
					
						commit
						5d098d8f17
					
				| 
						 | 
				
			
			@ -215,7 +215,7 @@ public sealed class BSCharacter : BSPhysObject
 | 
			
		|||
            // Add special movement force to allow avatars to walk up stepped surfaces.
 | 
			
		||||
            moveForce += WalkUpStairs();
 | 
			
		||||
 | 
			
		||||
            DetailLog("{0},BSCharacter.MoveMotor,move,stepVel={1},vel={2},mass={3},moveForce={4}", LocalID, stepVelocity, _velocity, Mass, moveForce);
 | 
			
		||||
            // DetailLog("{0},BSCharacter.MoveMotor,move,stepVel={1},vel={2},mass={3},moveForce={4}", LocalID, stepVelocity, _velocity, Mass, moveForce);
 | 
			
		||||
            PhysicsScene.PE.ApplyCentralImpulse(PhysBody, moveForce);
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1160,8 +1160,10 @@ namespace OpenSim.Region.Physics.BulletSPlugin
 | 
			
		|||
                if (!Prim.IsColliding && VehicleVelocity.Z > 0.1)
 | 
			
		||||
                {
 | 
			
		||||
                    // Get rid of any of the velocity vector that is pushing us up.
 | 
			
		||||
                    VehicleVelocity += new Vector3(0, 0, -VehicleVelocity.Z);
 | 
			
		||||
                    float upVelocity = VehicleVelocity.Z;
 | 
			
		||||
                    VehicleVelocity += new Vector3(0, 0, -upVelocity);
 | 
			
		||||
 | 
			
		||||
                    /*
 | 
			
		||||
                    // If we're pointed up into the air, we should nose down
 | 
			
		||||
                    Vector3 pointingDirection = Vector3.UnitX * VehicleOrientation;
 | 
			
		||||
                    // The rotation around the Y axis is pitch up or down
 | 
			
		||||
| 
						 | 
				
			
			@ -1175,11 +1177,9 @@ namespace OpenSim.Region.Physics.BulletSPlugin
 | 
			
		|||
                        VDetailLog("{0},  MoveLinear,limitMotorUp,newVel={1},pntDir={2},corrFrc={3},aCorr={4}",
 | 
			
		||||
                                    Prim.LocalID, VehicleVelocity, pointingDirection, angularCorrectionForce, angularCorrectionVector);
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        VDetailLog("{0},  MoveLinear,limitMotorUp,newVel={1},pntDir={2}",
 | 
			
		||||
                                    Prim.LocalID, VehicleVelocity, pointingDirection);
 | 
			
		||||
                    }
 | 
			
		||||
                        */
 | 
			
		||||
                    VDetailLog("{0},  MoveLinear,limitMotorUp,collide={1},upVel={2},newVel={3}",
 | 
			
		||||
                                    Prim.LocalID, Prim.IsColliding, upVelocity, VehicleVelocity);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -311,7 +311,7 @@ public sealed class BSLinksetCompound : BSLinkset
 | 
			
		|||
            else
 | 
			
		||||
            {
 | 
			
		||||
                // Rebuild the compound shape with the child removed
 | 
			
		||||
                ScheduleRebuild(child);
 | 
			
		||||
                ScheduleRebuild(LinksetRoot);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -442,7 +442,8 @@ public sealed class BSShapeCollection : IDisposable
 | 
			
		|||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Create a mesh/hull shape or a native shape if 'nativeShapePossible' is 'true'.
 | 
			
		||||
    // Create a mesh, hull or native shape.
 | 
			
		||||
    // Return 'true' if the prim's shape was changed.
 | 
			
		||||
    public bool CreateGeomNonSpecial(bool forceRebuild, BSPhysObject prim, ShapeDestructionCallback shapeCallback)
 | 
			
		||||
    {
 | 
			
		||||
        bool ret = false;
 | 
			
		||||
| 
						 | 
				
			
			@ -472,7 +473,7 @@ public sealed class BSShapeCollection : IDisposable
 | 
			
		|||
            if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,maybeNative,force={1},primScale={2},primSize={3},primShape={4}",
 | 
			
		||||
                        prim.LocalID, forceRebuild, prim.Scale, prim.Size, prim.PhysShape.type);
 | 
			
		||||
 | 
			
		||||
            // It doesn't look like Bullet scales spheres so make sure the scales are all equal
 | 
			
		||||
            // It doesn't look like Bullet scales native spheres so make sure the scales are all equal
 | 
			
		||||
            if ((pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1)
 | 
			
		||||
                                && pbs.Scale.X == pbs.Scale.Y && pbs.Scale.Y == pbs.Scale.Z)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -484,9 +485,9 @@ public sealed class BSShapeCollection : IDisposable
 | 
			
		|||
                {
 | 
			
		||||
                    ret = GetReferenceToNativeShape(prim, BSPhysicsShapeType.SHAPE_SPHERE,
 | 
			
		||||
                                            FixedShapeKey.KEY_SPHERE, shapeCallback);
 | 
			
		||||
                    if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,sphere,force={1},shape={2}",
 | 
			
		||||
                                        prim.LocalID, forceRebuild, prim.PhysShape);
 | 
			
		||||
                }
 | 
			
		||||
                if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,sphere,force={1},rebuilt={2},shape={3}",
 | 
			
		||||
                                        prim.LocalID, forceRebuild, ret, prim.PhysShape);
 | 
			
		||||
            }
 | 
			
		||||
            if (!haveShape && pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -498,9 +499,9 @@ public sealed class BSShapeCollection : IDisposable
 | 
			
		|||
                {
 | 
			
		||||
                    ret = GetReferenceToNativeShape( prim, BSPhysicsShapeType.SHAPE_BOX,
 | 
			
		||||
                                            FixedShapeKey.KEY_BOX, shapeCallback);
 | 
			
		||||
                    if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,box,force={1},shape={2}",
 | 
			
		||||
                                        prim.LocalID, forceRebuild, prim.PhysShape);
 | 
			
		||||
                }
 | 
			
		||||
                if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,box,force={1},rebuilt={2},shape={3}",
 | 
			
		||||
                                        prim.LocalID, forceRebuild, ret, prim.PhysShape);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -513,7 +514,7 @@ public sealed class BSShapeCollection : IDisposable
 | 
			
		|||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // return 'true' if the shape was changed
 | 
			
		||||
    // return 'true' if the prim's shape was changed.
 | 
			
		||||
    public bool CreateGeomMeshOrHull(BSPhysObject prim, ShapeDestructionCallback shapeCallback)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -921,8 +922,9 @@ public sealed class BSShapeCollection : IDisposable
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // While we figure out the real problem, stick in a simple box for the object.
 | 
			
		||||
        // While we wait for the mesh defining asset to be loaded, stick in a simple box for the object.
 | 
			
		||||
        BulletShape fillinShape = BuildPhysicalNativeShape(prim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX);
 | 
			
		||||
        DetailLog("{0},BSShapeCollection.VerifyMeshCreated,boxTempShape", prim.LocalID);
 | 
			
		||||
 | 
			
		||||
        return fillinShape;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +1,9 @@
 | 
			
		|||
CURRENT PRIORITIES
 | 
			
		||||
=================================================
 | 
			
		||||
Crazyness during 20130115 office hours was PositionAdjustUnderground for both char and prim
 | 
			
		||||
	m1:logs/20130115.0934/physics-BulletSim-20130115083613.log
 | 
			
		||||
	Creation of Neb's terrain made the terrain "disappear". Everything started to fall
 | 
			
		||||
		and then get restored to be above terrain.
 | 
			
		||||
Create tests for different interface components
 | 
			
		||||
	Have test objects/scripts measure themselves and turn color if correct/bad
 | 
			
		||||
	Test functions in SL and calibrate correctness there
 | 
			
		||||
	Create auto rezzer and tracker to run through the tests
 | 
			
		||||
Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040
 | 
			
		||||
	Msg Kayaker on OSGrid when working
 | 
			
		||||
Teravus llMoveToTarget script debug
 | 
			
		||||
	Mixing of hover, buoyancy/gravity, moveToTarget, into one force
 | 
			
		||||
Surf board debugging
 | 
			
		||||
Boats floating at proper level
 | 
			
		||||
Nebadon vehicles turning funny in arena
 | 
			
		||||
limitMotorUp calibration (more down?)
 | 
			
		||||
| 
						 | 
				
			
			@ -25,8 +16,6 @@ vehicle angular banking
 | 
			
		|||
Avatars walking up stairs (HALF DONE)
 | 
			
		||||
    Radius of the capsule affects ability to climb edges.
 | 
			
		||||
Vehicle movement on terrain smoothness
 | 
			
		||||
Surfboard go wonky when turning
 | 
			
		||||
	Angular motor direction is global coordinates rather than local coordinates?
 | 
			
		||||
Boats float low in the water (DONE)
 | 
			
		||||
Avatar movement
 | 
			
		||||
	flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE)
 | 
			
		||||
| 
						 | 
				
			
			@ -43,6 +32,10 @@ Add material densities to the material types
 | 
			
		|||
 | 
			
		||||
CRASHES
 | 
			
		||||
=================================================
 | 
			
		||||
Crazyness during 20130115 office hours was PositionAdjustUnderground for both char and prim
 | 
			
		||||
	m1:logs/20130115.0934/physics-BulletSim-20130115083613.log
 | 
			
		||||
	Creation of Neb's terrain made the terrain "disappear". Everything started to fall
 | 
			
		||||
		and then get restored to be above terrain.
 | 
			
		||||
20121129.1411: editting/moving phys object across region boundries causes crash
 | 
			
		||||
    getPos-> btRigidBody::upcast -> getBodyType -> BOOM
 | 
			
		||||
20121128.1600: mesh object not rezzing (no physics mesh).
 | 
			
		||||
| 
						 | 
				
			
			@ -149,6 +142,10 @@ Eliminate collisions between objects in a linkset. (LinksetConstraint)
 | 
			
		|||
 | 
			
		||||
MORE
 | 
			
		||||
======================================================
 | 
			
		||||
Create tests for different interface components
 | 
			
		||||
	Have test objects/scripts measure themselves and turn color if correct/bad
 | 
			
		||||
	Test functions in SL and calibrate correctness there
 | 
			
		||||
	Create auto rezzer and tracker to run through the tests
 | 
			
		||||
Use the HACD convex hull routine in Bullet rather than the C# version.
 | 
			
		||||
Do we need to do convex hulls all the time? Can complex meshes be left meshes?
 | 
			
		||||
	There is some problem with meshes and collisions
 | 
			
		||||
| 
						 | 
				
			
			@ -304,4 +301,7 @@ Disable activity of passive linkset children. (DONE)
 | 
			
		|||
	Since the linkset is a compound object, the old prims are left lying
 | 
			
		||||
	around and need to be phantomized so they don't collide, ...
 | 
			
		||||
Remove HeightmapInfo from terrain specification (DONE)
 | 
			
		||||
    Since C++ code does not need terrain height, this structure et al are not needed.
 | 
			
		||||
    Since C++ code does not need terrain height, this structure et al are not needed.
 | 
			
		||||
Surfboard go wonky when turning (DONE)
 | 
			
		||||
	Angular motor direction is global coordinates rather than local coordinates?
 | 
			
		||||
	(Resolution: made angular motor direction correct coordinate system)
 | 
			
		||||
		Loading…
	
		Reference in New Issue