21 typedef set<int>::iterator iterator;
22 typedef set<int>::const_iterator const_iterator;
26 inline bool empty() {
return items.empty(); }
27 void setRange(
int imin,
int imax);
28 void expandRange(
int item);
29 void insert(
int item);
31 void insert(It first,It last);
32 void erase(iterator it);
35 void erase(It first,It last);
36 inline iterator begin() {
return items.begin(); }
37 inline const_iterator begin()
const {
return items.begin(); }
38 inline iterator end() {
return items.end(); }
39 inline const_iterator end()
const {
return items.end(); }
40 size_t size()
const {
return items.size(); }
42 iterator find(
int item);
43 const_iterator find(
int item)
const;
44 inline bool isRangeEmpty()
const {
return imax < imin; }
45 inline int minimum()
const {
return imin; }
46 inline int maximum()
const {
return imax; }
47 inline bool inRange(
int item)
const {
return item >= imin && item <= imax; }
48 inline bool cacheGet(
int item)
const {
return contains[item-imin]; }
49 inline void cacheSet(
int item,
bool value) { contains[item-imin]=value; }
53 inline bool IsCacheBuilt()
const {
return hasContainmentCache; }
58 bool hasContainmentCache;
59 vector<bool> contains;
63 void RangeSet::insert(It first,It last)
65 for(It i=first;i!=last;i++)
70 void RangeSet::erase(It first,It last)
72 for(It i=first;i!=last;i++)
Definition: rayprimitives.h:132
A set of integers within a range. Operates in two modes, set or bit vector mode. In bit-vector mode...
Definition: RangeSet.h:18