本文整理汇总了C++中Boundary::ymax方法的典型用法代码示例。如果您正苦于以下问题:C++ Boundary::ymax方法的具体用法?C++ Boundary::ymax怎么用?C++ Boundary::ymax使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Boundary
的用法示例。
在下文中一共展示了Boundary::ymax方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initDetectors
void
GUINet::initGUIStructures() {
// initialise detector storage for gui
initDetectors();
// initialise the tl-map
initTLMap();
// initialise edge storage for gui
GUIEdge::fill(myEdgeWrapper);
// initialise junction storage for gui
size_t size = myJunctions->size();
myJunctionWrapper.reserve(size);
const std::map<std::string, MSJunction*> &junctions = myJunctions->getMyMap();
for (std::map<std::string, MSJunction*>::const_iterator i=junctions.begin(); i!=junctions.end(); ++i) {
myJunctionWrapper.push_back(new GUIJunctionWrapper(GUIGlObjectStorage::gIDStorage, *(*i).second));
}
// build the visualization tree
float *cmin = new float[2];
float *cmax = new float[2];
for (std::vector<GUIEdge*>::iterator i=myEdgeWrapper.begin(); i!=myEdgeWrapper.end(); ++i) {
GUIEdge *edge = *i;
Boundary b;
const std::vector<MSLane*> &lanes = edge->getLanes();
for (std::vector<MSLane*>::const_iterator j=lanes.begin(); j!=lanes.end(); ++j) {
b.add((*j)->getShape().getBoxBoundary());
}
b.grow(2.);
cmin[0] = b.xmin();
cmin[1] = b.ymin();
cmax[0] = b.xmax();
cmax[1] = b.ymax();
myGrid->Insert(cmin, cmax, edge);
myBoundary.add(b);
}
for (std::vector<GUIJunctionWrapper*>::iterator i=myJunctionWrapper.begin(); i!=myJunctionWrapper.end(); ++i) {
GUIJunctionWrapper *junction = *i;
Boundary b = junction->getBoundary();
b.grow(2.);
cmin[0] = b.xmin();
cmin[1] = b.ymin();
cmax[0] = b.xmax();
cmax[1] = b.ymax();
myGrid->Insert(cmin, cmax, junction);
myBoundary.add(b);
}
const std::vector<GUIGlObject_AbstractAdd*> &a = GUIGlObject_AbstractAdd::getObjectList();
for (std::vector<GUIGlObject_AbstractAdd*>::const_iterator i=a.begin(); i!=a.end(); ++i) {
GUIGlObject_AbstractAdd *o = *i;
Boundary b = o->getCenteringBoundary();
cmin[0] = b.xmin();
cmin[1] = b.ymin();
cmax[0] = b.xmax();
cmax[1] = b.ymax();
myGrid->Insert(cmin, cmax, o);
}
delete[] cmin;
delete[] cmax;
myGrid->add(myBoundary);
}
示例2: getMainWindow
// ===========================================================================
// method definitions
// ===========================================================================
bool
TraCIServerAPI_GUI::processGet(TraCIServer& server, tcpip::Storage& inputStorage,
tcpip::Storage& outputStorage) {
// variable & id
int variable = inputStorage.readUnsignedByte();
std::string id = inputStorage.readString();
// check variable
if (variable != ID_LIST && variable != VAR_VIEW_ZOOM && variable != VAR_VIEW_OFFSET
&& variable != VAR_VIEW_SCHEMA && variable != VAR_VIEW_BOUNDARY) {
return server.writeErrorStatusCmd(CMD_GET_GUI_VARIABLE, "Get GUI Variable: unsupported variable specified", outputStorage);
}
// begin response building
tcpip::Storage tempMsg;
// response-code, variableID, objectID
tempMsg.writeUnsignedByte(RESPONSE_GET_GUI_VARIABLE);
tempMsg.writeUnsignedByte(variable);
tempMsg.writeString(id);
// process request
if (variable == ID_LIST) {
std::vector<std::string> ids = getMainWindow()->getViewIDs();
tempMsg.writeUnsignedByte(TYPE_STRINGLIST);
tempMsg.writeStringList(ids);
} else {
GUISUMOAbstractView* v = getNamedView(id);
if (v == 0) {
return server.writeErrorStatusCmd(CMD_GET_GUI_VARIABLE, "View '" + id + "' is not known", outputStorage);
}
switch (variable) {
case VAR_VIEW_ZOOM:
tempMsg.writeUnsignedByte(TYPE_DOUBLE);
tempMsg.writeDouble(v->getChanger().getZoom());
break;
case VAR_VIEW_OFFSET:
tempMsg.writeUnsignedByte(POSITION_2D);
tempMsg.writeDouble(v->getChanger().getXPos());
tempMsg.writeDouble(v->getChanger().getYPos());
break;
case VAR_VIEW_SCHEMA: {
FXComboBox& c = v->getColoringSchemesCombo();
tempMsg.writeUnsignedByte(TYPE_STRING);
tempMsg.writeString((std::string)c.getItem(c.getCurrentItem()).text());
break;
}
case VAR_VIEW_BOUNDARY: {
tempMsg.writeUnsignedByte(TYPE_BOUNDINGBOX);
Boundary b = v->getVisibleBoundary();
tempMsg.writeDouble(b.xmin());
tempMsg.writeDouble(b.ymin());
tempMsg.writeDouble(b.xmax());
tempMsg.writeDouble(b.ymax());
break;
}
default:
break;
}
}
server.writeStatusCmd(CMD_GET_GUI_VARIABLE, RTYPE_OK, "", outputStorage);
server.writeResponseWithLength(outputStorage, tempMsg);
return true;
}
示例3:
/* Test the method 'getBoxBoundary'*/
TEST_F(PositionVectorTest, test_method_getBoxBoundary) {
Boundary bound = vectorPolygon->getBoxBoundary();
EXPECT_DOUBLE_EQ(bound.xmax(), 4);
EXPECT_DOUBLE_EQ(bound.xmin(), 0);
EXPECT_DOUBLE_EQ(bound.ymax(), 4);
EXPECT_DOUBLE_EQ(bound.ymin(), 0);
}
示例4: writeAttr
void BinaryFormatter::writeAttr(std::ostream& into, const SumoXMLAttr attr, const Boundary& val) {
BinaryFormatter::writeAttrHeader(into, attr, BF_BOUNDARY);
FileHelpers::writeFloat(into, val.xmin());
FileHelpers::writeFloat(into, val.ymin());
FileHelpers::writeFloat(into, val.xmax());
FileHelpers::writeFloat(into, val.ymax());
}
示例5: Boundary
/* Test the method 'moveby'*/
TEST(Boundary, test_method_moveby) {
Boundary *bound = new Boundary(1,2,3,6);
bound->moveby(2.5,-3.5);
EXPECT_DOUBLE_EQ(bound->xmax(), 5.5);
EXPECT_DOUBLE_EQ(bound->xmin(), 3.5);
EXPECT_DOUBLE_EQ(bound->ymax(), 2.5);
EXPECT_DOUBLE_EQ(bound->ymin(), -1.5);
}
示例6:
/* Test the method 'add'*/
TEST(Boundary, test_method_add) {
Boundary bound;
bound.add(1,2);
EXPECT_DOUBLE_EQ(bound.xmax(), 1);
EXPECT_DOUBLE_EQ(bound.xmin(), 1);
EXPECT_DOUBLE_EQ(bound.ymax(), 2);
EXPECT_DOUBLE_EQ(bound.ymin(), 2);
}
示例7: Triangle
void
NBHeightMapper::addTriangle(PositionVector corners) {
Triangle* triangle = new Triangle(corners);
myTriangles.push_back(triangle);
Boundary b = corners.getBoxBoundary();
const float cmin[2] = {(float) b.xmin(), (float) b.ymin()};
const float cmax[2] = {(float) b.xmax(), (float) b.ymax()};
myRTree.Insert(cmin, cmax, triangle);
}
示例8: glRenderMode
int
GUIViewTraffic::doPaintGL(int mode, const Boundary& bound) {
// init view settings
glRenderMode(mode);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glDisable(GL_TEXTURE_2D);
glDisable(GL_ALPHA_TEST);
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
// draw decals (if not in grabbing mode)
if (!myUseToolTips) {
drawDecals();
if (myVisualizationSettings->showGrid) {
paintGLGrid();
}
}
glLineWidth(1);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
float minB[2];
float maxB[2];
minB[0] = bound.xmin();
minB[1] = bound.ymin();
maxB[0] = bound.xmax();
maxB[1] = bound.ymax();
myVisualizationSettings->scale = m2p(SUMO_const_laneWidth);
glEnable(GL_POLYGON_OFFSET_FILL);
glEnable(GL_POLYGON_OFFSET_LINE);
int hits2 = myGrid->Search(minB, maxB, *myVisualizationSettings);
//
if (myAdditionallyDrawn.size() > 0) {
glTranslated(0, 0, -.01);
GUINet::getGUIInstance()->lock();
for (std::map<GUIGlObject*, int>::iterator i = myAdditionallyDrawn.begin(); i != myAdditionallyDrawn.end(); ++i) {
(i->first)->drawGLAdditional(this, *myVisualizationSettings);
}
GUINet::getGUIInstance()->unlock();
glTranslated(0, 0, .01);
}
glPopMatrix();
/*
// draw legends
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslated(1.-.2, 1.-.5, 0.);
glScaled(.2, .5, 1.);
GUIColoringSchemesMap<GUILane> &sm = GUIViewTraffic::getLaneSchemesMap(); //!!!
sm.getColorer(myVisualizationSettings->laneEdgeMode)->drawLegend();
*/
return hits2;
}
示例9: sv
void
TraCIServer::collectObjectsInRange(int domain, const PositionVector& shape, SUMOReal range, std::set<std::string>& into) {
// build the look-up tree if not yet existing
if (myObjects.find(domain) == myObjects.end()) {
switch (domain) {
case CMD_GET_INDUCTIONLOOP_VARIABLE:
myObjects[CMD_GET_INDUCTIONLOOP_VARIABLE] = TraCIServerAPI_InductionLoop::getTree();
break;
case CMD_GET_EDGE_VARIABLE:
case CMD_GET_LANE_VARIABLE:
case CMD_GET_VEHICLE_VARIABLE:
myObjects[CMD_GET_EDGE_VARIABLE] = 0;
myObjects[CMD_GET_LANE_VARIABLE] = 0;
myObjects[CMD_GET_VEHICLE_VARIABLE] = 0;
myLaneTree = new RTree<MSLane*, MSLane, float, 2, TraCIServerAPI_Lane::StoringVisitor>(&MSLane::visit);
MSLane::fill(*myLaneTree);
break;
case CMD_GET_POI_VARIABLE:
myObjects[CMD_GET_POI_VARIABLE] = TraCIServerAPI_POI::getTree();
break;
case CMD_GET_POLYGON_VARIABLE:
myObjects[CMD_GET_POLYGON_VARIABLE] = TraCIServerAPI_Polygon::getTree();
break;
case CMD_GET_JUNCTION_VARIABLE:
myObjects[CMD_GET_JUNCTION_VARIABLE] = TraCIServerAPI_Junction::getTree();
break;
default:
break;
}
}
const Boundary b = shape.getBoxBoundary().grow(range);
const float cmin[2] = {(float) b.xmin(), (float) b.ymin()};
const float cmax[2] = {(float) b.xmax(), (float) b.ymax()};
switch (domain) {
case CMD_GET_INDUCTIONLOOP_VARIABLE:
case CMD_GET_POI_VARIABLE:
case CMD_GET_POLYGON_VARIABLE:
case CMD_GET_JUNCTION_VARIABLE: {
Named::StoringVisitor sv(into);
myObjects[domain]->Search(cmin, cmax, sv);
}
break;
case CMD_GET_EDGE_VARIABLE:
case CMD_GET_LANE_VARIABLE:
case CMD_GET_VEHICLE_VARIABLE: {
TraCIServerAPI_Lane::StoringVisitor sv(into, shape, range, domain);
myLaneTree->Search(cmin, cmax, sv);
}
break;
default:
break;
}
}
示例10: NamedRTree
NamedRTree*
TraCIServerAPI_Junction::getTree() {
NamedRTree* t = new NamedRTree();
const std::map<std::string, MSJunction*>& junctions = MSNet::getInstance()->getJunctionControl().getMyMap();
for (std::map<std::string, MSJunction*>::const_iterator i = junctions.begin(); i != junctions.end(); ++i) {
Boundary b = (*i).second->getShape().getBoxBoundary();
const float cmin[2] = {(float) b.xmin(), (float) b.ymin()};
const float cmax[2] = {(float) b.xmax(), (float) b.ymax()};
t->Insert(cmin, cmax, (*i).second);
}
return t;
}
示例11: NamedRTree
NamedRTree*
TraCIServerAPI_Polygon::getTree() {
NamedRTree* t = new NamedRTree();
ShapeContainer& shapeCont = MSNet::getInstance()->getShapeContainer();
const std::map<std::string, Polygon*>& polygons = shapeCont.getPolygons().getMyMap();
for (std::map<std::string, Polygon*>::const_iterator i = polygons.begin(); i != polygons.end(); ++i) {
Boundary b = (*i).second->getShape().getBoxBoundary();
const float cmin[2] = {(float) b.xmin(), (float) b.ymin()};
const float cmax[2] = {(float) b.xmax(), (float) b.ymax()};
t->Insert(cmin, cmax, (*i).second);
}
return t;
}
示例12:
void
NBNetBuilder::moveToOrigin(GeoConvHelper& geoConvHelper, bool lefthand) {
long before = SysUtils::getCurrentMillis();
PROGRESS_BEGIN_MESSAGE("Moving network to origin");
Boundary boundary = geoConvHelper.getConvBoundary();
const SUMOReal x = -boundary.xmin();
const SUMOReal y = -(lefthand ? boundary.ymax() : boundary.ymin());
//if (lefthand) {
// y = boundary.ymax();
//}
for (std::map<std::string, NBNode*>::const_iterator i = myNodeCont.begin(); i != myNodeCont.end(); ++i) {
(*i).second->reshiftPosition(x, y);
}
for (std::map<std::string, NBEdge*>::const_iterator i = myEdgeCont.begin(); i != myEdgeCont.end(); ++i) {
(*i).second->reshiftPosition(x, y);
}
for (std::map<std::string, NBDistrict*>::const_iterator i = myDistrictCont.begin(); i != myDistrictCont.end(); ++i) {
(*i).second->reshiftPosition(x, y);
}
geoConvHelper.moveConvertedBy(x, y);
PROGRESS_TIME_MESSAGE(before);
}
示例13: Position
Position
GeomHelper::crossPoint(const Boundary& b, const PositionVector& v) {
if (v.intersects(Position(b.xmin(), b.ymin()), Position(b.xmin(), b.ymax()))) {
return v.intersectsAtPoint(
Position(b.xmin(), b.ymin()),
Position(b.xmin(), b.ymax()));
}
if (v.intersects(Position(b.xmax(), b.ymin()), Position(b.xmax(), b.ymax()))) {
return v.intersectsAtPoint(
Position(b.xmax(), b.ymin()),
Position(b.xmax(), b.ymax()));
}
if (v.intersects(Position(b.xmin(), b.ymin()), Position(b.xmax(), b.ymin()))) {
return v.intersectsAtPoint(
Position(b.xmin(), b.ymin()),
Position(b.xmax(), b.ymin()));
}
if (v.intersects(Position(b.xmin(), b.ymax()), Position(b.xmax(), b.ymax()))) {
return v.intersectsAtPoint(
Position(b.xmin(), b.ymax()),
Position(b.xmax(), b.ymax()));
}
throw 1;
}
示例14: switch
//.........这里部分代码省略.........
break;
case VAR_TELEPORT_STARTING_VEHICLES_IDS:
writeVehicleStateIDs(server, tempMsg, MSNet::VEHICLE_STATE_STARTING_TELEPORT);
break;
case VAR_TELEPORT_ENDING_VEHICLES_NUMBER:
writeVehicleStateNumber(server, tempMsg, MSNet::VEHICLE_STATE_ENDING_TELEPORT);
break;
case VAR_TELEPORT_ENDING_VEHICLES_IDS:
writeVehicleStateIDs(server, tempMsg, MSNet::VEHICLE_STATE_ENDING_TELEPORT);
break;
case VAR_ARRIVED_VEHICLES_NUMBER:
writeVehicleStateNumber(server, tempMsg, MSNet::VEHICLE_STATE_ARRIVED);
break;
case VAR_ARRIVED_VEHICLES_IDS:
writeVehicleStateIDs(server, tempMsg, MSNet::VEHICLE_STATE_ARRIVED);
break;
case VAR_PARKING_STARTING_VEHICLES_NUMBER:
writeVehicleStateNumber(server, tempMsg, MSNet::VEHICLE_STATE_STARTING_PARKING);
break;
case VAR_PARKING_STARTING_VEHICLES_IDS:
writeVehicleStateIDs(server, tempMsg, MSNet::VEHICLE_STATE_STARTING_PARKING);
break;
case VAR_PARKING_ENDING_VEHICLES_NUMBER:
writeVehicleStateNumber(server, tempMsg, MSNet::VEHICLE_STATE_ENDING_PARKING);
break;
case VAR_PARKING_ENDING_VEHICLES_IDS:
writeVehicleStateIDs(server, tempMsg, MSNet::VEHICLE_STATE_ENDING_PARKING);
break;
case VAR_STOP_STARTING_VEHICLES_NUMBER:
writeVehicleStateNumber(server, tempMsg, MSNet::VEHICLE_STATE_STARTING_STOP);
break;
case VAR_STOP_STARTING_VEHICLES_IDS:
writeVehicleStateIDs(server, tempMsg, MSNet::VEHICLE_STATE_STARTING_STOP);
break;
case VAR_STOP_ENDING_VEHICLES_NUMBER:
writeVehicleStateNumber(server, tempMsg, MSNet::VEHICLE_STATE_ENDING_STOP);
break;
case VAR_STOP_ENDING_VEHICLES_IDS:
writeVehicleStateIDs(server, tempMsg, MSNet::VEHICLE_STATE_ENDING_STOP);
break;
case VAR_DELTA_T:
tempMsg.writeUnsignedByte(TYPE_INTEGER);
tempMsg.writeInt(DELTA_T);
break;
case VAR_NET_BOUNDING_BOX: {
tempMsg.writeUnsignedByte(TYPE_BOUNDINGBOX);
Boundary b = GeoConvHelper::getFinal().getConvBoundary();
tempMsg.writeDouble(b.xmin());
tempMsg.writeDouble(b.ymin());
tempMsg.writeDouble(b.xmax());
tempMsg.writeDouble(b.ymax());
break;
}
break;
case VAR_MIN_EXPECTED_VEHICLES:
tempMsg.writeUnsignedByte(TYPE_INTEGER);
tempMsg.writeInt(MSNet::getInstance()->getVehicleControl().getActiveVehicleCount() + MSNet::getInstance()->getInsertionControl().getPendingFlowCount());
break;
case POSITION_CONVERSION:
if (inputStorage.readUnsignedByte() != TYPE_COMPOUND) {
return server.writeErrorStatusCmd(CMD_GET_SIM_VARIABLE, "Position conversion requires a compound object.", outputStorage);
}
if (inputStorage.readInt() != 2) {
return server.writeErrorStatusCmd(CMD_GET_SIM_VARIABLE, "Position conversion requires a source position and a position type as parameter.", outputStorage);
}
if (!commandPositionConversion(server, inputStorage, tempMsg, CMD_GET_SIM_VARIABLE)) {
return false;
}
break;
case DISTANCE_REQUEST:
if (inputStorage.readUnsignedByte() != TYPE_COMPOUND) {
return server.writeErrorStatusCmd(CMD_GET_SIM_VARIABLE, "Retrieval of distance requires a compound object.", outputStorage);
}
if (inputStorage.readInt() != 3) {
return server.writeErrorStatusCmd(CMD_GET_SIM_VARIABLE, "Retrieval of distance requires two positions and a distance type as parameter.", outputStorage);
}
if (!commandDistanceRequest(server, inputStorage, tempMsg, CMD_GET_SIM_VARIABLE)) {
return false;
}
break;
case VAR_BUS_STOP_WAITING: {
std::string id;
if (!server.readTypeCheckingString(inputStorage, id)) {
return server.writeErrorStatusCmd(CMD_GET_SIM_VARIABLE, "Retrieval of persons at busstop requires a string.", outputStorage);
}
MSBusStop* s = MSNet::getInstance()->getBusStop(id);
if (s == 0) {
return server.writeErrorStatusCmd(CMD_GET_SIM_VARIABLE, "Unknown bus stop '" + id + "'.", outputStorage);
}
tempMsg.writeUnsignedByte(TYPE_INTEGER);
tempMsg.writeInt(s->getPersonNumber());
break;
}
default:
break;
}
server.writeStatusCmd(CMD_GET_SIM_VARIABLE, RTYPE_OK, "", outputStorage);
server.writeResponseWithLength(outputStorage, tempMsg);
return true;
}
示例15: ProcessError
int
main(int argc, char **argv) {
OptionsCont &oc = OptionsCont::getOptions();
oc.setApplicationDescription("Importer of polygons and POIs for the road traffic simulation SUMO.");
oc.setApplicationName("polyconvert", "SUMO polyconvert Version " + (std::string)VERSION_STRING);
int ret = 0;
try {
// initialise subsystems
XMLSubSys::init(false);
fillOptions();
OptionsIO::getOptions(true, argc, argv);
if (oc.processMetaOptions(argc < 2)) {
SystemFrame::close();
return 0;
}
MsgHandler::initOutputOptions();
// build the projection
Boundary origNetBoundary, pruningBoundary;
Position2D netOffset;
std::string proj;
PCNetProjectionLoader::loadIfSet(oc, netOffset, origNetBoundary, pruningBoundary, proj);
if (proj != "") {
if (oc.isDefault("proj")) {
oc.set("proj", proj);
}
if (oc.isDefault("x-offset-to-apply")) {
oc.set("x-offset-to-apply", toString(netOffset.x()));
}
if (oc.isDefault("y-offset-to-apply")) {
oc.set("y-offset-to-apply", toString(netOffset.y()));
}
}
#ifdef HAVE_PROJ
unsigned numProjections = oc.getBool("proj.simple") + oc.getBool("proj.utm") + oc.getBool("proj.dhdn") + (oc.getString("proj").length() > 1);
if ((oc.isSet("osm-files") || oc.isSet("dlr-navteq-poly-files") || oc.isSet("dlr-navteq-poi-files")) && numProjections == 0) {
oc.set("proj.utm", true);
}
if ((oc.isSet("dlr-navteq-poly-files") || oc.isSet("dlr-navteq-poi-files")) && oc.isDefault("proj.shift")) {
oc.set("proj.shift", std::string("5"));
}
#endif
if (!GeoConvHelper::init(oc)) {
throw ProcessError("Could not build projection!");
}
// check whether the input shall be pruned
bool prune = false;
if (oc.getBool("prune.on-net")) {
if (!oc.isSet("net")) {
throw ProcessError("In order to prune the input on the net, you have to supply a network.");
}
bool ok = true;
// !!! no proper error handling
Boundary offsets = GeomConvHelper::parseBoundaryReporting(oc.getString("prune.on-net.offsets"), "--prune.on-net.offsets", 0, ok);
pruningBoundary = Boundary(
pruningBoundary.xmin()+offsets.xmin(),
pruningBoundary.ymin()+offsets.ymin(),
pruningBoundary.xmax()+offsets.xmax(),
pruningBoundary.ymax()+offsets.ymax());
prune = true;
}
if (oc.isSet("prune.boundary")) {
bool ok = true;
// !!! no proper error handling
pruningBoundary = GeomConvHelper::parseBoundaryReporting(oc.getString("prune.boundary"), "--prune.boundary", 0, ok);
prune = true;
}
PCPolyContainer toFill(prune, pruningBoundary, oc.getStringVector("remove"));
// read in the type defaults
PCTypeMap tm;
if (oc.isSet("typemap")) {
PCTypeDefHandler handler(oc, tm);
if (!XMLSubSys::runParser(handler, oc.getString("typemap"))) {
// something failed
throw ProcessError();
}
}
// read in the data
PCLoaderXML::loadIfSet(oc, toFill, tm); // SUMO-XML
PCLoaderOSM::loadIfSet(oc, toFill, tm); // OSM-XML
PCLoaderDlrNavteq::loadIfSet(oc, toFill, tm); // Elmar-files
PCLoaderVisum::loadIfSet(oc, toFill, tm); // VISUM
PCLoaderArcView::loadIfSet(oc, toFill, tm); // shape-files
// check whether any errors occured
if (!MsgHandler::getErrorInstance()->wasInformed()) {
// no? ok, save
toFill.save(oc.getString("output"));
} else {
throw ProcessError();
}
} catch (ProcessError &e) {
if (std::string(e.what())!=std::string("Process Error") && std::string(e.what())!=std::string("")) {
MsgHandler::getErrorInstance()->inform(e.what());
}
MsgHandler::getErrorInstance()->inform("Quitting (on error).", false);
ret = 1;
#ifndef _DEBUG
//.........这里部分代码省略.........