Ignore:
Timestamp:
Sep 9, 2013, 12:30:11 AM (6 years ago)
Author:
touky
Message:

btPhysTest : Added a new test mode called "CAT_MODE". Try it out at your own risks.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/physics/easyphysics.h

    r2816 r2879  
    5656public:
    5757    virtual void SetMass(float mass);
     58    virtual float GetMass() { return m_mass; }
     59    virtual void SetHitRestitution(float hit_restitution);
    5860    virtual void InitBodyToRigid(bool ZeroMassIsKinematic=false);
    5961    virtual void InitBodyToGhost();
     
    6163    virtual void RemoveFromSimulation(class Simulation* current_simulation);
    6264
     65    //Force/Impulse functions
     66        virtual void AddImpulse(const lol::vec3& impulse);
     67    virtual void AddImpulse(const lol::vec3& impulse, const lol::vec3& rel_pos);
     68        virtual void AddImpulseTorque(const lol::vec3& torque);
     69        virtual void AddForce(const lol::vec3& force);
     70        virtual void AddForce(const lol::vec3& force, const lol::vec3& rel_pos);
     71    virtual void AddForceTorque(const lol::vec3& torque);
     72
     73    //Movements getter
     74        lol::vec3 GetLinearVelocity() const;
     75        lol::vec3 GetLinearForce() const;
     76        lol::vec3 GetAngularVelocity() const;
     77        lol::vec3 GetAngularForce() const;
     78
    6379protected:
    6480    virtual void SetLocalInertia(float mass);
     
    6783    virtual btGhostObject* GetGhostObjectInstance();
    6884
    69     btCollisionObject*                            m_collision_object;
    70 
    71     btGhostObject*                                m_ghost_object;
     85    btCollisionObject*                          m_collision_object;
     86
     87    btGhostObject*                              m_ghost_object;
    7288
    7389    btRigidBody*                                m_rigid_body;
    74     btVector3                                    m_local_inertia;
    75 
    76     btCollisionShape*                            m_collision_shape;
    77     btConvexShape*                                m_convex_shape;
    78     btMotionState*                                m_motion_state;
     90    btVector3                                   m_local_inertia;
     91
     92    btCollisionShape*                           m_collision_shape;
     93    btConvexShape*                              m_convex_shape;
     94    btMotionState*                              m_motion_state;
    7995
    8096#else  // NO PHYSIC IMPLEMENTATION
     
    96112public:
    97113    virtual void SetMass(float mass) { }
     114    virtual float GetMass() { return .0f; }
     115    virtual void SetHitRestitution(float hit_restitution) { }
    98116    virtual void InitBodyToRigid() { }
    99117    virtual void InitBodyToGhost() { }
    100118    virtual void AddToSimulation(class Simulation* current_simulation) { }
    101119    virtual void RemoveFromSimulation(class Simulation* current_simulation) { }
     120
     121    //Force/Impulse functions
     122        virtual void AddImpulse(const lol::vec3& impulse) { }
     123    virtual void AddImpulse(const lol::vec3& impulse, const lol::vec3& rel_pos) { }
     124        virtual void AddImpulseTorque(const lol::vec3& torque) { }
     125        virtual void AddForce(const lol::vec3& force) { }
     126        virtual void AddForce(const lol::vec3& force, const lol::vec3& rel_pos) { }
     127    virtual void AddForceTorque(const lol::vec3& torque) { }
     128
     129    //Movements getter
     130    lol::vec3 GetLinearVelocity()    const { return lol::vec3(.0f); }
     131        lol::vec3 GetLinearForce()       const { return lol::vec3(.0f); }
     132        lol::vec3 GetAngularVelocity()   const { return lol::vec3(.0f); }
     133        lol::vec3 GetAngularForce()      const { return lol::vec3(.0f); }
    102134
    103135    virtual void InitBodyToGhost() { }
     
    149181
    150182protected:
    151     lol::mat4                                    m_local_to_world;
    152     float                                        m_mass;
    153     int                                            m_collision_group;
    154     int                                            m_collision_mask;
    155     WorldEntity*                                m_owner_entity;
    156     Simulation*                                    m_owner_simulation;
     183    lol::mat4                                       m_local_to_world;
     184    float                                           m_mass;
     185    float                                           m_hit_restitution;
     186    int                                             m_collision_group;
     187    int                                             m_collision_mask;
     188    WorldEntity*                                    m_owner_entity;
     189    Simulation*                                     m_owner_simulation;
    157190
    158191    //Base/Attachment logic
    159     Array<EasyPhysic*>                            m_based_physic_list;    //List of objects based on this : this object moves, its based object MoveStep with it.
    160     EasyPhysic*                                    m_base_physic;            //Base for this object : The base moves, the object moves with it.
    161     bool                                        m_base_lock_location;    //when this is TRUE, location moves with rotation change.
    162     bool                                        m_base_lock_rotation;    //when this is TRUE, rotation moves with rotation change.
     192    Array<EasyPhysic*>                              m_based_physic_list;     //List of objects based on this : this object moves, its based object MoveStep with it.
     193    EasyPhysic*                                     m_base_physic;           //Base for this object : The base moves, the object moves with it.
     194    bool                                            m_base_lock_location;    //when this is TRUE, location moves with rotation change.
     195    bool                                            m_base_lock_rotation;    //when this is TRUE, rotation moves with rotation change.
    163196
    164197    //Touch logic
    165     Array<EasyPhysic*>                            m_touching_physic;        //Maintained by ghost objects
     198    Array<EasyPhysic*>                              m_touching_physic;        //Maintained by ghost objects
    166199};
    167200
Note: See TracChangeset for help on using the changeset viewer.