diff --git a/include/laser/state_block/state_polyline_point_2d.h b/include/laser/state_block/state_polyline_point_2d.h
new file mode 100644
index 0000000000000000000000000000000000000000..0088aaf4e70d195a3aaa577398765c0a5890037c
--- /dev/null
+++ b/include/laser/state_block/state_polyline_point_2d.h
@@ -0,0 +1,28 @@
+#include "laser/state_block/local_parametrization_polyline_extreme.h"
+
+#include <core/state_block/state_block_derived.h>
+
+namespace wolf
+{
+
+class StatePolylinePoint2d : public StatePoint2d
+{
+  public:
+    StatePolylinePoint2d(const Vector2d &_point,
+                         StateBlockPtr   _adjacent      = nullptr,
+                         bool            _fixed         = false,
+                         bool            _transformable = true);
+
+    ~StatePolylinePoint2d() {}
+};
+
+inline StatePolylinePoint2d::StatePolylinePoint2d(const Vector2d &_point,
+                                                  StateBlockPtr   _reference_point,
+                                                  bool            _fixed,
+                                                  bool            _transformable)
+    : StatePoint2d(_point, _fixed, _transformable)
+{
+    if (_reference_point) local_param_ptr_ = std::make_shared<LocalParametrizationPolylineExtreme>(_reference_point);
+}
+
+}  // namespace wolf
\ No newline at end of file