Ignore:
Timestamp:
Aug 20, 2012, 11:21:01 PM (8 years ago)
Author:
touky
Message:

Small physic refactor.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/Physics/Src/EasyPhysics.cpp

    r1768 r1782  
    4242        m_collision_mask(1),
    4343        m_owner_entity(NewOwnerEntity),
     44        m_owner_simulation(NULL),
    4445        m_base_physic(NULL)
    4546{
     
    287288                {
    288289                        dynamics_world->addCollisionObject(m_ghost_object, m_collision_group, m_collision_mask);
    289                         current_simulation->AddToGhost(this);
     290                        current_simulation->ObjectRegistration(true, this, Simulation::EEPT_Ghost);
    290291                }
    291292                else if (m_rigid_body)
     
    293294                        dynamics_world->addRigidBody(m_rigid_body, m_collision_group, m_collision_mask);
    294295                        if (m_mass != .0f)
    295                                 current_simulation->AddToDynamic(this);
     296                                current_simulation->ObjectRegistration(true, this, Simulation::EEPT_Dynamic);
    296297                        else
    297                                 current_simulation->AddToStatic(this);
     298                                current_simulation->ObjectRegistration(true, this, Simulation::EEPT_Static);
    298299                }
    299300                else
     301                {
    300302                        dynamics_world->addCollisionObject(m_collision_object, m_collision_group, m_collision_mask);
     303                        current_simulation->ObjectRegistration(true, this, Simulation::EEPT_CollisionObject);
     304                }
    301305        }
    302306}
     
    309313        {
    310314                if (m_rigid_body)
     315                {
    311316                        dynamics_world->removeRigidBody(m_rigid_body);
    312                 else if (m_collision_object)
     317                        if (m_mass != .0f)
     318                                current_simulation->ObjectRegistration(false, this, Simulation::EEPT_Dynamic);
     319                        else
     320                                current_simulation->ObjectRegistration(false, this, Simulation::EEPT_Static);
     321                }
     322                else
     323                {
    313324                        dynamics_world->removeCollisionObject(m_collision_object);
     325                        if (m_ghost_object)
     326                                current_simulation->ObjectRegistration(false, this, Simulation::EEPT_Ghost);
     327                        current_simulation->ObjectRegistration(false, this, Simulation::EEPT_CollisionObject);
     328                }
    314329        }
    315330}
Note: See TracChangeset for help on using the changeset viewer.