diff --git a/wrappers/gmshpy/gmshGeo.i b/wrappers/gmshpy/gmshGeo.i
index 3e302fd56de989c7fb0e55c813ace1788e7fb3f0..e63d70d250472406289ca8f6af62d7c1e275578e 100644
--- a/wrappers/gmshpy/gmshGeo.i
+++ b/wrappers/gmshpy/gmshGeo.i
@@ -152,3 +152,30 @@ namespace std {
     return p;
   }
 }
+
+%extend GEdge {
+  void setTransfinite(int nbPointsTransfinite, int typeTransfinite = 0, double coeffTransfinite = 1) {
+    $self->meshAttributes.method = MESH_TRANSFINITE;
+    $self->meshAttributes.typeTransfinite = typeTransfinite;
+    $self->meshAttributes.nbPointsTransfinite = std::max(2, nbPointsTransfinite);
+    $self->meshAttributes.coeffTransfinite = coeffTransfinite;
+  }
+}
+
+%extend GFace {
+  void setTransfinite() {
+    $self->meshAttributes.method = MESH_TRANSFINITE;
+  }
+  void setRecombine() {
+    $self->meshAttributes.recombine = 1;
+  }
+}
+
+%extend GRegion {
+  void setTransfinite() {
+    $self->meshAttributes.method = MESH_TRANSFINITE;
+  }
+  void setRecombine() {
+    $self->meshAttributes.recombine3D = 1;
+  }
+}