Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5046 in orxonox.OLD for orxonox


Ignore:
Timestamp:
Aug 16, 2005, 9:20:20 PM (19 years ago)
Author:
patrick
Message:

orxonox/trunk: if a collision occures, the virtual WorldEntity::collidesWith(WorldEntity*, Vector) is called of both objects. the reaction to the collision has to be defined there. default reaction is still output into stdout console. There is now more information

Location:
orxonox/trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc

    r5044 r5046  
    655655    if( unlikely(this->nodeRight == NULL && this->nodeLeft == NULL))
    656656    {
    657       nodeA->collidesWith(nodeB);
    658       nodeB->collidesWith(nodeA);
     657      nodeA->collidesWith(nodeB, *((OBBTreeNode*)treeNode)->bvElement->center);
     658
     659      nodeB->collidesWith(nodeA, *this->bvElement->center);
    659660    }
    660661
  • orxonox/trunk/src/lib/collision_detection/obb_tree_node.h

    r5039 r5046  
    6969    int                 tmpLen2;                    //!< len vert data obbox2
    7070
    71     static float**       coMat;                     //!< temp covariance matrice save place - consumes less mem
    72     static float**       eigvMat;                   //!< temp eigenvector matrice save place
    73     static float*        eigvlMat;                  //!< temp eigenvalue vector save place
    74     static int*          rotCount;                  //!< temp rotations count save place: how many givens-rotations where needed to transform the matrix :)
     71    static float**      coMat;                      //!< temp covariance matrice save place - consumes less mem
     72    static float**      eigvMat;                    //!< temp eigenvector matrice save place
     73    static float*       eigvlMat;                   //!< temp eigenvalue vector save place
     74    static int*         rotCount;                   //!< temp rotations count save place: how many givens-rotations where needed to transform the matrix :)
    7575
    76     GLUquadricObj*    sphereObj;
     76    GLUquadricObj*      sphereObj;
    7777};
    7878
  • orxonox/trunk/src/world_entities/npc.cc

    r5044 r5046  
    4343void NPC::collidesWith(WorldEntity* entity, const Vector& location)
    4444{
    45   PRINTF(0)("COLLISION with an NPC\n");
     45  PRINTF(0)("collision %s vs %s @ (%f,%f,%f)\n", this->getClassName(), entity->getClassName(), location.x, location.y, location.z);
    4646}
    4747
  • orxonox/trunk/src/world_entities/world_entity.cc

    r5044 r5046  
    9797{}
    9898
    99 /**
    100  *  this function is called, when two entities collide
    101  * @param entity: the world entity with whom it collides
    102  *
    103  * Implement behaviour like damage application or other miscellaneous collision stuff in this function
    104 */
    105 void WorldEntity::collidesWith(WorldEntity* entity)
    106 {
    107   PRINTF(0)("COLLISION with a WorldEntity\n");
    108 }
    109 
    11099
    111100/**
     
    117106void WorldEntity::collidesWith(WorldEntity* entity, const Vector& location)
    118107{
    119   PRINTF(0)("COLLISION with a WorldEntity\n");
     108  PRINTF(0)("collision %s vs %s @ (%f,%f,%f)\n", this->getClassName(), entity->getClassName(), location.x, location.y, location.z);
    120109}
    121110
  • orxonox/trunk/src/world_entities/world_entity.h

    r5029 r5046  
    5151
    5252  virtual void hit (WorldEntity* weapon, Vector* loc);
    53   virtual void collidesWith (WorldEntity* entity);
    5453  virtual void collidesWith (WorldEntity* entity, const Vector& location);
    5554
Note: See TracChangeset for help on using the changeset viewer.