00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TEXTURECOLLECTION_H
00016 #define TEXTURECOLLECTION_H
00017
00018 #include "pandabase.h"
00019 #include "pointerToArray.h"
00020 #include "texture.h"
00021
00022
00023
00024
00025
00026
00027 class EXPCL_PANDA_GOBJ TextureCollection {
00028 PUBLISHED:
00029 TextureCollection();
00030 TextureCollection(const TextureCollection ©);
00031 void operator = (const TextureCollection ©);
00032 INLINE ~TextureCollection();
00033
00034 #ifdef HAVE_PYTHON
00035 TextureCollection(PyObject *self, PyObject *sequence);
00036 PyObject *__reduce__(PyObject *self) const;
00037 #endif
00038
00039 void add_texture(Texture *texture);
00040 bool remove_texture(Texture *texture);
00041 void add_textures_from(const TextureCollection &other);
00042 void remove_textures_from(const TextureCollection &other);
00043 void remove_duplicate_textures();
00044 bool has_texture(Texture *texture) const;
00045 void clear();
00046
00047 Texture *find_texture(const string &name) const;
00048
00049 int get_num_textures() const;
00050 Texture *get_texture(int index) const;
00051 MAKE_SEQ(get_textures, get_num_textures, get_texture);
00052 Texture *operator [] (int index) const;
00053 int size() const;
00054 INLINE void operator += (const TextureCollection &other);
00055 INLINE TextureCollection operator + (const TextureCollection &other) const;
00056
00057
00058 INLINE void append(Texture *texture);
00059 INLINE void extend(const TextureCollection &other);
00060
00061 void output(ostream &out) const;
00062 void write(ostream &out, int indent_level = 0) const;
00063
00064 private:
00065 typedef PTA(PT(Texture)) Textures;
00066 Textures _textures;
00067 };
00068
00069 INLINE ostream &operator << (ostream &out, const TextureCollection &col) {
00070 col.output(out);
00071 return out;
00072 }
00073
00074 #include "textureCollection.I"
00075
00076 #endif
00077
00078