@@ -14,6 +14,11 @@ def new_surface(cls, *args, **kwargs):
1414 raise NotImplementedError
1515
1616
17+ @pluggable (category = "factories" )
18+ def new_surface_from_plane (cls , * args , ** kwargs ):
19+ raise NotImplementedError
20+
21+
1722class Surface (Geometry ):
1823 """Class representing a general surface object.
1924
@@ -107,6 +112,22 @@ def from_obj(cls, filepath):
107112 """
108113 raise NotImplementedError
109114
115+ @classmethod
116+ def from_plane (cls , plane , * args , ** kwargs ):
117+ """Construct a surface from a plane.
118+
119+ Parameters
120+ ----------
121+ plane : :class:`compas.geometry.Plane`
122+ The plane.
123+
124+ Returns
125+ -------
126+ :class:`~compas.geometry.Surface`
127+
128+ """
129+ return new_surface_from_plane (cls , plane , * args , ** kwargs )
130+
110131 # ==============================================================================
111132 # Conversions
112133 # ==============================================================================
@@ -393,3 +414,17 @@ def intersections_with_line(self, line):
393414
394415 """
395416 raise NotImplementedError
417+
418+ def intersections_with_curve (self , curve ):
419+ """Compute the intersections with a curve.
420+
421+ Parameters
422+ ----------
423+ line : :class:`~compas.geometry.Curve`
424+
425+ Returns
426+ -------
427+ list[:class:`~compas.geometry.Point`]
428+
429+ """
430+ raise NotImplementedError
0 commit comments