Classes | |
class | CityAreaDescription |
class | DoublyConnectedEdgeList |
Simple doubly-connected edge list structure. More... | |
class | GraphGenerator |
Random DoublyConnectedEdgeList generator. More... | |
class | GraphParser |
class | Position |
class | RoadSegmentBuilder |
class | RoadSegmentDescription |
Typedefs | |
using | Graph = DoublyConnectedEdgeList |
Enumerations | |
enum | EIntersectionType { EIntersectionType::Turn90Deg, EIntersectionType::TIntersection, EIntersectionType::XIntersection } |
Functions | |
static std::pair< DoublyConnectedEdgeList::HalfEdge *, DoublyConnectedEdgeList::HalfEdge * > | FindPositionInNode (DoublyConnectedEdgeList::HalfEdge &halfEdge) |
Return the pair {prev, next}, where prev/next is the previous/next edge counterclockwise around edge's source node. More... | |
static void | fixGraphData (Graph &graph) |
static Graph::Position | getDirection (const Graph::HalfEdge &edge) |
static int | getQuadrant (float angle) |
static std::pair< Graph::HalfEdge *, Graph::HalfEdge * > | getRandomOpposingEdges (Graph::Face &face, FRandomStream &random) |
static float | getRotation (float angle0, float angle1) |
static float | getRotation (float angle0, float angle1, float angle2) |
static const Graph::Position & | getSourcePosition (const Graph::HalfEdge &edge) |
static const Graph::Position & | getTargetPosition (const Graph::HalfEdge &edge) |
struct GraphHalfEdge | INHERIT_GRAPH_TYPE_BASE_CLASS ('e') |
struct GraphNode | INHERIT_GRAPH_TYPE_BASE_CLASS ('n') |
struct GraphFace | INHERIT_GRAPH_TYPE_BASE_CLASS ('f') |
static void | randomize (Graph &graph, const int32 seed) |
static int32 | signOf (int32 val) |
static Graph::Face * | splitFace (Graph &graph, Graph::Face &face, FRandomStream &random) |
Variables | |
static constexpr int32 | MARGIN = 6 |
typedef DoublyConnectedEdgeList MapGen::Graph |
Definition at line 14 of file GraphGenerator.cpp.
|
strong |
Enumerator | |
---|---|
Turn90Deg | |
TIntersection | |
XIntersection |
Definition at line 11 of file CityMapDefinitions.h.
|
static |
Return the pair {prev, next}, where prev/next is the previous/next edge counterclockwise around edge's source node.
I.e., edge's position is in between prev and next.
Note: Always returns the half-edge pointing out from node.
The time complexity is O(n*log(n)) where n is the number of edges of edge's source.
Definition at line 42 of file DoublyConnectedEdgeList.cpp.
References MapGen::DoublyConnectedEdgeList::GetAngle().
Referenced by MapGen::DoublyConnectedEdgeList::AddNode(), MapGen::DoublyConnectedEdgeList::ConnectNodes(), and MapGen::DoublyConnectedEdgeList::SplitEdge().
|
static |
Definition at line 53 of file GraphParser.cpp.
References MapGen::DoublyConnectedEdgeList::GetAngle(), MapGen::DoublyConnectedEdgeList::GetLeavingHalfEdge(), MapGen::DoublyConnectedEdgeList::GetNextInNode(), MapGen::DoublyConnectedEdgeList::GetNodes(), getRotation(), TIntersection, Turn90Deg, and XIntersection.
Referenced by MapGen::GraphParser::GraphParser().
|
static |
Definition at line 34 of file GraphGenerator.cpp.
References getSourcePosition(), and getTargetPosition().
Referenced by splitFace().
|
static |
Definition at line 23 of file GraphParser.cpp.
Referenced by getRotation().
|
static |
Definition at line 38 of file GraphGenerator.cpp.
References MapGen::DoublyConnectedEdgeList::GetHalfEdge(), and MapGen::DoublyConnectedEdgeList::GetNextInFace().
Referenced by splitFace().
|
static |
Definition at line 28 of file GraphParser.cpp.
References getQuadrant(), and min().
Referenced by fixGraphData().
|
static |
Definition at line 35 of file GraphParser.cpp.
References getQuadrant(), and carla::traffic_manager::constants::MotionPlan::PI.
|
static |
Definition at line 26 of file GraphGenerator.cpp.
References MapGen::DoublyConnectedEdgeList::Node::GetPosition(), and MapGen::DoublyConnectedEdgeList::GetSource().
Referenced by getDirection(), and splitFace().
|
static |
Definition at line 30 of file GraphGenerator.cpp.
References MapGen::DoublyConnectedEdgeList::Node::GetPosition(), and MapGen::DoublyConnectedEdgeList::GetTarget().
Referenced by getDirection(), and splitFace().
struct GraphHalfEdge MapGen::INHERIT_GRAPH_TYPE_BASE_CLASS | ( | 'e' | ) |
Definition at line 56 of file GraphTypes.h.
struct GraphNode MapGen::INHERIT_GRAPH_TYPE_BASE_CLASS | ( | 'n' | ) |
Definition at line 47 of file GraphTypes.h.
struct GraphFace MapGen::INHERIT_GRAPH_TYPE_BASE_CLASS | ( | 'f' | ) |
Definition at line 61 of file GraphTypes.h.
|
static |
Definition at line 75 of file GraphGenerator.cpp.
References MapGen::DoublyConnectedEdgeList::CountFaces(), MapGen::DoublyConnectedEdgeList::CountHalfEdges(), MapGen::DoublyConnectedEdgeList::CountNodes(), MapGen::DoublyConnectedEdgeList::GetFaces(), and splitFace().
Referenced by MapGen::GraphGenerator::Generate().
|
static |
Definition at line 22 of file GraphGenerator.cpp.
Referenced by splitFace().
|
static |
Definition at line 55 of file GraphGenerator.cpp.
References MapGen::DoublyConnectedEdgeList::ConnectNodes(), getDirection(), getRandomOpposingEdges(), getSourcePosition(), getTargetPosition(), signOf(), and MapGen::DoublyConnectedEdgeList::SplitEdge().
Referenced by randomize().
|
static |
Definition at line 16 of file GraphGenerator.cpp.