예제 #1
0
std::vector< std::pair<
std::pair< mitk::ConnectomicsNetwork::NetworkNode, mitk::ConnectomicsNetwork::NetworkNode >
, mitk::ConnectomicsNetwork::NetworkEdge > >
mitk::ConnectomicsNetwork::GetVectorOfAllEdges() const
{
  boost::graph_traits<NetworkType>::edge_iterator iterator, end;

  // sets iterator to start end end to end
  boost::tie(iterator, end) = boost::edges( m_Network );

  std::vector<
    std::pair<
    std::pair< NetworkNode, NetworkNode >
    , NetworkEdge
    >
  > vectorOfEdges;

  for ( ; iterator != end; ++iterator)
  {
    NetworkNode sourceNode, targetNode;
    NetworkEdge tempEdge;

    // the value of an iterator is a descriptor
    tempEdge = m_Network[ *iterator ];
    sourceNode = m_Network[ boost::source( *iterator, m_Network ) ];
    targetNode = m_Network[ boost::target( *iterator, m_Network ) ];

    std::pair< NetworkNode, NetworkNode > nodePair( sourceNode, targetNode );
    std::pair< std::pair< NetworkNode, NetworkNode > , NetworkEdge > edgePair( nodePair, tempEdge);
    vectorOfEdges.push_back( edgePair );
  }

  return vectorOfEdges;
}
예제 #2
0
void TakeoffQueueRouteFinder::InitPathInfo()
{
	ASSERT(m_pQueue);
	FlightGroundRouteDirectSegList segList = m_pQueue->GetTaxiSegments();
	for(int i=0;i< (int)segList.size();i++)
	{
		FlightGroundRouteDirectSegInSim * pDirSeg = segList.at(i);
		m_vNodeList.insert(pDirSeg->GetEntryNode());
		m_vNodeList.insert(pDirSeg->GetExitNode());
		NodePair nodePair(pDirSeg->GetEntryNode(), pDirSeg->GetExitNode());
		std::vector<FlightGroundRouteDirectSegInSim*> vSegs;
		vSegs.push_back(pDirSeg);
		dijRouteInQueue dijRoute;
		dijRoute.m_vRoutes = vSegs;

		if(  dijRoute.GetWeight()< m_dijRouteMap[nodePair].GetWeight())
		{	
			m_dijRouteMap[nodePair].m_vRoutes = dijRoute.m_vRoutes;
		}
  
	}
}