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:

Inheritance graph
[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 ScalarsToColorsgetScalarsToColors () 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::Vec3getPosition () 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 ScalarPrintergetScalarPrinter () const
 Get the ScalarPrinter object.
void setTextProperties (const TextProperties &tp)
 Set the TextProperties for the labels & title.
const TextPropertiesgetTextProperties () 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.

Enumerator:
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.
numLabels Specify the number of labels in the scalar bar.
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:
aspectRatio 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.

virtual osgSim::ScalarBar::~ScalarBar (  )  [protected, virtual]


Member Function Documentation

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

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

Set the number of distinct colours on the ScalarBar.

int osgSim::ScalarBar::getNumColors (  )  const

Get the number of distinct colours on the ScalarBar.

void osgSim::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.

int osgSim::ScalarBar::getNumLabels (  )  const

Get the number of labels displayed along the ScalarBar.

void osgSim::ScalarBar::setScalarsToColors ( ScalarsToColors stc  ) 

Set the ScalarsToColors mapping object for the ScalarBar.

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

Get the ScalarsToColors mapping object from the ScalarBar.

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

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

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

Get the title for the ScalarBar.

void osgSim::ScalarBar::setPosition ( const osg::Vec3 pos  ) 

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

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

Get the position of scalar bar.

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

Set the width of the scalar bar.

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

Get the width of the scalar bar.

void osgSim::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.

float osgSim::ScalarBar::getAspectRatio (  )  const

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

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

Set the orientation of the ScalarBar.

See also:
Orientation

ScalarBar::Orientation osgSim::ScalarBar::getOrientation (  )  const

Get the orientation of the ScalarBar.

See also:
Orientation

void osgSim::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

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

Get the ScalarPrinter object.

void osgSim::ScalarBar::setTextProperties ( const TextProperties tp  ) 

Set the TextProperties for the labels & title.

See also:
TextProperties

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

Get the TextProperties for the labels & title.

See also:
TextProperties

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

force update the drawables used to render the scalar bar.

void osgSim::ScalarBar::createDrawables (  )  [protected]


Member Data Documentation

int osgSim::ScalarBar::_numColors [protected]

int osgSim::ScalarBar::_numLabels [protected]

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

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

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

float osgSim::ScalarBar::_width [protected]

float osgSim::ScalarBar::_aspectRatio [protected]

Orientation osgSim::ScalarBar::_orientation [protected]

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

TextProperties osgSim::ScalarBar::_textProperties [protected]


The documentation for this class was generated from the following file:
Generated at Sun Oct 14 02:12:46 2007 for the OpenSceneGraph by doxygen 1.5.3.