- Global NLJunctionControlBuilder::addPhase (SUMOTime duration, const std::string &state, const std::vector< int > &nextPhases, SUMOTime min, SUMOTime max, const std::string &name)
- min/max is used only by one junction type. Recheck
- Global ODMatrix::applyCurve (const Distribution_Points &ps)
- Describe
- Global ODDistrictHandler::addSink (const SUMOSAXAttributes &attrs)
- Checking whether myCurrentDistrict is valid through getValues is not quite nice
- Global ODDistrictHandler::addSource (const SUMOSAXAttributes &attrs)
- Checking whether myCurrentDistrict is valid through getValues is not quite nice
- Global NLTriggerBuilder::getFileName (const SUMOSAXAttributes &attrs, const std::string &base, const bool allowEmpty=false)
- Recheck usage of the helper class
- Global NLTriggerBuilder::buildMECalibrator (MSNet &net, const std::string &id, const MSEdge *edge, double pos, const std::string &file, const std::string &outfile, const SUMOTime freq, MSRouteProbe *probe, const std::string &vTypes)
- Is the position correct/needed
- Global NLTriggerBuilder::buildCalibrator (MSNet &net, const std::string &id, MSEdge *edge, MSLane *lane, double pos, const std::string &file, const std::string &outfile, const SUMOTime freq, const MSRouteProbe *probe, const std::string &vTypes)
- Is the position correct/needed
- Global NLJunctionControlBuilder::getJunctionLogicSecure ()
- Where is this used?
- Global NLJunctionControlBuilder::addParam (const std::string &key, const std::string &value)
Can a parameter be overwritten?
Where are these parameter used? Describe!
- Global NLJunctionControlBuilder::addPhase (SUMOTime duration, const std::string &state, const std::vector< int > &nextPhases, SUMOTime min, SUMOTime max, const std::string &name)
- min/max: maybe only one type of a phase definition should be built
- Global ODMatrix::readO (LineReader &lr, double scale, std::string vehType, bool matrixHasVehType)
- Describe
- Global NLJunctionControlBuilder::initTrafficLightLogic (const std::string &id, const std::string &programID, TrafficLightType type, SUMOTime offset)
Recheck, describe usage of detectorOffset (where does the information come from?)
Why is the type not verified?
- Global NLJunctionControlBuilder::addLogicItem (int request, const std::string &response, const std::string &foes, bool cont)
- Recheck "cont"; is the description correct?
- Global NLJunctionControlBuilder::closeJunction (const std::string &basePath)
The type of the junctions shoould probably be checked when supprted (in openJunction)
Throwing ProcessError would get unneeded if the container would be built by default (see prepare)
- Global NLJunctionControlBuilder::openJunction (const std::string &id, const std::string &key, const SumoXMLNodeType type, const Position pos, const PositionVector &shape, const std::vector< MSLane * > &incomingLanes, const std::vector< MSLane * > &internalLanes)
- Check why "key" is given
- Class NLJunctionControlBuilder
Resort method by one of the topics.
Refactor this class - it's too large
- Global NLHandler::addDistrictEdge (const SUMOSAXAttributes &attrs, bool isSource)
- No exception?
- Class PCLoaderArcView
- reinsert import via shapelib
- Global RONet::getNode (const std::string &id) const
- Check whether a const pointer may be returned
- Global ROLoader::ROLoader (OptionsCont &oc, const bool emptyDestinationsAllowed, const bool logSteps)
- Recheck usage of emptyDestinationsAllowed
- Global ROVehicleByDepartureComperator::operator() (ROVehicle *veh1, ROVehicle *veh2) const
- Check whether both vehicles can be const
- Global ROFrame::checkOptions (OptionsCont &oc)
- probably, more things should be checked...
- Global ROEdge::getEffortStatic (const ROEdge *const edge, const ROVehicle *const veh, double time)
- Recheck whether the vehicle's maximum speed is considered
- Global ROEdge::getEffort (const ROVehicle *const veh, double time) const
- Recheck whether the vehicle's maximum speed is considered
- Global ROEdge::addSuccessor (ROEdge *s, ROEdge *via=nullptr, std::string dir="")
- What about vehicle-type aware connections?
- Global ROEdge::addLane (ROLane *lane)
- What about vehicle-type aware connections?
- Global PCTypeDefHandler::myStartElement (int element, const SUMOSAXAttributes &attrs)
- Completely unsecure currently (invalid values may force abortion with no error message)
- Global NLHandler::myEndElement (int element)
- Refactor/describe
- Global ODMatrix::readFactor (LineReader &lr, double scale)
- Describe
- Global ODMatrix::readTime (LineReader &lr)
- Describe
- Global ODMatrix::parseSingleTime (const std::string &time)
- Describe
- Global ODMatrix::getNextNonCommentLine (LineReader &lr)
- Describe
- Global ODMatrix::applyCurve (const Distribution_Points &ps, ODCell *cell, std::vector< ODCell * > &newCells)
- describe better!!!
- Global ODMatrix::parseTimeLine (const std::vector< std::string > &def, bool timelineDayInHours)
- Describe
- Global ODMatrix::loadRoutes (OptionsCont &oc, SUMOSAXHandler &handler)
- Describe
- Global ODMatrix::loadMatrix (OptionsCont &oc)
- Describe
- Global ODMatrix::readV (LineReader &lr, double scale, std::string vehType, bool matrixHasVehType)
- Describe
- Global NGNet::toNB () const
- Check whether throwing an exception is really necessary, here
- Class NIImporter_ArcView
- reinsert import via shapelib
- Global NIFrame::checkOptions ()
- Unused currently; repair/fill
- Global NGRandomNetBuilder::findPossibleOuterNodes (NGNode *node)
- Describe better
- Global NGRandomNetBuilder::createNewNode (NGNode *baseNode, bool gridMode)
- Describe better
- Global NGRandomNetBuilder::createNet (int numNodes, bool gridMode)
- Describe the algorithm
- Global NGRandomNetBuilder::NGRandomNetBuilder (NGNet &net, double minAngle, double minDistance, double maxDistance, double connectivity, int numTries, const RandomDistributor< int > &neighborDist)
- check meanings of connectivity/numTries
- Class NGRandomNetBuilder
- Describe the algorithm
- Global NGNode::buildNBNode (NBNetBuilder &nb, const Position &perturb) const
Check whether throwing an exception is really necessary, here
There is no interaction with explicit node setting options? Where is this done?
- Global NIImporter_OpenDrive::loadNetwork (const OptionsCont &oc, NBNetBuilder &nb)
- : One could think of determining whether lane sections may be joined when being equal in SUMO's sense Their naming would have to be updated, too, also in TraCI
- Global NGNet::createSpiderWeb (int numRadDiv, int numCircles, double spaceRad, bool hasCenter)
- consolidate the name of the center node
- Global GNEAdditionalFrame::SelectorChildEdges::showSelectorChildEdgesModul (std::string search="")
- this function must be improved.
- Global GNEAdditionalHandler::buildCalibrator (GNEViewNet *viewNet, bool allowUndoRedo, const std::string &id, GNEEdge *edge, double pos, const std::string &name, const std::string &outfile, SUMOTime freq, const std::string &routeprobe, bool centerAfterCreation)
- Is the position correct/needed
- Global GNEAdditionalHandler::buildCalibrator (GNEViewNet *viewNet, bool allowUndoRedo, const std::string &id, GNELane *lane, double pos, const std::string &name, const std::string &outfile, SUMOTime freq, const std::string &routeprobe, bool centerAfterCreation)
- Is the position correct/needed
- Global NBTypeCont::getIsOneWay (const std::string &type) const
- There is no default for one-way!?
- Global NBTrafficLightLogicCont::replaceRemoved (NBEdge *removed, int removedLane, NBEdge *by, int byLane)
- Recheck usage
- Global NBTrafficLightLogicCont::remapRemoved (NBEdge *removed, const EdgeVector &incoming, const EdgeVector &outgoing)
- Recheck usage
- Global NBTrafficLightLogicCont::applyOptions (OptionsCont &oc)
- Recheck exceptions
- Global NBSign::writeAsPOI (OutputDevice &into, const NBEdge *edge) const
- add default colors
- Class NIXMLPTHandler
- One day, one should rethink the order of parsing. Now, the handler is able to load edges, using information from the types, first, and extending them by given information. In addition, if the read edge is already known, it's values are also used. Then, defining vehicles allowed per lane, and additional edge split definitions add some further complexity. This all works somehow for most of our use cases, but it's definitely not as consistent that everything what seems to be possible would also work appropriately.
- Global NLHandler::myStartElement (int element, const SUMOSAXAttributes &attrs)
- Refactor/describe
- Global NLHandler::addPhase (const SUMOSAXAttributes &attrs)
- : the following should be moved to StringTok
- Global NLEdgeControlBuilder::addLane (const std::string &id, double maxSpeed, double length, const PositionVector &shape, double width, SVCPermissions permissions, int index, bool isRampAccel, const std::string &type)
- Definitely not a good way
- Class NLEdgeControlBuilder
- Assignment of lanes is not really well. Should be reworked after shapes are given as params.
- Global NLDetectorBuilder::checkSampleInterval (SUMOTime splInterval, SumoXMLTag type, const std::string &id)
- Why is splInterval an int???
- Global NLDetectorBuilder::buildSingleLaneE2Det (const std::string &id, DetectorUsage usage, MSLane *lane, double pos, double length, SUMOTime haltingTimeThreshold, double haltingSpeedThreshold, double jamDistThreshold, const std::string &vTypes)
- Check whether this method is really needful
- Global NLDetectorBuilder::buildE2Detector (const std::string &id, MSLane *lane, double pos, double endPos, double length, const std::string &device, SUMOTime frequency, SUMOTime haltingTimeThreshold, double haltingSpeedThreshold, double jamDistThreshold, const std::string &vTypes, bool friendlyPos, bool showDetector, MSTLLogicControl::TLSLogicVariants *tlls=0, MSLane *toLane=0)
- Add parameter showDetector to indicate whether the detector should be visible in the GUI
- Global NLBuilder::build ()
- Again, both returning a bool and throwing an exception; quite inconsistent
- Global NIVissimEdge::buildConnectionClusters ()
- Probably the distance (MAX_CLUSTER_DISTANCE=10m) should be made variable
- Global RONet::getVehicleTypeSecure (const std::string &id)
- Check whether a const pointer may be returned
- Class NIXMLPTHandler
- revalidate node retrieval
- Global NIXMLNodesHandler::myStartElement (int element, const SUMOSAXAttributes &attrs)
- ProcessErrors are thrown when parsing traffic lights!?
- Global NIXMLNodesHandler::NIXMLNodesHandler (NBNodeCont &nc, NBEdgeCont &ec, NBTrafficLightLogicCont &tlc, OptionsCont &options)
Why are options not const?
Options are only given to determine whether "flip-y" is set; maybe this should be done by giving a bool
- Class NIXMLEdgesHandler
One day, one should rethink the order of parsing. Now, the handler is able to load edges, using information from the types, first, and extending them by given information. In addition, if the read edge is already known, it's values are also used. Then, defining vehicles allowed per lane, and additional edge split definitions add some further complexity. This all works somehow for most of our use cases, but it's definitely not as consistent that everything what seems to be possible would also work appropriately.
revalidate node retrieval
- Global NIImporter_OpenDrive::OPENDRIVE_TAG_GEOMETRY
OPENDRIVE_TAG_TYPE,
OPENDRIVE_TAG_NEIGHBOR,
- Global NIImporter_OpenDrive::loadNetwork (const OptionsCont &oc, NBNetBuilder &nb)
- : probably, the lane offsets to the center are not right
- Global BinaryInputDevice::operator>> (BinaryInputDevice &os, std::string &s)
- Use either a buffer with a flexible size or report an error if the buffer is too small!
- Global PlainXMLFormatter::writeXMLHeader (std::ostream &into, const std::string &rootElement, const std::map< SumoXMLAttr, std::string > &attrs)
- Describe what is saved
- Global OutputFormatter::closeTag (std::ostream &into, const std::string &comment="")=0
- it is not verified that the topmost element was closed
- Global OutputFormatter::writeXMLHeader (std::ostream &into, const std::string &rootElement, const std::map< SumoXMLAttr, std::string > &attrs)=0
Describe what is saved
Check which parameter is used herein
- Global OutputDevice::closeTag (const std::string &comment="")
- it is not verified that the topmost element was closed
- Global OutputDevice::writeXMLHeader (const std::string &rootElement, const std::string &schemaFile, std::map< SumoXMLAttr, std::string > attrs=std::map< SumoXMLAttr, std::string >())
- Describe what is saved
- Global BinaryInputDevice::operator>> (BinaryInputDevice &os, std::vector< std::vector< int > > &v)
- Use either a buffer with a flexible size or report an error if the buffer is too small!
- Global BinaryInputDevice::operator>> (BinaryInputDevice &os, std::vector< int > &v)
- Use either a buffer with a flexible size or report an error if the buffer is too small!
- Global BinaryInputDevice::operator>> (BinaryInputDevice &os, std::vector< std::string > &v)
- Use either a buffer with a flexible size or report an error if the buffer is too small!
- Global PlainXMLFormatter::closeTag (std::ostream &into, const std::string &comment="")
- it is not verified that the topmost element was closed
- Class BinaryInputDevice
Maybe the byte-order should be defined
Maybe some kind of a well-defined types should be used (so that they have a well-defined length)
Recheck whether this class could be replaced by a "normal InputDevice"
- Global BinaryFormatter::closeTag (std::ostream &into, const std::string &comment="")
- it is not verified that the topmost element was closed
- Global BinaryFormatter::writeXMLHeader (std::ostream &into, const std::string &rootElement, const std::map< SumoXMLAttr, std::string > &attrs)
- Describe what is saved
- Class NamedColumnsParser
- What happens if an uninitialised NamedColumnsParser is used? exceptions?
- Class LineReader
Should not IOError be thrown if something fails?
No checks are done so far during reading/setting position etc.
- Class GUIDialog_ViewSettings
- Check whether saving/loading settings should be done via XML
- Global GenericSAXHandler::startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const XERCES_CPP_NAMESPACE::Attributes &attrs)
- recheck/describe encoding of the string-representation
- Class XMLSubSys
- make schema checking optional
- Global GenericSAXHandler::convert (const std::string &name) const
- recheck encoding
- Global GenericSAXHandler::setFileName (const std::string &name)
- Hmmm - this is as unsafe as having a direct access to the variable; recheck
- Global GenericSAXHandler::endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname)
do not generate and report the string-representation
recheck/describe encoding of the string-representation
- Global GenericSAXHandler::characters (const XMLCh *const chars, const XERCES3_SIZE_t length)
describe characters processing in the class' head
recheck/describe what happens with characters when a new element is opened
- Global GenericSAXHandler::startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const XERCES_CPP_NAMESPACE::Attributes &attrs)
- do not generate and report the string-representation
- Global GUISettingsHandler::setSnapshots (GUISUMOAbstractView *view) const
- Please describe why the snapshots are only set if no other existed before (see code)
- Global GenericSAXHandler::GenericSAXHandler (StringBijection< int >::Entry *tags, int terminatorTag, StringBijection< int >::Entry *attrs, int terminatorAttr, const std::string &file, const std::string &expectedRoot="")
- Why are both lists non-const and given as pointers?
- Global SUMOVehicleParserHelper::parseGuiShape (const SUMOSAXAttributes &attrs, const std::string &id)
- Recheck how errors are handled and what happens if they occure
- Global SUMOVehicleParserHelper::parseVehicleClass (const SUMOSAXAttributes &attrs, const std::string &id)
- Recheck how errors are handled and what happens if they occure
- Global ShapeHandler::myEndElement (int element)
- Refactor/describe
- Global ShapeHandler::myStartElement (int element, const SUMOSAXAttributes &attrs)
- Refactor/describe
- Global OptionsLoader::characters (const XMLCh *const chars, const XERCES3_SIZE_t length)
- Describe better
- Global OptionsCont::splitLines (std::ostream &os, std::string what, int offset, int nextOffset)
- Describe parameter
- Global OptionsCont::isInStringVector (const std::string &optionName, const std::string &itemName) const
- Try to optimize - at each call, the vector is rebuilt
- Global OptionsCont::getStringVector (const std::string &name) const
- Is it possible to retrieve a const-reference of the string?
- Global RORoute::RORoute (const std::string &id, double costs, double prob, const ConstROEdgeVector &route, const RGBColor *const color, const std::vector< SUMOVehicleParameter::Stop > &stops)
- Are costs/prob really mandatory?
- Global PHEMCEP::_sizeOfPatternPollutants
- describe
- Global PHEMCEP::GetCdValue () const
- : Why is it named "cdValue", here?
- Global SystemFrame::addReportOptions (OptionsCont &oc)
- let the container be retrieved
- Global SystemFrame::addConfigurationOptions (OptionsCont &oc)
- let the container be retrieved
- Global ROVehicle::getRouteDefinition () const
- Why not return a reference?
- Global RORoute::setProbability (double prob)
- Recheck why the probability is stored in a route
- Global RORoute::setCosts (double costs)
- Recheck why the costs are stored in a route
- Global RORoute::getProbability () const
- Recheck why the probability is stored in a route
- Global RORoute::getCosts () const
- Recheck why the costs are stored in a route
- Global PHEMCEP::_powerPatternFC
- describe
- Global RORoutable::getType () const
- Why not return a reference?
- Global RONetHandler::parseDistrictEdge (const SUMOSAXAttributes &attrs, bool isSource)
- No exception?
- Global RONetHandler::parseJunction (const SUMOSAXAttributes &attrs)
No exception?
In fact, the junction should be built given its position.
- Global RONetHandler::parseLane (const SUMOSAXAttributes &attrs)
- No exception?
- Global RONetHandler::parseEdge (const SUMOSAXAttributes &attrs)
No exception?
The edge is "built" first, then the nodes are added; should be done while constructing, probably a legacy issue
- Global RONet::getRouteDef (const std::string &name) const
Rename myRoutes to myRouteDefinitions
Check whether a const pointer may be returned
- Global GUIParameterTableItem< T >::GUIParameterTableItem (FXTable *table, unsigned pos, const std::string &name, bool dynamic, T value)
- Consider using a reference to the table
- Global GUIParameterTableWindow::onTableDeselected (FXObject *, FXSelector, void *)
- Recheck whether this is needed (to override FXTable-behaviour?)
- Global GUIParameterTableWindow::onTableSelected (FXObject *, FXSelector, void *)
- Recheck whether this is needed (to override FXTable-behaviour?)
- Global GUIParameterTableWindow::mkItem (const char *name, bool dynamic, double value)
- the dynamic-parameter is obsolete
- Global GUIParameterTableWindow::mkItem (const char *name, bool dynamic, long long int value)
- the dynamic-parameter is obsolete
- Global GUIParameterTableWindow::mkItem (const char *name, bool dynamic, int value)
- the dynamic-parameter is obsolete
- Global GUIParameterTableWindow::mkItem (const char *name, bool dynamic, unsigned value)
- the dynamic-parameter is obsolete
- Global GUIParameterTableWindow::mkItem (const char *name, bool dynamic, std::string value)
- the dynamic-parameter is obsolete(?)
- Global GUIParameterTableItem< T >::GUIParameterTableItem (FXTable *table, unsigned pos, const std::string &name, bool dynamic, T value)
Should never be dynamic!?
Check whether the name should be stored in GUIParameterTableItemInterface
- Global NBOwnTLDef::computeUnblockedWeightedStreamNumber (const NBEdge *const e1, const NBEdge *const e2)
- There are several magic numbers; describe
- Global GUIParameterTableItem< T >::GUIParameterTableItem (FXTable *table, unsigned pos, const std::string &name, bool dynamic, ValueSource< T > *src)
Check whether the name should be stored in GUIParameterTableItemInterface
Consider using a reference to the table
- Global gSelected
- Check whether this should be replaced by a Singleton
- Global GUIDialog_GLChosenEditor::onCmdSave (FXObject *, FXSelector, void *)
- Recheck loading/saving of selections
- Global GUIDialog_GLChosenEditor::onCmdLoad (FXObject *, FXSelector, void *)
- Recheck loading/saving of selections
- Global GeoConvHelper::addProjectionOptions (OptionsCont &oc)
- let the container be retrieved
- Global PHEMCEP::_normedCepCurveFC
- describe
- Global PHEMCEP::_cepCurveFC
- describe
- Global PHEMCEP::_powerPatternPollutants
- describe
- Global MSCFModel_PWag2009::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSDevice_Vehroutes::myRouteInfos
- : describe
- Global MSDevice_SSM::flushGlobalMeasures ()
- Adapt accordingly if episode structure is implemented,
- Global MSDevice_SSM::computeGlobalMeasures ()
- Manage as episodes (BR -> braking episode, SGAP/TGAP -> car-following episode) with invariant leader, and filtering applying the corresponding thresholds.
- Class MSDevice_DriverState
: allow manual and automated type to refer to vTypeDistributions
: Provide logging facilities
- Global MSCFModel_Wiedemann::interactionGap (const MSVehicle *const, double vL) const
- evaluate signature
- Global MSCFModel_Wiedemann::stopSpeed (const MSVehicle *const veh, const double speed, double gap) const
- generic Interface, models can call for the values they need
- Global MSCFModel_W99::interactionGap (const MSVehicle *const, double vL) const
- evaluate signature
- Global MSCFModel_W99::stopSpeed (const MSVehicle *const veh, const double speed, double gap) const
- generic Interface, models can call for the values they need
- Global MSCFModel_SmartSK::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSRoutingEngine::adaptEdgeEfforts (SUMOTime currentTime)
- Describe how the weights are adapted
- Global MSCFModel_KraussOrig1::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSCFModel_Krauss::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSCFModel_Kerner::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSCFModel_IDM::interactionGap (const MSVehicle *const, double vL) const
- evaluate signature
- Global MSCFModel_IDM::stopSpeed (const MSVehicle *const veh, const double speed, double gap) const
- generic Interface, models can call for the values they need
- Global MSCFModel_IDM::interactionGap (const MSVehicle *const, double vL) const
- update interactionGap logic to IDM
- Global MSCFModel_Daniel1::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSCFModel_CC::interactionGap (const MSVehicle *const, double vL) const
- evaluate signature
- Global MSCFModel_CC::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSEdgeControl::getEdges () const
- Check: Is this secure?
- Global MSLane::saveState (OutputDevice &out)
- What about throwing an IOError?
- Global MSLane::getLeaderOnConsecutive (double dist, double seen, double speed, const MSVehicle &veh, const std::vector< MSLane * > &bestLaneConts) const
- : There are some oddities:
- what about crossing a link at red, or if a link is closed? Has a following vehicle to be regarded or not?
- Global MSLane::dictionary (const std::string &id, MSLane *lane)
why is the id given? The lane is named
make non-static
- Global MSInsertionControl::checkCandidates (SUMOTime time, const bool preCheck)
- recheck
- Class MSInsertionControl
- When a vehicle is deleted due to waiting too long or because of vaporizing, this is not reported anywhere
- Global MSFrame::checkOptions ()
probably, more things should be checked...
Rechek usage of the lane change model
- Global MSEdgeControl::gotActive (MSLane *l)
- Check for l==0?
- Global MSCFModel_CACC::interactionGap (const MSVehicle *const, double vL) const
- evaluate signature
- Global MSEdgeControl::MSEdgeControl (const std::vector< MSEdge * > &edges)
- Assure both containers are not 0
- Global MSEdgeControl::executeMovements (SUMOTime t)
- : sorting only needed to account for lane-ordering dependencies.
- Global MSEdge::getInternalFollowingEdge (const MSEdge *followerAfterInternal) const
- extension: inner junctions are not filled
- Global MSEdge::parallelLane (const MSLane *const lane, int offset, bool includeOpposite=true) const
- This method searches for the given in the container; probably, this could be done faster
- Global MSEdge::rightLane (const MSLane *const lane) const
- This method searches for the given in the container; probably, this could be done faster
- Global MSEdge::leftLane (const MSLane *const lane) const
- This method searches for the given in the container; probably, this could be done faster
- Global MSEdge::closeBuilding ()
- Has to be called after all edges were built and all connections were set...; Still, is not very nice
- Global MSSimpleDriverState::myAssumedGap
- : update each step to incorporate the assumed change given a specific speed difference
- Class OUProcess
- : check parameter admissibility in setter methods
- Global GUIVehicleControl::insertVehicleIDs (std::vector< GUIGlID > &into, bool listParking, bool listTeleporting)
- Well, what about concurrent modifications?
- Global MESegment::receive (MEVehicle *veh, SUMOTime time, bool isDepart=false, bool afterTeleport=false)
- Isn't always time == veh->getEventTime?
- Global MESegment::send (MEVehicle *veh, MESegment *next, SUMOTime time, const MSMoveReminder::Notification reason)
- Isn't always time == veh->getEventTime?
- Global MESegment::MESegment (const std::string &id, const MSEdge &parent, MESegment *next, double length, double speed, int idx, SUMOTime tauff, SUMOTime taufj, SUMOTime taujf, SUMOTime taujj, double jamThresh, bool multiQueue, bool junctionControl)
- recheck the id; using a ':' as divider is not really nice
- Global MELoop::nextSegment (MESegment *s, MEVehicle *v)
- Recheck the "quick and dirty" stuff (
- Global GUIMEVehicleControl::insertVehicleIDs (std::vector< GUIGlID > &into)
- Well, what about concurrent modifications?
- Global ROMAFrame::checkOptions ()
- probably, more things should be checked...
- Global ROMAEdge::addSuccessor (ROEdge *s, ROEdge *via=nullptr, std::string dir="")
- What about vehicle-type aware connections?
- Global libsumo::Helper::fuseLaneCoverage (std::shared_ptr< LaneCoverageInfo > aggregatedLaneCoverage, const std::shared_ptr< LaneCoverageInfo > newLaneCoverage)
- Disjunct ranges are not handled (LaneCoverageInfo definition would need to allow several intervals per lane) but the intermediate range is simply assimilated.
- Global ROJTRFrame::checkOptions ()
- probably, more things should be checked...
- Global MESegment::saveState (OutputDevice &out)
- What about throwing an IOError?
- Class GUIVehicleControl
Recheck vehicle deletion
This is partially unsecure due to concurrent access...
- Global GUITransportableControl::insertPersonIDs (std::vector< GUIGlID > &into)
- Well, what about concurrent modifications?
- Global GUITriggerBuilder::buildCalibrator (MSNet &net, const std::string &id, MSEdge *edge, MSLane *lane, double pos, const std::string &file, const std::string &outfile, const SUMOTime freq, const MSRouteProbe *probe, const std::string &vTypes)
- Is the position correct/needed
- Global GUISUMOViewParent::init (FXGLCanvas *share, GUINet &net, ViewType type)
- Check whether this could be done in the constructor
- Class GUIDialog_Breakpoints
- Use a LineReader instead of >> while reading
- Global RODUAFrame::checkOptions ()
- probably, more things should be checked...
- Global RODFRouteCont::removeIllegal (const std::vector< ROEdgeVector > &illegals)
- Not used, yet
- Global RODFFrame::checkOptions ()
- Unused currently; repair/fill
- Class Command_SaveTLSSwitchStates
- Revalidate this - as tls are not seting the link information directly ater being switched, the computed information may be delayed
- Global MSCFModel_CACC::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSCFModel_CACC::interactionGap (const MSVehicle *const, double vL) const
- update interactionGap logic
- Global MSCFModel_ACC::interactionGap (const MSVehicle *const, double vL) const
- evaluate signature
- Global MSCFModel_ACC::stopSpeed (const MSVehicle *const veh, const double speed, double gap2pred) const
- generic Interface, models can call for the values they need
- Global MSCFModel_ACC::interactionGap (const MSVehicle *const, double vL) const
- update interactionGap logic
- Global MSCFModel_ACC::MSCFModel_ACC (const MSVehicleType *vtype)
- : add attributes for myCollisionAvoidanceGainSpeed and myCollisionAvoidanceGainSpace
- Global MSCFModel::interactionGap (const MSVehicle *const veh, double vL) const
- evaluate signature
- Global MSCFModel::stopSpeed (const MSVehicle *const veh, const double speed, double gap) const =0
- generic Interface, models can call for the values they need
- Global Command_SaveTLSSwitchStates::execute (SUMOTime currentTime)
- Here, a discrete even (on switch / program change) would be appropriate
- Global MSLane::loadState (const std::vector< std::string > &vehIDs, MSVehicleControl &vc)
- What about throwing an IOError?
- Class Command_SaveTLSSwitches
- Revalidate this - as tls are not seting the link information directly ater being switched, the computed information may be delayed
- Global Command_SaveTLSProgram::execute (SUMOTime currentTime)
- Here, a discrete even (on switch / program change) would be appropriate
- Class Command_SaveTLSProgram
- Revalidate this - as tls are not seting the link information directly ater being switched, the computed information may be delayed
- Class Command_SaveTLCoupledLaneDet
- Problem: The detector may not save the last state (on simulation end)
- Class Command_SaveTLCoupledDet
- Problem: The detector may not save the last state (on simulation end)
- Class MEVehicleControl
Recheck vehicle deletion
This is partially unsecure due to concurrent access...
- Global MESegment::loadState (const std::vector< std::string > &vehIDs, MSVehicleControl &vc, const SUMOTime blockTime, const int queIdx)
What about throwing an error if something else fails (a vehicle can not be referenced)?
What about throwing an IOError?
- Global NBEdge::setJunctionPriority (const NBNode *const node, int prio)
- Maybe the edge priority whould be stored in the node
- Global NBEdgeCont::getAllNames () const
- Recheck usage, probably, filling a given vector would be better...
- Global NBEdgeCont::extract (NBDistrictCont &dc, NBEdge *edge, bool remember=false)
Recheck whether this is used at all and why
Recheck whether the district cont is needed - if districts are processed using an external tool
- Global NBEdgeCont::erase (NBDistrictCont &dc, NBEdge *edge)
- Recheck whether the district cont is needed - if districts are processed using an external tool
- Global NBEdgeCont::retrievePossiblySplit (const std::string &id, double pos) const
- Recheck usage
- Global NBEdgeCont::retrievePossiblySplit (const std::string &id, const std::string &hint, bool incoming) const
- Recheck usage
- Global NBEdgeCont::retrievePossiblySplit (const std::string &id, bool downstream) const
- Recheck usage
- Global NBEdgeCont::applyOptions (OptionsCont &oc)
- Recheck exceptions
- Global NBEdge::getJunctionPriority (const NBNode *const node) const
- Maybe the edge priority whould be stored in the node
- Global NBEdgeCont::removeUnwishedEdges (NBDistrictCont &dc)
- Recheck usage; check whether keep-edges.postload is really useful
- Global NBEdge::remapConnections (const EdgeVector &incoming)
- recheck!
- Global NBEdge::setConnection (int lane, NBEdge *destEdge, int destLane, Lane2LaneInfoType type, bool mayUseSameDestination=false, bool mayDefinitelyPass=false, bool keepClear=true, double contPos=UNSPECIFIED_CONTPOS, double visibility=UNSPECIFIED_VISIBILITY_DISTANCE, double speed=UNSPECIFIED_SPEED, const PositionVector &customShape=PositionVector::EMPTY, const bool uncontrolled=UNSPECIFIED_CONNECTION_UNCONTROLLED, SVCPermissions permissions=SVC_UNSPECIFIED)
- Check difference between "setConnection" and "addLane2LaneConnection"
- Global NBEdge::addLane2LaneConnection (int fromLane, NBEdge *dest, int toLane, Lane2LaneInfoType type, bool mayUseSameDestination=false, bool mayDefinitelyPass=false, bool keepClear=true, double contPos=UNSPECIFIED_CONTPOS, double visibility=UNSPECIFIED_VISIBILITY_DISTANCE, double speed=UNSPECIFIED_SPEED, const PositionVector &customShape=PositionVector::EMPTY, const bool uncontrolled=UNSPECIFIED_CONNECTION_UNCONTROLLED, SVCPermissions=SVC_UNSPECIFIED)
- Check difference between "setConnection" and "addLane2LaneConnection"
- Global NBEdge::setGeometry (const PositionVector &g, bool inner=false)
- Recheck usage, disallow access
- Global NBEdge::getStep () const
- Recheck usage!
- Global NBEdge::getLoadedLength () const
- consolidate use of myLength and myLoaded length
- Global NBDistrict::setCenter (const Position &pos)
- Recheck when this information is set/needed
- Global NBDistrict::getPosition () const
- Recheck when this information is set/needed
- Global NBDistrict::addSink (NBEdge *const sink, double weight)
- Consider using only one list for sinks/weights
- Global NBEdgeCont::joinSameNodeConnectingEdges (NBDistrictCont &dc, NBTrafficLightLogicCont &tlc, EdgeVector edges)
- Recheck and describe usage
- Global NBOwnTLDef::getDirectionalWeight (LinkDirection dir)
- There are several magic numbers; describe
- Global NBNodeCont::setAsTLControlled (NBNode *node, NBTrafficLightLogicCont &tlc, TrafficLightType type, std::string id="")
- Recheck exception handling
- Global NBNodeCont::joinTLS (NBTrafficLightLogicCont &tlc, double maxdist)
- Recheck exception handling
- Global NBNodeCont::guessTLs (OptionsCont &oc, NBTrafficLightLogicCont &tlc)
- Recheck exception handling
- Module netbuild
Finding isolated roads: Describe
Removing unwished edges: Recheck whether this can be done during loading - whether this option/step is really needed.
- Global NBFrame::fillOptions (bool forNetgen)
- not working for netgen
- Global NBEdgeCont::getGeneratedFrom (const std::string &id) const
- Recheck usage
- Global NBEdgeCont::recheckLaneSpread ()
- Recheck usage; check whether this is really needed and whether it works at all
- Global NBDistrict::addSource (NBEdge *const source, double weight)
- Consider using only one list for sources/weights
- Global NBEdgeCont::computeLaneShapes ()
Recheck usage
Recheck whether a visitor-pattern should be used herefor
- Global NBEdgeCont::computeEdgeShapes (double smoothElevationThreshold=-1)
Recheck usage
Recheck whether a visitor-pattern should be used herefor
- Global NBEdgeCont::appendTurnarounds (bool noTLSControlled, bool onlyDeadends, bool noGeometryLike)
- Recheck whether a visitor-pattern should be used herefor
- Global NBEdgeCont::recheckLanes ()
- Recheck whether a visitor-pattern should be used herefor
- Global NBEdgeCont::computeLanes2Edges ()
- Recheck whether a visitor-pattern should be used herefor
- Global NBEdgeCont::computeEdge2Edges (bool noLeftMovers)
- Recheck whether a visitor-pattern should be used herefor
- Global NBEdgeCont::sortOutgoingLanesConnections ()
- Recheck whether a visitor-pattern should be used herefor
- Global MSNet::writeOutput ()
- Which exceptions may occur?
- Global MSDetectorFileOutput::reset ()
- Reckeck/refactor
- Class MSBatteryExport
- consider error-handling on write (using IOError)
- Class MSAmitranTrajectories
- consider error-handling on write (using IOError)
- Global MSVehicleControl::deleteVehicle (SUMOVehicle *v, bool discard=false)
- Isn't this quite insecure?
- Global MSVehicle::planMoveInternal (const SUMOTime t, MSLeaderInfo ahead, DriveItemVector &lfLinks, double &myStopDist, std::pair< double, LinkDirection > &myNextTurn) const
- : documentation
- Class MSVehicle::DriveProcessItem
- : improve documentation
- Global MSVehicle::myAngle
- consider moving this into myState)
- Global MSVehicle::myNextTurn
- calculate during plan move
- Global MSVehicle::processNextStop (double currentVelocity)
- Describe more detailed
- Class MSEmissionExport
- consider error-handling on write (using IOError)
- Global MSNet::simulationStep ()
- Which exceptions may occur?
- Global MSNet::simulate (SUMOTime start, SUMOTime stop)
What exceptions may occure?
Recheck return value
- Global MSNet::clearAll ()
- Try to move all this to the destructor
- Global MSNet::closeBuilding (const OptionsCont &oc, MSEdgeControl *edges, MSJunctionControl *junctions, SUMORouteLoaderControl *routeLoaders, MSTLLogicControl *tlc, std::vector< SUMOTime > stateDumpTimes, std::vector< std::string > stateDumpFiles, bool hasInternalLinks, bool hasNeighs, bool lefthand, double version)
- Try to move all this to the constructor?
- Global MSLink::ApproachingVehicleInformation::willPass
- : check semantics)
- Global MSLink::setRequestInformation (int index, bool hasFoes, bool isCont, const std::vector< MSLink * > &foeLinks, const std::vector< MSLane * > &foeLanes, MSLane *internalLaneBefore=0)
- Unsecure!
- Global MSLink::getLeaderInfo (const MSVehicle *ego, double dist, std::vector< const MSPerson * > *collectBlockers=0, bool isShadowLink=false) const
- consider lateral position (depending on whether the crossing is encountered on the way in or out)
- Global MSLane::loadState (const std::vector< std::string > &vehIDs, MSVehicleControl &vc)
- What about throwing an error if something else fails (a vehicle can not be referenced)?
- Class MSMeanData_Net
- consider error-handling on write (using IOError)
- Class NBDistrict
- Recheck whether this can be somehow joined with ODDistrict
- Global MSSimpleTrafficLightLogic::getPhases ()
- Recheck!
- Class MSDelayBasedTrafficLightLogic
- Validate against the original algorithm's details.
- Global MSXMLRawOut::writeEdge (OutputDevice &of, const MSEdge &edge, SUMOTime timestep)
- MSGlobals::gOmitEmptyEdgesOnDump should not be used; rather the according option read in write
- Class MSXMLRawOut
- consider error-handling on write (using IOError)
- Class MSVTKExport
-
- Class MSStopOut
- consider error-handling on write (using IOError)
- Global MSRouteProbe::writeXMLDetectorProlog (OutputDevice &dev) const
- What happens with the additional information if several detectors use the same output?
- Class MSQueueExport
- consider error-handling on write (using IOError)
- Global AGFrame::checkOptions ()
- Not implemented yet
- Class MSMeanData_Harmonoise
- consider error-handling on write (using IOError)
- Class MSMeanData_Emissions
- consider error-handling on write (using IOError)
- Class MSMeanData_Amitran
- consider error-handling on write (using IOError)
- Class MSMeanData
- consider error-handling on write (using IOError)
- Global MSInductLoop::getVehicleIDs (const int offset) const
- recheck (especially if more than one vehicle has passed)
- Global MSInductLoop::getPassedNumber (const int offset) const
- recheck (especially if more than one vehicle has passed)
- Global MSInductLoop::getOccupancy () const
- recheck (especially if more than one vehicle has passed)
- Class MSFullExport
- consider error-handling on write (using IOError)
- Class MSFCDExport
- consider error-handling on write (using IOError)