TextureGenerator Class Reference

A static class for generation of various textures. More...

#include <texture_generator.h>

List of all members.

Static Public Member Functions

static SoTexture2 * generateSpaceBackground (unsigned width, unsigned height, unsigned starCount)
 Static method for generation of a space background texture.
static SoTexture2 * generateEarthSurface ()
 Static method for generation of an Earth surface texture.
static SoTexture2 * generateMoonSurface ()
 Static method for generation of a Moon surface texture.
static SoTexture2 * generateWireWall ()
 Static method for generation of a network wall texture.
static SoTexture2 * generateTunnelWall (SbColor4f &startColour, SbColor4f &endColour, unsigned lengthHalf)
 Static method for generation of tunnel wall texture.
static AlbumContainer generateAlbum (const std::string &albumName)
 Static method for loading of album images.
static SoFile * generateModel (const std::string &modelName)
 Static method for loading of models.

Static Public Attributes

static const std::string PATH_TO_ALBUM_DIR
 Path to the user album directory.
static const std::string ALBUM_IMG_PREFIX
 Prefix of user album images.
static const std::string ALBUM_IMG_SUFFIX
 Suffix of user album images.
static const std::string PATH_TO_MODEL_DIR
 Path to the user model directory.
static const std::string MODEL_SUFFIX
 Suffix of user models.

Private Member Functions

 TextureGenerator ()
 ~TextureGenerator ()
 TextureGenerator (const TextureGenerator &)
TextureGeneratoroperator= (const TextureGenerator &)

Static Private Member Functions

static void setRGBAPixel (unsigned char *pixelBuffer, unsigned long bufSize, unsigned long position, unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha)
 A static helper method for setting a pixel of an RGBA pixel buffer to desired colour.
static unsigned long cartesianToLinear (unsigned long width, unsigned long x, unsigned long y)
 A static helper method for conversion of Cartesian coordinates to linear coordinates into a buffer.
static unsigned char colourFloatToUC (float colourValue)
 A static helper method for conversion of float representation of colour components to unsigned char.

Static Private Attributes

static const int NC_RGBA = 4
 Number of components for an RGBA pixel.
static const unsigned char SPACE_STAR_LIGHT_MAX_DEVIATION = 0x10


Detailed Description

A static class for generation of various textures.

Comprises several class methods for generation of various textures.

Uses "library class" (aka "static helper") design pattern.


Constructor & Destructor Documentation

TextureGenerator::TextureGenerator (  )  [private]

TextureGenerator::~TextureGenerator (  )  [private]

TextureGenerator::TextureGenerator ( const TextureGenerator  )  [private]


Member Function Documentation

TextureGenerator& TextureGenerator::operator= ( const TextureGenerator  )  [private]

static void TextureGenerator::setRGBAPixel ( unsigned char *  pixelBuffer,
unsigned long  bufSize,
unsigned long  position,
unsigned char  red,
unsigned char  green,
unsigned char  blue,
unsigned char  alpha 
) [static, private]

A static helper method for setting a pixel of an RGBA pixel buffer to desired colour.

A static helper method that sets a pixel at given position (determined as a linear position) in an RGBA pixel buffer to desired colour.

Parameters:
[in] pixelBuffer Pointer to the start of the pixel buffer
[in] bufSize Size of the buffer to enable control for out-of-bounds access
[in] position Linear position of the pixel in the pixel buffer
[in] red Red component of the colour
[in] green Green component of the colour
[in] blue Blue component of the colour
[in] alpha Alpha component of the colour

static unsigned long TextureGenerator::cartesianToLinear ( unsigned long  width,
unsigned long  x,
unsigned long  y 
) [inline, static, private]

A static helper method for conversion of Cartesian coordinates to linear coordinates into a buffer.

A static helper method that converts Cartesian coordinates to linear coordinates into a buffer. The width of the buffer needs to be known.

Parameters:
[in] width Width of the buffer
[in] x X-coordinate into the buffer
[in] y Y-coordinate into the buffer
Returns:
Linear address in the buffer

static unsigned char TextureGenerator::colourFloatToUC ( float  colourValue  )  [static, private]

A static helper method for conversion of float representation of colour components to unsigned char.

A static helper method that converts float colour components <0.0; 1.0> to their unsigned char representation <0; 255>.

Parameters:
[in] colourValue The float value of the colour component
Returns:
Unsinged char value of the colour component

static SoTexture2* TextureGenerator::generateSpaceBackground ( unsigned  width,
unsigned  height,
unsigned  starCount 
) [static]

Static method for generation of a space background texture.

Parameters:
[in] width The width of the texture
[in] height The height of the texture
[in] starCount The number of stars in the texture
Returns:
Generated texture

static SoTexture2* TextureGenerator::generateEarthSurface (  )  [static]

Static method for generation of an Earth surface texture.

Returns:
Generated texture

static SoTexture2* TextureGenerator::generateMoonSurface (  )  [static]

Static method for generation of a Moon surface texture.

Returns:
Generated texture

static SoTexture2* TextureGenerator::generateWireWall (  )  [static]

Static method for generation of a network wall texture.

Returns:
Generated texture

static SoTexture2* TextureGenerator::generateTunnelWall ( SbColor4f &  startColour,
SbColor4f &  endColour,
unsigned  lengthHalf 
) [static]

Static method for generation of tunnel wall texture.

This method generates a texture for the tunnel wall used in TunnelPlayBoxGraphics. The method accepts two colours -> the texture will be generated as a gradient of colours between these two. The size of the texture will be length x 1 px.

Parameters:
[in] startColour The start colour of the tunnel wall
[in] endColour The end colour of the tunnel wall
[in] lengthHalf Half the length of the texture
Returns:
Generated texture

static AlbumContainer TextureGenerator::generateAlbum ( const std::string &  albumName  )  [static]

Static method for loading of album images.

This static method loads images from album of given name and returns them as textures in a container.

Parameters:
[in] albumName The name of the album (the name of the album directory in the filesystem needs to be the same)
Returns:
Generated album textures

static SoFile* TextureGenerator::generateModel ( const std::string &  modelName  )  [static]

Static method for loading of models.

This static method loads a model of given name

Parameters:
[in] modelName The name of the model (the name of the model file in the filesystem needs to be the same)
Returns:
Generated model


Member Data Documentation

const int TextureGenerator::NC_RGBA = 4 [static, private]

Number of components for an RGBA pixel.

const unsigned char TextureGenerator::SPACE_STAR_LIGHT_MAX_DEVIATION = 0x10 [static, private]

Maximum deviation of every colour component of a star light in the space background from 0xFF

const std::string TextureGenerator::PATH_TO_ALBUM_DIR [static]

Path to the user album directory.

const std::string TextureGenerator::ALBUM_IMG_PREFIX [static]

Prefix of user album images.

const std::string TextureGenerator::ALBUM_IMG_SUFFIX [static]

Suffix of user album images.

const std::string TextureGenerator::PATH_TO_MODEL_DIR [static]

Path to the user model directory.

const std::string TextureGenerator::MODEL_SUFFIX [static]

Suffix of user models.


The documentation for this class was generated from the following file:

Generated on Sat Dec 20 19:21:24 2008 for PGR2008 by  doxygen 1.5.6