delaunayNd-0.1.0.2: Delaunay tessellation
Copyright(c) Stéphane Laurent 2023
LicenseGPL-3
Maintainerlaurent_step@outlook.fr
Safe HaskellSafe-Inferred
LanguageHaskell2010

Geometry.Delaunay

Description

See README for an example.

Synopsis

Documentation

type Index = Int Source #

data IndexPair Source #

Constructors

Pair Index Index 

Instances

Instances details
Read IndexPair Source # 
Instance details

Defined in Geometry.Qhull.Types

Show IndexPair Source # 
Instance details

Defined in Geometry.Qhull.Types

Eq IndexPair Source # 
Instance details

Defined in Geometry.Qhull.Types

Hashable IndexPair Source # 
Instance details

Defined in Geometry.Qhull.Types

data Family Source #

Constructors

Family Int 
None 

Instances

Instances details
Read Family Source # 
Instance details

Defined in Geometry.Qhull.Types

Show Family Source # 
Instance details

Defined in Geometry.Qhull.Types

Eq Family Source # 
Instance details

Defined in Geometry.Qhull.Types

Methods

(==) :: Family -> Family -> Bool #

(/=) :: Family -> Family -> Bool #

class HasCenter m where Source #

Methods

_center :: m -> [Double] Source #

Instances

Instances details
HasCenter Simplex Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

_center :: Simplex -> [Double] Source #

HasCenter Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

_center :: Tile -> [Double] Source #

HasCenter TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

class HasEdges m where Source #

Methods

_edges :: m -> EdgeMap Source #

Instances

Instances details
HasEdges Tessellation Source # 
Instance details

Defined in Geometry.Delaunay.Types

class HasFamily m where Source #

Methods

_family :: m -> Family Source #

Instances

Instances details
HasFamily Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

_family :: Tile -> Family Source #

class HasNormal m where Source #

Methods

_normal :: m -> [Double] Source #

_offset :: m -> Double Source #

Instances

Instances details
HasNormal TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

class HasVertices m where Source #

Methods

_vertices :: m -> IndexMap [Double] Source #

Instances

Instances details
HasVertices Simplex Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVertices Tessellation Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVertices Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVertices TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

class HasVolume m where Source #

Methods

_volume :: m -> Double Source #

Instances

Instances details
HasVolume Simplex Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVolume Tessellation Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVolume Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

_volume :: Tile -> Double Source #

HasVolume TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

sameFamily :: Family -> Family -> Bool Source #

whether two families are the same

verticesIds :: HasVertices a => a -> [Index] Source #

vertices ids

verticesCoordinates :: HasVertices a => a -> [[Double]] Source #

vertices coordinates

nVertices :: HasVertices a => a -> Int Source #

number of vertices

edgesIds :: HasEdges a => a -> [IndexPair] Source #

edges ids

edgesIds' :: HasEdges a => a -> [(Index, Index)] Source #

edges ids as pairs of integers

edgesCoordinates :: HasEdges a => a -> [([Double], [Double])] Source #

edges coordinates

nEdges :: HasEdges a => a -> Int Source #

number of edges

isEdge :: HasEdges a => a -> (Index, Index) -> Bool Source #

whether a pair of vertices indices form an edge; the order of the indices has no importance

toPoints :: HasEdges a => a -> (Index, Index) -> Maybe ([Double], [Double]) Source #

edge as pair of points; the order of the vertices has no importance

toPoints' :: HasEdges a => a -> (Index, Index) -> ([Double], [Double]) Source #

edge as pair of points, without checking the edge exists

data Site Source #

Instances

Instances details
Show Site Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

showsPrec :: Int -> Site -> ShowS #

show :: Site -> String #

showList :: [Site] -> ShowS #

data Simplex Source #

Instances

Instances details
Show Simplex Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasCenter Simplex Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

_center :: Simplex -> [Double] Source #

HasVertices Simplex Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVolume Simplex Source # 
Instance details

Defined in Geometry.Delaunay.Types

data TileFacet Source #

Constructors

TileFacet 

Instances

Instances details
Show TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasCenter TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasNormal TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVertices TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVolume TileFacet Source # 
Instance details

Defined in Geometry.Delaunay.Types

data Tile Source #

Instances

Instances details
Show Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

showsPrec :: Int -> Tile -> ShowS #

show :: Tile -> String #

showList :: [Tile] -> ShowS #

HasCenter Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

_center :: Tile -> [Double] Source #

HasFamily Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

_family :: Tile -> Family Source #

HasVertices Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

HasVolume Tile Source # 
Instance details

Defined in Geometry.Delaunay.Types

Methods

_volume :: Tile -> Double Source #

delaunay Source #

Arguments

:: [[Double]]

sites (vertex coordinates)

-> Bool

whether to add a point at infinity

-> Bool

whether to include degenerate tiles

-> Maybe Double

volume threshold

-> IO Tessellation

Delaunay tessellation

vertexNeighborFacets :: Tessellation -> Index -> IntMap TileFacet Source #

tile facets a vertex belongs to, vertex given by its index; the output is the empty map if the index is not valid

sandwichedFacet :: TileFacet -> Bool Source #

whether a tile facet is sandwiched between two tiles

facetOf :: Tessellation -> TileFacet -> IntMap Tile Source #

the tiles a facet belongs to

facetFamilies :: Tessellation -> TileFacet -> IntMap Family Source #

the families of the tiles a facet belongs to

facetCenters :: Tessellation -> TileFacet -> IntMap [Double] Source #

the circumcenters of the tiles a facet belongs to

facetOf' :: Tessellation -> Int -> IntMap Tile Source #

the tiles a facet belongs to, facet given by its id

facetFamilies' :: Tessellation -> Int -> IntMap Family Source #

the families of the tiles a facet belongs to, facet given by its id

facetCenters' :: Tessellation -> Int -> IntMap [Double] Source #

the circumcenters of the tiles a facet belongs to, facet given by its id

getDelaunayTiles :: Tessellation -> [IntMap [Double]] Source #

list of the maps of vertices for all tiles