NLS Engine  v0.1
The Next Logical Step in game engine design.
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines
TextureScroller.h
Go to the documentation of this file.
00001 
00010 #pragma once
00011 
00012 // Standard Includes
00013 #include <string>
00014 
00015 // Library Includes
00016 #include <d3dx9tex.h>
00017 
00018 // Local Includes
00019 #include "TextureInterface.h"
00020 #include "../InterfaceUpdateable.h"
00021 
00022 // Forward Declarations
00023 
00024 // Typedefs/types
00025 namespace GraphicsCore {
00026   struct UVA {
00027     float u; 
00028     float v; 
00029     float a; 
00030   };
00031 }
00032 
00033 namespace GraphicsCore {
00034   class RenderModule;
00035 
00036   class TextureScroller : public TextureInterface, public InterfaceUpdateable {
00037   public:
00039     TextureScroller();
00041     TextureScroller(TextureInterface*);
00042     ~TextureScroller();
00043     
00044     void SetUVVelocity(float, float);
00045     void SetUVelocity(float);
00046     void SetVVelocity(float);
00047     void SetAngularVelocity(float);
00048     
00049   private: // Inherited interface function implementations should be private to help the compiler detect potential issues if the interface changes.
00050     void Apply(LPDIRECT3DDEVICE9);
00051     
00052     void Update(double);
00053     
00054   private:
00055     void Init(float, float, float);
00056     
00057   private:
00058     TextureInterface* texture;
00059     
00060     UVA velocity;
00061     D3DXMATRIX currentMatrix;
00062   };
00063 }