Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

Merged revisions 7978 - 8096 from kicklib to kicklib2.

Location:
code/branches/kicklib2
Files:
4 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
  • code/branches/kicklib2/src/external/bullet/BulletDynamics/Vehicle/btRaycastVehicle.h

    r5781 r8284  
    3030                btAlignedObjectArray<btScalar>  m_forwardImpulse;
    3131                btAlignedObjectArray<btScalar>  m_sideImpulse;
     32       
     33                ///backwards compatibility
     34                int     m_userConstraintType;
     35                int     m_userConstraintId;
    3236
    3337public:
     
    4145                                m_suspensionDamping(btScalar(0.88)),
    4246                                m_maxSuspensionTravelCm(btScalar(500.)),
    43                                 m_frictionSlip(btScalar(10.5))
     47                                m_frictionSlip(btScalar(10.5)),
     48                                m_maxSuspensionForce(btScalar(6000.))
    4449                        {
    4550                        }
     
    4954                        btScalar        m_maxSuspensionTravelCm;
    5055                        btScalar        m_frictionSlip;
     56                        btScalar        m_maxSuspensionForce;
    5157
    5258                };
     
    7985        virtual void updateAction( btCollisionWorld* collisionWorld, btScalar step)
    8086        {
     87        (void) collisionWorld;
    8188                updateVehicle(step);
    8289        }
     
    189196
    190197
     198        ///backwards compatibility
     199        int getUserConstraintType() const
     200        {
     201                return m_userConstraintType ;
     202        }
     203
     204        void    setUserConstraintType(int userConstraintType)
     205        {
     206                m_userConstraintType = userConstraintType;
     207        };
     208
     209        void    setUserConstraintId(int uid)
     210        {
     211                m_userConstraintId = uid;
     212        }
     213
     214        int getUserConstraintId() const
     215        {
     216                return m_userConstraintId;
     217        }
    191218
    192219};
  • code/branches/kicklib2/src/external/bullet/BulletDynamics/Vehicle/btWheelInfo.h

    r5781 r8284  
    3030        btScalar                m_wheelsDampingRelaxation;
    3131        btScalar                m_frictionSlip;
     32        btScalar                m_maxSuspensionForce;
    3233        bool m_bIsFrontWheel;
    3334       
     
    6970        btScalar        m_deltaRotation;
    7071        btScalar        m_rollInfluence;
     72        btScalar        m_maxSuspensionForce;
    7173
    7274        btScalar        m_engineForce;
     
    100102                m_rollInfluence = btScalar(0.1);
    101103                m_bIsFrontWheel = ci.m_bIsFrontWheel;
     104                m_maxSuspensionForce = ci.m_maxSuspensionForce;
    102105
    103106        }
Note: See TracChangeset for help on using the changeset viewer.