PatchRandomAccessEnumerator.h

Go to the documentation of this file.
00001 #ifndef PATCHRANDOMACCESSENUMERATOR_H
00002 #define PATCHRANDOMACCESSENUMERATOR_H
00003 
00011 #include <map>
00012 
00013 struct Triangle;
00014 class Entity;
00015 class EntitySet;
00016 class PatchSequenceEnumerator;
00017 
00024 class PatchRandomAccessEnumerator {
00025   public:
00031     static PatchRandomAccessEnumerator* create(Entity *forEntity);
00032     
00038     static PatchRandomAccessEnumerator* create(EntitySet *forEntitySet);
00039 
00040   private:
00041     template <class T>
00042     static PatchRandomAccessEnumerator* createGeneric(T *from) {
00043       PatchSequenceEnumerator *pe = from->createPatchSequenceEnumerator();
00044       PatchRandomAccessEnumerator *iter =
00045           new PatchRandomAccessEnumerator(pe);
00046       delete pe;
00047       return iter;
00048     }
00049 
00050   public:
00054     PatchRandomAccessEnumerator(PatchSequenceEnumerator *);
00055 
00060     int count();
00061 
00066     Triangle& operator[] (unsigned index);
00067     
00068   private:
00069     typedef std::map<unsigned, Triangle*> TContainer;
00070     TContainer container_;
00071 };
00072 
00073 #endif // PATCHRANDOMACCESSENUMERATOR_H

Generated on Thu Dec 6 19:33:11 2007 for Radiosity Renderer and Visualizer by  doxygen 1.5.2