Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 21, 2011, 6:58:23 PM (13 years ago)
Author:
rgrieder
Message:

Merged revisions 7978 - 8096 from kicklib to kicklib2.

Location:
code/branches/kicklib2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/kicklib2

  • code/branches/kicklib2/src/external/bullet/BulletDynamics/Vehicle/btRaycastVehicle.cpp

    r5781 r8284  
    2323#include "BulletDynamics/ConstraintSolver/btContactConstraint.h"
    2424
    25 static btRigidBody s_fixedObject( 0,0,0);
     25btRigidBody& btActionInterface::getFixedBody()
     26{
     27        static btRigidBody s_fixed(0, 0,0);
     28        s_fixed.setMassProps(btScalar(0.),btVector3(btScalar(0.),btScalar(0.),btScalar(0.)));
     29        return s_fixed;
     30}
    2631
    2732btRaycastVehicle::btRaycastVehicle(const btVehicleTuning& tuning,btRigidBody* chassis,  btVehicleRaycaster* raycaster )
     
    7176        ci.m_bIsFrontWheel = isFrontWheel;
    7277        ci.m_maxSuspensionTravelCm = tuning.m_maxSuspensionTravelCm;
     78        ci.m_maxSuspensionForce = tuning.m_maxSuspensionForce;
    7379
    7480        m_wheelInfo.push_back( btWheelInfo(ci));
     
    187193                wheel.m_raycastInfo.m_isInContact = true;
    188194               
    189                 wheel.m_raycastInfo.m_groundObject = &s_fixedObject;///@todo for driving on dynamic/movable objects!;
     195                wheel.m_raycastInfo.m_groundObject = &getFixedBody();///@todo for driving on dynamic/movable objects!;
    190196                //wheel.m_raycastInfo.m_groundObject = object;
    191197
     
    302308                btScalar suspensionForce = wheel.m_wheelsSuspensionForce;
    303309               
    304                 btScalar gMaxSuspensionForce = btScalar(6000.);
    305                 if (suspensionForce > gMaxSuspensionForce)
    306                 {
    307                         suspensionForce = gMaxSuspensionForce;
     310                if (suspensionForce > wheel.m_maxSuspensionForce)
     311                {
     312                        suspensionForce = wheel.m_maxSuspensionForce;
    308313                }
    309314                btVector3 impulse = wheel.m_raycastInfo.m_contactNormalWS * suspensionForce * step;
     
    690695                                        btVector3 sideImp = m_axle[wheel] * m_sideImpulse[wheel];
    691696
    692                                         rel_pos[m_indexForwardAxis] *= wheelInfo.m_rollInfluence;
     697                                        rel_pos[m_indexUpAxis] *= wheelInfo.m_rollInfluence;
    693698                                        m_chassisBody->applyImpulse(sideImp,rel_pos);
    694699
     
    709714        for (int v=0;v<this->getNumWheels();v++)
    710715        {
    711                 btVector3 wheelColor(0,255,255);
     716                btVector3 wheelColor(0,1,1);
    712717                if (getWheelInfo(v).m_raycastInfo.m_isInContact)
    713718                {
    714                         wheelColor.setValue(0,0,255);
     719                        wheelColor.setValue(0,0,1);
    715720                } else
    716721                {
    717                         wheelColor.setValue(255,0,255);
     722                        wheelColor.setValue(1,0,1);
    718723                }
    719724
Note: See TracChangeset for help on using the changeset viewer.