SUMO - Simulation of Urban MObility
GUIShapeContainer Class Reference

Storage for geometrical objects extended by mutexes. More...

#include <GUIShapeContainer.h>

Inheritance diagram for GUIShapeContainer:
ShapeContainer

Public Member Functions

virtual bool addPoI (const std::string &name, int layer, const std::string &type, const RGBColor &c, const Position &pos)
 Builds a PoI using the given values and adds it to the according layer.
virtual bool addPolygon (const std::string &name, int layer, const std::string &type, const RGBColor &c, bool filled, const PositionVector &shape)
 Builds a polygon using the given values and adds it to the according layer.
int getMaxLayer () const
 Returns the highest layer.
int getMinLayer () const
 Returns the lowest layer.
const NamedObjectCont
< PointOfInterest * > & 
getPOICont (int layer) const
 Returns the polygons located at the given layer.
const NamedObjectCont< Polygon * > & getPolygonCont (int layer) const
 Returns the polygons located at the given layer.
std::vector< GUIGlIDgetShapeIDs () const
 Returns the gl-ids of all shapes.
 GUIShapeContainer (SUMORTree &vis)
 Constructor.
void movePoI (int layer, const std::string &id, const Position &pos)
 Assigns a new position to the named PoI.
bool removePoI (int layer, const std::string &id)
 Removes a PoI from the container.
bool removePolygon (int layer, const std::string &id)
 Removes a polygon from the container.
void reshapePolygon (int layer, const std::string &id, const PositionVector &shape)
 Assigns a shape to the named polygon.
virtual ~GUIShapeContainer ()
 Destructor.

Protected Types

typedef std::map< std::string,
Polygon * > 
PolyMap

Protected Member Functions

bool add (int layer, Polygon *p)
 Adds a polygon to the container.
bool add (int layer, PointOfInterest *p)
 Adds a PoI to the container.

Protected Attributes

int myMaxLayer
int myMinLayer
 The minimum and the maximum layers.
std::map< int, NamedObjectCont
< PointOfInterest * > > 
myPOILayers
 POI layers.
std::map< int, NamedObjectCont
< Polygon * > > 
myPolygonLayers
 Polygon layers.

Private Attributes

MFXMutex myLock
 The mutex for adding/removing operations.
SUMORTreemyVis
 The RTree structure to add and remove visualization elements.

Detailed Description

Storage for geometrical objects extended by mutexes.

See also:
ShapeContainer

Definition at line 54 of file GUIShapeContainer.h.


Member Typedef Documentation

typedef std::map<std::string, Polygon*> ShapeContainer::PolyMap [protected, inherited]

Definition at line 178 of file ShapeContainer.h.


Constructor & Destructor Documentation

Constructor.

Definition at line 46 of file GUIShapeContainer.cpp.

Destructor.

Definition at line 50 of file GUIShapeContainer.cpp.


Member Function Documentation

bool ShapeContainer::add ( int  layer,
Polygon p 
) [protected, inherited]

Adds a polygon to the container.

Parameters:
[in]layerThe layer the polygon is located in
[in]pThe polygon to add
Returns:
Whether the polygon could be added (no other with same name existed before)

Definition at line 154 of file ShapeContainer.cpp.

References Polygon::getID(), MAX2(), MIN2(), ShapeContainer::myMaxLayer, ShapeContainer::myMinLayer, and ShapeContainer::myPolygonLayers.

Referenced by addPoI(), ShapeContainer::addPoI(), addPolygon(), and ShapeContainer::addPolygon().

bool ShapeContainer::add ( int  layer,
PointOfInterest p 
) [protected, inherited]

Adds a PoI to the container.

Parameters:
[in]layerThe layer the poi is located in
[in]pThe PoI to add
Returns:
Whether the PoI could be added (no other with same name existed before)

Definition at line 165 of file ShapeContainer.cpp.

References Named::getID(), MAX2(), MIN2(), ShapeContainer::myMaxLayer, ShapeContainer::myMinLayer, and ShapeContainer::myPOILayers.

bool GUIShapeContainer::addPoI ( const std::string &  name,
int  layer,
const std::string &  type,
const RGBColor c,
const Position pos 
) [virtual]

Builds a PoI using the given values and adds it to the according layer.

Parameters:
[in]nameThe name of the PoI to add
[in]layerThe layer to add the PoI to
[in]typeThe type of the PoI to add
[in]cThe color of the PoI to add
[in]posThe position of the PoI to add
Returns:
Whether the PoI could be added (no other with same id exists in the layer)
See also:
ShapeContainer::addPoI

Reimplemented from ShapeContainer.

Definition at line 54 of file GUIShapeContainer.cpp.

References ShapeContainer::add(), SUMORTree::addAdditionalGLObject(), MFXMutex::lock(), myLock, myVis, and MFXMutex::unlock().

bool GUIShapeContainer::addPolygon ( const std::string &  name,
int  layer,
const std::string &  type,
const RGBColor c,
bool  filled,
const PositionVector shape 
) [virtual]

Builds a polygon using the given values and adds it to the according layer.

Parameters:
[in]nameThe name of the polygon to add
[in]layerThe layer to add the polygon to
[in]typeThe type of the polygon to add
[in]cThe color of the polygon to add
[in]posThe position of the polygon to add
Returns:
Whether the polygon could be added (no other with same id exists in the layer)
See also:
ShapeContainer::addPolygon

Reimplemented from ShapeContainer.

Definition at line 70 of file GUIShapeContainer.cpp.

References ShapeContainer::add(), SUMORTree::addAdditionalGLObject(), MFXMutex::lock(), myLock, myVis, and MFXMutex::unlock().

int ShapeContainer::getMaxLayer ( ) const [inline, inherited]

Returns the highest layer.

Returns:
The highest layer

Definition at line 155 of file ShapeContainer.h.

References ShapeContainer::myMaxLayer.

Referenced by TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_Polygon::processSet(), and TraCIServerAPI_POI::processSet().

int ShapeContainer::getMinLayer ( ) const [inline, inherited]

Returns the lowest layer.

Returns:
The lowest layer

Definition at line 147 of file ShapeContainer.h.

References ShapeContainer::myMinLayer.

Referenced by TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_Polygon::processSet(), and TraCIServerAPI_POI::processSet().

const NamedObjectCont< PointOfInterest * > & ShapeContainer::getPOICont ( int  layer) const [inherited]

Returns the polygons located at the given layer.

Parameters:
[in]layerThe layer of polygons to return
Returns:
The polygons at this layer
See also:
NamedObjectCont

Definition at line 142 of file ShapeContainer.cpp.

References MAX2(), MIN2(), ShapeContainer::myMaxLayer, ShapeContainer::myMinLayer, and ShapeContainer::myPOILayers.

Referenced by getShapeIDs(), TraCIServerAPI_POI::processGet(), and TraCIServerAPI_POI::processSet().

const NamedObjectCont< Polygon * > & ShapeContainer::getPolygonCont ( int  layer) const [inherited]

Returns the polygons located at the given layer.

Parameters:
[in]layerThe layer of polygons to return
Returns:
The polygons at this layer
See also:
NamedObjectCont

Definition at line 131 of file ShapeContainer.cpp.

References MAX2(), MIN2(), ShapeContainer::myMaxLayer, ShapeContainer::myMinLayer, and ShapeContainer::myPolygonLayers.

Referenced by getShapeIDs(), TraCIServerAPI_Polygon::processGet(), and TraCIServerAPI_Polygon::processSet().

void GUIShapeContainer::movePoI ( int  layer,
const std::string &  id,
const Position pos 
) [virtual]

Assigns a new position to the named PoI.

Parameters:
[in]layerThe layer the PoI is located in
[in]idThe id of the PoI to move
[in]posThe PoI's new position
See also:
ShapeContainer::movePoI

Reimplemented from ShapeContainer.

Definition at line 127 of file GUIShapeContainer.cpp.

References SUMORTree::addAdditionalGLObject(), MFXMutex::lock(), myLock, ShapeContainer::myPOILayers, myVis, SUMORTree::removeAdditionalGLObject(), and MFXMutex::unlock().

bool GUIShapeContainer::removePoI ( int  layer,
const std::string &  id 
) [virtual]

Removes a PoI from the container.

Parameters:
[in]layerThe layer the PoI is located in
[in]idThe id of the PoI
Returns:
Whether the poi could be removed
See also:
ShapeContainer::removePoI

Reimplemented from ShapeContainer.

Definition at line 87 of file GUIShapeContainer.cpp.

References NamedObjectCont< T >::get(), MFXMutex::lock(), myLock, ShapeContainer::myPOILayers, myVis, NamedObjectCont< T >::remove(), SUMORTree::removeAdditionalGLObject(), and MFXMutex::unlock().

bool GUIShapeContainer::removePolygon ( int  layer,
const std::string &  id 
) [virtual]

Removes a polygon from the container.

Parameters:
[in]layerThe layer the polygon is located in
[in]idThe id of the polygon
Returns:
Whether the polygon could be removed
See also:
ShapeContainer::removePolygon

Reimplemented from ShapeContainer.

Definition at line 107 of file GUIShapeContainer.cpp.

References MFXMutex::lock(), myLock, ShapeContainer::myPolygonLayers, myVis, SUMORTree::removeAdditionalGLObject(), and MFXMutex::unlock().

void GUIShapeContainer::reshapePolygon ( int  layer,
const std::string &  id,
const PositionVector shape 
) [virtual]

Assigns a shape to the named polygon.

Parameters:
[in]layerThe layer the polygon is located in
[in]idThe id of the polygon to reshape
[in]shapeThe polygon's new shape

Reimplemented from ShapeContainer.

Definition at line 142 of file GUIShapeContainer.cpp.

References SUMORTree::addAdditionalGLObject(), MFXMutex::lock(), myLock, ShapeContainer::myPolygonLayers, myVis, SUMORTree::removeAdditionalGLObject(), Polygon::setShape(), and MFXMutex::unlock().


Field Documentation

The mutex for adding/removing operations.

Definition at line 134 of file GUIShapeContainer.h.

Referenced by addPoI(), addPolygon(), movePoI(), removePoI(), removePolygon(), and reshapePolygon().

int ShapeContainer::myMinLayer [mutable, protected, inherited]

The minimum and the maximum layers.

Definition at line 186 of file ShapeContainer.h.

Referenced by ShapeContainer::add(), ShapeContainer::getMinLayer(), ShapeContainer::getPOICont(), ShapeContainer::getPolygonCont(), and getShapeIDs().

The RTree structure to add and remove visualization elements.

Definition at line 137 of file GUIShapeContainer.h.

Referenced by addPoI(), addPolygon(), movePoI(), removePoI(), removePolygon(), and reshapePolygon().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines