diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs b/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs index 56d2415..f535e50 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs | |||
@@ -1019,7 +1019,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1019 | Vector3 origVelW = VehicleVelocity; // DEBUG DEBUG | 1019 | Vector3 origVelW = VehicleVelocity; // DEBUG DEBUG |
1020 | VehicleVelocity /= VehicleVelocity.Length(); | 1020 | VehicleVelocity /= VehicleVelocity.Length(); |
1021 | VehicleVelocity *= BSParam.VehicleMaxLinearVelocity; | 1021 | VehicleVelocity *= BSParam.VehicleMaxLinearVelocity; |
1022 | VDetailLog("{0}, MoveLinear,clampMax,origVelW={1},lenSq={2},maxVelSq={3},,newVelW={4}", | 1022 | VDetailLog("{0}, MoveLinear,clampMax,origVelW={1},lenSq={2},maxVelSq={3},,newVelW={4}", |
1023 | ControllingPrim.LocalID, origVelW, newVelocityLengthSq, BSParam.VehicleMaxLinearVelocitySquared, VehicleVelocity); | 1023 | ControllingPrim.LocalID, origVelW, newVelocityLengthSq, BSParam.VehicleMaxLinearVelocitySquared, VehicleVelocity); |
1024 | } | 1024 | } |
1025 | else if (newVelocityLengthSq < 0.001f) | 1025 | else if (newVelocityLengthSq < 0.001f) |
@@ -1094,7 +1094,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1094 | if (VehiclePosition.Z > m_VhoverTargetHeight) | 1094 | if (VehiclePosition.Z > m_VhoverTargetHeight) |
1095 | m_VhoverTargetHeight = VehiclePosition.Z; | 1095 | m_VhoverTargetHeight = VehiclePosition.Z; |
1096 | } | 1096 | } |
1097 | 1097 | ||
1098 | if ((m_flags & VehicleFlag.LOCK_HOVER_HEIGHT) != 0) | 1098 | if ((m_flags & VehicleFlag.LOCK_HOVER_HEIGHT) != 0) |
1099 | { | 1099 | { |
1100 | if (Math.Abs(VehiclePosition.Z - m_VhoverTargetHeight) > 0.2f) | 1100 | if (Math.Abs(VehiclePosition.Z - m_VhoverTargetHeight) > 0.2f) |
@@ -1188,7 +1188,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1188 | // used with conjunction with banking: the strength of the banking will decay when the | 1188 | // used with conjunction with banking: the strength of the banking will decay when the |
1189 | // vehicle no longer experiences collisions. The decay timescale is the same as | 1189 | // vehicle no longer experiences collisions. The decay timescale is the same as |
1190 | // VEHICLE_BANKING_TIMESCALE. This is to help prevent ground vehicles from steering | 1190 | // VEHICLE_BANKING_TIMESCALE. This is to help prevent ground vehicles from steering |
1191 | // when they are in mid jump. | 1191 | // when they are in mid jump. |
1192 | // TODO: this code is wrong. Also, what should it do for boats (height from water)? | 1192 | // TODO: this code is wrong. Also, what should it do for boats (height from water)? |
1193 | // This is just using the ground and a general collision check. Should really be using | 1193 | // This is just using the ground and a general collision check. Should really be using |
1194 | // a downward raycast to find what is below. | 1194 | // a downward raycast to find what is below. |
@@ -1254,7 +1254,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1254 | 1254 | ||
1255 | VehicleAddForce(appliedGravity); | 1255 | VehicleAddForce(appliedGravity); |
1256 | 1256 | ||
1257 | VDetailLog("{0}, MoveLinear,applyGravity,vehGrav={1},collid={2},fudge={3},mass={4},appliedForce={3}", | 1257 | VDetailLog("{0}, MoveLinear,applyGravity,vehGrav={1},collid={2},fudge={3},mass={4},appliedForce={3}", |
1258 | ControllingPrim.LocalID, m_VehicleGravity, | 1258 | ControllingPrim.LocalID, m_VehicleGravity, |
1259 | ControllingPrim.IsColliding, BSParam.VehicleGroundGravityFudge, m_vehicleMass, appliedGravity); | 1259 | ControllingPrim.IsColliding, BSParam.VehicleGroundGravityFudge, m_vehicleMass, appliedGravity); |
1260 | } | 1260 | } |
@@ -1330,7 +1330,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1330 | // From http://wiki.secondlife.com/wiki/LlSetVehicleFlags : | 1330 | // From http://wiki.secondlife.com/wiki/LlSetVehicleFlags : |
1331 | // This flag prevents linear deflection parallel to world z-axis. This is useful | 1331 | // This flag prevents linear deflection parallel to world z-axis. This is useful |
1332 | // for preventing ground vehicles with large linear deflection, like bumper cars, | 1332 | // for preventing ground vehicles with large linear deflection, like bumper cars, |
1333 | // from climbing their linear deflection into the sky. | 1333 | // from climbing their linear deflection into the sky. |
1334 | // That is, NO_DEFLECTION_UP says angular motion should not add any pitch or roll movement | 1334 | // That is, NO_DEFLECTION_UP says angular motion should not add any pitch or roll movement |
1335 | // TODO: This is here because this is where ODE put it but documentation says it | 1335 | // TODO: This is here because this is where ODE put it but documentation says it |
1336 | // is a linear effect. Where should this check go? | 1336 | // is a linear effect. Where should this check go? |
@@ -1463,7 +1463,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1463 | VehicleRotationalVelocity += (vertContributionV * VehicleOrientation); | 1463 | VehicleRotationalVelocity += (vertContributionV * VehicleOrientation); |
1464 | 1464 | ||
1465 | VDetailLog("{0}, MoveAngular,verticalAttraction,,origRotVW={1},vertError={2},unscaledV={3},eff={4},ts={5},vertContribV={6}", | 1465 | VDetailLog("{0}, MoveAngular,verticalAttraction,,origRotVW={1},vertError={2},unscaledV={3},eff={4},ts={5},vertContribV={6}", |
1466 | Prim.LocalID, origRotVelW, verticalError, unscaledContribVerticalErrorV, | 1466 | Prim.LocalID, origRotVelW, verticalError, unscaledContribVerticalErrorV, |
1467 | m_verticalAttractionEfficiency, m_verticalAttractionTimescale, vertContributionV); | 1467 | m_verticalAttractionEfficiency, m_verticalAttractionTimescale, vertContributionV); |
1468 | */ | 1468 | */ |
1469 | } | 1469 | } |
@@ -1530,13 +1530,13 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1530 | // produce a angular velocity around the yaw-axis, causing the vehicle to turn. The magnitude | 1530 | // produce a angular velocity around the yaw-axis, causing the vehicle to turn. The magnitude |
1531 | // of the yaw effect will be proportional to the | 1531 | // of the yaw effect will be proportional to the |
1532 | // VEHICLE_BANKING_EFFICIENCY, the angle of the roll rotation, and sometimes the vehicle's | 1532 | // VEHICLE_BANKING_EFFICIENCY, the angle of the roll rotation, and sometimes the vehicle's |
1533 | // velocity along its preferred axis of motion. | 1533 | // velocity along its preferred axis of motion. |
1534 | // The VEHICLE_BANKING_EFFICIENCY can vary between -1 and +1. When it is positive then any | 1534 | // The VEHICLE_BANKING_EFFICIENCY can vary between -1 and +1. When it is positive then any |
1535 | // positive rotation (by the right-hand rule) about the roll-axis will effect a | 1535 | // positive rotation (by the right-hand rule) about the roll-axis will effect a |
1536 | // (negative) torque around the yaw-axis, making it turn to the right--that is the | 1536 | // (negative) torque around the yaw-axis, making it turn to the right--that is the |
1537 | // vehicle will lean into the turn, which is how real airplanes and motorcycle's work. | 1537 | // vehicle will lean into the turn, which is how real airplanes and motorcycle's work. |
1538 | // Negating the banking coefficient will make it so that the vehicle leans to the | 1538 | // Negating the banking coefficient will make it so that the vehicle leans to the |
1539 | // outside of the turn (not very "physical" but might allow interesting vehicles so why not?). | 1539 | // outside of the turn (not very "physical" but might allow interesting vehicles so why not?). |
1540 | // The VEHICLE_BANKING_MIX is a fake (i.e. non-physical) parameter that is useful for making | 1540 | // The VEHICLE_BANKING_MIX is a fake (i.e. non-physical) parameter that is useful for making |
1541 | // banking vehicles do what you want rather than what the laws of physics allow. | 1541 | // banking vehicles do what you want rather than what the laws of physics allow. |
1542 | // For example, consider a real motorcycle...it must be moving forward in order for | 1542 | // For example, consider a real motorcycle...it must be moving forward in order for |
@@ -1548,11 +1548,11 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1548 | // totally static (0.0) and totally dynamic (1.0). By "static" we mean that the | 1548 | // totally static (0.0) and totally dynamic (1.0). By "static" we mean that the |
1549 | // banking effect depends only on the vehicle's rotation about its roll-axis compared | 1549 | // banking effect depends only on the vehicle's rotation about its roll-axis compared |
1550 | // to "dynamic" where the banking is also proportional to its velocity along its | 1550 | // to "dynamic" where the banking is also proportional to its velocity along its |
1551 | // roll-axis. Finding the best value of the "mixture" will probably require trial and error. | 1551 | // roll-axis. Finding the best value of the "mixture" will probably require trial and error. |
1552 | // The time it takes for the banking behavior to defeat a preexisting angular velocity about the | 1552 | // The time it takes for the banking behavior to defeat a preexisting angular velocity about the |
1553 | // world z-axis is determined by the VEHICLE_BANKING_TIMESCALE. So if you want the vehicle to | 1553 | // world z-axis is determined by the VEHICLE_BANKING_TIMESCALE. So if you want the vehicle to |
1554 | // bank quickly then give it a banking timescale of about a second or less, otherwise you can | 1554 | // bank quickly then give it a banking timescale of about a second or less, otherwise you can |
1555 | // make a sluggish vehicle by giving it a timescale of several seconds. | 1555 | // make a sluggish vehicle by giving it a timescale of several seconds. |
1556 | public void ComputeAngularBanking() | 1556 | public void ComputeAngularBanking() |
1557 | { | 1557 | { |
1558 | if (enableAngularBanking && m_bankingEfficiency != 0 && m_verticalAttractionTimescale < m_verticalAttractionCutoff) | 1558 | if (enableAngularBanking && m_bankingEfficiency != 0 && m_verticalAttractionTimescale < m_verticalAttractionCutoff) |
@@ -1581,7 +1581,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin | |||
1581 | 1581 | ||
1582 | //VehicleRotationalVelocity += bankingContributionV * VehicleOrientation; | 1582 | //VehicleRotationalVelocity += bankingContributionV * VehicleOrientation; |
1583 | VehicleRotationalVelocity += bankingContributionV; | 1583 | VehicleRotationalVelocity += bankingContributionV; |
1584 | 1584 | ||
1585 | 1585 | ||
1586 | VDetailLog("{0}, MoveAngular,Banking,rollComp={1},speed={2},rollComp={3},yAng={4},mYAng={5},ret={6}", | 1586 | VDetailLog("{0}, MoveAngular,Banking,rollComp={1},speed={2},rollComp={3},yAng={4},mYAng={5},ret={6}", |
1587 | ControllingPrim.LocalID, rollComponents, VehicleForwardSpeed, rollComponents, yawAngle, mixedYawAngle, bankingContributionV); | 1587 | ControllingPrim.LocalID, rollComponents, VehicleForwardSpeed, rollComponents, yawAngle, mixedYawAngle, bankingContributionV); |