# osgSim::ScalarBar Class Reference

A ScalarBar is an osg::Geode to render a colored bar representing a range of scalars. More...

Inheritance diagram for osgSim::ScalarBar:

[legend]
List of all members.

## Public Types

enum | Orientation { HORIZONTAL, VERTICAL }
| ScalarBar orientation specification. More...

## Public Member Functions

| ScalarBar ()
| Default constructor.
| ScalarBar (int numColors, int numLabels, ScalarsToColors *stc, const std::string &title, Orientation orientation=HORIZONTAL, float aspectRatio=0.25, ScalarPrinter *sp=new ScalarPrinter)
| Construct a ScalarBar with the supplied parameters.
| ScalarBar (const ScalarBar &rhs, const osg::CopyOp &co)
| Copy constructor.
| META_Node (osgSim, ScalarBar)
void | setNumColors (int numColors)
| Set the number of distinct colours on the ScalarBar.
int | getNumColors () const
| Get the number of distinct colours on the ScalarBar.
void | setNumLabels (int numLabels)
| Set the number of labels to display along the ScalarBar.
int | getNumLabels () const
| Get the number of labels displayed along the ScalarBar.
void | setScalarsToColors (ScalarsToColors *stc)
| Set the ScalarsToColors mapping object for the ScalarBar.
const ScalarsToColors * | getScalarsToColors () const
| Get the ScalarsToColors mapping object from the ScalarBar.
void | setTitle (const std::string &title)
| Set the title for the ScalarBar, set "" for no title.
std::string | getTitle () const
| Get the title for the ScalarBar.
void | setPosition (const osg::Vec3 &pos)
| Set the position of scalar bar's lower left corner.
const osg::Vec3 & | getPosition () const
| Get the position of scalar bar.
void | setWidth (float width)
| Set the width of the scalar bar.
float | getWidth ()
| Get the width of the scalar bar.
void | setAspectRatio (float aspectRatio)
| Set the aspect ration (y/x) for the displayed bar.
float | getAspectRatio () const
| Get the aspect ration (y/x) for the displayed bar.
void | setOrientation (ScalarBar::Orientation orientation)
| Set the orientation of the ScalarBar.
ScalarBar::Orientation | getOrientation () const
| Get the orientation of the ScalarBar.
void | setScalarPrinter (ScalarPrinter *sp)
| Set a ScalarPrinter object for the ScalarBar.
const ScalarPrinter * | getScalarPrinter () const
| Get the ScalarPrinter object.
void | setTextProperties (const TextProperties &tp)
| Set the TextProperties for the labels & title.
const TextProperties & | getTextProperties () const
| Get the TextProperties for the labels & title.
void | update ()
| force update the drawables used to render the scalar bar.

## Protected Member Functions

virtual | ~ScalarBar ()
void | createDrawables ()

## Protected Attributes

int | _numColors
int | _numLabels
osg::ref_ptr< ScalarsToColors > | _stc
std::string | _title
osg::Vec3 | _position
float | _width
float | _aspectRatio
Orientation | _orientation
osg::ref_ptr< ScalarPrinter > | _sp
TextProperties | _textProperties

## Classes

struct | ScalarPrinter
| Users may provide their own ScalarPrinter by deriving from this base class and overriding the printScalar() method. More...
struct | TextProperties
| TextProperties allows users to specify a number of properties for the text used to display the labels & title on the ScalarBar. More...

## Detailed Description

A ScalarBar is an osg::Geode to render a colored bar representing a range of scalars.

The scalar/color ranges are specified by an instance of ScalarsToColors. There are a number of configurable properties on the ScalarBar, such as the orientation, the number of labels to be displayed across the range, the number of distinct colors to use when rendering the bar, text details etc.

In summary, the main configurables on the ScalarBar are:

1. The range of scalars represented by the bar, and the colors corresponding to this range - these are specified by the ScalarsToColors object.
2. The number of colors used when rendering the bar geometry - this may be thought of as the bar 'density'.
3. The number of text labels to be used when displaying the bar.

The other configurables should be self-explanatory.

## Member Enumeration Documentation

enum osgSim::ScalarBar::Orientation

ScalarBar orientation specification.

Enumeration values:

  HORIZONTAL | a horizontally ascending scalar bar (x-axis)
  VERTICAL | a vertically ascending scalar bar (y-axis)

## Constructor & Destructor Documentation

osgSim::ScalarBar::ScalarBar | ( |  | ) | `[inline]`

| Default constructor.

osgSim::ScalarBar::ScalarBar | ( | int | numColors,
|  | int | numLabels,
|  | ScalarsToColors * | stc,
|  | const std::string & | title,
|  | Orientation | orientation = `HORIZONTAL`,
|  | float | aspectRatio = `0.25`,
|  | ScalarPrinter * | sp = `new ScalarPrinter`
| ) | `[inline]`

Construct a ScalarBar with the supplied parameters.

Parameters:

  | numColors | Specify the number of colors in the scalar bar. Color interpolation occurs where necessary.
  | stc | The ScalarsToColors defining the range of scalars and the colors they map to.
  | title | The title to be used when displaying the ScalarBar. Specify "" for no title.
  | orientation | The orientation of the ScalarBar.

See also:
  Orientation.

Parameters:

  | apectRatio | The aspect ration (y/x) for the displayed bar. Bear in mind you may want to change this if you change the orientation.
  | sp | A ScalarPrinter object for the ScalarBar. For every displayed ScalarBar label, the scalar value will be passed to the ScalarPrinter object to turn it into a string. Users may override the default ScalarPrinter object to map scalars to whatever strings they wish.

See also:
  ScalarPrinter

osgSim::ScalarBar::ScalarBar | ( | const ScalarBar & | rhs,
|  | const osg::CopyOp & | co
| ) | `[inline]`

| Copy constructor.

ScalarBar::~ScalarBar | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

void ScalarBar::createDrawables | ( |  | ) | `[protected]`

float ScalarBar::getAspectRatio | ( |  | ) | const

| Get the aspect ration (y/x) for the displayed bar.

int ScalarBar::getNumColors | ( |  | ) | const

| Get the number of distinct colours on the ScalarBar.

int ScalarBar::getNumLabels | ( |  | ) | const

| Get the number of labels displayed along the ScalarBar.

ScalarBar::Orientation ScalarBar::getOrientation | ( |  | ) | const

Get the orientation of the ScalarBar.

See also:
  Orientation

const osg::Vec3& osgSim::ScalarBar::getPosition | ( |  | ) | const`[inline]`

| Get the position of scalar bar.

const ScalarBar::ScalarPrinter * ScalarBar::getScalarPrinter | ( |  | ) | const

| Get the ScalarPrinter object.

const ScalarsToColors * ScalarBar::getScalarsToColors | ( |  | ) | const

| Get the ScalarsToColors mapping object from the ScalarBar.

const ScalarBar::TextProperties & ScalarBar::getTextProperties | ( |  | ) | const

Get the TextProperties for the labels & title.

See also:
  TextProperties

std::string ScalarBar::getTitle | ( |  | ) | const

| Get the title for the ScalarBar.

float osgSim::ScalarBar::getWidth | ( |  | ) | `[inline]`

| Get the width of the scalar bar.

osgSim::ScalarBar::META_Node | ( | osgSim | ,
|  | ScalarBar |
| ) |

void ScalarBar::setAspectRatio | ( | float | aspectRatio | ) |

| Set the aspect ration (y/x) for the displayed bar. Bear in mind you may want to change this if you change the orientation.

void ScalarBar::setNumColors | ( | int | numColors | ) |

| Set the number of distinct colours on the ScalarBar.

void ScalarBar::setNumLabels | ( | int | numLabels | ) |

| Set the number of labels to display along the ScalarBar. There will be one label at each end point, and evenly distributed labels in between.

void ScalarBar::setOrientation | ( | ScalarBar::Orientation | orientation | ) |

Set the orientation of the ScalarBar.

See also:
  Orientation

void ScalarBar::setPosition | ( | const osg::Vec3 & | pos | ) |

| Set the position of scalar bar's lower left corner.

void ScalarBar::setScalarPrinter | ( | ScalarPrinter * | sp | ) |

Set a ScalarPrinter object for the ScalarBar.

For every displayed ScalarBar label, the scalar value will be passed to the ScalarPrinter object to turn it into a string. Users may override the default ScalarPrinter object to map scalars to whatever strings they wish.

See also:
  ScalarPrinter

void ScalarBar::setScalarsToColors | ( | ScalarsToColors * | stc | ) |

| Set the ScalarsToColors mapping object for the ScalarBar.

void ScalarBar::setTextProperties | ( | const TextProperties & | tp | ) |

Set the TextProperties for the labels & title.

See also:
  TextProperties

void ScalarBar::setTitle | ( | const std::string & | title | ) |

| Set the title for the ScalarBar, set "" for no title.

void ScalarBar::setWidth | ( | float | width | ) |

| Set the width of the scalar bar.

void osgSim::ScalarBar::update | ( |  | ) | `[inline]`

| force update the drawables used to render the scalar bar.

## Member Data Documentation

float osgSim::ScalarBar::_aspectRatio `[protected]`

int osgSim::ScalarBar::_numColors `[protected]`

int osgSim::ScalarBar::_numLabels `[protected]`

Orientation osgSim::ScalarBar::_orientation `[protected]`

osg::Vec3 osgSim::ScalarBar::_position `[protected]`

osg::ref_ptr<ScalarPrinter> osgSim::ScalarBar::_sp `[protected]`

osg::ref_ptr<ScalarsToColors> osgSim::ScalarBar::_stc `[protected]`

TextProperties osgSim::ScalarBar::_textProperties `[protected]`

std::string osgSim::ScalarBar::_title `[protected]`

float osgSim::ScalarBar::_width `[protected]`

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

- ScalarBar
- ScalarBar.cpp