#include <interesttiling.hh>
r_Interest_Tiling::r_Interest_Tiling |
( |
const char * |
encoded | ) |
|
throw | ( | r_Error |
| ) | | |
read everything from an encoded string e.g. "2;[0:9,0:9];[100:109,0:9];100;REGROUPSUBTILING"
virtual r_Interest_Tiling::~r_Interest_Tiling |
( |
| ) |
|
|
virtual |
It takes as parameter a list containing the areas of interest to the user and also the tilesize to be used. The constructor also takes as parameter the tilesize limitation strategy, that can be the following:
NO_LIMIT: The generated blocks can have any size. REGROUP: Only when performing grouping/merging of blocks, the size of the resulting block of two merges is checked against tilesize. If it's bigger, they are not merged. Blocks larger than tilesize may exist (for instance, if the user specifies an interest area larger then tilesize). SUB_TILING: In this strategie, regrouping is done regardless of the size of the generated blocks. After all the blocks are created, sub-tiling is performed on those whose size is larger than tilesize. REGROUP_AND_SUBTILING: This combines the last two strategies. When merging blocks, blocks larger than tilesize are never created and, when the final blocks are all created, sub-tiling is performed on those whose size is larger then tilesize. An exception is thrown when the dimensions of the domains does not match the specified dimension.
virtual r_Tiling* r_Interest_Tiling::clone |
( |
| ) |
const |
|
virtual |
Clones this object.
This method provides the core funcionality of this class. All derived classes must implement it. As input parameters it takes the big object to be decomposed and returns a set of tiles that compose the big object. This method throws an exeception when the dimension specified, extend or the cell_size are incompatible with the current tiling. You can check compatibility by invoking is_compatible.
Implements r_Dimension_Tiling.
returns true if the cellTypeSize is smaller or equal to the tile size and the dimension fits the obj_domain
Implements r_Dimension_Tiling.
static const char* r_Interest_Tiling::get_name_from_tilesize_limit |
( |
Tilesize_Limit |
tsl | ) |
|
|
static |
Get a tilisize limit name for a tilesize limit
Get a tilesize limit for a tilisize limit name
This method is similar to a copy constructor, this is, is returns a copy of the current object. Derived classes must explicitly implement this method.
Reimplemented from r_Size_Tiling.
Merge as many blocks together in a list as possible.
A Blocks —> Blocks that belong to two or more interest zones (non-groupable) B Blocks —> Blocks within the same interest zone (groupable by interest zone) C Blocks —> Blocks outside interest zones (groupable)
Given a domain and a set of interest areas (internal) gener. partition.
virtual void r_Interest_Tiling::print_status |
( |
std::ostream & |
os | ) |
const |
|
virtual |
const char* r_Interest_Tiling::description |
|
static |
const char* r_Interest_Tiling::tilesizelimit_name_nolimit |
|
staticprotected |
The names of all tilesizelimit types, to avoid redundant storage and inconsistencies. The variable name convention is the prefix tilisizelimit_name_ followed by the name of the data format in lower case, i.e. for NOLIMIT tilisizelimit_name_nolimit. In addition there's an array of names all_tilesizelimit_names where the tilesize limit can be used as index to get the name.
const char* r_Interest_Tiling::tilesizelimit_name_regroup |
|
staticprotected |
const char* r_Interest_Tiling::tilesizelimit_name_regroupandsubtiling |
|
staticprotected |
const char* r_Interest_Tiling::tilesizelimit_name_subtiling |
|
staticprotected |
Tilesize limitation strategie.
Parameters: the block list, the lenght of the base cells and the type of the block (A, B or C)
The documentation for this class was generated from the following file: