def Union(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STUnion", geomB, *args)
def IsEmpty(self, geom, *args): return Function(f"{geom.get_sql()}.STIsEmpty", *args)
def IsSimple(self, geom, *args): return Function(f"{geom.get_sql()}.STIsSimple", *args)
def InteriorRingN(self, geom, value, *args): return Function(f"{geom.get_sql()}.STInteriorRingN", value, *args)
def Intersects(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STIntersects", geomB, *args)
def GeomFromText(self, text, srid, *args): return Function("geometry::STGeomFromText", text, srid, *args)
def GeometryN(self, geom, value, *args): return Function(f"{geom.get_sql()}.STGeometryN", value, *args)
def ConvexHull(self, geom, *args): return Function(f"{geom.get_sql()}.STConvexHull", *args)
def Crosses(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STCrosses", geomB, *args)
def Centroid(self, geom, *args): return Function(f"{geom.get_sql()}.STCentroid", *args)
def Contains(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STContains", geomB, *args)
def Buffer(self, geom, length, *args): return Function(f"{geom.get_sql()}.STBuffer", length, *args)
def Boundary(self, geom, *args): return Function(f"{geom.get_sql()}.STBoundary", *args)
def Within(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STWithin", geomB, *args)
def Equals(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STEquals", geomB, *args)
def CurveN(self, term, curve_index, *args): return Function(f"{term.get_sql()}.STCurveN", curve_index, *args)
def ExteriorRing(self, geom, *args): return Function(f"{geom.get_sql()}.STExteriorRing", *args)
def CurveToLine(self, term, *args): return Function(f"{term.get_sql()}.STCurveToLine", *args)
def GeomFromWKB(self, wkb, srid, *args): return Function("geometry::STGeomFromWKB", wkb, srid, *args)
def Dimension(self, geom, *args): return Function(f"{geom.get_sql()}.STDimension", *args)
def GeometryType(self, geom, *args): return Function(f"{geom.get_sql()}.STGeometryType", *args)
def Disjoint(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STDisjoint", geomB, *args)
def Area(self, geom, *args): return Function(f"{geom.get_sql()}.STArea", *args)
def Distance(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STDistance", geomB, *args)
def IsClosed(self, geom, *args): return Function(f"{geom.get_sql()}.STIsClosed", *args)
def EndPoint(self, geom, *args): return Function(f"{geom.get_sql()}.STEndpoint", *args)
def IsRing(self, geom, *args): return Function(f"{geom.get_sql()}.STIsRing", *args)
def Envelope(self, geom, *args): return Function(f"{geom.get_sql()}.STEnvelope", *args)
def IsValid(self, geom, *args): return Function(f"{geom.get_sql()}.STIsValid", *args)
def Touches(self, geomA, geomB, *args): return Function(f"{geomA.get_sql()}.STTouches", geomB, *args)