class PartCache
{
public:
+ class Rebuild
+ {
+ private:
+ PartCache &cache;
+
+ public:
+ Rebuild(PartCache &c): cache(c) { cache.begin_rebuild(); }
+ ~Rebuild() { cache.end_rebuild(); }
+ };
+
typedef std::list<CachedPart> PartList;
private:
+ bool rebuilding;
PartList parts;
PartList::iterator next;
PartList::iterator current;
public:
+ PartCache();
+
void begin_rebuild();
void insert_special(const Part &);
GL::Mesh &create_mesh(const Part &, const GL::Texture2D &);