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>

Inheritance diagram for RGBColor:
PointOfInterest GUIPointOfInterest

Public Member Functions

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

Static Public Member Functions

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

Static Public Attributes

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

Private Attributes

SUMOReal myBlue
SUMOReal myGreen
SUMOReal myRed
 The color amounts.

Friends

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

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 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 176 of file RGBColor.cpp.

References RGBColor().

Referenced by GUIVehicle::setFunctionalColor().

RGBColor RGBColor::getDefaultColor ( )
static

Returns the default color by parsing DEFAULT_COLOR_STRING.

Returns:
The default color

Definition at line 155 of file RGBColor.cpp.

References DEFAULT_COLOR_STRING, and parseColor().

Referenced by MSRouteHandler::openRoute().

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 161 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< E >::_2SUMOReal(), StringTokenizer::next(), StringTokenizer::size(), and SUMOReal.

Referenced by getDefaultColor(), PCLoaderVisum::load(), PCLoaderArcView::load(), PCLoaderOSM::loadIfSet(), PCLoaderDlrNavteq::loadPOIFile(), PCLoaderDlrNavteq::loadPolyFile(), PCLoaderXML::myStartElement(), parseColorReporting(), and SUMOVehicleParserHelper::parseCommonAttributes().

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 NLHandler::addPOI(), NLHandler::addPoly(), SUMOVehicleParserHelper::beginVTypeParsing(), GUISettingsHandler::myStartElement(), MSRouteHandler::openRoute(), GUISettingsHandler::parseTextSettings(), and RORDLoader_SUMOBase::startRoute().

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 186 of file RGBColor.h.

Referenced by TraCIServerAPI_Simulation::commandDistanceRequest(), SUMOVehicleParserHelper::parseCommonAttributes(), and TraCIServerAPI_Route::processSet().

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

The string description of the default color.

Definition at line 182 of file RGBColor.h.

Referenced by getDefaultColor().

SUMOReal RGBColor::myBlue
private

Definition at line 191 of file RGBColor.h.

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

SUMOReal RGBColor::myGreen
private

Definition at line 191 of file RGBColor.h.

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

SUMOReal RGBColor::myRed
private

The color amounts.

Definition at line 191 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: