Core Mesh Data Structures in C++
Queue
class QueueInt { public: QueueInt(); void erase(); int size() const; void in(const int value); int out(); }Many algorithms, such as many recursive subdivision algorithms, require the sequential processing of instances of certain data structure. The QueueInt data structure implements a queue of integer values, which can be indices into a table of pointer or other data associated with the objects to be processed. The constructor QueueInt() instantiates an empty queue. The method erase() removes all the elements from the queue. The method size returns the number of current elements waiting in the queue to be processed. The in(value) method inserts a new value at the end of the queue. The method out() removes and returns the first element from the queue. It is an errot to call this method when the size of the queue is 0.
Priority Queue
class PriorityQueueFloat { public: PriorityQueueFloat() int add(const float key); // returns indx void replace(const int indx, const float key); void del(const int indx); int delMin(); // returns indx int getMin(); float getLastKey(); }Other algorithm, such as geometric simplification algorithms, require the processing of instances of certain data structure according to the increasing order of certain numerical parameter. The PriorityQueueFloat data structure implements a priority queue of floating point key values. The PriorityQueueFloat() constructor instantiates an empty priority queue. The method add(key) inserts the key value in the priority queue and returns a unique key index value. The correspondence between key index values and the data structures associated with the key vales has to be mantained externally, for example using an array of integers. The method replace(indx,key) replaces the key value associated with the key index indx. It is an error to call this method with a key index which has no key value waiting to be processed in the priority queue. The method del(indx) removes the key value associated with the key index indx from the priority queue. It is an error to call this method with a key index which has no key value waiting to be processed in the priority queue, and in particular if the priority queue is empty. The method delMin() deletes the minimum key value from the priority queue and returns the associated key index. To obtain the actual key value deleted by the methods del(key) or delMin(), the method getLastKey() should be called immediately after the call to the delete method.
Next : Core Mesh
Core Mesh | Faces | Edges | Graph | HalfEdges | Partition | PolygonMesh | Queue