1#include "Game/Map/RailGraph.hpp"
2#include "Game/Map/RailGraphEdge.hpp"
3#include "Game/Map/RailGraphIter.hpp"
4#include "Game/Map/RailGraphNode.hpp"
6RailGraph::RailGraph() {
20s32 RailGraph::addNode(
const TVec3f &rVec) {
29 nodes->_0.setInlinePS(node._0);
31 nodes->_10 = node._10;
35void RailGraph::connectNodeTwoWay(s32 a1, s32 a2,
const RailGraphEdge *pEdge) {
42 edge.clearConnectInfo();
45 edge.mDistance = PSVECDistance((
const Vec*)&mNodes[a1]._0, (
const Vec*)&mNodes[a2]._0);
49 s32 edgeIdx = _14 - 1;
50 connectEdgeToNode(a1, edgeIdx);
51 connectEdgeToNode(a2, edgeIdx);
62bool RailGraph::isValidEdge(s32 edgeIdx)
const {
65 if (edgeIdx >= 0 && edgeIdx < _14) {
72void RailGraph::connectEdgeToNode(s32 a1, s32 a2) {
80 s32 next_edge = mEdges[val].getNextEdge(a1);
82 while (next_edge != -1) {
84 next_edge = mEdges[next_edge].getNextEdge(a1);
87 mEdges[val].setNextEdge(a2, a1);