Skip to main content

GeometryKernel

Trait GeometryKernel 

Source
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§

Source

fn backend(&self) -> KernelBackend

Source

fn precision(&self) -> PrecisionModel

Source

fn canonicalize_polygon(&self, polygon: &Polygon) -> Polygon

Source

fn polygon_area(&self, polygon: &Polygon) -> Result<f64>

Source

fn largest_polygon( &self, multi_polygon: &MultiPolygon, ) -> Result<Option<Polygon>>

Source

fn buffer_polygon( &self, polygon: &Polygon, distance: f64, options: BufferOptions, ) -> Result<MultiPolygon>

Source

fn line_buffer( &self, line: &LineString, distance: f64, options: BufferOptions, ) -> Result<MultiPolygon>

Source

fn intersection( &self, subject: &MultiPolygon, clip: &MultiPolygon, ) -> Result<MultiPolygon>

Source

fn difference( &self, subject: &MultiPolygon, clip: &MultiPolygon, ) -> Result<MultiPolygon>

Source

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".

Implementors§