void PortalLayout::connectFloorMeshGraphs() { for (int i = 0; i < cellProperties.size(); ++i) { FloorMesh* floorMesh = getFloorMesh(i); if (floorMesh == NULL) continue; PathGraph* pathGraph = floorMesh->getPathGraph(); if (pathGraph == NULL) continue; Vector<PathNode*> globalNodes = pathGraph->getGlobalNodes(); for (int j = 0; j < globalNodes.size(); ++j) { PathNode* node = globalNodes.get(j); int globalID = node->getGlobalGraphNodeID(); for (int k = 0; k < cellProperties.size(); ++k) { if (i != k) { FloorMesh* newMesh = getFloorMesh(k); if (newMesh != NULL) { PathGraph* newPathGraph = newMesh->getPathGraph(); if (newPathGraph != NULL) { Vector<PathNode*> newGlobalNodes = newPathGraph->getGlobalNodes(); for (int l = 0; l < newGlobalNodes.size(); ++l) { PathNode* newNode = newGlobalNodes.get(l); int newGlobalID = newNode->getGlobalGraphNodeID(); if (globalID == newGlobalID) node->addChild(newNode); } } } } } } } }
void PathGraph::connectNodes(Vector<PathEdge>& pathEdges) { for (int i = 0; i < pathEdges.size(); ++i) { PathEdge* pathEdge = &pathEdges.get(i); int from = pathEdge->getFromConnection(); int to = pathEdge->getToConnection(); PathNode* fromNode = pathNodes.get(from); PathNode* toNode = pathNodes.get(to); /*Vector<PathNode*>* path = AStarAlgorithm<PathGraph, PathNode>::search<uint32>(this, fromNode, toNode); if (path != NULL) { System::out << "found path\n"; delete path; } else { System::out << "didint find path\n"; }*/ fromNode->addChild(toNode); } }