Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 19, 2006, 3:37:40 PM (18 years ago)
Author:
patrick
Message:

collision reactions now only registered with collision tube. no compile

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/coll_rect/src/lib/collision_reaction/collision_tube.cc

    r9892 r9893  
    6767
    6868    // check if there is already a collision defined between these objects
    69     if( collision->match(*entityA, *entityB))
     69    if( !collision->match(*entityA, *entityB))
    7070    {
    71       CollisionEvent* collisionEvent = CREngine::getInstance()->popCollisionEventObject();
    72       collisionEvent->collide( CREngine::CR_COLLISION_TYPE_OBB, entityA, entityB, bvA, bvB);
    73       collision->registerCollisionEvent( collisionEvent);
     71      collision = CREngine::getInstance()->popCollisionObject();
     72      collision->collide( entityA, entityB);
    7473    }
     74
     75    // now register the new collision event
     76    CollisionEvent* collisionEvent = CREngine::getInstance()->popCollisionEventObject();
     77    collisionEvent->collide( CREngine::CR_COLLISION_TYPE_OBB, entityA, entityB, bvA, bvB);
     78    collision->registerCollisionEvent( collisionEvent);
    7579  }
    7680
     
    8589   * @param bInWall true if the entity is in the ground material
    8690   */
    87   void CollisionTube::registerCollisionEvent(int type, WorldEntity* entity, WorldEntity* groundEntity,
     91  void CollisionTube::registerCollisionEvent(CREngine::CollisionType type, WorldEntity* entity, WorldEntity* groundEntity,
    8892                              const Vector& normal, const Vector& position, bool bInWall)
    8993  {
    90     //
     94    Collision* collision = this->_collisionList.back();
     95
     96    // check if there is already a collision defined between these objects
     97    if( !collision->match(*entity, *groundEntity))
     98    {
     99      collision = CREngine::getInstance()->popCollisionObject();
     100      collision->collide( entity, groundEntity);
     101    }
     102
     103    // now register the new collision event
     104    CollisionEvent* collisionEvent = CREngine::getInstance()->popCollisionEventObject();
     105    collisionEvent->collide( type, entity, groundEntity, normal, position, bInWall);
     106    collision->registerCollisionEvent( collisionEvent);
    91107  }
     108
     109
     110  /**
     111   * checks if two objects are
     112   */
     113  bool CollisionTube::needCollisionChecking(const WorldEntity& entityA, const WorldEntity& entityB)
     114  {
     115    //if( !this->isReactive( entityA, entityB) )
     116    //  return false;
     117
     118    //if( entityA->)
     119
     120  }
     121
    92122
    93123  /**
Note: See TracChangeset for help on using the changeset viewer.