84 template<
typename KeyType,
typename DataType,
typename HashFn>
99 : first(first), second(second) {}
118 e = iter.
e;
h = iter.
h;
b = iter.
b;
return *
this;
142 if (*iter.e)
return iter;
152 iter.h =
this; iter.b = 0; iter.e = 0;
178 bool erase(
const KeyType& key);
208 if ((*e)->key == key)
224 template<
class KeyType,
class DataType,
class HashFn>
235 if (*
e)
return *
this;
244 template<
class KeyType,
class DataType,
class HashFn>
258 template<
class KeyType,
class DataType,
class HashFn>
262 if (e)
return (*e)->val;
267 void* ebuf = malloc(
sizeof(
Entry));
270 ne->
next = *slot; *slot = ne;
276 template<
class KeyType,
class DataType,
class HashFn>
291 e->
next = *slot; *slot = e;
297 _numBuckets = newsize;
302 template<
class KeyType,
class DataType,
class HashFn>
306 if (iter ==
end())
return 0;
312 template<
class KeyType,
class DataType,
class HashFn>
317 if (!eptr)
return iter;
335 template<
class KeyType,
class DataType,
class HashFn>
iterator find(const KeyType &key) const
Locates an entry, without creating a new one.
bool operator=(const PtexHashMap &)
Assignment operator prohibited by design.
iterator & operator++(int)
For advancing the iterator to the next element.
Entry ** locate(const KeyType &key) const
Returns a pointer to the desired entry, based on the key.
value_type(const KeyType &first, const DataType &second)
~PtexHashMap()
Non-Virtual destructor by design, clears the entries in the hash table.
void grow()
Used to increase the size of the table if necessary.
int size() const
number of entries in the hash
DataType & operator[](const KeyType &key)
Locates an entry, creating a new one if necessary.
PtexHashMap()
Default contructor initializes the hash table.
bool erase(const KeyType &key)
Will remove an entry. It will return TRUE if an entry was found.
iterator(const iterator &iter)
Proper copy constructor implementation.
bool operator!=(const iterator &iter) const
For comparing inequality of iterators.
iterator()
Default Constructor.
if(WIN32) add_definitions(/DPTEX_EXPORTS) endif(WIN32) set(SRCS PtexCache.cpp PtexFilters.cpp PtexHalf.cpp PtexReader.cpp PtexSeparableFilter.cpp PtexSeparableKernel.cpp PtexTriangleFilter.cpp PtexTriangleKernel.cpp PtexUtils.cpp PtexWriter.cpp) add_library(Ptex_static STATIC $
DataType
Type of data stored in texture file.
iterator & operator=(const iterator &iter)
Proper assignment operator.
value_type operator*() const
Operator for obtaining the value that the iterator references.
iterator end() const
Returns an iteraot referencing the location just beyond the table.
Internal class used to provide iteration through the hash table.
iterator begin() const
Returns an iterator referencing the beginning of the table.
void clear()
clear will remove all entries and free the table
bool operator==(const iterator &iter) const
For comparing equality of iterators.
A lightweight hash table.