SUMO - Simulation of Urban MObility
ShapeContainer Class Reference

Storage for geometrical objects, sorted by the layers they are in. More...

#include <ShapeContainer.h>

Inheritance diagram for ShapeContainer:
GUIShapeContainer

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.
virtual void movePoI (int layer, const std::string &id, const Position &pos)
 Assigns a new position to the named PoI.
virtual bool removePoI (int layer, const std::string &id)
 Removes a PoI from the container.
virtual bool removePolygon (int layer, const std::string &id)
 Removes a polygon from the container.
virtual void reshapePolygon (int layer, const std::string &id, const PositionVector &shape)
 Assigns a shape to the named polygon.
 ShapeContainer ()
 Constructor.
virtual ~ShapeContainer ()
 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.

Detailed Description

Storage for geometrical objects, sorted by the layers they are in.

Definition at line 55 of file ShapeContainer.h.


Member Typedef Documentation

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

Definition at line 178 of file ShapeContainer.h.


Constructor & Destructor Documentation

Constructor.

Definition at line 56 of file ShapeContainer.cpp.

Destructor.

Definition at line 60 of file ShapeContainer.cpp.


Member Function Documentation

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

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(), myMaxLayer, myMinLayer, and myPolygonLayers.

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

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

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(), myMaxLayer, myMinLayer, and myPOILayers.

bool ShapeContainer::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 in GUIShapeContainer.

Definition at line 64 of file ShapeContainer.cpp.

References add().

Referenced by NLHandler::addPOI(), and TraCIServerAPI_POI::processSet().

bool ShapeContainer::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]shapeThe shape 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 in GUIShapeContainer.

Definition at line 76 of file ShapeContainer.cpp.

References add().

Referenced by NLHandler::addPoly(), and TraCIServerAPI_Polygon::processSet().

int ShapeContainer::getMaxLayer ( ) const [inline]

Returns the highest layer.

Returns:
The highest layer

Definition at line 155 of file ShapeContainer.h.

References myMaxLayer.

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

int ShapeContainer::getMinLayer ( ) const [inline]

Returns the lowest layer.

Returns:
The lowest layer

Definition at line 147 of file ShapeContainer.h.

References myMinLayer.

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

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(), myMaxLayer, myMinLayer, and myPOILayers.

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

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(), myMaxLayer, myMinLayer, and myPolygonLayers.

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

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

Reimplemented in GUIShapeContainer.

Definition at line 108 of file ShapeContainer.cpp.

References myPOILayers.

Referenced by TraCIServerAPI_POI::processSet().

bool ShapeContainer::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

Reimplemented in GUIShapeContainer.

Definition at line 98 of file ShapeContainer.cpp.

References myPOILayers.

Referenced by TraCIServerAPI_POI::processSet().

bool ShapeContainer::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

Reimplemented in GUIShapeContainer.

Definition at line 89 of file ShapeContainer.cpp.

References myPolygonLayers.

Referenced by TraCIServerAPI_Polygon::processSet().

void ShapeContainer::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 in GUIShapeContainer.

Definition at line 119 of file ShapeContainer.cpp.

References myPolygonLayers, and Polygon::setShape().

Referenced by TraCIServerAPI_Polygon::processSet().


Field Documentation

int ShapeContainer::myMinLayer [mutable, protected]

The minimum and the maximum layers.

Definition at line 186 of file ShapeContainer.h.

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


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