BulletSim: some formatting changes.

user_profiles
Robert Adams 2013-04-09 17:14:15 -07:00
parent 9cc41d5118
commit b53713cdda
1 changed files with 17 additions and 10 deletions

View File

@ -1360,18 +1360,25 @@ namespace OpenSim.Region.Physics.BulletSPlugin
{ {
//Another formula to try got from : //Another formula to try got from :
//http://answers.unity3d.com/questions/10425/how-to-stabilize-angular-motion-alignment-of-hover.html //http://answers.unity3d.com/questions/10425/how-to-stabilize-angular-motion-alignment-of-hover.html
Vector3 VehicleUpAxis = Vector3.UnitZ * VehicleOrientation; Vector3 VehicleUpAxis = Vector3.UnitZ * VehicleOrientation;
//Flipping what was originally a timescale into a speed variable and then multiplying it by 2 since only computing half
//the distance between the angles. // Flipping what was originally a timescale into a speed variable and then multiplying it by 2
// since only computing half the distance between the angles.
float VerticalAttractionSpeed = (1 / m_verticalAttractionTimescale) * 2.0f; float VerticalAttractionSpeed = (1 / m_verticalAttractionTimescale) * 2.0f;
//making a prediction of where the up axis will be when this is applied rather then where it is now this makes for a smoother
//adjustment and less fighting between the various forces // Make a prediction of where the up axis will be when this is applied rather then where it is now as
// this makes for a smoother adjustment and less fighting between the various forces.
Vector3 predictedUp = VehicleUpAxis * Quaternion.CreateFromAxisAngle(VehicleRotationalVelocity, 0f); Vector3 predictedUp = VehicleUpAxis * Quaternion.CreateFromAxisAngle(VehicleRotationalVelocity, 0f);
//this is only half the distance to the target so it will take 2 seconds to complete the turn.
// This is only half the distance to the target so it will take 2 seconds to complete the turn.
Vector3 torqueVector = Vector3.Cross(predictedUp, Vector3.UnitZ); Vector3 torqueVector = Vector3.Cross(predictedUp, Vector3.UnitZ);
//Scaling vector by our timescale since it is an acceleration it is r/s^2 or radians a timescale squared
// Scale vector by our timescale since it is an acceleration it is r/s^2 or radians a timescale squared
Vector3 vertContributionV = torqueVector * VerticalAttractionSpeed * VerticalAttractionSpeed; Vector3 vertContributionV = torqueVector * VerticalAttractionSpeed * VerticalAttractionSpeed;
VehicleRotationalVelocity += vertContributionV; VehicleRotationalVelocity += vertContributionV;
VDetailLog("{0}, MoveAngular,verticalAttraction,UpAxis={1},PredictedUp={2},torqueVector={3},contrib={4}", VDetailLog("{0}, MoveAngular,verticalAttraction,UpAxis={1},PredictedUp={2},torqueVector={3},contrib={4}",
ControllingPrim.LocalID, ControllingPrim.LocalID,
VehicleUpAxis, VehicleUpAxis,