Home | Download | Screen shots | Discussion | Documentation
--- | --- | --- | --- | ---

# openvrml::image Class Reference

Pixmap data. More...

`#include <openvrml/basetypes.h>`

List of all members.

## Public Member Functions

| image () throw ()
| Construct.
| image (std::size_t x, std::size_t y, std::size_t comp) throw ( std::bad_alloc )
| Construct.
| image (std::size_t x, std::size_t y, std::size_t comp, const std::vector< unsigned char > &array) throw ( std::bad_alloc )
| Construct.
template<typename InputIterator >
| image (std::size_t x, std::size_t y, std::size_t comp, InputIterator array_begin, InputIterator array_end) throw ( std::bad_alloc )
| Construct.
void | swap (image &img) throw ()
| Swap.
std::size_t | x () const throw ()
| Pixels in the x-dimension.
void | x (std::size_t value) throw ( std::bad_alloc )
| Set the pixels in the x-dimension.
std::size_t | y () const throw ()
| Pixels in the y-dimension.
void | y (std::size_t value) throw ( std::bad_alloc )
| Set the pixels in the y-dimension.
void | resize (std::size_t x, std::size_t y) throw ( std::bad_alloc )
| Resize the x- and y-dimensions.
std::size_t | comp () const throw ()
| Number of components.
void | comp (std::size_t value) throw ( std::bad_alloc )
| Set the number of components.
const std::vector< unsigned char > & | array () const throw ()
| Pixel value array.
void | array (const std::vector< unsigned char > &value) throw ()
| Set the pixel value array.
template<typename InputIterator >
void | array (InputIterator begin, InputIterator end) throw ()
| Set the pixel value array.
int32 | pixel (std::size_t index) const throw ()
| Pixel value.
void | pixel (std::size_t index, int32 value) throw ()
| Set a pixel value.
int32 | pixel (std::size_t x, std::size_t y) const throw ()
| Pixel value.
void | pixel (std::size_t x, std::size_t y, int32 value) throw ()
| Set a pixel value.

## Private Attributes

std::size_t | x_
| Pixels in the x-dimension.
std::size_t | y_
| Pixels in the y-dimension.
std::size_t | comp_
| Number of components.
std::vector< unsigned char > | array_
| Pixel data.

## Related Functions

(Note that these are not member functions.)
bool | operator== (const image &lhs, const image &rhs) throw()
| Compare for equality.
bool | operator!= (const image &lhs, const image &rhs) throw()
| Compare for inequality.
std::istream & | operator>> (std::istream &in, image &img)
| Stream input.
std::ostream & | operator<< (std::ostream &out, const image &img)
| Stream output.
template<> void | swap (openvrml::image &a, openvrml::image &b)
| Swap the values of `and` `b`.

## Detailed Description

Pixmap data.

The first pixel in the `array` is the lower left pixel and the last is the upper right pixel. Pixel values are limited to 256 levels of intensity. The elements of `array` are bytes, with one byte per pixel component. Thus the number of elements in the array is `x` * `y` * `comp`.

A one-component image specifies one-byte greyscale values. A two-component image specifies the intensity in the first byte and the alpha opacity in the second byte. A three-component image specifies the red component in the first byte, followed by the green and blue components. Four-component images specify the alpha opacity byte after red/green/blue.

## Constructor & Destructor Documentation

openvrml::image::image | ( |  | ) | throw ()`[inline]`

Construct.

openvrml::image::image | ( | std::size_t | x,
|  | std::size_t | y,
|  | std::size_t | comp |
| ) |  |  | throw ( std::bad_alloc )`[inline]`

Construct.

Parameters:

  `[in]` | x | pixels in the x-direction.
  `[in]` | y | pixels in the y-direction.
  `[in]` | comp | number of components.

openvrml::image::image | ( | std::size_t | x,
|  | std::size_t | y,
|  | std::size_t | comp,
|  | const std::vector< unsigned char > & | array |
| ) |  |  | throw ( std::bad_alloc )

Construct.

Precondition:
  `array.size()` <= `x` * `y` * `comp`.

Parameters:

  `[in]` | x | pixels in the x-direction.
  `[in]` | y | pixels in the y-direction.
  `[in]` | comp | number of components.
  `[in]` | array | pixel data.

template<typename InputIterator >

openvrml::image::image | ( | std::size_t | x,
|  | std::size_t | y,
|  | std::size_t | comp,
|  | InputIterator | array_begin,
|  | InputIterator | array_end |
| ) |  |  | throw ( std::bad_alloc )`[inline]`

Construct.

Precondition:
  std::distance(`array_begin`, `array_end`) <= `x` * `y` * `comp`.

Template Parameters:

  | InputIterator | an Input Iterator.

Parameters:

  `[in]` | x | pixels in the x-direction.
  `[in]` | y | pixels in the y-direction.
  `[in]` | comp | number of components.
  `[in]` | array_begin | pixel data begin iterator.
  `[in]` | array_end | pixel data end iterator.

Exceptions:

  | std::bad_alloc | if memory allocation fails.

## Member Function Documentation

void openvrml::image::swap | ( | image & | img | ) | throw ()`[inline]`

Swap.

Parameters:

  `[in,out]` | img | an image.

std::size_t openvrml::image::x | ( |  | ) | const throw ()`[inline]`

Pixels in the x-dimension.

Returns:
  the number of pixels in the x-dimension.

void openvrml::image::x | ( | std::size_t | value | ) | throw ( std::bad_alloc )

Set the pixels in the x-dimension.

Parameters:

  `[in]` | value | new value for the x-dimension.

Exceptions:

  | std::bad_alloc | if memory allocation fails.

std::size_t openvrml::image::y | ( |  | ) | const throw ()`[inline]`

Pixels in the y-dimension.

Returns:
  the number of pixels in the y-dimension.

void openvrml::image::y | ( | std::size_t | value | ) | throw ( std::bad_alloc )

Set the pixels in the y-dimension.

Parameters:

  `[in]` | value | new value for the x-dimension.

Exceptions:

  | std::bad_alloc | if memory allocation fails.

void openvrml::image::resize | ( | std::size_t | x,
|  | std::size_t | y |
| ) |  |  | throw ( std::bad_alloc )

Resize the x- and y-dimensions.

Parameters:

  `[in]` | x | x-dimension.
  `[in]` | y | y-dimension.

Exceptions:

  | std::bad_alloc | if memory allocation fails.

std::size_t openvrml::image::comp | ( |  | ) | const throw ()`[inline]`

Number of components.

Returns:
  the number of components.

void openvrml::image::comp | ( | std::size_t | value | ) | throw ( std::bad_alloc )

Set the number of components.

Precondition:
  `value` <= 4

Parameters:

  `[in]` | value | number of components.

const std::vector< unsigned char > & openvrml::image::array | ( |  | ) | const throw ()`[inline]`

Pixel value array.

Returns:
  the array of pixel values.

void openvrml::image::array | ( | const std::vector< unsigned char > & | value | ) | throw ()`[inline]`

Set the pixel value array.

Precondition:
  `value.size()` <= (x() * y() * comp())

Parameters:

  `[in]` | value | pixel value array.

template<typename InputIterator >

void openvrml::image::array | ( | InputIterator | begin,
|  | InputIterator | end |
| ) |  |  | throw ()`[inline]`

Set the pixel value array.

Precondition:
  std::distance(`begin`, `end`) <= (x() * y() * comp())

Template Parameters:

  | InputIterator | an Input Iterator.

Parameters:

  `[in]` | begin | input iterator to the beginning of a sequence.
  `[in]` | end | input iterator to the end of the sequence (one past the last element).

int32 openvrml::image::pixel | ( | std::size_t | index | ) | const throw ()`[inline]`

Pixel value.

Precondition:
  `index` < x() * y()

Parameters:

  `[in]` | index | pixel value index.

Returns:
  the pixel value at `index`.

void openvrml::image::pixel | ( | std::size_t | index,
|  | int32 | value |
| ) |  |  | throw ()`[inline]`

Set a pixel value.

Precondition:
  `index` < x() * y()

Parameters:

  `[in]` | index | pixel value index.
  `[in]` | value | pixel value.

int32 openvrml::image::pixel | ( | std::size_t | x,
|  | std::size_t | y |
| ) |  |  | const throw ()`[inline]`

Pixel value.

Precondition:
  `x` < x(), `y` < y()

Parameters:

  `[in]` | x | pixel value x- (column) index.
  `[in]` | y | pixel value y- (row) index.

Returns:
  the pixel value at (`x`, `y`).

void openvrml::image::pixel | ( | std::size_t | x,
|  | std::size_t | y,
|  | int32 | value |
| ) |  |  | throw ()`[inline]`

Set a pixel value.

Precondition:
  `x` < x(), `y` < y()

Parameters:

  `[in]` | x | pixel value x- (column) index.
  `[in]` | y | pixel value y- (row) index.
  `[in]` | value | pixel value.

## Friends And Related Function Documentation

bool operator== | ( | const image & | lhs,
|  | const image & | rhs |
| ) |  |  | throw()`[related]`

Compare for equality.

Parameters:

  `[in]` | lhs | left-hand operand.
  `[in]` | rhs | right-hand operand.

Returns:
  `true` if `lhs` and `rhs` are equal; `false` otherwise.

bool operator!= | ( | const image & | lhs,
|  | const image & | rhs |
| ) |  |  | throw()`[related]`

Compare for inequality.

Parameters:

  `[in]` | lhs | left-hand operand.
  `[in]` | rhs | right-hand operand.

Returns:
  `true` if `lhs` and `rhs` are not equal; `false` otherwise.

std::istream & operator>> | ( | std::istream & | in,
|  | image & | img |
| ) |  |  | `[related]`

Stream input.

Consistent with the VRML97 convention, commas (“``,”) in the input are treated as whitespace.

Parameters:

  `[in,out]` | in | input stream.
  `[out]` | img | an `image`.

Returns:
  `in`.

std::ostream & operator<< | ( | std::ostream & | out,
|  | const image & | img |
| ) |  |  | `[related]`

Stream output.

Parameters:

  `[in,out]` | out | output stream.
  `[in]` | img | an `image`.

template<> void swap | ( | openvrml::image & | a,
|  | openvrml::image & | b |
| ) |  |  | `[related]`

Swap the values of `and` `b`.

Does not throw.

Parameters:

  `[in,out]` | a |
  `[in,out]` | b |

## Member Data Documentation

std::size_t openvrml::image::x_`[private]`

Pixels in the x-dimension.

For internal use only.

std::size_t openvrml::image::y_`[private]`

Pixels in the y-dimension.

For internal use only.

std::size_t openvrml::image::comp_`[private]`

Number of components.

For internal use only.

std::vector< unsigned char > openvrml::image::array_`[private]`

Pixel data.

For internal use only.