00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #ifndef CAELUM_HEADER__PRIVATE_UTILITIES_H
00022 #define CAELUM_HEADER__PRIVATE_UTILITIES_H
00023 
00024 #include "CaelumPrerequisites.h"
00025 #include "PrivatePtr.h"
00026 
00027 namespace Caelum
00028 {
00033     class CAELUM_EXPORT InternalUtilities
00034     {
00035     public:
00048         static Ogre::ColourValue getInterpolatedColour (
00049                 float fx,
00050                 float fy,
00051                 Ogre::Image *img,
00052                 bool wrapX = true);
00053 
00056         static const Ogre::String pointerToString(void* pointer);
00057 
00071         static Ogre::MaterialPtr checkLoadMaterialClone (
00072                 const Ogre::String& originalName,
00073                 const Ogre::String& cloneName);
00074 
00083         static Ogre::CompositorPtr checkCompositorSupported (const Ogre::String& name);
00084 
00085     public:
00088         enum DomeType {
00089             DT_SKY_DOME,
00090             DT_IMAGE_STARFIELD,
00091         };
00092 
00099         static void generateSphericDome (const Ogre::String &name, int segments, DomeType domeType);
00100 
00101     private:
00107         static void fillGradientsDomeBuffers (float *pVertex, unsigned short *pIndices, int segments);
00108 
00114         static void fillStarfieldDomeBuffers (float *pVertex, unsigned short *pIndices, int segments);
00115     };
00116 }
00117 
00118 #endif // CAELUM_HEADER__PRIVATE_UTILITIES_H