コード例 #1
0
    inline bool         is_air (const chunk_coordinates& pos)
    {
        if (!is_coarse_height_available(pos))
            return false;

        return is_air_chunk(pos, get_coarse_height(pos));
    }
コード例 #2
0
 void on_update_height(map_coordinates pos, chunk_height z)
 {
     // The coarse height map has been changed.  Cancel all occlusion
     // queries above this limit.
     boost::mutex::scoped_lock l (lock);
     for (auto& d : occlusion_queries)
     {
         for (auto& qry : d)
         {
             if (   //qry.second.state() == occlusion_query::visible
                 map_coordinates(qry.first) == pos
                 && is_air_chunk(qry.first, z))
             {
                 //trace("OQ %1% is above height limit, canceling", world_rel_coordinates(qry.first - world_chunk_center));
                 qry.second.set_state(occlusion_query::air);
             }
         }
     }
 }