SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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
protectedinherited

Definition at line 178 of file ShapeContainer.h.


Constructor & Destructor Documentation

GUIShapeContainer::GUIShapeContainer ( SUMORTree vis)

Constructor.

Definition at line 46 of file GUIShapeContainer.cpp.

GUIShapeContainer::~GUIShapeContainer ( )
virtual

Destructor.

Definition at line 50 of file GUIShapeContainer.cpp.


Member Function Documentation

bool ShapeContainer::add ( int  layer,
Polygon p 
)
protectedinherited

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 
)
protectedinherited

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
inlineinherited

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
inlineinherited

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().

std::vector< GUIGlID > GUIShapeContainer::getShapeIDs ( ) const
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

MFXMutex GUIShapeContainer::myLock
private

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::myMaxLayer
mutableprotectedinherited
int ShapeContainer::myMinLayer
mutableprotectedinherited

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().

std::map<int, NamedObjectCont<PointOfInterest*> > ShapeContainer::myPOILayers
mutableprotectedinherited
std::map<int, NamedObjectCont<Polygon*> > ShapeContainer::myPolygonLayers
mutableprotectedinherited
SUMORTree& GUIShapeContainer::myVis
private

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: