Eclipse SUMO - Simulation of Urban MObility
GUIShapeContainer Class Reference

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

#include <GUIShapeContainer.h>

Inheritance diagram for GUIShapeContainer:
Collaboration diagram for GUIShapeContainer:

Public Types

typedef NamedObjectCont< PointOfInterest * > POIs
 
typedef NamedObjectCont< SUMOPolygon * > Polygons
 containers More...
 

Public Member Functions

virtual bool addPOI (const std::string &id, const std::string &type, const RGBColor &color, const Position &pos, bool geo, const std::string &lane, double posOverLane, double posLat, double layer, double angle, const std::string &imgFile, bool relativePath, double width, double height, bool ignorePruning=false) override
 Builds a POI using the given values and adds it to the container. More...
 
virtual bool addPolygon (const std::string &id, const std::string &type, const RGBColor &color, double layer, double angle, const std::string &imgFile, bool relativePath, const PositionVector &shape, bool geo, bool fill, double lineWidth, bool ignorePruning=false) override
 Builds a polygon using the given values and adds it to the container. More...
 
PolygonDynamicsaddPolygonDynamics (double simtime, std::string polyID, SUMOTrafficObject *trackedObject, const std::vector< double > &timeSpan, const std::vector< double > &alphaSpan, bool looped, bool rotate) override
 Adds dynamics to the given Polygon,. More...
 
virtual void addPolygonUpdateCommand (std::string polyID, ParametrisedWrappingCommand< ShapeContainer, PolygonDynamics * > *cmd)
 Register update command (for descheduling at removal) More...
 
void allowReplacement ()
 
std::vector< GUIGlIDgetPOIIds () const
 Returns the gl-ids of all pois. More...
 
const POIsgetPOIs () const
 Returns all pois. More...
 
std::vector< GUIGlIDgetPolygonIDs () const
 Returns the gl-ids of all polygons. More...
 
const PolygonsgetPolygons () const
 Returns all polygons. More...
 
 GUIShapeContainer (SUMORTree &vis)
 Constructor. More...
 
virtual void movePOI (const std::string &id, const Position &pos) override
 Assigns a new position to the named PoI. More...
 
SUMOTime polygonDynamicsUpdate (SUMOTime t, PolygonDynamics *pd) override
 Update PolygonDynamics,. More...
 
virtual void registerHighlight (const std::string &objectID, const int type, const std::string &polygonID)
 register highlight of the specified type if the given id More...
 
virtual bool removePOI (const std::string &id) override
 Removes a PoI from the container. More...
 
virtual bool removePolygon (const std::string &id, bool useLock=true) override
 Removes a polygon from the container. More...
 
virtual bool removePolygonDynamics (const std::string &polyID)
 Remove dynamics (animation / tracking) for the given polygon. More...
 
virtual void removeTrackers (std::string objectID)
 Remove all tracking polygons for the given object. More...
 
virtual void reshapePolygon (const std::string &id, const PositionVector &shape) override
 Assigns a shape to the named polygon. More...
 
virtual ~GUIShapeContainer ()
 Destructor. More...
 

Protected Member Functions

virtual bool add (PointOfInterest *poi, bool ignorePruning=false)
 add poi More...
 
virtual bool add (SUMOPolygon *poly, bool ignorePruning=false)
 add polygon More...
 
virtual void cleanupPolygonDynamics (const std::string &id)
 Unschedules the removal and update commands of the given polygon. More...
 

Protected Attributes

std::map< std::string, std::string > myHighlightedObjects
 inverse map to myHighlightPolygons saves the highlighted object for each polygon More...
 
std::map< std::string, std::map< int, std::string > > myHighlightPolygons
 maps objects to a map of highlight types to highlighting polygons More...
 
POIs myPOIs
 stored POIs More...
 
std::map< std::string, PolygonDynamics * > myPolygonDynamics
 stored PolygonDynamics More...
 
Polygons myPolygons
 stored Polygons More...
 
std::map< const std::string, std::set< const SUMOPolygon * > > myTrackingPolygons
 Information about tracked objects. More...
 

Private Attributes

bool myAllowReplacement
 whether existing ids shall be replaced More...
 
FXMutex myLock
 The mutex for adding/removing operations. More...
 
std::map< const std::string, ParametrisedWrappingCommand< ShapeContainer, PolygonDynamics * > * > myPolygonUpdateCommands
 Command pointers for scheduled polygon update. Maps PolyID->Command. More...
 
SUMORTreemyVis
 The RTree structure to add and remove visualization elements. More...
 

Detailed Description

Storage for geometrical objects extended by mutexes.

See also
ShapeContainer

Definition at line 46 of file GUIShapeContainer.h.

Member Typedef Documentation

◆ POIs

Definition at line 54 of file ShapeContainer.h.

◆ Polygons

containers

Definition at line 53 of file ShapeContainer.h.

Constructor & Destructor Documentation

◆ GUIShapeContainer()

GUIShapeContainer::GUIShapeContainer ( SUMORTree vis)

Constructor.

Definition at line 36 of file GUIShapeContainer.cpp.

◆ ~GUIShapeContainer()

GUIShapeContainer::~GUIShapeContainer ( )
virtual

Destructor.

Definition at line 42 of file GUIShapeContainer.cpp.

Member Function Documentation

◆ add() [1/2]

bool ShapeContainer::add ( PointOfInterest poi,
bool  ignorePruning = false 
)
protectedvirtualinherited

add poi

Reimplemented in PCPolyContainer.

Definition at line 197 of file ShapeContainer.cpp.

References NamedObjectCont< T >::add(), Named::getID(), and ShapeContainer::myPOIs.

◆ add() [2/2]

bool ShapeContainer::add ( SUMOPolygon poly,
bool  ignorePruning = false 
)
protectedvirtualinherited

◆ addPOI()

bool GUIShapeContainer::addPOI ( const std::string &  id,
const std::string &  type,
const RGBColor color,
const Position pos,
bool  geo,
const std::string &  lane,
double  posOverLane,
double  posLat,
double  layer,
double  angle,
const std::string &  imgFile,
bool  relativePath,
double  width,
double  height,
bool  ignorePruning = false 
)
overridevirtual

Builds a POI using the given values and adds it to the container.

Parameters
[in]idThe name of the POI
[in]typeThe (abstract) type of the POI
[in]colorThe color of the POI
[in]posThe position of the POI
[in[geo use GEO coordinates (lon/lat)
[in]laneThe Lane in which this POI is placed
[in]posOverLaneThe position over Lane
[in]posLatThe position lateral over Lane
[in]layerThe layer of the POI
[in]angleThe rotation of the POI
[in]imgFileThe raster image of the POI
[in]relativePathset image file as relative path
[in]widthThe width of the POI image
[in]heightThe height of the POI image
Returns
whether the poi could be added

Reimplemented from ShapeContainer.

Definition at line 46 of file GUIShapeContainer.cpp.

References NamedObjectCont< T >::add(), SUMORTree::addAdditionalGLObject(), NamedObjectCont< T >::get(), myAllowReplacement, myLock, ShapeContainer::myPOIs, myVis, NamedObjectCont< T >::remove(), SUMORTree::removeAdditionalGLObject(), and WRITE_WARNING.

◆ addPolygon()

bool GUIShapeContainer::addPolygon ( const std::string &  id,
const std::string &  type,
const RGBColor color,
double  layer,
double  angle,
const std::string &  imgFile,
bool  relativePath,
const PositionVector shape,
bool  geo,
bool  fill,
double  lineWidth,
bool  ignorePruning = false 
)
overridevirtual

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

Parameters
[in]idThe name of the polygon
[in]typeThe (abstract) type of the polygon
[in]colorThe color of the polygon
[in]layerThe layer of the polygon
[in]angleThe rotation of the polygon
[in]imgFileThe raster image of the polygon
[in]relativePathset image file as relative path
[in]shapeThe shape of the polygon
[in]geospecify if shape was loaded as GEO coordinate
[in]fillWhether the polygon shall be filled
[in]lineWidthLine width when drawing unfilled polygon
Returns
whether the polygon could be added

Reimplemented from ShapeContainer.

Definition at line 69 of file GUIShapeContainer.cpp.

References NamedObjectCont< T >::add(), SUMORTree::addAdditionalGLObject(), NamedObjectCont< T >::get(), myAllowReplacement, myLock, ShapeContainer::myPolygons, myVis, NamedObjectCont< T >::remove(), SUMORTree::removeAdditionalGLObject(), and WRITE_WARNING.

◆ addPolygonDynamics()

PolygonDynamics * GUIShapeContainer::addPolygonDynamics ( double  simtime,
std::string  polyID,
SUMOTrafficObject trackedObject,
const std::vector< double > &  timeSpan,
const std::vector< double > &  alphaSpan,
bool  looped,
bool  rotate 
)
overridevirtual

Adds dynamics to the given Polygon,.

See also
ShapeContainer addPolygonDynamics
Note
Supplies the visualisation RTree to the dynamics for updating the object when moving

Reimplemented from ShapeContainer.

Definition at line 93 of file GUIShapeContainer.cpp.

References ShapeContainer::addPolygonDynamics(), myVis, and PolygonDynamics::setRTree().

◆ addPolygonUpdateCommand()

void ShapeContainer::addPolygonUpdateCommand ( std::string  polyID,
ParametrisedWrappingCommand< ShapeContainer, PolygonDynamics * > *  cmd 
)
virtualinherited

Register update command (for descheduling at removal)

Definition at line 280 of file ShapeContainer.cpp.

References ShapeContainer::myPolygonUpdateCommands.

Referenced by libsumo::Polygon::addDynamics().

◆ allowReplacement()

void GUIShapeContainer::allowReplacement ( )
inline

Definition at line 146 of file GUIShapeContainer.h.

References myAllowReplacement.

◆ cleanupPolygonDynamics()

void ShapeContainer::cleanupPolygonDynamics ( const std::string &  id)
protectedvirtualinherited

Unschedules the removal and update commands of the given polygon.

Parameters
[in]idThe id of the polygon

Definition at line 207 of file ShapeContainer.cpp.

References ShapeContainer::myPolygonUpdateCommands.

Referenced by ShapeContainer::removePolygonDynamics().

◆ clearHighlight()

void ShapeContainer::clearHighlight ( const std::string &  objectID,
const int  type,
std::string &  toRemove 
)
protectedvirtualinherited

◆ clearHighlights()

void ShapeContainer::clearHighlights ( const std::string &  objectID,
SUMOPolygon p 
)
protectedvirtualinherited

Clears all highlight information from the maps when the object leaves the net (Highlight polygons and dynamics are removed via removeTrackers())

Definition at line 261 of file ShapeContainer.cpp.

References Named::getID(), and ShapeContainer::myHighlightPolygons.

Referenced by ShapeContainer::removePolygonDynamics().

◆ getPOIIds()

std::vector< GUIGlID > GUIShapeContainer::getPOIIds ( ) const

Returns the gl-ids of all pois.

Definition at line 178 of file GUIShapeContainer.cpp.

References GUIGlObject::getGlID(), ShapeContainer::getPOIs(), and myLock.

◆ getPOIs()

◆ getPolygonIDs()

std::vector< GUIGlID > GUIShapeContainer::getPolygonIDs ( ) const

Returns the gl-ids of all polygons.

Definition at line 189 of file GUIShapeContainer.cpp.

References GUIGlObject::getGlID(), ShapeContainer::getPolygons(), and myLock.

◆ getPolygons()

◆ movePOI()

void GUIShapeContainer::movePOI ( const std::string &  id,
const Position pos 
)
overridevirtual

Assigns a new position to the named PoI.

Parameters
[in]idThe id of the PoI to move
[in]posThe PoI's new position

Reimplemented from ShapeContainer.

Definition at line 153 of file GUIShapeContainer.cpp.

References SUMORTree::addAdditionalGLObject(), NamedObjectCont< T >::get(), myLock, ShapeContainer::myPOIs, myVis, and SUMORTree::removeAdditionalGLObject().

◆ polygonDynamicsUpdate()

SUMOTime GUIShapeContainer::polygonDynamicsUpdate ( SUMOTime  t,
PolygonDynamics pd 
)
overridevirtual

◆ registerHighlight()

void ShapeContainer::registerHighlight ( const std::string &  objectID,
const int  type,
const std::string &  polygonID 
)
virtualinherited

◆ removePOI()

bool GUIShapeContainer::removePOI ( const std::string &  id)
overridevirtual

Removes a PoI from the container.

Parameters
[in]idThe id of the PoI
Returns
Whether the poi could be removed

Reimplemented from ShapeContainer.

Definition at line 141 of file GUIShapeContainer.cpp.

References NamedObjectCont< T >::get(), myLock, ShapeContainer::myPOIs, myVis, NamedObjectCont< T >::remove(), and SUMORTree::removeAdditionalGLObject().

◆ removePolygon()

bool GUIShapeContainer::removePolygon ( const std::string &  id,
bool  useLock = true 
)
overridevirtual

Removes a polygon from the container.

Parameters
[in]idThe id of the polygon
Returns
Whether the polygon could be removed

Reimplemented from ShapeContainer.

Definition at line 124 of file GUIShapeContainer.cpp.

References NamedObjectCont< T >::get(), myLock, ShapeContainer::myPolygons, myVis, SUMORTree::removeAdditionalGLObject(), and ShapeContainer::removePolygon().

◆ removePolygonDynamics()

bool ShapeContainer::removePolygonDynamics ( const std::string &  polyID)
virtualinherited

Remove dynamics (animation / tracking) for the given polygon.

Parameters
polyIDID of the polygon for which dynamics shall be removed
Returns
true if the operation was successful (dynamics existed for the polygon), false if not.

Definition at line 113 of file ShapeContainer.cpp.

References ShapeContainer::cleanupPolygonDynamics(), ShapeContainer::clearHighlights(), NamedObjectCont< T >::get(), ShapeContainer::myPolygonDynamics, ShapeContainer::myPolygons, and ShapeContainer::myTrackingPolygons.

Referenced by ShapeContainer::addPolygonDynamics(), and ShapeContainer::removePolygon().

◆ removeTrackers()

void ShapeContainer::removeTrackers ( std::string  objectID)
virtualinherited

Remove all tracking polygons for the given object.

Definition at line 286 of file ShapeContainer.cpp.

References ShapeContainer::myTrackingPolygons, and ShapeContainer::removePolygon().

Referenced by MSDynamicShapeUpdater::vehicleStateChanged().

◆ reshapePolygon()

void GUIShapeContainer::reshapePolygon ( const std::string &  id,
const PositionVector shape 
)
overridevirtual

Assigns a shape to the named polygon.

Parameters
[in]idThe id of the polygon to reshape
[in]shapeThe polygon's new shape

Reimplemented from ShapeContainer.

Definition at line 165 of file GUIShapeContainer.cpp.

References SUMORTree::addAdditionalGLObject(), NamedObjectCont< T >::get(), myLock, ShapeContainer::myPolygons, myVis, SUMORTree::removeAdditionalGLObject(), and GUIPolygon::setShape().

Field Documentation

◆ myAllowReplacement

bool GUIShapeContainer::myAllowReplacement
private

whether existing ids shall be replaced

Definition at line 159 of file GUIShapeContainer.h.

Referenced by addPOI(), addPolygon(), and allowReplacement().

◆ myHighlightedObjects

std::map<std::string, std::string> ShapeContainer::myHighlightedObjects
protectedinherited

inverse map to myHighlightPolygons saves the highlighted object for each polygon

Definition at line 207 of file ShapeContainer.h.

Referenced by ShapeContainer::clearHighlight(), and ShapeContainer::registerHighlight().

◆ myHighlightPolygons

std::map<std::string, std::map<int, std::string> > ShapeContainer::myHighlightPolygons
protectedinherited

maps objects to a map of highlight types to highlighting polygons

Definition at line 205 of file ShapeContainer.h.

Referenced by ShapeContainer::clearHighlight(), ShapeContainer::clearHighlights(), and ShapeContainer::registerHighlight().

◆ myLock

FXMutex GUIShapeContainer::myLock
mutableprivate

The mutex for adding/removing operations.

Definition at line 152 of file GUIShapeContainer.h.

Referenced by addPOI(), addPolygon(), getPOIIds(), getPolygonIDs(), movePOI(), polygonDynamicsUpdate(), removePOI(), removePolygon(), and reshapePolygon().

◆ myPOIs

◆ myPolygonDynamics

std::map<std::string, PolygonDynamics*> ShapeContainer::myPolygonDynamics
protectedinherited

◆ myPolygons

◆ myPolygonUpdateCommands

std::map<const std::string, ParametrisedWrappingCommand<ShapeContainer, PolygonDynamics*>*> ShapeContainer::myPolygonUpdateCommands
privateinherited

◆ myTrackingPolygons

std::map<const std::string, std::set<const SUMOPolygon*> > ShapeContainer::myTrackingPolygons
protectedinherited

Information about tracked objects.

Note
Maps tracked object IDs to set of polygons, which are tracking the object. Needed at object removal to cancel tacking (i.e. remove tracking poly).

Definition at line 212 of file ShapeContainer.h.

Referenced by ShapeContainer::addPolygonDynamics(), ShapeContainer::removePolygonDynamics(), and ShapeContainer::removeTrackers().

◆ myVis

SUMORTree& GUIShapeContainer::myVis
private

The RTree structure to add and remove visualization elements.

Definition at line 155 of file GUIShapeContainer.h.

Referenced by addPOI(), addPolygon(), addPolygonDynamics(), movePOI(), polygonDynamicsUpdate(), removePOI(), removePolygon(), and reshapePolygon().


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