hgeometry-point
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellNone
LanguageGHC2024

HGeometry.Point.Either

Description

A type that is isomorphic to Either pointA pointB, and its isPoint instance provided that pointA and pointB are actually points as well.

Synopsis

Documentation

data OriginalOrExtra orig extra Source #

Helper type for distinguishing original vertices from extra ones.

Constructors

Original orig 
Extra extra 

Instances

Instances details
Bifoldable OriginalOrExtra Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

bifold :: Monoid m => OriginalOrExtra m m -> m Source #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> OriginalOrExtra a b -> m Source #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> OriginalOrExtra a b -> c Source #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> OriginalOrExtra a b -> c Source #

Bifunctor OriginalOrExtra Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

bimap :: (a -> b) -> (c -> d) -> OriginalOrExtra a c -> OriginalOrExtra b d Source #

first :: (a -> b) -> OriginalOrExtra a c -> OriginalOrExtra b c Source #

second :: (b -> c) -> OriginalOrExtra a b -> OriginalOrExtra a c Source #

Bitraversable OriginalOrExtra Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> OriginalOrExtra a b -> f (OriginalOrExtra c d) Source #

Functor (OriginalOrExtra orig) Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

fmap :: (a -> b) -> OriginalOrExtra orig a -> OriginalOrExtra orig b Source #

(<$) :: a -> OriginalOrExtra orig b -> OriginalOrExtra orig a Source #

(NFData orig, NFData extra) => NFData (OriginalOrExtra orig extra) Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

rnf :: OriginalOrExtra orig extra -> () Source #

Generic (OriginalOrExtra orig extra) Source # 
Instance details

Defined in HGeometry.Point.Either

Associated Types

type Rep (OriginalOrExtra orig extra) 
Instance details

Defined in HGeometry.Point.Either

type Rep (OriginalOrExtra orig extra) = D1 ('MetaData "OriginalOrExtra" "HGeometry.Point.Either" "hgeometry-point-1.0.0.0-inplace" 'False) (C1 ('MetaCons "Original" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 orig)) :+: C1 ('MetaCons "Extra" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 extra)))

Methods

from :: OriginalOrExtra orig extra -> Rep (OriginalOrExtra orig extra) x Source #

to :: Rep (OriginalOrExtra orig extra) x -> OriginalOrExtra orig extra Source #

(Show orig, Show extra) => Show (OriginalOrExtra orig extra) Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

showsPrec :: Int -> OriginalOrExtra orig extra -> ShowS Source #

show :: OriginalOrExtra orig extra -> String Source #

showList :: [OriginalOrExtra orig extra] -> ShowS Source #

(Eq orig, Eq extra) => Eq (OriginalOrExtra orig extra) Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

(==) :: OriginalOrExtra orig extra -> OriginalOrExtra orig extra -> Bool Source #

(/=) :: OriginalOrExtra orig extra -> OriginalOrExtra orig extra -> Bool Source #

(Affine_ orig d r, Affine_ extra d r) => Affine_ (OriginalOrExtra orig extra) d r Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

(.-.) :: OriginalOrExtra orig extra -> OriginalOrExtra orig extra -> Vector d r Source #

(.+^) :: OriginalOrExtra orig extra -> Vector d r -> OriginalOrExtra orig extra Source #

(.-^) :: OriginalOrExtra orig extra -> Vector d r -> OriginalOrExtra orig extra Source #

(Point_ orig d r, Point_ extra d r) => Point_ (OriginalOrExtra orig extra) d r Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

coord' :: Int -> IndexedTraversal' Int (OriginalOrExtra orig extra) r Source #

(HasCoordinates orig orig', HasCoordinates extra extra', HasVector orig orig, HasVector extra extra, Dimension extra ~ Dimension orig, NumType extra ~ NumType orig, Dimension extra' ~ Dimension orig', NumType extra' ~ NumType orig') => HasCoordinates (OriginalOrExtra orig extra) (OriginalOrExtra orig' extra') Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

coordinates :: IndexedTraversal1 Int (OriginalOrExtra orig extra) (OriginalOrExtra orig' extra') (NumType (OriginalOrExtra orig extra)) (NumType (OriginalOrExtra orig' extra')) Source #

(HasVector orig orig, HasVector extra extra, HasVector orig orig', HasVector extra extra', Dimension extra ~ Dimension orig, NumType extra ~ NumType orig, Dimension extra' ~ Dimension orig', NumType extra' ~ NumType orig') => HasVector (OriginalOrExtra orig extra) (OriginalOrExtra orig' extra') Source # 
Instance details

Defined in HGeometry.Point.Either

Methods

vector :: forall (d :: Nat) r s. (Dimension (OriginalOrExtra orig extra) ~ d, NumType (OriginalOrExtra orig extra) ~ r, Dimension (OriginalOrExtra orig' extra') ~ d, NumType (OriginalOrExtra orig' extra') ~ s) => Lens (OriginalOrExtra orig extra) (OriginalOrExtra orig' extra') (Vector d r) (Vector d s) Source #

type Rep (OriginalOrExtra orig extra) Source # 
Instance details

Defined in HGeometry.Point.Either

type Rep (OriginalOrExtra orig extra) = D1 ('MetaData "OriginalOrExtra" "HGeometry.Point.Either" "hgeometry-point-1.0.0.0-inplace" 'False) (C1 ('MetaCons "Original" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 orig)) :+: C1 ('MetaCons "Extra" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 extra)))
type Dimension (OriginalOrExtra orig extra) Source # 
Instance details

Defined in HGeometry.Point.Either

type Dimension (OriginalOrExtra orig extra) = Dimension orig
type NumType (OriginalOrExtra orig extra) Source # 
Instance details

Defined in HGeometry.Point.Either

type NumType (OriginalOrExtra orig extra) = NumType orig

type OriginalOrCanonical orig = OriginalOrExtra orig (CanonicalPoint orig) Source #

Shorthand for an Original or a Canonical Point