47 std::vector<std::string>
48 Junction::getIDList() {
49 std::vector<std::string> ids;
56 Junction::getIDCount() {
57 return (
int)getIDList().size();
62 Junction::getPosition(
const std::string& junctionID,
const bool includeZ) {
68 Junction::getShape(
const std::string& junctionID) {
74 Junction::getJunction(
const std::string&
id) {
77 throw TraCIException(
"Junction '" +
id +
"' is not known");
84 Junction::getParameter(
const std::string& junctionID,
const std::string& param) {
93 Junction::setParameter(
const std::string& junctionID,
const std::string& name,
const std::string& value) {
94 getJunction(junctionID)->setParameter(name, value);
102 Junction::getTree() {
103 if (myTree ==
nullptr) {
106 Boundary b = i.second->getShape().getBoxBoundary();
107 const float cmin[2] = {(float) b.
xmin(), (float) b.
ymin()};
108 const float cmax[2] = {(float) b.
xmax(), (float) b.
ymax()};
109 myTree->Insert(cmin, cmax, i.second);
116 Junction::cleanup() {
123 shape.push_back(getJunction(
id)->getPosition());
127 std::shared_ptr<VariableWrapper>
128 Junction::makeWrapper() {
129 return std::make_shared<Helper::SubscriptionWrapper>(handleVariable, mySubscriptionResults, myContextSubscriptionResults);
134 Junction::handleVariable(
const std::string& objID,
const int variable, VariableWrapper* wrapper) {
137 return wrapper->wrapStringList(objID, variable, getIDList());
139 return wrapper->wrapInt(objID, variable, getIDCount());
142 return wrapper->wrapPosition(objID, variable, getPosition(objID, variable ==
VAR_POSITION3D));
#define LIBSUMO_SUBSCRIPTION_IMPLEMENTATION(CLASS, DOMAIN)
#define LIBSUMO_GET_PARAMETER_WITH_KEY_IMPLEMENTATION(CLASS)
A class that stores a 2D geometrical boundary.
double ymin() const
Returns minimum y-coordinate.
double xmin() const
Returns minimum x-coordinate.
double ymax() const
Returns maximum y-coordinate.
double xmax() const
Returns maximum x-coordinate.
C++ TraCI client API implementation.
The base class for an intersection.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
MSJunctionControl & getJunctionControl()
Returns the junctions control.
T get(const std::string &id) const
Retrieves an item.
void insertIDs(std::vector< std::string > &into) const
A RT-tree for efficient storing of SUMO's Named objects.
const std::string getParameter(const std::string &key, const std::string defaultValue="") const
Returns the value for a given key.
static TraCIPosition makeTraCIPosition(const Position &position, const bool includeZ=false)
static TraCIPositionVector makeTraCIPositionVector(const PositionVector &positionVector)
helper functions
TRACI_CONST int TRACI_ID_LIST
TRACI_CONST int VAR_POSITION
std::map< std::string, TraCIResults > SubscriptionResults
{object->{variable->value}}
TRACI_CONST int VAR_POSITION3D
std::map< std::string, SubscriptionResults > ContextSubscriptionResults