#include <grid_base.H>
Classes | |
class | iterator_base_t |
struct | key_hash_t |
struct | key_t |
class | tile_base_t |
Public Member Functions | |
grid_base_t () | |
void | lru_limit (unsigned limit_) |
void | lru_update () |
void | lru_flush () |
Protected Types | |
typedef HashMap< key_t, tile_base_t *, key_hash_t > | index_t |
Protected Member Functions | |
void | split_coord (int coord_, int &tile_coord_, int &cell_coord_) |
virtual | ~grid_base_t () |
void | find (iterator_base_t *iter_, int x_, int y_) |
virtual tile_base_t * | create_tile ()=0 |
Protected Attributes | |
index_t | m_index |
Static Protected Attributes | |
static int const | TILE_SIZE = 32 |
Private Member Functions | |
void | init_tile (int tx_, int ty_) |
void | use_tile (tile_base_t *tile_) |
Private Attributes | |
unsigned | m_lru_limit |
unsigned | m_lru_sequence |
std::list< tile_base_t * > | m_lru_list |
typedef HashMap<key_t, tile_base_t *, key_hash_t> cajun::grid_base_t::index_t [protected] |
cajun::grid_base_t::grid_base_t | ( | ) | [inline] |
grid_base_t::~grid_base_t | ( | ) | [protected, virtual] |
References m_index.
virtual tile_base_t* cajun::grid_base_t::create_tile | ( | ) | [protected, pure virtual] |
Implemented in cajun::grid_t< CELL_t >.
Referenced by init_tile().
void grid_base_t::find | ( | iterator_base_t * | iter_, | |
int | x_, | |||
int | y_ | |||
) | [protected] |
void grid_base_t::init_tile | ( | int | tx_, | |
int | ty_ | |||
) | [private] |
References create_tile(), dx, dy, inverse, cajun::grid_base_t::tile_base_t::m_grid, m_index, cajun::grid_base_t::tile_base_t::m_lru_iter, m_lru_list, cajun::grid_base_t::tile_base_t::m_neighbor, cajun::grid_base_t::tile_base_t::m_x, cajun::grid_base_t::tile_base_t::m_y, NEIGHBOR_DEF, and NUM_NEIGHBORS.
Referenced by find().
void grid_base_t::lru_flush | ( | ) |
void cajun::grid_base_t::lru_limit | ( | unsigned | limit_ | ) | [inline] |
References m_lru_limit.
void cajun::grid_base_t::lru_update | ( | ) | [inline] |
References m_lru_sequence.
void cajun::grid_base_t::split_coord | ( | int | coord_, | |
int & | tile_coord_, | |||
int & | cell_coord_ | |||
) | [inline, protected] |
void cajun::grid_base_t::use_tile | ( | tile_base_t * | tile_ | ) | [inline, private] |
index_t cajun::grid_base_t::m_index [protected] |
Referenced by find(), init_tile(), lru_flush(), cajun::grid_t< CELL_t >::walk(), and ~grid_base_t().
unsigned cajun::grid_base_t::m_lru_limit [private] |
Referenced by lru_flush(), and lru_limit().
std::list<tile_base_t *> cajun::grid_base_t::m_lru_list [private] |
Referenced by init_tile(), lru_flush(), and use_tile().
unsigned cajun::grid_base_t::m_lru_sequence [private] |
Referenced by lru_flush(), lru_update(), cajun::grid_base_t::tile_base_t::lru_visited(), and use_tile().
int const cajun::grid_base_t::TILE_SIZE = 32 [static, protected] |
Referenced by cajun::grid_t< CELL_t >::tile_t::cell(), cajun::grid_base_t::iterator_base_t::is_valid(), cajun::grid_base_t::iterator_base_t::neighbor(), cajun::grid_base_t::iterator_base_t::neighbor_if_exist(), cajun::grid_base_t::iterator_base_t::normalize(), cajun::grid_base_t::iterator_base_t::normalize_if_only_exist(), split_coord(), cajun::grid_t< CELL_t >::walk(), cajun::grid_base_t::tile_base_t::x(), and cajun::grid_base_t::tile_base_t::y().