mdds
|
Classes | |
class | search_result |
Public Types | |
typedef _Key | key_type |
typedef _Value | value_type |
typedef inner_type::search_result_type | search_result_type |
Public Member Functions | |
rectangle_set (const rectangle_set &r) | |
rectangle_set & | operator= (const rectangle_set &r) |
bool | operator== (const rectangle_set &r) const |
bool | operator!= (const rectangle_set &r) const |
bool | insert (key_type x1, key_type y1, key_type x2, key_type y2, value_type data) |
bool | search (key_type x, key_type y, search_result_type &result) |
search_result | search (key_type x, key_type y) |
void | remove (value_type data) |
void | clear () |
size_t | size () const |
bool | empty () const |
void mdds::rectangle_set< _Key, _Value >::clear | ( | ) |
Clear all rectangles stored in the set.
bool mdds::rectangle_set< _Key, _Value >::empty | ( | ) | const |
Check whether or not the set is empty.
bool mdds::rectangle_set< _Key, _Value >::insert | ( | key_type | x1, |
key_type | y1, | ||
key_type | x2, | ||
key_type | y2, | ||
value_type | data | ||
) |
Insert a new rectangle (and data associated with it) into the set. Note that insertion of duplicate data instance is not allowed. A data is considered a duplicate if its pointer value is identical to one of the data instances already stored within. Also note that the end point of a rectangle is non-inclusive; a rectangle of (x1,y1) - (x2,y2) means that the rectangle spans x1 <= x < x2 and y1 <= y < y2.
x1 | lower x coordinate of the rectangle. Inclusive. |
y1 | lower y coordinate of the rectangle. Inclusive. |
x2 | upper x coordinate of the rectangle. Non-inclusive. |
y2 | upper y coordinate of the rectangle. Non-inclusive. |
data | pointer to data instance associated with this rectangle. Note that the caller is responsible for managing the life cycle of the data instance. |
bool mdds::rectangle_set< _Key, _Value >::operator== | ( | const rectangle_set< _Key, _Value > & | r | ) | const |
Equality between two instances of rectangle_set is evaluated based on the stored rectangle instances; their pointer values and geometries.
void mdds::rectangle_set< _Key, _Value >::remove | ( | value_type | data | ) |
Remove a rectangle instance pointed to by a given pointer.
data | pointer that points to the rectangle instance you wish to remove from the set. |
bool mdds::rectangle_set< _Key, _Value >::search | ( | key_type | x, |
key_type | y, | ||
search_result_type & | result | ||
) |
Search and collect all rectangles that contains a given point.
x | x coordinate of a query point. |
y | y coordinate of a query point. |
result | array of pointers to rectangle instances. |
search_result mdds::rectangle_set< _Key, _Value >::search | ( | key_type | x, |
key_type | y | ||
) |
Search and collect all rectangles containing a given point.
x | x coordinate of a query point. |
y | y coordinate of a query point. |
size_t mdds::rectangle_set< _Key, _Value >::size | ( | ) | const |
Return the number of rectangles currently stored in the set.