Commit Graph

57 Commits

Author SHA1 Message Date
Patrick Niklaus
88db0ba90c Simplfy name change announcement 2016-03-18 18:16:20 +01:00
Moritz Kobitzsch
1a4f6cba7a restructured to only return valid turns to the outside + cleanup 2016-03-18 17:41:55 +01:00
Moritz Kobitzsch
ee5020baf3 less new names, forks consider road classes, api clean-up 2016-03-18 17:41:55 +01:00
Moritz Kobitzsch
7b755eea54 implement basic turn handling 2016-03-18 17:41:55 +01:00
Daniel Patterson
f6de8f3444 Enables the use of multiple segment-speed-files on the osrm-contract
command line, and exposes the file name used for each edge in the debug
tiles.
2016-03-18 17:33:05 +01:00
Moritz Kobitzsch
9fb86bcac5 report depart/arrive in addition to waypoint 2016-03-18 17:33:05 +01:00
Daniel J. Hofmann
810c0f3b3e Adds the license preamble for all publicly installed eaders, closes #2036 2016-03-18 17:33:05 +01:00
Moritz Kobitzsch
a95f4a8816 encapsulated into class 2016-03-18 17:33:04 +01:00
Moritz Kobitzsch
94a2072533 improving fork handling on three-way turns 2016-03-18 17:33:04 +01:00
Moritz Kobitzsch
431a8cb5c1 fixes assignment for basic turn types / invalid ramp assignment 2016-03-18 17:33:04 +01:00
Patrick Niklaus
c8cd89355c Don't pass shared_ptr down to functions
"Don’t pass a smart pointer as a function parameter unless you want to
use or manipulate the smart pointer itself, such as to share or transfer
ownership."

Source:
http://herbsutter.com/2013/06/05/gotw-91-solution-smart-pointer-parameters/
2016-03-18 17:33:04 +01:00
Daniel J. Hofmann
50cf0cf84f Properly includes needed headers in turn analysis interface 2016-03-18 17:33:04 +01:00
Daniel J. Hofmann
da298f0f28 Const-correctnes for compressed geometry iterator 2016-03-18 17:33:04 +01:00
Daniel J. Hofmann
d5a3d817aa Use stdint and using type-alias for discrete angle 2016-03-18 17:33:03 +01:00
Daniel J. Hofmann
5f4424482e Hide functional road classification based on tags in implementation file 2016-03-18 17:33:03 +01:00
Daniel J. Hofmann
9d0da926e5 Inline initialize functional road classification hash table 2016-03-18 17:33:03 +01:00
Daniel J. Hofmann
512dd9a5e2 256 functional road classes should be enough 2016-03-18 17:33:03 +01:00
Daniel J. Hofmann
6856f00074 Runs scripts/format.sh 2016-03-18 17:33:03 +01:00
Moritz Kobitzsch
6c5822fb45 start of four way turns 2016-03-18 17:33:03 +01:00
Moritz Kobitzsch
779ddeeb69 improved fork handling 2016-03-18 17:33:03 +01:00
Moritz Kobitzsch
fecd3d27ac bugfixing/classification 2016-03-18 17:33:02 +01:00
Patrick Niklaus
0724c4a2d8 Big Restructuring / Cleanup 2016-03-18 17:33:02 +01:00
Moritz Kobitzsch
cba4baf920 starting on conflict resolution 2016-03-18 17:33:02 +01:00
Moritz Kobitzsch
f713408d46 structural changes, motorway handling 2016-03-18 17:33:02 +01:00
Moritz Kobitzsch
80843ecc89 enter and exit roundabout feature - currently not showing turn 2016-03-18 17:33:02 +01:00
Moritz Kobitzsch
aced4ebe56 migrated out of edge based graph factory 2016-03-18 17:33:02 +01:00
Moritz Kobitzsch
8753590f59 advanced guidance on 5.0 2016-03-18 17:33:02 +01:00
Patrick Niklaus
fd6abcfde3 Fix travel mode passing from profiles up to the API 2016-03-18 17:33:01 +01:00
Patrick Niklaus
fed2a67e42 First round of lat,lng -> lng,lat switcheroo 2016-03-18 17:33:00 +01:00
Patrick Niklaus
2f3b4373f9 Also exclude the compressed flag from the data format 2016-03-18 17:30:13 +01:00
Daniel J. Hofmann
655dd2277c Eliminate extra semicola 2016-03-15 11:47:57 +01:00
Patrick Niklaus
a98cc51ac2 Fix up some PR comments 2016-03-04 16:13:30 +01:00
Daniel Patterson
49441fe204 Make forward/reverse weight/offset calculated at query time,
rather than being cached in the StaticRTree.  This means we
can freely apply traffic data and not have stale values lying
around.  It reduces the size of the RTree on disk, at the expense
of some additional data in RAM.
2016-03-03 10:49:12 -08:00
Daniel Patterson
56e35e8ef2 Remove GeoJSON based debugging output, we can now generate vector tiles with roughly the same data on-the-fly. 2016-03-01 23:51:25 +01:00
Daniel J. Hofmann
04765d82ba Fixes undefined behavior via One-Definition-Rule violations
Heuristic

    find . -type f -name '*.hpp' |xargs ag -B 1 '^([^inline][a-zA-Z0-9_&\*::])+ (.*)\((.*)\)$'
2016-02-26 06:39:52 +01:00
Moritz Kobitzsch
f14352f494 modify turn angles and instructions 2016-02-15 20:13:55 +01:00
Daniel J. Hofmann
978b70c998 Adds a comment as to why the char to typed enum class transformation is not possible 2016-02-12 15:46:24 -08:00
Daniel J. Hofmann
64b36807d3 Transforms osrm_exception to exception 2016-02-12 15:46:24 -08:00
Daniel J. Hofmann
6cd55e535c Removes potentially dangerous and misleading lat, lon subscript oeprator 2016-02-11 02:37:33 +01:00
Daniel J. Hofmann
a48f02e0da Takes care of proper special member generation globally, fixes #1689
Phew, a lot of classes were affected by this. The rationale for the
changes are as follows:

- When a type X declares any constructor, the default constructor is
  not declared, so there is no need for X() = delete there. In fact,
  there is brutal difference between those two: deleted members
  participate in overload resolution, but not-declared members do not!

- When a type X wants to be non-copyable (e.g. to be only movable, like
  threads, unique_ptrs, and so on), you can either do it by inheriting
  from boost::noncopyable (the old way), or better declare both (!) the
  copy constructor _and_ the copy assignment operator as deleted:

      X(X const&) = delete;
      X& operator=(X const&) = delete;

  We had tons of types with deleted copy constructors that were lacking
  a corresponding deleted copy assignment operator, making them still
  copyable and you wouldn't even notice (read: scary)!

References:

- http://accu.org/content/conf2014/Howard_Hinnant_Accu_2014.pdf
- http://www.boost.org/doc/libs/master/libs/core/doc/html/core/noncopyable.html

Note: I know, I'm quoting Hinnant's extraordinary slides a lot, but
getting the sematic right here is so incredibly important.
2016-01-27 17:25:30 +01:00
Daniel J. Hofmann
d391df52ba Be kind to the optimizer, pass coordinates by value (just two ints) 2016-01-26 22:57:02 +01:00
Daniel J. Hofmann
0fcca04150 TU-local STXXL comparator for OSMNodeIDs, needs {min,max}_value
Can not use std::less<>{} because of this.
2016-01-26 22:57:02 +01:00
Patrick Niklaus
439eb9da3d Create public facing libraries for extractor, contractor and datastore
New libraries libosrm_extract, libosrm_contract, libosrm_store
2016-01-21 06:47:34 +01:00
Moritz Kobitzsch
1c1bfd7541 Fix routing when start and target are on the same segment
Fixes issue #1864. Given the simple set-up:

a --> b --> c
^-----------|

This would translate into an edge based graph (ab) -> (bc),
(bc) -> (ca), (ca) -> (ab).

Starting at the end of the one-way street (ab) and going to
the beginning, the query has to find a self-loop within the
graph (ab) -> (bc) -> (ca) -> (ab), as both nodes map to the
same segment (ab).
2016-01-19 23:26:19 +01:00
Daniel J. Hofmann
6e717bfd30 Switch to const constexpr for header constants (3.5/3 internal linkage) 2016-01-19 17:42:49 +01:00
Daniel J. Hofmann
4b0e1a4b19 Run modernizer 2016-01-18 16:54:30 +01:00
Daniel J. Hofmann
c93ca02fb8 Rips out dead code from the container.hpp and creates for_each_pai.hpp
I added two TODOs that I would like to address in the future.
2016-01-11 20:14:35 +01:00
Daniel J. Hofmann
4813488f84 Split import_edge.hpp: node_based_edge.hpp, edge_based_edge.hpp closes #1604 2016-01-11 20:11:44 +01:00
Daniel J. Hofmann
fc292cc2d8 No need for extra translation units (for edge data structures) 2016-01-11 20:11:44 +01:00
Daniel J. Hofmann
f65dd63210 Make TurnInstructionsClass functions free standing functions 2016-01-09 19:55:22 +01:00