pub trait GeometryKernel {
// Required methods
fn backend(&self) -> KernelBackend;
fn precision(&self) -> PrecisionModel;
fn canonicalize_polygon(&self, polygon: &Polygon) -> Polygon;
fn polygon_area(&self, polygon: &Polygon) -> Result<f64>;
fn largest_polygon(
&self,
multi_polygon: &MultiPolygon,
) -> Result<Option<Polygon>>;
fn buffer_polygon(
&self,
polygon: &Polygon,
distance: f64,
options: BufferOptions,
) -> Result<MultiPolygon>;
fn line_buffer(
&self,
line: &LineString,
distance: f64,
options: BufferOptions,
) -> Result<MultiPolygon>;
fn intersection(
&self,
subject: &MultiPolygon,
clip: &MultiPolygon,
) -> Result<MultiPolygon>;
fn difference(
&self,
subject: &MultiPolygon,
clip: &MultiPolygon,
) -> Result<MultiPolygon>;
fn line_polygon_intersections(
&self,
line: &LineString,
polygon: &Polygon,
) -> Result<Vec<Coord>>;
}Required Methods§
fn backend(&self) -> KernelBackend
fn precision(&self) -> PrecisionModel
fn canonicalize_polygon(&self, polygon: &Polygon) -> Polygon
fn polygon_area(&self, polygon: &Polygon) -> Result<f64>
fn largest_polygon( &self, multi_polygon: &MultiPolygon, ) -> Result<Option<Polygon>>
fn buffer_polygon( &self, polygon: &Polygon, distance: f64, options: BufferOptions, ) -> Result<MultiPolygon>
fn line_buffer( &self, line: &LineString, distance: f64, options: BufferOptions, ) -> Result<MultiPolygon>
fn intersection( &self, subject: &MultiPolygon, clip: &MultiPolygon, ) -> Result<MultiPolygon>
fn difference( &self, subject: &MultiPolygon, clip: &MultiPolygon, ) -> Result<MultiPolygon>
fn line_polygon_intersections( &self, line: &LineString, polygon: &Polygon, ) -> Result<Vec<Coord>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".