void ParticleEmitter::addHeightMapAffector(Track* t)
{
    HeightMapCollisionAffector* hmca = new HeightMapCollisionAffector(t);
    m_node->addAffector(hmca);
    hmca->drop();
    if (irr_driver->isGLSL()) {
        const Vec3* aabb_min;
        const Vec3* aabb_max;
        t->getAABB(&aabb_min, &aabb_max);
        float track_x = aabb_min->getX();
        float track_z = aabb_min->getZ();
        const float track_x_len = aabb_max->getX() - aabb_min->getX();
        const float track_z_len = aabb_max->getZ() - aabb_min->getZ();
        static_cast<ParticleSystemProxy *>(m_node)->setHeightmap(t->buildHeightMap(),
            track_x, track_z, track_x_len, track_z_len);
    }
}
void ParticleEmitter::addHeightMapAffector(Track* t)
{
    HeightMapCollisionAffector* hmca = new HeightMapCollisionAffector(t);
    m_node->addAffector(hmca);
    hmca->drop();
}