Annotated topology reader now reads coordinates
diff --git a/examples/abilene-topology.txt b/examples/abilene-topology.txt
index 0eeb3f7..5063137 100644
--- a/examples/abilene-topology.txt
+++ b/examples/abilene-topology.txt
@@ -1,16 +1,16 @@
 12  15
-1   2   9920000 1   1   100 100
-2   5   9920000 1176    1   100 100
-2   6   2480000 587 1   100 100
-2   12  9920000 846 1   100 100
-3   6   9920000 260 1   100 100
-3   9   9920000 700 1   100 100
-4   7   9920000 639 1   100 100
-4   10  9920000 1295 1   100 100
-4   11  9920000 2095    1   100 100
-5   7   9920000 902 1   100 100
-5   8   9920000 1893 1   100 100
-6   7   9920000 548 1   100 100
-8   10  9920000 366 1   100 100
-9   12  9920000 233 1   100 100
-10  11  9920000 861 1   100 100
+1   2   9920000 1   1   100 100 116 34  116 34
+2   5   9920000 1176    1   100 100 116 34  104 30
+2   6   2480000 587 1   100 100 116 34  114 40
+2   12  9920000 846 1   100 100 116 34  123 39
+3   6   9920000 260 1   100 100 112 42  114 40
+3   9   9920000 700 1   100 100 112 42  126 41
+4   7   9920000 639 1   100 100 95  41  103 39
+4   10  9920000 1295 1   100 100    95  41  78  37
+4   11  9920000 2095    1   100 100 95  41  78  48
+5   7   9920000 902 1   100 100 104 30  103 39
+5   8   9920000 1893 1   100 100    104 30  82  34
+6   7   9920000 548 1   100 100 114 40  103 39
+8   10  9920000 366 1   100 100 82  34  78  37
+9   12  9920000 233 1   100 100 126 41  123 39
+10  11  9920000 861 1   100 100 78  37  78  48
diff --git a/model/annotated-topology-reader.cc b/model/annotated-topology-reader.cc
index 1c66523..d8bbc7e 100644
--- a/model/annotated-topology-reader.cc
+++ b/model/annotated-topology-reader.cc
@@ -146,7 +146,31 @@
             {
                 link.SetAttribute ("QueueSizeNode2", linkAttr);
             }
-                
+            
+            lineBuffer >> linkAttr;
+            if ( !linkAttr.empty () )
+            {
+                link.SetAttribute ("X1", linkAttr);
+            }
+            
+            lineBuffer >> linkAttr;
+            if ( !linkAttr.empty () )
+            {
+                link.SetAttribute ("Y1", linkAttr);
+            }
+            
+            lineBuffer >> linkAttr;
+            if ( !linkAttr.empty () )
+            {
+                link.SetAttribute ("X2", linkAttr);
+            }
+            
+            lineBuffer >> linkAttr;
+            if ( !linkAttr.empty () )
+            {
+                link.SetAttribute ("Y2", linkAttr);
+            }
+
             AddLink (link);
                 
             linksNumber++;
@@ -447,6 +471,19 @@
     int i = 0;
     for ( iter2 = this->LinksBegin (); iter2 != this->LinksEnd (); iter2++, i++ )
     {
+        std::string x1str = iter2->GetAttribute("X1");
+        uint16_t x1 = atoi(x1str.c_str());
+        
+        std::string x2str = iter2->GetAttribute("X2");
+        uint16_t x2 = atoi(x2str.c_str());
+        
+        
+        std::string y1str = iter2->GetAttribute("Y1");
+        uint16_t y1 = atoi(y1str.c_str());
+        
+        std::string y2str = iter2->GetAttribute("Y2");
+        uint16_t y2 = atoi(y2str.c_str());
+        
         NodeContainer twoNodes = nc[i];
         
         Ptr<Node> nd = twoNodes.Get(0);
@@ -464,8 +501,8 @@
             nd->AggregateObject (loc);
         }
         
-        x = randX.GetValue();
-        y = randY.GetValue();
+        x = x1; //randX.GetValue();
+        y = y1; //randY.GetValue();
         NS_LOG_INFO("X = "<<x <<"Y = "<<y);
         Vector locVec (x, y, 0);
         loc->SetPosition (locVec);
@@ -478,55 +515,12 @@
             nd2->AggregateObject (loc2);
         }
         
-        x = randX.GetValue();
-        y = randY.GetValue();
+        x = x2; //randX.GetValue();
+        y = y2; //randY.GetValue();
         NS_LOG_INFO("X = "<<x <<"Y = "<<y);
         Vector locVec2 (x, y, 0);
         loc2->SetPosition (locVec2);
     }
-    /*
-        double xDist; 
-        double yDist; 
-        if (lrx > ulx)
-        {
-            xDist = lrx - ulx;
-        }
-        else
-        {
-            xDist = ulx - lrx;
-        }
-        if (lry > uly)
-        {
-            yDist = lry - uly;
-        }
-        else
-        {
-            yDist = uly - lry;
-        }
-        double xAdder = xDist / m_xSize;
-        double yAdder = yDist / m_ySize;
-        double yLoc = yDist / 2;
-        for (uint32_t i = 0; i < m_ySize; ++i)
-        {
-            double xLoc = xDist / 2;
-            for (uint32_t j = 0; j < m_xSize; ++j)
-            {
-                Ptr<Node> node = GetNode (i, j);
-                Ptr<ConstantPositionMobilityModel> loc = node->GetObject<ConstantPositionMobilityModel> ();
-                if (loc ==0)
-                {
-                    loc = CreateObject<ConstantPositionMobilityModel> ();
-                    node->AggregateObject (loc);
-                }
-                Vector locVec (xLoc, yLoc, 0);
-                loc->SetPosition (locVec);
-                
-                xLoc += xAdder;
-            }
-            yLoc += yAdder;
-        }
-    }
-*/
 }
 }
 
diff --git a/model/annotated-topology-reader.h b/model/annotated-topology-reader.h
index ca0bc48..174330a 100644
--- a/model/annotated-topology-reader.h
+++ b/model/annotated-topology-reader.h
@@ -54,7 +54,7 @@
 * \brief This class reads annotated topology and apply settings to the corresponding nodes and links
 * Input File Format
 * 1st line is     NumberOfNodes    TAB     NumberofLinks
-* Nth line is     NodeID1  TAB    NodeID2   TAB  DataRateKBPS TAB OSPF   TAB    DelayMiliseconds   TAB   QueueSizeInPacketsNode1     TAB    QueueSizeInPacketsNode2 
+* Nth line is     NodeID1  TAB    NodeID2   TAB  DataRateKBPS TAB OSPF   TAB    DelayMiliseconds   TAB   QueueSizeInPacketsNode1     TAB    QueueSizeInPacketsNode2    TAB    X-coordinate-node1     TAB    Y-coordinate-node1  TAB    X-coordinate-node2     TAB    Y-coordinate-node2
 *
 */
 class AnnotatedTopologyReader : public TopologyReader