示例#1
0
void MeshEntity::MeshCollisionCallback(PhyObject *collider, int triIndex, float appliedImpulse, int lifeTime, const Vect &hitPos, float &friction, float &restitution)
{
    traceIn(MeshEntity::MeshCollisionCallback);

    for(int i=0; i<mesh->nSections; i++)
    {
        DrawSection &section = mesh->SectionList[i];
        if(triIndex < (section.startFace+section.numFaces))
        {
            Material *material = MaterialList[i];
            if(material)
            {
                if(lifeTime == 1)
                    material->ProcessCollision(phyObject, collider, appliedImpulse, hitPos);
                friction = material->GetFriction();
                restitution = material->GetRestitution();
            }
            return;
        }
    }

    traceOut;
}