类 | |
class | CityAreaDescription |
class | DoublyConnectedEdgeList |
简单的双连通边链表结构。它只允许添加元素,不允许删除元素。 更多... | |
class | GraphGenerator |
随机双连通边链表 DoublyConnectedEdgeList 生成器。 更多... | |
class | GraphParser |
class | Position |
class | RoadSegmentBuilder |
class | RoadSegmentDescription |
类型定义 | |
using | Graph = DoublyConnectedEdgeList |
枚举 | |
enum class | EIntersectionType { Turn90Deg , TIntersection , XIntersection } |
函数 | |
static std::pair< DoublyConnectedEdgeList::HalfEdge *, DoublyConnectedEdgeList::HalfEdge * > | FindPositionInNode (DoublyConnectedEdgeList::HalfEdge &halfEdge) |
返回一对 {prev, next},其中 prev/next 是围绕边的源节点逆时针方向的前一条/后一条边。即,边的位置介于 prev 和 next 之间 | |
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 GraphFace | INHERIT_GRAPH_TYPE_BASE_CLASS ('f') |
struct GraphNode | INHERIT_GRAPH_TYPE_BASE_CLASS ('n') |
static void | randomize (Graph &graph, const int32 seed) |
static int32 | signOf (int32 val) |
static Graph::Face * | splitFace (Graph &graph, Graph::Face &face, FRandomStream &random) |
变量 | |
static constexpr int32 | MARGIN = 6 |
在文件 GraphGenerator.cpp 第 16 行定义.
|
strong |
枚举值 | |
---|---|
Turn90Deg | |
TIntersection | |
XIntersection |
在文件 CityMapDefinitions.h 第 11 行定义.
|
static |
返回一对 {prev, next},其中 prev/next 是围绕边的源节点逆时针方向的前一条/后一条边。即,边的位置介于 prev 和 next 之间
注意:始终返回从节点指向外的半边
时间复杂度为 O(n*log(n)),其中 n 是边的源节点的边数
在文件 DoublyConnectedEdgeList.cpp 第 39 行定义.
引用了 MapGen::DoublyConnectedEdgeList::GetAngle().
被这些函数引用 MapGen::DoublyConnectedEdgeList::AddNode(), MapGen::DoublyConnectedEdgeList::ConnectNodes() , 以及 MapGen::DoublyConnectedEdgeList::SplitEdge().
|
static |
在文件 GraphParser.cpp 第 58 行定义.
引用了 MapGen::DoublyConnectedEdgeList::GetAngle(), MapGen::DoublyConnectedEdgeList::GetLeavingHalfEdge(), MapGen::DoublyConnectedEdgeList::GetNextInNode(), MapGen::DoublyConnectedEdgeList::GetNodes(), getRotation(), TIntersection, Turn90Deg , 以及 XIntersection.
被这些函数引用 MapGen::GraphParser::GraphParser().
|
static |
在文件 GraphGenerator.cpp 第 45 行定义.
引用了 getSourcePosition() , 以及 getTargetPosition().
被这些函数引用 splitFace().
|
static |
|
static |
在文件 GraphGenerator.cpp 第 51 行定义.
引用了 MapGen::DoublyConnectedEdgeList::GetHalfEdge() , 以及 MapGen::DoublyConnectedEdgeList::GetNextInFace().
被这些函数引用 splitFace().
|
static |
在文件 GraphParser.cpp 第 30 行定义.
引用了 getQuadrant() , 以及 min().
被这些函数引用 fixGraphData().
|
static |
在文件 GraphParser.cpp 第 39 行定义.
引用了 getQuadrant() , 以及 UE_LOG().
|
static |
在文件 GraphGenerator.cpp 第 33 行定义.
引用了 MapGen::DoublyConnectedEdgeList::Node::GetPosition() , 以及 MapGen::DoublyConnectedEdgeList::GetSource().
被这些函数引用 getDirection() , 以及 splitFace().
|
static |
在文件 GraphGenerator.cpp 第 39 行定义.
引用了 MapGen::DoublyConnectedEdgeList::Node::GetPosition() , 以及 MapGen::DoublyConnectedEdgeList::GetTarget().
被这些函数引用 getDirection() , 以及 splitFace().
struct GraphHalfEdge MapGen::INHERIT_GRAPH_TYPE_BASE_CLASS | ( | 'e' | ) |
在文件 GraphTypes.h 第 67 行定义.
struct GraphFace MapGen::INHERIT_GRAPH_TYPE_BASE_CLASS | ( | 'f' | ) |
在文件 GraphTypes.h 第 74 行定义.
struct GraphNode MapGen::INHERIT_GRAPH_TYPE_BASE_CLASS | ( | 'n' | ) |
在文件 GraphTypes.h 第 52 行定义.
|
static |
在文件 GraphGenerator.cpp 第 108 行定义.
引用了 MapGen::DoublyConnectedEdgeList::CountFaces(), MapGen::DoublyConnectedEdgeList::CountHalfEdges(), MapGen::DoublyConnectedEdgeList::CountNodes(), MapGen::DoublyConnectedEdgeList::GetFaces() , 以及 splitFace().
被这些函数引用 MapGen::GraphGenerator::Generate().
|
static |
|
static |
在文件 GraphGenerator.cpp 第 78 行定义.
引用了 MapGen::DoublyConnectedEdgeList::ConnectNodes(), getDirection(), getRandomOpposingEdges(), getSourcePosition(), getTargetPosition(), MARGIN, signOf() , 以及 MapGen::DoublyConnectedEdgeList::SplitEdge().
被这些函数引用 randomize().
|
staticconstexpr |
在文件 GraphGenerator.cpp 第 19 行定义.
被这些函数引用 splitFace().