SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RGBColor Class Reference

#include <RGBColor.h>

Public Member Functions

SUMOReal blue () const
 Returns the blue-amount of the color. More...
 
RGBColor changedBrightness (SUMOReal change)
 Returns a new color with altered brightness. More...
 
SUMOReal green () const
 Returns the green-amount of the color. More...
 
bool operator!= (const RGBColor &c) const
 
bool operator== (const RGBColor &c) const
 
SUMOReal red () const
 Returns the red-amount of the color. More...
 
 RGBColor ()
 Constructor. More...
 
 RGBColor (SUMOReal red, SUMOReal green, SUMOReal blue)
 Constructor. More...
 
 RGBColor (const RGBColor &col)
 Copy constructor. More...
 
void set (SUMOReal r, SUMOReal g, SUMOReal b)
 assigns new values More...
 
 ~RGBColor ()
 Destructor. More...
 

Static Public Member Functions

static RGBColor fromHSV (SUMOReal h, SUMOReal s, SUMOReal v)
 Converts the given hsv-triplet to rgb. More...
 
static RGBColor interpolate (const RGBColor &minColor, const RGBColor &maxColor, SUMOReal weight)
 Interpolates between two colors. More...
 
static RGBColor parseColor (const std::string &coldef) throw (EmptyData, NumberFormatException)
 Parses a color information. More...
 
static RGBColor parseColorReporting (const std::string &coldef, const std::string &objecttype, const char *objectid, bool report, bool &ok)
 Parses a color information. More...
 

Static Public Attributes

static const RGBColor DEFAULT_COLOR = RGBColor::parseColor(RGBColor::DEFAULT_COLOR_STRING)
 The default color (for vehicle types and vehicles) More...
 
static const std::string DEFAULT_COLOR_STRING = "1,1,0"
 The string description of the default color. More...
 

Private Attributes

SUMOReal myBlue
 
SUMOReal myGreen
 
SUMOReal myRed
 The color amounts. More...
 

Friends

std::ostream & operator<< (std::ostream &os, const RGBColor &col)
 Writes the color to the given stream. More...
 

Detailed Description

The definition of a color in the RGB-space. The cube is meant to lie between (0, 0, 0) and (1, 1, 1)

Definition at line 47 of file RGBColor.h.

Constructor & Destructor Documentation

RGBColor::RGBColor ( )

Constructor.

Definition at line 58 of file RGBColor.cpp.

Referenced by changedBrightness(), fromHSV(), interpolate(), and parseColorReporting().

RGBColor::RGBColor ( SUMOReal  red,
SUMOReal  green,
SUMOReal  blue 
)

Constructor.

Parameters
[in]redThe red component's value
[in]greenThe green component's value
[in]blueThe blue component's value

Definition at line 62 of file RGBColor.cpp.

RGBColor::RGBColor ( const RGBColor col)

Copy constructor.

Definition at line 66 of file RGBColor.cpp.

RGBColor::~RGBColor ( )

Destructor.

Definition at line 70 of file RGBColor.cpp.

Member Function Documentation

RGBColor RGBColor::changedBrightness ( SUMOReal  change)

Returns a new color with altered brightness.

Parameters
[in]changeThe absolute change applied to all channels (within bounds)
Returns
The new color

Definition at line 107 of file RGBColor.cpp.

References blue(), green(), MAX2(), MIN2(), myBlue, myGreen, myRed, red(), RGBColor(), and SUMOReal.

Referenced by GUIPerson::drawAction_drawAsPoly(), GUIVehicle::drawAction_drawRailCarriages(), and GUIVehicle::drawAction_drawVehicleAsPoly().

RGBColor RGBColor::fromHSV ( SUMOReal  h,
SUMOReal  s,
SUMOReal  v 
)
static

Converts the given hsv-triplet to rgb.

Parameters
[in]hHue (0-360)
[in]sSaturation (0-1)
[in]vValue (0-1)
Returns
The color as RGB
Author
Alvy Ray Smith (http://www.alvyray.com/default.htm)

Definition at line 170 of file RGBColor.cpp.

References RGBColor().

Referenced by GUIVehicle::setFunctionalColor().

RGBColor RGBColor::interpolate ( const RGBColor minColor,
const RGBColor maxColor,
SUMOReal  weight 
)
static

Interpolates between two colors.

The interpolated color is calculated as a weighted average of the RGB values of minColor and maxColor, giving weight to maxColor and 1-weight to minColor.

Parameters
[in]minColorThe color to interpolate from
[in]maxColorThe color to interpolate to
[in]weightThe weight of the first color
Returns
The interpolated color

Definition at line 155 of file RGBColor.cpp.

References myBlue, myGreen, myRed, RGBColor(), and SUMOReal.

Referenced by GUIColorScheme::getColor().

bool RGBColor::operator!= ( const RGBColor c) const

Definition at line 100 of file RGBColor.cpp.

References myBlue, myGreen, and myRed.

bool RGBColor::operator== ( const RGBColor c) const

Definition at line 93 of file RGBColor.cpp.

References myBlue, myGreen, and myRed.

RGBColor RGBColor::parseColor ( const std::string &  coldef) throw (EmptyData, NumberFormatException)
static

Parses a color information.

It is assumed that the color is stored as "<RED>,<GREEN>,<BLUE>" And each color is represented as a SUMOReal.

Parameters
[in]coldefThe color definition to parse
Returns
The parsed color
Exceptions
EmptyDataIf the definition has less than three entries
NumberFormatExceptionIf one of the components is not numeric

Definition at line 116 of file RGBColor.cpp.

References TplConvert::_2SUMOReal(), StringTokenizer::next(), StringTokenizer::size(), and SUMOReal.

Referenced by SUMOSAXAttributesImpl_Xerces::getColorReporting(), PCLoaderVisum::load(), PCLoaderArcView::load(), PCLoaderOSM::loadIfSet(), PCLoaderDlrNavteq::loadPOIFile(), PCLoaderDlrNavteq::loadPolyFile(), PCLoaderXML::myStartElement(), and parseColorReporting().

RGBColor RGBColor::parseColorReporting ( const std::string &  coldef,
const std::string &  objecttype,
const char *  objectid,
bool  report,
bool ok 
)
static

Parses a color information.

It is assumed that the color is stored as "<RED>,<GREEN>,<BLUE>" And each color is represented as a SUMOReal.

Parameters
[in]coldefThe color definition to parse
[in]objecttypeThe type of the currently parsed object
[in]objectidThe id of the currently parsed object
[in]reportWhether errors shall be reported
[in,out]okWhether parsing was successful
Returns
The parsed color
Exceptions
EmptyDataIf the definition has less than three entries
NumberFormatExceptionIf one of the components is not numeric

Definition at line 129 of file RGBColor.cpp.

References parseColor(), RGBColor(), UNUSED_PARAMETER, and WRITE_ERROR.

Referenced by GUISettingsHandler::myStartElement(), and GUISettingsHandler::parseTextSettings().

void RGBColor::set ( SUMOReal  r,
SUMOReal  g,
SUMOReal  b 
)

assigns new values

Parameters
[in]rThe red component's value
[in]gThe green component's value
[in]bThe blue component's value

Definition at line 74 of file RGBColor.cpp.

References myBlue, myGreen, and myRed.

Referenced by TraCIServerAPI_Vehicle::processSet().

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const RGBColor col 
)
friend

Writes the color to the given stream.

Parameters
[out]osThe stream to write to
[in]colThe color to write
Returns
The stream

Definition at line 83 of file RGBColor.cpp.

Field Documentation

const RGBColor RGBColor::DEFAULT_COLOR = RGBColor::parseColor(RGBColor::DEFAULT_COLOR_STRING)
static

The default color (for vehicle types and vehicles)

Definition at line 180 of file RGBColor.h.

Referenced by MSRoute::getColor(), SUMOVehicleParserHelper::parseCommonAttributes(), MSBaseVehicle::replaceRouteEdges(), and GUIVehicle::setFunctionalColor().

const std::string RGBColor::DEFAULT_COLOR_STRING = "1,1,0"
static

The string description of the default color.

Definition at line 176 of file RGBColor.h.

SUMOReal RGBColor::myBlue
private

Definition at line 185 of file RGBColor.h.

Referenced by blue(), changedBrightness(), interpolate(), operator!=(), operator<<(), operator==(), and set().

SUMOReal RGBColor::myGreen
private

Definition at line 185 of file RGBColor.h.

Referenced by changedBrightness(), green(), interpolate(), operator!=(), operator<<(), operator==(), and set().

SUMOReal RGBColor::myRed
private

The color amounts.

Definition at line 185 of file RGBColor.h.

Referenced by changedBrightness(), interpolate(), operator!=(), operator<<(), operator==(), red(), and set().


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