diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui
index ed21be23c70b5dc51a4d957f2e121dd0dbe2114b..3251ae8c48a582eecf6c58ee9b8742ed11cec2fa 100644
--- a/forms/mainwindow.ui
+++ b/forms/mainwindow.ui
@@ -539,7 +539,7 @@ border-color: rgb(255, 255, 255);</string>
      <x>0</x>
      <y>0</y>
      <width>450</width>
-     <height>22</height>
+     <height>25</height>
     </rect>
    </property>
    <widget class="QMenu" name="menuFile">
@@ -631,6 +631,7 @@ border-color: rgb(255, 255, 255);</string>
     <addaction name="actionShow_Door_Caption"/>
     <addaction name="actionShow_Obstacles"/>
     <addaction name="actionShow_Navigation_Lines"/>
+    <addaction name="actionShow_Gradient_Field"/>
     <addaction name="actionShow_Geometry_Captions"/>
     <addaction name="actionFirst_Group"/>
     <addaction name="separator"/>
@@ -1337,6 +1338,17 @@ border-color: rgb(255, 255, 255);</string>
     <string>Obstacles Color</string>
    </property>
   </action>
+  <action name="actionShow_Gradient_Field">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="checked">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>Show Gradient Field</string>
+   </property>
+  </action>
  </widget>
  <resources>
   <include location="icons.qrc"/>
@@ -2222,6 +2234,22 @@ border-color: rgb(255, 255, 255);</string>
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>actionShow_Gradient_Field</sender>
+   <signal>triggered()</signal>
+   <receiver>mainwindow</receiver>
+   <slot>slotShowHideGradientField()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>224</x>
+     <y>199</y>
+    </hint>
+   </hints>
+  </connection>
  </connections>
  <slots>
   <slot>slotHelpAbout()</slot>
@@ -2288,5 +2316,6 @@ border-color: rgb(255, 255, 255);</string>
   <slot>slotShowGeometryStructure()</slot>
   <slot>slotChangeObstacleColor()</slot>
   <slot>slotShowHideObstacles()</slot>
+  <slot>slotShowHideGradientField()</slot>
  </slots>
 </ui>
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index a417cce1e8cf3a1b8521aa9fadd11220ade06e92..822aa4f7031d0d281bf6a22b77190d678f4fb6ed 100755
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -687,6 +687,14 @@ bool MainWindow::addPedestrianGroup(int groupID,QString fileName)
         //return false;
     }
 
+    //check if it is vtrk file containinf gradient
+    if(fileName.endsWith(".vtk",Qt::CaseInsensitive))
+    {
+        if (false==SaxParser::ParseGradientFieldVTK(fileName,geometry))
+            return false;
+
+    }
+
     QFile file(fileName);
     if (!file.open(QIODevice::ReadOnly)) {
         Debug::Error("could not open the File: ",fileName.toStdString().c_str());
@@ -729,8 +737,15 @@ bool MainWindow::addPedestrianGroup(int groupID,QString fileName)
         reader.parse(source);
         file.close();
     }
+    //parsing the vtk file
+//    else if(fileName.endsWith(".vtk",Qt::CaseInsensitive))
+//    {
+//        if (false==SaxParser::ParseGradientFieldVTK(fileName,geometry))
+//            return false;
+
+//    }
     // try to parse the txt file
-    else
+    else if(fileName.endsWith(".txt",Qt::CaseInsensitive))
     {
         if(false==SaxParser::ParseTxtFormat(fileName, dataset,&frameRate))
             return false;
@@ -947,35 +962,6 @@ void MainWindow::slotControlSequence(const char * sex)
         extern_recording_enable = false;
         ui.BtRecord->setToolTip("Start Recording");
         labelRecording->setText(" rec: off ");
-
-        //Debug::Messages("stack empty" << endl;
-        //		Debug::Messages("stoping the playback and recording if any" << endl;
-        //		//extern_recording_enable = false;
-        //		extern_shutdown_visual_thread=true;
-        //		waitForVisioThread();
-        //
-        //		//isPlaying = true; //very important
-        //		//isPaused = true;
-        //		//extern_is_pause = true;
-        //
-        //
-        //		extern_screen_contrast=1;
-        //		extern_is_pause = false;
-        //		isPlaying=false;
-        //		isPaused=false;
-
-        //pause the system
-        //		QIcon icon1;
-        //		icon1.addPixmap(QPixmap(QString::fromUtf8(
-        //				":/new/iconsS/icons/Play1Hot.png")), QIcon::Normal, QIcon::Off);
-        //		ui.BtStart->setIcon(icon1);
-        //		labelCurrentAction->setText("paused");
-        //		extern_is_pause = true;
-        //		isPlaying = true; //very important, cuz the visio was running
-        //		isPaused = true;
-        //		extern_update_step=1;
-
-
     } else if (str.compare("CONTROL_RESET") == 0) {
         Debug::Messages("resetting all");
         isPlaying = false;
@@ -1703,7 +1689,13 @@ void MainWindow::loadAllSettings()
         slotShowOnScreenInfos();
         qDebug()<<"show OnScreensInfos: "<<checked;
     }
-
+    if (settings.contains("view/showGradientField"))
+    {
+        bool checked = settings.value("view/showGradientField").toBool();
+        ui.actionShow_Gradient_Field->setChecked(checked);
+        slotShowHideGradientField();
+        qDebug()<<"show GradientField: "<<checked;
+    }
     //options
     if (settings.contains("options/rememberSettings"))
     {
@@ -1774,7 +1766,8 @@ void MainWindow::saveAllSettings()
     settings.setValue("view/showGeoCaptions", ui.actionShow_Geometry_Captions->isChecked());
     settings.setValue("view/showNavLines", ui.actionShow_Navigation_Lines->isChecked());
     settings.setValue("view/showOnScreensInfos", ui.actionShow_Onscreen_Infos->isChecked());
-     settings.setValue("view/showObstacles", ui.actionShow_Obstacles->isChecked());
+    settings.setValue("view/showObstacles", ui.actionShow_Obstacles->isChecked());
+    settings.setValue("view/showGradientField", ui.actionShow_Gradient_Field->isChecked());
 
     //options: the color settings are saved in the methods where they are used.
     settings.setValue("options/listeningPort", SystemSettings::getListeningPort());
@@ -1876,6 +1869,13 @@ void MainWindow::slotShowHideObstacles()
     _visualisationThread->showObstacle(value);
     SystemSettings::setShowObstacles(value);
 }
+void MainWindow::slotShowHideGradientField()
+{
+    bool value=ui.actionShow_Gradient_Field->isChecked();
+    _visualisationThread->showGradientField(value);
+    SystemSettings::setShowGradientField(value);
+}
+
 void MainWindow::slotShowGeometryStructure()
 {
     //QListView list;
@@ -1904,9 +1904,9 @@ void MainWindow::slotOnGeometryItemChanged( QStandardItem *item)
     {
         for(int i=0;i<item->rowCount();i++)
         {
-                 QStandardItem *child=   item->child(i);
-                 child->setCheckState(item->checkState());
-                 slotOnGeometryItemChanged(child);
+            QStandardItem *child=   item->child(i);
+            child->setCheckState(item->checkState());
+            slotOnGeometryItemChanged(child);
         }
 
     }
diff --git a/src/MainWindow.h b/src/MainWindow.h
index 21240f6707dfe1d32a2fb2f8412c4a73c74b212d..adaff46836991cd4862d46720a9621e204f39d06 100644
--- a/src/MainWindow.h
+++ b/src/MainWindow.h
@@ -174,6 +174,8 @@ public Q_SLOTS:
     void slotShowHideGeometryCaptions();
     /// show hide the obstacles
     void slotShowHideObstacles();
+    /// show/hide the gradient field
+    void slotShowHideGradientField();
 
     /// show pedestrians only without trail
     void slotShowPedestrianOnly();
diff --git a/src/SaxParser.cpp b/src/SaxParser.cpp
index 3d5f9baaec5e6a492363534c49fdc79abbb7c13a..6e10cb49b1ee875322d4b783a1e31f6b8cbd60bc 100644
--- a/src/SaxParser.cpp
+++ b/src/SaxParser.cpp
@@ -65,6 +65,14 @@
 #include <vtkAssembly.h>
 #include <vtkProperty.h>
 #include <vtkTriangleFilter.h>
+#include <vtkGenericDataObjectReader.h>
+#include <vtkPolyDataReader.h>
+#include <vtkStructuredGridReader.h>
+#include <vtkStructuredPointsReader.h>
+#include <vtkImageDataGeometryFilter.h>
+
+
+
 
 #define VTK_CREATE(type, name) \
     vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
@@ -259,6 +267,13 @@ bool SaxParser::startElement(const QString & /* namespaceURI */,
         //_geometry = std::shared_ptr<FacilityGeometry>(new FacilityGeometry("No name"));
         //_geoFactory.AddElement(0,0,_geometry);
 
+    }else if (qName == "gradient_field"){
+        for(int i=0; i<at.length(); i++) {
+            if(at.localName(i)=="filename") {
+                ParseGradientFieldVTK(at.value(i),_geoFactory);
+            }
+        }
+
     }
     else if (qName == "wall") {
         _parsingWalls=true;
@@ -582,6 +597,7 @@ bool SaxParser::endElement(const QString & /* namespaceURI */,
     } else if (qName == "shape") {
         _dataset.setInitialHeights(_initialPedestriansHeights);
         _dataset.setInitialColors(_initialPedestriansColors);
+    } else if (qName == "gradient_field") {
     }
     _currentText.clear();
     return true;
@@ -635,8 +651,6 @@ bool SaxParser::parseGeometryJPS(QString fileName, GeometryFactory& geoFac)
     if(!building->InitGeometry())
         return false; // create the polygons
 
-
-
     for(auto&& itr_room: building->GetAllRooms())
     {
         for(auto&& itr_subroom: itr_room.second->GetAllSubRooms())
@@ -780,8 +794,6 @@ bool SaxParser::parseGeometryJPS(QString fileName, GeometryFactory& geoFac)
     return true;
 }
 
-
-
 /// provided for convenience and will be removed in the next version
 
 void SaxParser::parseGeometryTRAV(QString content, GeometryFactory& geoFac,QDomNode geo)
@@ -1205,7 +1217,7 @@ void SaxParser::parseGeometryXMLV04(QString filename, GeometryFactory& geoFac)
     geoFac.AddElement(0,0,geo);
 }
 
-bool SaxParser::ParseTxtFormat(QString fileName, SyncData* dataset, double * fps)
+bool SaxParser::ParseTxtFormat(const QString &fileName, SyncData* dataset, double * fps)
 {
     //fileName="data/trajectories/1000_1_0_0_1_1.txt";
     //fileName="data/trajectories/50_3_0_1_1_2.txt";
@@ -1360,6 +1372,31 @@ bool SaxParser::ParseTxtFormat(QString fileName, SyncData* dataset, double * fps
     return true;
 }
 
+bool SaxParser::ParseGradientFieldVTK(const QString &fileName, GeometryFactory& geoFac)
+{
+    // Read the file
+    VTK_CREATE(vtkStructuredPointsReader, reader);
+    reader->SetFileName(fileName.toStdString().c_str());
+    reader->Update();
+
+    VTK_CREATE(vtkImageDataGeometryFilter,geometryFilter );
+    geometryFilter->SetInputConnection(reader->GetOutputPort());
+    geometryFilter->Update();
+
+    VTK_CREATE(vtkPolyDataMapper,mapper);
+    mapper->SetInputConnection(geometryFilter->GetOutputPort());
+
+    VTK_CREATE(vtkActor, actor);
+    actor->SetMapper(mapper);
+
+    shared_ptr<FacilityGeometry> gradient_field= shared_ptr<FacilityGeometry>(new FacilityGeometry("Gradient Field"));
+    gradient_field->addGradientField(actor);
+
+    geoFac.AddElement(-1,-1,gradient_field);
+    geoFac.AddElement(-2,-2,gradient_field);
+    return true;
+}
+
 void SaxParser::InitHeader(int major, int minor, int patch)
 {
     if ( (minor==6) || (minor==5 && patch==1) ) {
diff --git a/src/SaxParser.h b/src/SaxParser.h
index cc74cf7acea6e3f1389a449afc7236f2a891bb25..43dcd95fea412d38fae8c40805550f3c5a447241 100644
--- a/src/SaxParser.h
+++ b/src/SaxParser.h
@@ -79,7 +79,10 @@ public:
     static QString extractGeometryFilename(QString& filename);
 
     /// parse the txt file format
-    static bool ParseTxtFormat(QString fileName, SyncData* dataset, double * fps);
+    static bool ParseTxtFormat(const QString& fileName, SyncData* dataset, double * fps);
+
+    /// parse a vtk file
+    static bool ParseGradientFieldVTK(const QString& fileName, GeometryFactory& geoFac);
 
 private:
     //clear the mo
diff --git a/src/SystemSettings.cpp b/src/SystemSettings.cpp
index c5c508cbe228460274ed08793c0b5024b9c1cb27..29d678882861b56458955ed0118267f7eed07d42 100644
--- a/src/SystemSettings.cpp
+++ b/src/SystemSettings.cpp
@@ -54,6 +54,8 @@ bool SystemSettings::showExits=true;
 bool SystemSettings::showNavLines=true;
 bool SystemSettings::showTrajectories=false;
 bool SystemSettings::showObstacle=true;
+bool SystemSettings::showGradienField=true;
+
 
 unsigned short SystemSettings::port=8989;
 //double SystemSettings::bgColor[]= {1.0,1.0,1.0};
@@ -199,7 +201,14 @@ void SystemSettings::setShowObstacles(bool status)
 {
     showObstacle=status;
 }
-
+void SystemSettings::setShowGradientField(bool status)
+{
+    showGradienField=status;
+}
+bool SystemSettings::getShowGradientField()
+{
+    return showGradienField;
+}
 bool SystemSettings::getShowObstacles()
 {
     return showObstacle;
diff --git a/src/SystemSettings.h b/src/SystemSettings.h
index d295c19fd81898bdad020221c72a0754023919b2..90f2e4b9fbbd14e4b3f4c9a93762743b5eb3ec7c 100644
--- a/src/SystemSettings.h
+++ b/src/SystemSettings.h
@@ -87,6 +87,11 @@ public:
     void static setShowObstacles(bool status);
     bool static getShowObstacles();
 
+    //set/get the gradient field visibility
+    void static setShowGradientField(bool status);
+    bool static getShowGradientField();
+
+
     // set/get the  navigation lines visibility
     void static setShowNavLines(bool status);
     bool static getShowNavLines();
@@ -207,6 +212,7 @@ private:
     static bool showGeometryCaptions;
     static bool showFloor;
     static bool showObstacle;
+    static bool showGradienField;
     static bool showWalls;
     static bool showExits;
     static bool showNavLines;
diff --git a/src/ThreadVisualisation.cpp b/src/ThreadVisualisation.cpp
index 305681ae41af29cfc8da7c1c9f9d22387ecadc2e..fd618a5e7450c7b86ed248afdaa890047bbdf448 100644
--- a/src/ThreadVisualisation.cpp
+++ b/src/ThreadVisualisation.cpp
@@ -354,7 +354,8 @@ void ThreadVisualisation::run()
     setFloorColor(SystemSettings::getFloorColor());
     setExitsColor(SystemSettings::getExitsColor());
     setNavLinesColor(SystemSettings::getNavLinesColor());
-
+    //FIXME:
+    showGradientField(SystemSettings::getShowGradientField());
     _renderWinInteractor->Start();
 
 
@@ -432,11 +433,15 @@ void ThreadVisualisation::showFloor(bool status)
 {
     _geometry.ShowFloor(status);
 }
+
 void ThreadVisualisation::showObstacle(bool status)
 {
     _geometry.ShowObstacles(status);
 }
-
+void ThreadVisualisation::showGradientField(bool status)
+{
+    _geometry.ShowGradientField(status);
+}
 void  ThreadVisualisation::initGlyphs2D()
 {
     if(extern_glyphs_pedestrians) extern_glyphs_pedestrians->Delete();
diff --git a/src/ThreadVisualisation.h b/src/ThreadVisualisation.h
index f47c146fa8e6aa13d14fc577c0ed18c6780b1214..efe0288bc6358a317129bd1aa27883c80b35a820 100644
--- a/src/ThreadVisualisation.h
+++ b/src/ThreadVisualisation.h
@@ -146,6 +146,8 @@ public:
     /// show/ hide the obstacles
     void showObstacle(bool status);
 
+    /// show/hide the gradeint field
+    void showGradientField(bool status);
 
     /// show / hide stairs
     ///not implemented
diff --git a/src/geometry/FacilityGeometry.cpp b/src/geometry/FacilityGeometry.cpp
index ed9966aa2627bce25cadc0cfd7db9809f55de615..79b592380702698634f8e495c4231a78c386a38e 100644
--- a/src/geometry/FacilityGeometry.cpp
+++ b/src/geometry/FacilityGeometry.cpp
@@ -81,6 +81,7 @@ FacilityGeometry::FacilityGeometry(const string &description)
 
     floorActor = vtkActor::New();
     obstaclesActor = vtkActor::New();
+    gradientFieldActor = vtkActor::New();
 
     captions=vtkActor2DCollection::New();
     linesPlotter2D = new LinePlotter2D();
@@ -151,23 +152,23 @@ void FacilityGeometry::CreateActors()
     assembly3D->AddPart(assemblyCaptions);
 }
 
- void FacilityGeometry::setVisibility(bool status)
- {
-     if(SystemSettings::get2D())
-     {
-         assembly2D->SetVisibility(status);
-     }
-     else
-     {
-         assembly3D->SetVisibility(status);
-     }
-     _visibility=status;
- }
-
-     bool FacilityGeometry::getVisibility() const
-     {
-         return _visibility;
-     }
+void FacilityGeometry::setVisibility(bool status)
+{
+    if(SystemSettings::get2D())
+    {
+        assembly2D->SetVisibility(status);
+    }
+    else
+    {
+        assembly3D->SetVisibility(status);
+    }
+    _visibility=status;
+}
+
+bool FacilityGeometry::getVisibility() const
+{
+    return _visibility;
+}
 /***
  * This is the main build method and should be called by all functions
  * drawing a wall or a door. Important
@@ -246,7 +247,6 @@ void FacilityGeometry::addNewElement(double center[3], double length, double ori
 
 void FacilityGeometry::addWall(double x1, double y1, double z1, double x2, double y2, double z2,double thickness,double height,double color)
 {
-
     // all walls will have this parameters until changed
     wallColor=color;
 
@@ -518,7 +518,6 @@ void FacilityGeometry::addNavLine(JPoint* p1, JPoint* p2, string caption)
     }
 }
 
-
 void FacilityGeometry::addFloor(vtkPolyData* polygonPolyData )
 {
     //triagulate everything
@@ -542,6 +541,13 @@ void FacilityGeometry::addFloor(vtkPolyData* polygonPolyData )
     assembly3D->AddPart(floorActor);
 }
 
+void FacilityGeometry::addGradientField(vtkActor* gradientField)
+{
+    gradientFieldActor=gradientField;
+    assembly2D->AddPart(gradientFieldActor);
+    assembly3D->AddPart(gradientFieldActor);
+}
+
 void FacilityGeometry::addObstacles(vtkPolyData* polygonPolyData )
 {
     //triagulate everything
@@ -816,6 +822,10 @@ void FacilityGeometry::showFloor(bool status)
 {
     floorActor->SetVisibility(status);
 }
+void FacilityGeometry::showGradientField(bool status)
+{
+    gradientFieldActor->SetVisibility(status);
+}
 
 void FacilityGeometry::showObstacles(bool status)
 {
diff --git a/src/geometry/FacilityGeometry.h b/src/geometry/FacilityGeometry.h
index 2aee2b57193fd2fb54c5bc3f6d82acda6a67fb5d..ec8eb65c3f849df73a680715748fded58911ede0 100644
--- a/src/geometry/FacilityGeometry.h
+++ b/src/geometry/FacilityGeometry.h
@@ -110,6 +110,9 @@ public:
     ///draw obstacles
     void addObstacles(vtkPolyData* polygonPolyData);
 
+    ///add the gradient field
+    void addGradientField(vtkActor* gradientField);
+
     const std::string & GetDescription() const ;
 
     /// draw other kinds of objects
@@ -135,6 +138,7 @@ public:
     void showFloor(bool status);
     void showObstacles(bool status);
     void showGeometryLabels(int status);
+    void showGradientField(bool status);
 
     void setVisibility(bool status);
     bool getVisibility() const;
@@ -175,6 +179,7 @@ private:
 
     vtkActor* floorActor;
     vtkActor* obstaclesActor;
+    vtkActor* gradientFieldActor;
 
     // other parts
     vtkAssembly* assemblyCaptions;
diff --git a/src/geometry/GeometryFactory.cpp b/src/geometry/GeometryFactory.cpp
index ce41a6bc37228c17a2fbd35eb573afc88bcd5d47..4e489107d1ddebb67809ac1e5a91d253122f5d7a 100644
--- a/src/geometry/GeometryFactory.cpp
+++ b/src/geometry/GeometryFactory.cpp
@@ -41,7 +41,7 @@ void GeometryFactory::Set3D(bool status)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->set3D(status);
+                subroom.second->set3D(status);
         }
     }
 }
@@ -61,7 +61,7 @@ void GeometryFactory::ChangeWallsColor(double* color)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->changeWallsColor(color);
+                subroom.second->changeWallsColor(color);
         }
     }
 }
@@ -73,7 +73,7 @@ void GeometryFactory::ChangeExitsColor(double* color)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->changeExitsColor(color);
+                subroom.second->changeExitsColor(color);
         }
     }
 }
@@ -85,7 +85,7 @@ void GeometryFactory::ChangeNavLinesColor(double* color)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->changeNavLinesColor(color);
+                subroom.second->changeNavLinesColor(color);
         }
     }
 }
@@ -109,7 +109,7 @@ void GeometryFactory::ChangeObstaclesColor(double* color)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->changeObstaclesColor(color);
+                subroom.second->changeObstaclesColor(color);
         }
     }
 }
@@ -121,7 +121,7 @@ void GeometryFactory::ShowDoors(bool status)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->showDoors(status);
+                subroom.second->showDoors(status);
         }
     }
 }
@@ -133,7 +133,7 @@ void GeometryFactory::ShowStairs(bool status)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->showStairs(status);
+                subroom.second->showStairs(status);
         }
     }
 }
@@ -145,7 +145,7 @@ void GeometryFactory::ShowWalls(bool status)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->showWalls(status);
+                subroom.second->showWalls(status);
         }
     }
 }
@@ -157,7 +157,7 @@ void GeometryFactory::ShowNavLines(bool status)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->showNavLines(status);
+                subroom.second->showNavLines(status);
         }
     }
 }
@@ -169,7 +169,7 @@ void GeometryFactory::ShowFloor(bool status)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->showFloor(status);
+                subroom.second->showFloor(status);
         }
     }
 }
@@ -180,7 +180,20 @@ void GeometryFactory::ShowObstacles(bool status)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->showObstacles(status);
+                subroom.second->showObstacles(status);
+        }
+    }
+}
+
+
+void GeometryFactory::ShowGradientField(bool status)
+{
+    for (auto&& room: _geometryFactory)
+    {
+        for(auto&& subroom:room.second)
+        {
+            if(_geometryFactory[room.first][subroom.first]->getVisibility())
+                subroom.second->showGradientField(status);
         }
     }
 }
@@ -192,7 +205,7 @@ void GeometryFactory::ShowGeometryLabels(int status)
         for(auto&& subroom:room.second)
         {
             if(_geometryFactory[room.first][subroom.first]->getVisibility())
-            subroom.second->showGeometryLabels(status);
+                subroom.second->showGeometryLabels(status);
         }
     }
 }
diff --git a/src/geometry/GeometryFactory.h b/src/geometry/GeometryFactory.h
index 112cf4f562d65d57f6cda5e77e0d7bda33b49ad4..54930ab14faa9b6e857f84a01883f2fd9f2c2624 100644
--- a/src/geometry/GeometryFactory.h
+++ b/src/geometry/GeometryFactory.h
@@ -31,6 +31,7 @@ public:
     void ShowNavLines(bool status);
     void ShowFloor(bool status);
     void ShowObstacles(bool status);
+    void ShowGradientField(bool status);
     void ShowGeometryLabels(int status);
     bool RefreshView();
     void Clear();
diff --git a/src/geometry/LinePlotter2D.cpp b/src/geometry/LinePlotter2D.cpp
index a02f39dc4bf8ff02d811cea00e69941c162d6a52..e64fa92e3a5443a9f996f555bfba81d574c471eb 100644
--- a/src/geometry/LinePlotter2D.cpp
+++ b/src/geometry/LinePlotter2D.cpp
@@ -63,7 +63,8 @@ LinePlotter2D::LinePlotter2D()
     door_lines = vtkCellArray::New();
     door_lineScalars = vtkFloatArray::New();
     door_curPointID=0;
-    door_width=3.5;
+//    door_width=3.5;
+    door_width=2;
 
     wall_mapper= vtkPolyDataMapper::New();
     wall_actor= vtkActor::New();
@@ -71,7 +72,8 @@ LinePlotter2D::LinePlotter2D()
     wall_lines = vtkCellArray::New();
     wall_lineScalars = vtkFloatArray::New();
     wall_curPointID=0;
-    wall_width=4;
+//    wall_width=4;
+    wall_width=2;
 
     navline_curPointID =0;
     navline_width=2;