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/btSliderConstraint.h

    r5781 r8351  
    2626#define SLIDER_CONSTRAINT_H
    2727
    28 //-----------------------------------------------------------------------------
     28
    2929
    3030#include "LinearMath/btVector3.h"
     
    3232#include "btTypedConstraint.h"
    3333
    34 //-----------------------------------------------------------------------------
     34
    3535
    3636class btRigidBody;
    3737
    38 //-----------------------------------------------------------------------------
     38
    3939
    4040#define SLIDER_CONSTRAINT_DEF_SOFTNESS          (btScalar(1.0))
    4141#define SLIDER_CONSTRAINT_DEF_DAMPING           (btScalar(1.0))
    4242#define SLIDER_CONSTRAINT_DEF_RESTITUTION       (btScalar(0.7))
    43 
    44 //-----------------------------------------------------------------------------
     43#define SLIDER_CONSTRAINT_DEF_CFM                       (btScalar(0.f))
     44
     45
     46enum btSliderFlags
     47{
     48        BT_SLIDER_FLAGS_CFM_DIRLIN = (1 << 0),
     49        BT_SLIDER_FLAGS_ERP_DIRLIN = (1 << 1),
     50        BT_SLIDER_FLAGS_CFM_DIRANG = (1 << 2),
     51        BT_SLIDER_FLAGS_ERP_DIRANG = (1 << 3),
     52        BT_SLIDER_FLAGS_CFM_ORTLIN = (1 << 4),
     53        BT_SLIDER_FLAGS_ERP_ORTLIN = (1 << 5),
     54        BT_SLIDER_FLAGS_CFM_ORTANG = (1 << 6),
     55        BT_SLIDER_FLAGS_ERP_ORTANG = (1 << 7),
     56        BT_SLIDER_FLAGS_CFM_LIMLIN = (1 << 8),
     57        BT_SLIDER_FLAGS_ERP_LIMLIN = (1 << 9),
     58        BT_SLIDER_FLAGS_CFM_LIMANG = (1 << 10),
     59        BT_SLIDER_FLAGS_ERP_LIMANG = (1 << 11)
     60};
     61
    4562
    4663class btSliderConstraint : public btTypedConstraint
     
    4966        ///for backwards compatibility during the transition to 'getInfo/getInfo2'
    5067        bool            m_useSolveConstraintObsolete;
     68        bool            m_useOffsetForConstraintFrame;
    5169        btTransform     m_frameInA;
    5270    btTransform m_frameInB;
     
    6886        btScalar m_restitutionDirLin;
    6987        btScalar m_dampingDirLin;
     88        btScalar m_cfmDirLin;
     89
    7090        btScalar m_softnessDirAng;
    7191        btScalar m_restitutionDirAng;
    7292        btScalar m_dampingDirAng;
     93        btScalar m_cfmDirAng;
     94
    7395        btScalar m_softnessLimLin;
    7496        btScalar m_restitutionLimLin;
    7597        btScalar m_dampingLimLin;
     98        btScalar m_cfmLimLin;
     99
    76100        btScalar m_softnessLimAng;
    77101        btScalar m_restitutionLimAng;
    78102        btScalar m_dampingLimAng;
     103        btScalar m_cfmLimAng;
     104
    79105        btScalar m_softnessOrthoLin;
    80106        btScalar m_restitutionOrthoLin;
    81107        btScalar m_dampingOrthoLin;
     108        btScalar m_cfmOrthoLin;
     109
    82110        btScalar m_softnessOrthoAng;
    83111        btScalar m_restitutionOrthoAng;
    84112        btScalar m_dampingOrthoAng;
     113        btScalar m_cfmOrthoAng;
    85114       
    86115        // for interlal use
    87116        bool m_solveLinLim;
    88117        bool m_solveAngLim;
     118
     119        int m_flags;
    89120
    90121        btJacobianEntry m_jacLin[3];
     
    127158        // constructors
    128159    btSliderConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA);
    129     btSliderConstraint();
     160    btSliderConstraint(btRigidBody& rbB, const btTransform& frameInB, bool useLinearReferenceFrameA);
     161
    130162        // overrides
    131     virtual void        buildJacobian();
     163
    132164    virtual void getInfo1 (btConstraintInfo1* info);
     165
     166        void getInfo1NonVirtual(btConstraintInfo1* info);
    133167       
    134168        virtual void getInfo2 (btConstraintInfo2* info);
    135169
    136     virtual     void    solveConstraintObsolete(btSolverBody& bodyA,btSolverBody& bodyB,btScalar        timeStep);
    137        
     170        void getInfo2NonVirtual(btConstraintInfo2* info, const btTransform& transA, const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB, btScalar rbAinvMass,btScalar rbBinvMass);
     171
    138172
    139173        // access
     
    151185    void setUpperLinLimit(btScalar upperLimit) { m_upperLinLimit = upperLimit; }
    152186    btScalar getLowerAngLimit() { return m_lowerAngLimit; }
    153     void setLowerAngLimit(btScalar lowerLimit) { m_lowerAngLimit = lowerLimit; }
     187    void setLowerAngLimit(btScalar lowerLimit) { m_lowerAngLimit = btNormalizeAngle(lowerLimit); }
    154188    btScalar getUpperAngLimit() { return m_upperAngLimit; }
    155     void setUpperAngLimit(btScalar upperLimit) { m_upperAngLimit = upperLimit; }
     189    void setUpperAngLimit(btScalar upperLimit) { m_upperAngLimit = btNormalizeAngle(upperLimit); }
    156190        bool getUseLinearReferenceFrameA() { return m_useLinearReferenceFrameA; }
    157191        btScalar getSoftnessDirLin() { return m_softnessDirLin; }
     
    211245        bool getSolveAngLimit() { return m_solveAngLim; }
    212246        btScalar getAngDepth() { return m_angDepth; }
    213         // internal
    214     void        buildJacobianInt(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB);
    215     void        solveConstraintInt(btRigidBody& rbA, btSolverBody& bodyA,btRigidBody& rbB, btSolverBody& bodyB);
    216247        // shared code used by ODE solver
    217         void    calculateTransforms(void);
    218         void    testLinLimits(void);
    219         void    testLinLimits2(btConstraintInfo2* info);
    220         void    testAngLimits(void);
     248        void    calculateTransforms(const btTransform& transA,const btTransform& transB);
     249        void    testLinLimits();
     250        void    testAngLimits();
    221251        // access for PE Solver
    222         btVector3 getAncorInA(void);
    223         btVector3 getAncorInB(void);
     252        btVector3 getAncorInA();
     253        btVector3 getAncorInB();
     254        // access for UseFrameOffset
     255        bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }
     256        void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }
     257
     258        ///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5).
     259        ///If no axis is provided, it uses the default axis for this constraint.
     260        virtual void    setParam(int num, btScalar value, int axis = -1);
     261        ///return the local value of parameter
     262        virtual btScalar getParam(int num, int axis = -1) const;
     263
     264        virtual int     calculateSerializeBufferSize() const;
     265
     266        ///fills the dataBuffer and returns the struct name (and 0 on failure)
     267        virtual const char*     serialize(void* dataBuffer, btSerializer* serializer) const;
     268
     269
    224270};
    225271
    226 //-----------------------------------------------------------------------------
     272///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
     273struct btSliderConstraintData
     274{
     275        btTypedConstraintData   m_typeConstraintData;
     276        btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.
     277        btTransformFloatData m_rbBFrame;
     278       
     279        float   m_linearUpperLimit;
     280        float   m_linearLowerLimit;
     281
     282        float   m_angularUpperLimit;
     283        float   m_angularLowerLimit;
     284
     285        int     m_useLinearReferenceFrameA;
     286        int m_useOffsetForConstraintFrame;
     287
     288};
     289
     290
     291SIMD_FORCE_INLINE               int     btSliderConstraint::calculateSerializeBufferSize() const
     292{
     293        return sizeof(btSliderConstraintData);
     294}
     295
     296        ///fills the dataBuffer and returns the struct name (and 0 on failure)
     297SIMD_FORCE_INLINE       const char*     btSliderConstraint::serialize(void* dataBuffer, btSerializer* serializer) const
     298{
     299
     300        btSliderConstraintData* sliderData = (btSliderConstraintData*) dataBuffer;
     301        btTypedConstraint::serialize(&sliderData->m_typeConstraintData,serializer);
     302
     303        m_frameInA.serializeFloat(sliderData->m_rbAFrame);
     304        m_frameInB.serializeFloat(sliderData->m_rbBFrame);
     305
     306        sliderData->m_linearUpperLimit = float(m_upperLinLimit);
     307        sliderData->m_linearLowerLimit = float(m_lowerLinLimit);
     308
     309        sliderData->m_angularUpperLimit = float(m_upperAngLimit);
     310        sliderData->m_angularLowerLimit = float(m_lowerAngLimit);
     311
     312        sliderData->m_useLinearReferenceFrameA = m_useLinearReferenceFrameA;
     313        sliderData->m_useOffsetForConstraintFrame = m_useOffsetForConstraintFrame;
     314
     315        return "btSliderConstraintData";
     316}
     317
     318
    227319
    228320#endif //SLIDER_CONSTRAINT_H
Note: See TracChangeset for help on using the changeset viewer.