Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 28, 2011, 7:15:14 AM (13 years ago)
Author:
rgrieder
Message:

Merged kicklib2 branch back to trunk (includes former branches ois_update, mac_osx and kicklib).

Notes for updating

Linux:
You don't need an extra package for CEGUILua and Tolua, it's already shipped with CEGUI.
However you do need to make sure that the OgreRenderer is installed too with CEGUI 0.7 (may be a separate package).
Also, Orxonox now recognises if you install the CgProgramManager (a separate package available on newer Ubuntu on Debian systems).

Windows:
Download the new dependency packages versioned 6.0 and use these. If you have problems with that or if you don't like the in game console problem mentioned below, you can download the new 4.3 version of the packages (only available for Visual Studio 2005/2008).

Key new features:

  • *Support for Mac OS X*
  • Visual Studio 2010 support
  • Bullet library update to 2.77
  • OIS library update to 1.3
  • Support for CEGUI 0.7 —> Support for Arch Linux and even SuSE
  • Improved install target
  • Compiles now with GCC 4.6
  • Ogre Cg Shader plugin activated for Linux if available
  • And of course lots of bug fixes

There are also some regressions:

  • No support for CEGUI 0.5, Ogre 1.4 and boost 1.35 - 1.39 any more
  • In game console is not working in main menu for CEGUI 0.7
  • Tolua (just the C lib, not the application) and CEGUILua libraries are no longer in our repository. —> You will need to get these as well when compiling Orxonox
  • And of course lots of new bugs we don't yet know about
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/src/external/bullet/BulletDynamics/ConstraintSolver/btContactConstraint.h

    r5781 r8351  
    1717#define CONTACT_CONSTRAINT_H
    1818
    19 ///@todo: make into a proper class working with the iterative constraint solver
     19#include "LinearMath/btVector3.h"
     20#include "btJacobianEntry.h"
     21#include "btTypedConstraint.h"
     22#include "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h"
    2023
    21 class btRigidBody;
    22 #include "LinearMath/btVector3.h"
    23 #include "LinearMath/btScalar.h"
    24 struct btContactSolverInfo;
    25 class btManifoldPoint;
     24///btContactConstraint can be automatically created to solve contact constraints using the unified btTypedConstraint interface
     25ATTRIBUTE_ALIGNED16(class) btContactConstraint : public btTypedConstraint
     26{
     27protected:
    2628
    27 enum {
    28         DEFAULT_CONTACT_SOLVER_TYPE=0,
    29         CONTACT_SOLVER_TYPE1,
    30         CONTACT_SOLVER_TYPE2,
    31         USER_CONTACT_SOLVER_TYPE1,
    32         MAX_CONTACT_SOLVER_TYPES
     29        btPersistentManifold m_contactManifold;
     30
     31public:
     32
     33
     34        btContactConstraint(btPersistentManifold* contactManifold,btRigidBody& rbA,btRigidBody& rbB);
     35
     36        void    setContactManifold(btPersistentManifold* contactManifold);
     37
     38        btPersistentManifold* getContactManifold()
     39        {
     40                return &m_contactManifold;
     41        }
     42
     43        const btPersistentManifold* getContactManifold() const
     44        {
     45                return &m_contactManifold;
     46        }
     47
     48        virtual ~btContactConstraint();
     49
     50        virtual void getInfo1 (btConstraintInfo1* info);
     51
     52        virtual void getInfo2 (btConstraintInfo2* info);
     53
     54        ///obsolete methods
     55        virtual void    buildJacobian();
     56
     57
    3358};
    3459
    3560
    36 typedef btScalar (*ContactSolverFunc)(btRigidBody& body1,
    37                                                                          btRigidBody& body2,
    38                                                                          class btManifoldPoint& contactPoint,
    39                                                                          const btContactSolverInfo& info);
    40 
    41 ///stores some extra information to each contact point. It is not in the contact point, because that want to keep the collision detection independent from the constraint solver.
    42 struct btConstraintPersistentData
    43 {
    44         inline btConstraintPersistentData()
    45         :m_appliedImpulse(btScalar(0.)),
    46         m_prevAppliedImpulse(btScalar(0.)),
    47         m_accumulatedTangentImpulse0(btScalar(0.)),
    48         m_accumulatedTangentImpulse1(btScalar(0.)),
    49         m_jacDiagABInv(btScalar(0.)),
    50         m_persistentLifeTime(0),
    51         m_restitution(btScalar(0.)),
    52         m_friction(btScalar(0.)),
    53         m_penetration(btScalar(0.)),
    54         m_contactSolverFunc(0),
    55         m_frictionSolverFunc(0)
    56         {
    57         }
    58        
    59                                        
    60                                 /// total applied impulse during most recent frame
    61                         btScalar        m_appliedImpulse;
    62                         btScalar        m_prevAppliedImpulse;
    63                         btScalar        m_accumulatedTangentImpulse0;
    64                         btScalar        m_accumulatedTangentImpulse1;
    65                        
    66                         btScalar        m_jacDiagABInv;
    67                         btScalar        m_jacDiagABInvTangent0;
    68                         btScalar        m_jacDiagABInvTangent1;
    69                         int             m_persistentLifeTime;
    70                         btScalar        m_restitution;
    71                         btScalar        m_friction;
    72                         btScalar        m_penetration;
    73                         btVector3       m_frictionWorldTangential0;
    74                         btVector3       m_frictionWorldTangential1;
    75 
    76                         btVector3       m_frictionAngularComponent0A;
    77                         btVector3       m_frictionAngularComponent0B;
    78                         btVector3       m_frictionAngularComponent1A;
    79                         btVector3       m_frictionAngularComponent1B;
    80 
    81                         //some data doesn't need to be persistent over frames: todo: clean/reuse this
    82                         btVector3       m_angularComponentA;
    83                         btVector3       m_angularComponentB;
    84                
    85                         ContactSolverFunc       m_contactSolverFunc;
    86                         ContactSolverFunc       m_frictionSolverFunc;
    87 
    88 };
    89 
    90 ///bilateral constraint between two dynamic objects
    91 ///positive distance = separation, negative distance = penetration
     61///resolveSingleBilateral is an obsolete methods used for vehicle friction between two dynamic objects
    9262void resolveSingleBilateral(btRigidBody& body1, const btVector3& pos1,
    9363                      btRigidBody& body2, const btVector3& pos2,
     
    9565
    9666
    97 ///contact constraint resolution:
    98 ///calculate and apply impulse to satisfy non-penetration and non-negative relative velocity constraint
    99 ///positive distance = separation, negative distance = penetration
    100 btScalar resolveSingleCollision(
    101         btRigidBody& body1,
    102         btRigidBody& body2,
    103                 btManifoldPoint& contactPoint,
    104                  const btContactSolverInfo& info);
    105 
    106 btScalar resolveSingleFriction(
    107         btRigidBody& body1,
    108         btRigidBody& body2,
    109         btManifoldPoint& contactPoint,
    110         const btContactSolverInfo& solverInfo
    111                 );
    112 
    113 
    114 
    115 btScalar resolveSingleCollisionCombined(
    116         btRigidBody& body1,
    117         btRigidBody& body2,
    118         btManifoldPoint& contactPoint,
    119         const btContactSolverInfo& solverInfo
    120                 );
    12167
    12268#endif //CONTACT_CONSTRAINT_H
Note: See TracChangeset for help on using the changeset viewer.