diff --git a/OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp b/OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp
index 7488fe0b90485a90fb600511c6b7b9a7b73d48fb..6484d90b0a61fb8619035c47a0108f0eaaf15511 100644
--- a/OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp
+++ b/OpenRoadEd/OpenDrive/OpenDriveXmlParser.cpp
@@ -970,7 +970,6 @@ bool OpenDriveXmlParser::ReadObjects (Road* road, TiXmlElement *node)
   object_node=node->FirstChildElement("object");
   while(object_node!=0)
   {
-    std::cout << "new object" << std::endl;
     checker=TIXML_SUCCESS;
     checker+=object_node->QueryDoubleAttribute("s",&s);
     checker+=object_node->QueryDoubleAttribute("t",&t);
@@ -1099,7 +1098,6 @@ bool OpenDriveXmlParser::ReadSignals (Road* road, TiXmlElement *node)
   signal_node=node->FirstChildElement("signal");
   while(signal_node!=0)
   {
-    std::cout << "new signal" << std::endl;
     checker=TIXML_SUCCESS;
     checker+=signal_node->QueryDoubleAttribute("s",&s);
     checker+=signal_node->QueryDoubleAttribute("t",&t);
diff --git a/OpenRoadEd/OpenDrive/OpenDriveXmlWriter.cpp b/OpenRoadEd/OpenDrive/OpenDriveXmlWriter.cpp
index 55897846baa7e32d3f72bf742b164fb5f7c70c83..fab5a48272f558dcdcbdb334015ed6bc02cb3174 100644
--- a/OpenRoadEd/OpenDrive/OpenDriveXmlWriter.cpp
+++ b/OpenRoadEd/OpenDrive/OpenDriveXmlWriter.cpp
@@ -988,8 +988,6 @@ bool OpenDriveXmlWriter::WriteObjects (TiXmlElement *node, Road* road)
         parking_marking_node->SetAttribute("color",mark_color);
       }
     }
-
-    std::cout << "written object " << object->GetName() << " with id: " << object->GetId() << std::endl;
   }
 
 	return true;
@@ -1041,8 +1039,6 @@ bool OpenDriveXmlWriter::WriteSignals (TiXmlElement *node, Road* road)
 //    signal_node->SetAttribute("hOffset",signal->GetHeadingOffset());
 //    signal_node->SetAttribute("pitch",signal->GetPitch());
 //    signal_node->SetAttribute("roll",signal->GetRoll());
-
-    std::cout << "written signal " << signal->GetName() << " with id: " << signal->GetId() << std::endl;
   }
 
 	return true;
diff --git a/OpenRoadEd/Osg/OSGRecordsHelpers.cpp b/OpenRoadEd/Osg/OSGRecordsHelpers.cpp
index 59f200421bee25871577d51c85a85cd40179b3df..d3f58fcf602b449f9390c91a91908b2295873ab9 100644
--- a/OpenRoadEd/Osg/OSGRecordsHelpers.cpp
+++ b/OpenRoadEd/Osg/OSGRecordsHelpers.cpp
@@ -265,7 +265,6 @@ void OSGRecordsHelpers::FillHelperGroups (Road *road,unsigned int roadIndex, osg
     else
   		mObjectGroup->addChild(AddObjectHelper(road->GetObject(i)).get());
   }
-  std::cout << "num object items: " <<	mObjectGroup->getNumChildren() << std::endl;
 	for (unsigned int i = 0; i<road->GetSignalCount(); i++)
 	  mSignalGroup->addChild(AddSignalHelper(road->GetSignal(i)).get());
 }
@@ -564,13 +563,12 @@ osg::ref_ptr<osg::MatrixTransform> OSGRecordsHelpers::AddParkingHelper(Object *o
   x-=object->GetT()*sin(hdg);
   y+=object->GetT()*cos(hdg);
 
-  std::cout << "Z: " << elevation+object->GetZOffset() << std::endl;
 	matrix->setMatrix(osg::Matrix::rotate(osg::inRadians(hdg+object->GetHeading()), osg::Vec3(0.0, 0.0, 1.0)) *
   osg::Matrix::translate(osg::Vec3(x,y,elevation+object->GetZOffset())) );
   matrix->addChild(parkingGeode);
 
   //=========================================================
-  // Add front mark
+  // Add mark
   //=========================================================
   std::string mark_side,mark_type,mark_color;
   double mark_width;
@@ -578,44 +576,66 @@ osg::ref_ptr<osg::MatrixTransform> OSGRecordsHelpers::AddParkingHelper(Object *o
   for(unsigned int i=0;i<object->GetNumParkingMarkings();i++)
   {
     object->GetParkingMarking(i,mark_side,mark_type,mark_width,mark_color);
-    if(mark_side=="front")
-    {
-      osg::ref_ptr<OSGGeodeNode> markGeode = new OSGGeodeNode();
-      osg::ref_ptr<osg::Geometry> markGeom=new osg::Geometry;
-      markGeom->setUseDisplayList( false );
+    osg::ref_ptr<OSGGeodeNode> markGeode = new OSGGeodeNode();
+    osg::ref_ptr<osg::Geometry> markGeom=new osg::Geometry;
+    markGeom->setUseDisplayList( false );
 
-	    markGeode->SetNodeType(PARKING_OBJECT_NODE);
+    markGeode->SetNodeType(PARKING_OBJECT_NODE);
 
-      osg::ref_ptr<osg::Vec3Array> markVertices = new osg::Vec3Array;
-      osg::ref_ptr<osg::DrawElementsUInt> markTris = new osg::DrawElementsUInt(osg::PrimitiveSet::TRIANGLES, 0);
+    osg::ref_ptr<osg::Vec3Array> markVertices = new osg::Vec3Array;
+    osg::ref_ptr<osg::DrawElementsUInt> markTris = new osg::DrawElementsUInt(osg::PrimitiveSet::TRIANGLES, 0);
 
+    if(mark_side=="front")
+    {
       markVertices->push_back(osg::Vec3(-mark_width/2.0+length/2.0,-width/2.0,0));
       markVertices->push_back(osg::Vec3(mark_width/2.0+length/2.0,-width/2.0,0));
       markVertices->push_back(osg::Vec3(mark_width/2.0+length/2.0,width/2.0,0));
       markVertices->push_back(osg::Vec3(-mark_width/2.0+length/2.0,width/2.0,0));
-      markTris->push_back(1);
-      markTris->push_back(2);
-      markTris->push_back(3);
-      markTris->push_back(0);
-      markTris->push_back(1);
-      markTris->push_back(3);
-
-      markGeode->addDrawable(markGeom);
-      markGeom->setVertexArray(markVertices.get());
-      markGeom->addPrimitiveSet(markTris.get());
-
-      osg::ref_ptr<osg::Vec4Array> colors = new osg::Vec4Array;
-      markGeom->setColorArray(colors.get());
-      markGeom->setColorBinding(osg::Geometry::BIND_OVERALL);
-      colors->push_back(osg::Vec4(1.0f, 1.0f,  1.0f, 1.0f) );
-      osg::StateSet* markState=markGeom->getOrCreateStateSet();
-      // assign the material and texture
-      markState->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
-      markState->setMode(GL_BLEND,osg::StateAttribute::ON);
-      markState->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF);
-
-      matrix->addChild(markGeode);
     }
+    else if(mark_side=="rear")
+    {
+      markVertices->push_back(osg::Vec3(-mark_width/2.0-length/2.0,-width/2.0,0));
+      markVertices->push_back(osg::Vec3(mark_width/2.0-length/2.0,-width/2.0,0));
+      markVertices->push_back(osg::Vec3(mark_width/2.0-length/2.0,width/2.0,0));
+      markVertices->push_back(osg::Vec3(-mark_width/2.0-length/2.0,width/2.0,0));
+    }
+    else if(mark_side=="left")
+    {
+      markVertices->push_back(osg::Vec3(-length/2.0,-mark_width/2.0+width/2.0,0));
+      markVertices->push_back(osg::Vec3(length/2.0,-mark_width/2.0+width/2.0,0));
+      markVertices->push_back(osg::Vec3(length/2.0,mark_width/2.0+width/2.0,0));
+      markVertices->push_back(osg::Vec3(-length/2.0,mark_width/2.0+width/2.0,0));
+    }
+    else if(mark_side=="right")
+    {
+      markVertices->push_back(osg::Vec3(-length/2.0,-mark_width/2.0-width/2.0,0));
+      markVertices->push_back(osg::Vec3(length/2.0,-mark_width/2.0-width/2.0,0));
+      markVertices->push_back(osg::Vec3(length/2.0,mark_width/2.0-width/2.0,0));
+      markVertices->push_back(osg::Vec3(-length/2.0,mark_width/2.0-width/2.0,0));
+    }
+
+    markTris->push_back(1);
+    markTris->push_back(2);
+    markTris->push_back(3);
+    markTris->push_back(0);
+    markTris->push_back(1);
+    markTris->push_back(3);
+
+    markGeode->addDrawable(markGeom);
+    markGeom->setVertexArray(markVertices.get());
+    markGeom->addPrimitiveSet(markTris.get());
+
+    osg::ref_ptr<osg::Vec4Array> colors = new osg::Vec4Array;
+    markGeom->setColorArray(colors.get());
+    markGeom->setColorBinding(osg::Geometry::BIND_OVERALL);
+    colors->push_back(osg::Vec4(1.0f, 1.0f,  1.0f, 1.0f) );
+    osg::StateSet* markState=markGeom->getOrCreateStateSet();
+    // assign the material and texture
+    markState->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
+    markState->setMode(GL_BLEND,osg::StateAttribute::ON);
+    markState->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF);
+
+    matrix->addChild(markGeode);
   }
 
 	return matrix;
diff --git a/OpenRoadEd/Qt/CreationWidgets/CreationAllRoad.cpp b/OpenRoadEd/Qt/CreationWidgets/CreationAllRoad.cpp
index dea1e497ecbf269b8bc8faa6541d19f9a416929e..a69ad3e0501f5d4b8707601d0c1471b64b1f2cf3 100644
--- a/OpenRoadEd/Qt/CreationWidgets/CreationAllRoad.cpp
+++ b/OpenRoadEd/Qt/CreationWidgets/CreationAllRoad.cpp
@@ -268,7 +268,7 @@ void CreationAllRoad::CreateRoadTypePressed()
 		// Duplicate it if it exists
 		if(lRoadType) index = lRoad->CloneRoadType(lRoad->GetRoadTypeCount()-1);
 		// else create a blank one
-		else index = lRoad->AddRoadType(0,"Default");
+		else index = lRoad->AddRoadType(0,"unknown");
 		// Redraws the road to reflect the changes
 		mOsgMain->RedrawRoad(lCurSelection->GetIndex(0));
 		// Add new road type to the road tree
diff --git a/OpenRoadEd/Qt/SettingsWidgets/SettingsRoadObject.cpp b/OpenRoadEd/Qt/SettingsWidgets/SettingsRoadObject.cpp
index facf9978b7824353648d230a51cbcbab24a081b1..6295e9d89fbafd6548b8b0eeb620599d368d63c1 100644
--- a/OpenRoadEd/Qt/SettingsWidgets/SettingsRoadObject.cpp
+++ b/OpenRoadEd/Qt/SettingsWidgets/SettingsRoadObject.cpp
@@ -100,6 +100,33 @@ SettingsRoadObject::SettingsRoadObject(OpenDrive *openDrive)
   QFormLayout *settingsParkingFrontMarkLayout = new QFormLayout;
   settingsParkingFrontMarkLayout->addRow(tr("Width:"),mParkingFrontWidth);
   mParkingFrontMark->setLayout(settingsParkingFrontMarkLayout);
+  mParkingRearMark = new QGroupBox;
+  mParkingRearMark->setTitle(tr("ParkingRearMarking"));
+  mParkingRearMark->setCheckable(true);
+  mParkingRearMark->setChecked(false);
+  mParkingRearWidth = new QLineEdit;
+  mParkingRearWidth->setText("0.3");
+  QFormLayout *settingsParkingRearMarkLayout = new QFormLayout;
+  settingsParkingRearMarkLayout->addRow(tr("Width:"),mParkingRearWidth);
+  mParkingRearMark->setLayout(settingsParkingRearMarkLayout);
+  mParkingLeftMark = new QGroupBox;
+  mParkingLeftMark->setTitle(tr("ParkingLeftMarking"));
+  mParkingLeftMark->setCheckable(true);
+  mParkingLeftMark->setChecked(false);
+  mParkingLeftWidth = new QLineEdit;
+  mParkingLeftWidth->setText("0.3");
+  QFormLayout *settingsParkingLeftMarkLayout = new QFormLayout;
+  settingsParkingLeftMarkLayout->addRow(tr("Width:"),mParkingLeftWidth);
+  mParkingLeftMark->setLayout(settingsParkingLeftMarkLayout);
+  mParkingRightMark = new QGroupBox;
+  mParkingRightMark->setTitle(tr("ParkingRightMarking"));
+  mParkingRightMark->setCheckable(true);
+  mParkingRightMark->setChecked(false);
+  mParkingRightWidth = new QLineEdit;
+  mParkingRightWidth->setText("0.3");
+  QFormLayout *settingsParkingRightMarkLayout = new QFormLayout;
+  settingsParkingRightMarkLayout->addRow(tr("Width:"),mParkingRightWidth);
+  mParkingRightMark->setLayout(settingsParkingRightMarkLayout);
 
   mBoundingBox = new QGroupBox;
   mBoundingBox->setTitle(tr("BoundingBox"));
@@ -150,6 +177,9 @@ SettingsRoadObject::SettingsRoadObject(OpenDrive *openDrive)
 	QVBoxLayout *settingsGroupLayout = new QVBoxLayout;
 	settingsGroupLayout->addLayout(settingsFormLayout);
 	settingsGroupLayout->addWidget(mParkingFrontMark);
+	settingsGroupLayout->addWidget(mParkingRearMark);
+	settingsGroupLayout->addWidget(mParkingLeftMark);
+	settingsGroupLayout->addWidget(mParkingRightMark);
 	settingsGroupLayout->addWidget(mBoundingBox);
 	settingsGroupLayout->addWidget(mBoundingCyl);
 
@@ -176,6 +206,9 @@ SettingsRoadObject::SettingsRoadObject(OpenDrive *openDrive)
 						"<p><b>ParkingAccess</b> - type of parking. Only for ParkingSpace objects</p>"
 						"<p><b>ParkingRestrictions</b> - restrictions of the parking space. Only for ParkingSpace objects</p>"
             "<p><b>ParkingFrontMark</b> - check if the parking space has a front mark</p>"
+            "<p><b>ParkingRearMark</b> - check if the parking space has a rear mark</p>"
+            "<p><b>ParkingLeftMark</b> - check if the parking space has a left mark</p>"
+            "<p><b>ParkingRightMark</b> - check if the parking space has a right mark</p>"
             "<p><b>Width</b> - Width of the front mark of the parking space</p>"
             "<p><b>BoundingBox</b> - check if this road has a bounding box</p>"
             "<p><b>Box length</b> - length of the bounding box</p>"
@@ -222,6 +255,12 @@ void SettingsRoadObject::LoadData(Object *object)
 		disconnect(mParkingRestrictions, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(ParkingRestrictionsChanged(const QString &)));
     disconnect(mParkingFrontMark, SIGNAL(clicked(bool)), this, SLOT(ParkingFrontMarkChanged(bool)));
     disconnect(mParkingFrontWidth, SIGNAL(editingFinished()), this, SLOT(ParkingFrontWidthChanged()));
+    disconnect(mParkingRearMark, SIGNAL(clicked(bool)), this, SLOT(ParkingRearMarkChanged(bool)));
+    disconnect(mParkingRearWidth, SIGNAL(editingFinished()), this, SLOT(ParkingRearWidthChanged()));
+    disconnect(mParkingLeftMark, SIGNAL(clicked(bool)), this, SLOT(ParkingLeftMarkChanged(bool)));
+    disconnect(mParkingLeftWidth, SIGNAL(editingFinished()), this, SLOT(ParkingLeftWidthChanged()));
+    disconnect(mParkingRightMark, SIGNAL(clicked(bool)), this, SLOT(ParkingRightMarkChanged(bool)));
+    disconnect(mParkingRightWidth, SIGNAL(editingFinished()), this, SLOT(ParkingRightWidthChanged()));
     disconnect(mBoundingBox, SIGNAL(clicked(bool)), this, SLOT(BoundingBoxChanged(bool)));
     disconnect(mBoxLength, SIGNAL(editingFinished()), this, SLOT(BoxLengthChanged()));
     disconnect(mBoxWidth, SIGNAL(editingFinished()), this, SLOT(BoxWidthChanged()));
@@ -308,6 +347,12 @@ void SettingsRoadObject::LoadData(Object *object)
         mParkingRestrictions->setCurrentIndex(1);
       mParkingFrontMark->setEnabled(true);
       mParkingFrontMark->setChecked(false);
+      mParkingRearMark->setEnabled(true);
+      mParkingRearMark->setChecked(false);
+      mParkingLeftMark->setEnabled(true);
+      mParkingLeftMark->setChecked(false);
+      mParkingRightMark->setEnabled(true);
+      mParkingRightMark->setChecked(false);
       for(unsigned int i=0;i<object->GetNumParkingMarkings();i++)
       {
         std::string mark_side,mark_type,mark_color;
@@ -319,6 +364,24 @@ void SettingsRoadObject::LoadData(Object *object)
           mParkingFrontWidth->setEnabled(true);
 		      mParkingFrontWidth->setText(QString("%1").arg(mark_width));
         }
+        else if(mark_side=="rear")
+        {
+          mParkingRearMark->setChecked(true);
+          mParkingRearWidth->setEnabled(true);
+		      mParkingRearWidth->setText(QString("%1").arg(mark_width));
+        }
+        else if(mark_side=="left")
+        {
+          mParkingLeftMark->setChecked(true);
+          mParkingLeftWidth->setEnabled(true);
+		      mParkingLeftWidth->setText(QString("%1").arg(mark_width));
+        }
+        else if(mark_side=="right")
+        {
+          mParkingRightMark->setChecked(true);
+          mParkingRightWidth->setEnabled(true);
+		      mParkingRightWidth->setText(QString("%1").arg(mark_width));
+        }
       }
     }
     else
@@ -327,6 +390,12 @@ void SettingsRoadObject::LoadData(Object *object)
       mParkingRestrictions->setDisabled(true);
       mParkingFrontMark->setDisabled(true);
       mParkingFrontWidth->setDisabled(true);
+      mParkingRearMark->setDisabled(true);
+      mParkingRearWidth->setDisabled(true);
+      mParkingLeftMark->setDisabled(true);
+      mParkingLeftWidth->setDisabled(true);
+      mParkingRightMark->setDisabled(true);
+      mParkingRightWidth->setDisabled(true);
     }
 
     if(object->GetBoundingBox(length,width,height))
@@ -364,6 +433,12 @@ void SettingsRoadObject::LoadData(Object *object)
 		connect(mParkingRestrictions, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(ParkingRestrictionsChanged(const QString &)));
     connect(mParkingFrontMark, SIGNAL(clicked(bool)), this, SLOT(ParkingFrontMarkChanged(bool)));
     connect(mParkingFrontWidth, SIGNAL(editingFinished()), this, SLOT(ParkingFrontWidthChanged()));
+    connect(mParkingRearMark, SIGNAL(clicked(bool)), this, SLOT(ParkingRearMarkChanged(bool)));
+    connect(mParkingRearWidth, SIGNAL(editingFinished()), this, SLOT(ParkingRearWidthChanged()));
+    connect(mParkingLeftMark, SIGNAL(clicked(bool)), this, SLOT(ParkingLeftMarkChanged(bool)));
+    connect(mParkingLeftWidth, SIGNAL(editingFinished()), this, SLOT(ParkingLeftWidthChanged()));
+    connect(mParkingRightMark, SIGNAL(clicked(bool)), this, SLOT(ParkingRightMarkChanged(bool)));
+    connect(mParkingRightWidth, SIGNAL(editingFinished()), this, SLOT(ParkingRightWidthChanged()));
     connect(mBoundingBox, SIGNAL(clicked(bool)), this, SLOT(BoundingBoxChanged(bool)));
     connect(mBoxLength, SIGNAL(editingFinished()), this, SLOT(BoxLengthChanged()));
     connect(mBoxWidth, SIGNAL(editingFinished()), this, SLOT(BoxWidthChanged()));
@@ -430,6 +505,9 @@ void SettingsRoadObject::TypeChanged(const QString & text)
     mParkingAccess->setEnabled(true);
     mParkingRestrictions->setEnabled(true);
     mParkingFrontMark->setEnabled(true);
+    mParkingRearMark->setEnabled(true);
+    mParkingLeftMark->setEnabled(true);
+    mParkingRightMark->setEnabled(true);
     mBoundingBox->setChecked(true);
     mBoundingCyl->setChecked(false);
   }
@@ -438,6 +516,9 @@ void SettingsRoadObject::TypeChanged(const QString & text)
     mParkingAccess->setDisabled(true);
     mParkingRestrictions->setDisabled(true);
     mParkingFrontMark->setDisabled(true);
+    mParkingRearMark->setDisabled(true);
+    mParkingLeftMark->setDisabled(true);
+    mParkingRightMark->setDisabled(true);
     mObject->ClearParking();
   }
   emit RoadGeometryChanged(true);
@@ -490,6 +571,93 @@ void SettingsRoadObject::ParkingFrontWidthChanged()
   emit RoadGeometryChanged(true);
 }
 
+void SettingsRoadObject::ParkingRearMarkChanged(bool on)
+{
+  double width;
+
+  if(on)
+  {
+    mParkingRearWidth->setEnabled(true);
+  	width=mParkingRearWidth->text().toDouble();
+    mObject->AddParkingMarking("rear","solid",width,"standard");
+  }
+  else
+  {
+    mParkingRearWidth->setDisabled(true);
+    mObject->RemoveParkingMarking("rear");
+  }
+
+  emit RoadGeometryChanged(true);
+}
+
+void SettingsRoadObject::ParkingRearWidthChanged()
+{
+  double width;
+
+	width=mParkingRearWidth->text().toDouble();
+  mObject->AddParkingMarking("rear","solid",width,"standard");
+
+  emit RoadGeometryChanged(true);
+}
+
+void SettingsRoadObject::ParkingLeftMarkChanged(bool on)
+{
+  double width;
+
+  if(on)
+  {
+    mParkingLeftWidth->setEnabled(true);
+  	width=mParkingLeftWidth->text().toDouble();
+    mObject->AddParkingMarking("left","solid",width,"standard");
+  }
+  else
+  {
+    mParkingLeftWidth->setDisabled(true);
+    mObject->RemoveParkingMarking("left");
+  }
+
+  emit RoadGeometryChanged(true);
+}
+
+void SettingsRoadObject::ParkingLeftWidthChanged()
+{
+  double width;
+
+	width=mParkingLeftWidth->text().toDouble();
+  mObject->AddParkingMarking("left","solid",width,"standard");
+
+  emit RoadGeometryChanged(true);
+}
+
+void SettingsRoadObject::ParkingRightMarkChanged(bool on)
+{
+  double width;
+
+  if(on)
+  {
+    mParkingRightWidth->setEnabled(true);
+  	width=mParkingRightWidth->text().toDouble();
+    mObject->AddParkingMarking("right","solid",width,"standard");
+  }
+  else
+  {
+    mParkingRightWidth->setDisabled(true);
+    mObject->RemoveParkingMarking("right");
+  }
+
+  emit RoadGeometryChanged(true);
+}
+
+void SettingsRoadObject::ParkingRightWidthChanged()
+{
+  double width;
+
+	width=mParkingRightWidth->text().toDouble();
+  mObject->AddParkingMarking("right","solid",width,"standard");
+
+  emit RoadGeometryChanged(true);
+}
+
 void SettingsRoadObject::BoundingBoxChanged(bool on)
 {
   double length,width,height;
diff --git a/OpenRoadEd/Qt/SettingsWidgets/SettingsRoadObject.h b/OpenRoadEd/Qt/SettingsWidgets/SettingsRoadObject.h
index b1abc85d09890eb4e4c97d051974284aa663d232..98db5b6b74ea548b678e5804736427e76c4dfc38 100644
--- a/OpenRoadEd/Qt/SettingsWidgets/SettingsRoadObject.h
+++ b/OpenRoadEd/Qt/SettingsWidgets/SettingsRoadObject.h
@@ -62,6 +62,12 @@ private:
   QComboBox *mParkingRestrictions;
   QGroupBox *mParkingFrontMark;
   QLineEdit *mParkingFrontWidth;
+  QGroupBox *mParkingRearMark;
+  QLineEdit *mParkingRearWidth;
+  QGroupBox *mParkingLeftMark;
+  QLineEdit *mParkingLeftWidth;
+  QGroupBox *mParkingRightMark;
+  QLineEdit *mParkingRightWidth;
   QGroupBox *mBoundingBox;
   QLineEdit *mBoxLength;
   QLineEdit *mBoxWidth;
@@ -89,6 +95,12 @@ public slots:
   void ParkingRestrictionsChanged(const QString & text);
   void ParkingFrontMarkChanged(bool on);
   void ParkingFrontWidthChanged();
+  void ParkingRearMarkChanged(bool on);
+  void ParkingRearWidthChanged();
+  void ParkingLeftMarkChanged(bool on);
+  void ParkingLeftWidthChanged();
+  void ParkingRightMarkChanged(bool on);
+  void ParkingRightWidthChanged();
   void BoundingBoxChanged(bool on);
   void BoxLengthChanged();
   void BoxWidthChanged();