Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/new_class_id/src/lib/graphics/importer/texture_sequence.h @ 9685

Last change on this file since 9685 was 9685, checked in by bensch, 18 years ago

adapted many classes to the new ClassID System, now comes the hard part… Scripting… then Network… wow this will be so bad :/

File size: 2.1 KB
Line 
1/*!
2 * @file texture_sequence.h
3 * @brief Contains the texture_sequence class, that handles the reading of Image-files into multiple Texutres.
4 */
5
6#ifndef _TEXTURE_SEQUENCE_H
7#define _TEXTURE_SEQUENCE_H
8
9#include "texture.h"
10
11#include <vector>
12
13
14//! A Class, that reads in Textures from different fileformats.
15class TextureSequence : public Texture
16{
17  NewObjectListDeclaration(TextureSequence);
18  public:
19    TextureSequence(unsigned int count = 0, ...);
20    TextureSequence(const std::vector<std::string>& textureNames, const std::string& prependFolder = "");
21    //  Texture(TEXTURE_TYPE type, int resolution);
22    virtual ~TextureSequence();
23
24    bool loadImageSeries(unsigned int count, ...);
25    bool loadImageSeries(const std::vector<std::string>& textureNames, const std::string& prependFolder = "");
26    bool loadImageSeries(const std::string& imageNameSubstitue, unsigned int from, unsigned int to);
27    bool addFrame(const std::string& image);
28    bool addFrame(SDL_Surface* surface);
29    bool addFrame(GLuint texture);
30
31    void clearLists();
32
33    virtual bool rebuild();
34
35    /** @returns the count of frames in this sequence */
36    inline unsigned int getFrameCount() const { return this->textures.size(); };
37    /** @returns true if no Textures are stored inside of this TextureSequence */
38    inline bool empty() const { return textures.empty(); };
39
40    //void gotoFrame(unsigned int frameNumber);
41    /** @returns The textureID of the Frame @param frameNumber the n-th frame this texture-series.  */
42    inline GLuint getFrameTexture(unsigned int frameNumber) const { return (this->textures.size()>frameNumber)?this->textures[frameNumber]:0; };
43    /** @returns The SDL_Surface of the image at Frame @param frameNumber the n-th frame of this image-seriers */
44    const SDL_Surface* const getFrameImage(unsigned int frameNumber) const { return (this->images.size()>frameNumber)?this->images[frameNumber]:NULL; };
45
46  private:
47    std::vector<GLuint>          textures;            //!< The Texture-ID of opengl from this Texture.
48    std::vector<SDL_Surface*>    images;              //!< The SDL_Surfce that stores the Texture on it.
49};
50
51#endif /* _TEXTURE_SEQUENCE_H */
Note: See TracBrowser for help on using the repository browser.