61 oc.
addCallExample(
"-c <CONFIGURATION>",
"create net from given configuration");
62 oc.
addCallExample(
"--grid [grid-network options] -o <OUTPUTFILE>",
"create grid net");
63 oc.
addCallExample(
"--spider [spider-network options] -o <OUTPUTFILE>",
"create spider net");
64 oc.
addCallExample(
"--rand [random-network options] -o <OUTPUTFILE>",
"create random net");
66 oc.
setAdditionalHelpMessage(
" Either \"--grid\", \"--spider\" or \"--rand\" must be supplied.\n In dependance to these switches other options are used.");
89 oc.
addSynonyme(
"default-junction-type",
"junctions");
90 oc.
addDescription(
"default-junction-type",
"Building Defaults",
"[traffic_light|priority|right_before_left|traffic_light_right_on_red|priority_stop|allway_stop|...] Determines junction type (see wiki/Networks/PlainXML#Node_types)");
112 bool hadError =
false;
113 if (oc.
getInt(
"spider.arm-number") < 3) {
114 WRITE_ERROR(
"Spider networks need at least 3 arms.");
117 if (oc.
getInt(
"spider.circle-number") < 1) {
118 WRITE_ERROR(
"Spider networks need at least one circle.");
121 if (oc.
getFloat(
"spider.space-radius") < 10) {
122 WRITE_ERROR(
"The radius of spider networks must be at least 10m.");
131 oc.
getFloat(
"spider.space-radius"), !oc.
getBool(
"spider.omit-center"));
137 int xNo = oc.
getInt(
"grid.x-number");
138 int yNo = oc.
getInt(
"grid.y-number");
139 double xLength = oc.
getFloat(
"grid.x-length");
140 double yLength = oc.
getFloat(
"grid.y-length");
141 double attachLength = oc.
getFloat(
"grid.attach-length");
143 xNo = oc.
getInt(
"grid.number");
146 yNo = oc.
getInt(
"grid.number");
149 xLength = oc.
getFloat(
"grid.length");
152 yLength = oc.
getFloat(
"grid.length");
155 bool hadError =
false;
156 if (xNo < 1 || yNo < 1 || (attachLength == 0 && (xNo < 2 && yNo < 2))) {
157 WRITE_ERROR(
"The number of nodes must be positive and at least 2 in one direction.");
160 if (xLength < 10. || yLength < 10.) {
161 WRITE_ERROR(
"The distance between nodes must be at least 10m in both directions.");
164 if (attachLength != 0.0 && attachLength < 10.) {
165 WRITE_ERROR(
"The length of attached streets must be at least 10m.");
178 neighborDist.
add(1, oc.
getFloat(
"rand.neighbor-dist1"));
179 neighborDist.
add(2, oc.
getFloat(
"rand.neighbor-dist2"));
180 neighborDist.
add(3, oc.
getFloat(
"rand.neighbor-dist3"));
181 neighborDist.
add(4, oc.
getFloat(
"rand.neighbor-dist4"));
182 neighborDist.
add(5, oc.
getFloat(
"rand.neighbor-dist5"));
183 neighborDist.
add(6, oc.
getFloat(
"rand.neighbor-dist6"));
190 oc.
getInt(
"rand.num-tries"),
203 oc.
setApplicationName(
"netgenerate",
"Eclipse SUMO netgenerate Version " VERSION_STRING);
226 if (oc.
isSet(
"type-files")) {
244 if (std::string(e.what()) != std::string(
"Process Error") && std::string(e.what()) != std::string(
"")) {
250 }
catch (
const std::exception& e) {
251 if (std::string(e.what()) != std::string(
"")) {
263 std::cout <<
"Success." << std::endl;
#define WRITE_MESSAGE(msg)
A class that stores a 2D geometrical boundary.
static bool init(OptionsCont &oc)
Initialises the processing and the final instance using the given options.
static MsgHandler * getErrorInstance()
Returns the instance to add errors to.
virtual void inform(std::string msg, bool addType=true)
adds a new error to the list
static void initOutputOptions()
init output options
int size() const
Returns the number of edges.
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid.
static void fillOptions(bool forNetgen)
Inserts options used by the network converter.
Instance responsible for building networks.
NBTypeCont & getTypeCont()
Returns a reference to the type container.
NBEdgeCont & getEdgeCont()
void applyOptions(OptionsCont &oc)
Initialises the storage by applying given options.
void compute(OptionsCont &oc, const std::set< std::string > &explicitTurnarounds=std::set< std::string >(), bool mayAddOrRemove=true)
Performs the network building steps.
NBNodeCont & getNodeCont()
Returns a reference to the node container.
int size() const
Returns the number of nodes stored in this container.
static void fillOptions()
Inserts options used by the network generator.
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid.
The class storing the generated network.
void toNB() const
Converts the stored network into its netbuilder-representation.
void createSpiderWeb(int numRadDiv, int numCircles, double spaceRad, bool hasCenter)
Creates a spider network.
void createChequerBoard(int numX, int numY, double spaceX, double spaceY, double attachLength)
Creates a grid network.
A class that builds random network using an algorithm by Markus Hartinger.
void createNet(int numNodes, bool gridMode)
Builds a NGNet using the set values.
static bool load(SUMOSAXHandler *handler, const std::vector< std::string > &files, const std::string &type, const bool stringParse=false)
Importer for edge type information stored in XML.
static void writeNetwork(const OptionsCont &oc, NBNetBuilder &nb)
Writes the network stored in the given net builder.
static void fillOptions(bool forNetgen)
Inserts options used by the network writer.
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid.
A storage for options typed value containers)
void setAdditionalHelpMessage(const std::string &add)
Sets an additional message to be printed at the begin of the help screen.
void addDescription(const std::string &name, const std::string &subtopic, const std::string &description)
Adds a description for an option.
void doRegister(const std::string &name, Option *v)
Adds an option under the given name.
bool isSet(const std::string &name, bool failOnNonExistant=true) const
Returns the information whether the named option is set.
double getFloat(const std::string &name) const
Returns the double-value of the named option (only for Option_Float)
int getInt(const std::string &name) const
Returns the int-value of the named option (only for Option_Integer)
void setApplicationName(const std::string &appName, const std::string &fullName)
Sets the application name.
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
void addSynonyme(const std::string &name1, const std::string &name2, bool isDeprecated=false)
Adds a synonyme for an options name (any order)
bool isDefault(const std::string &name) const
Returns the information whether the named option has still the default value.
void setApplicationDescription(const std::string &appDesc)
Sets the application description.
void addOptionSubTopic(const std::string &topic)
Adds an option subtopic.
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
const StringVector & getStringVector(const std::string &name) const
Returns the list of string-value of the named option (only for Option_StringVector)
void resetWritable()
Resets all options to be writeable.
static OptionsCont & getOptions()
Retrieves the options.
bool processMetaOptions(bool missingOptions)
Checks for help and configuration output, returns whether we should exit.
void addCallExample(const std::string &example, const std::string &desc)
Add a call example.
static void setArgs(int argc, char **argv)
Stores the command line arguments for later parsing.
static void getOptions(const bool commandLineOnly=false)
Parses the command line arguments and loads the configuration.
A point in 2D or 3D with translation and scaling methods.
static void initRandGlobal(std::mt19937 *which=nullptr)
Reads the given random number options and initialises the random number generator in accordance.
static void insertRandOptions()
Initialises the given options container with random number options.
bool add(T val, double prob, bool checkDuplicates=true)
Adds a value with an assigned probability to the distribution.
static void close()
Closes all of an applications subsystems.
static void addConfigurationOptions(OptionsCont &oc)
Adds configuration options to the given container.
static void addReportOptions(OptionsCont &oc)
Adds reporting options to the given container.
static bool checkOptions()
checks shared options and sets StdDefs
static void setValidation(const std::string &validationScheme, const std::string &netValidationScheme, const std::string &routeValidationScheme)
Enables or disables validation.
static void init()
Initialises the xml-subsystem.
int main(int argc, char **argv)
NGNet * buildNetwork(NBNetBuilder &nb)