def METHOD_NAME(self, geometry: HybridGeometry, width, append=None):
    altitude = (np.vstack(chain(*(mesh.tolist() for mesh in geometry.faces)))[:, :, 2].max()+1)/1000
    geometry = self.buffered_bbox.intersection(geometry.geom)
    lines = tuple(chain(*(
        ((geom.exterior, *geom.interiors) if isinstance(geom, Polygon) else (geom,))
        for geom in getattr(geometry, 'geoms', (geometry,))
    )))
    if not lines:
        return np.empty((0, 3, 3+len(append)))
    lines = unary_union(lines).buffer(width, cap_style=CAP_STYLE.flat, join_style=JOIN_STYLE.mitre)
    vertices, faces = triangulate_polygon(lines)
    triangles = np.dstack((vertices[faces], np.full((faces.size, 1), fill_value=altitude).reshape((-1, 3, 1))))
    return self._append_to_vertices(triangles.astype(np.float32), append)