Safe Haskell | None |
---|
LSC.Component
Documentation
Instances
Enum Layer Source # | |
Eq Layer Source # | |
Ord Layer Source # | |
Show Layer Source # | |
Generic Layer Source # | |
FromJSON Layer Source # | |
Defined in LSC.Component | |
ToJSON Layer Source # | |
Defined in LSC.Component Methods toEncoding :: Layer -> Encoding toJSONList :: [Layer] -> Value toEncodingList :: [Layer] -> Encoding | |
HasGeometry Pin [Port] Source # | |
HasGeometry AbstractCell [Component' Layer Int] Source # | |
Defined in LSC.Model Methods geometry :: Lens' AbstractCell [Component' Layer Int] Source # | |
HasGeometry Net [Polygon' Layer Int] Source # | |
HasSpace Gate (Component' Layer Int) Source # | |
type Rep Layer Source # | |
Defined in LSC.Component type Rep Layer = D1 ('MetaData "Layer" "LSC.Component" "main" 'False) (((C1 ('MetaCons "AnyLayer" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Metal1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Metal2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Metal3" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Metal4" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Metal5" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Metal6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Metal7" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Metal8" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Metal9" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Metal10" 'PrefixI 'False) (U1 :: Type -> Type))))) |
data Orientation Source #
Instances
Enum Orientation Source # | |
Defined in LSC.Component Methods succ :: Orientation -> Orientation pred :: Orientation -> Orientation toEnum :: Int -> Orientation fromEnum :: Orientation -> Int enumFrom :: Orientation -> [Orientation] enumFromThen :: Orientation -> Orientation -> [Orientation] enumFromTo :: Orientation -> Orientation -> [Orientation] enumFromThenTo :: Orientation -> Orientation -> Orientation -> [Orientation] | |
Eq Orientation Source # | |
Defined in LSC.Component | |
Ord Orientation Source # | |
Defined in LSC.Component Methods compare :: Orientation -> Orientation -> Ordering (<) :: Orientation -> Orientation -> Bool (<=) :: Orientation -> Orientation -> Bool (>) :: Orientation -> Orientation -> Bool (>=) :: Orientation -> Orientation -> Bool max :: Orientation -> Orientation -> Orientation min :: Orientation -> Orientation -> Orientation | |
Show Orientation Source # | |
Defined in LSC.Component Methods showsPrec :: Int -> Orientation -> ShowS show :: Orientation -> String showList :: [Orientation] -> ShowS | |
Generic Orientation Source # | |
Defined in LSC.Component Associated Types type Rep Orientation :: Type -> Type | |
Semigroup Orientation Source # | |
Defined in LSC.Component Methods (<>) :: Orientation -> Orientation -> Orientation sconcat :: NonEmpty Orientation -> Orientation stimes :: Integral b => b -> Orientation -> Orientation | |
Monoid Orientation Source # | |
Defined in LSC.Component | |
NFData Orientation Source # | |
Defined in LSC.Component Methods rnf :: Orientation -> () | |
FromJSON Orientation Source # | |
Defined in LSC.Component | |
ToJSON Orientation Source # | |
Defined in LSC.Component Methods toJSON :: Orientation -> Value toEncoding :: Orientation -> Encoding toJSONList :: [Orientation] -> Value toEncodingList :: [Orientation] -> Encoding | |
HasOrientation Row Orientation Source # | |
Defined in LSC.Model Methods orientation :: Lens' Row Orientation Source # | |
HasOrientation (Component l x y) Orientation Source # | |
Defined in LSC.Component Methods orientation :: Lens' (Component l x y) Orientation Source # | |
type Rep Orientation Source # | |
Defined in LSC.Component type Rep Orientation = D1 ('MetaData "Orientation" "LSC.Component" "main" 'False) (((C1 ('MetaCons "N" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FN" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "S" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FS" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "W" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FW" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "E" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FE" 'PrefixI 'False) (U1 :: Type -> Type)))) |
Constructors
Component | |
Fields
|
Instances
HasGeometry AbstractCell [Component' Layer Int] Source # | |
Defined in LSC.Model Methods geometry :: Lens' AbstractCell [Component' Layer Int] Source # | |
HasSpace Gate (Component' Layer Int) Source # | |
Bifunctor (Component l) Source # | |
Bifoldable (Component l) Source # | |
(Integral x, Integral y) => Cartesian (Component l) x y Source # | |
Defined in LSC.Component Methods moveX :: x -> Component l x y -> Component l x y Source # moveY :: y -> Component l x y -> Component l x y Source # width :: Component l x y -> x Source # height :: Component l x y -> y Source # center :: Component l x y -> (x, y) Source # centerX :: Component l x y -> x Source # centerY :: Component l x y -> y Source # relocateX :: x -> Component l x y -> Component l x y Source # relocateY :: y -> Component l x y -> Component l x y Source # minX :: Component l x y -> x Source # maxX :: Component l x y -> x Source # minY :: Component l x y -> y Source # maxY :: Component l x y -> y Source # relocateL :: x -> Component l x y -> Component l x y Source # relocateR :: x -> Component l x y -> Component l x y Source # relocateB :: y -> Component l x y -> Component l x y Source # relocateT :: y -> Component l x y -> Component l x y Source # | |
Functor (Component l x) Source # | |
Foldable (Component l x) Source # | |
Defined in LSC.Component Methods fold :: Monoid m => Component l x m -> m foldMap :: Monoid m => (a -> m) -> Component l x a -> m foldMap' :: Monoid m => (a -> m) -> Component l x a -> m foldr :: (a -> b -> b) -> b -> Component l x a -> b foldr' :: (a -> b -> b) -> b -> Component l x a -> b foldl :: (b -> a -> b) -> b -> Component l x a -> b foldl' :: (b -> a -> b) -> b -> Component l x a -> b foldr1 :: (a -> a -> a) -> Component l x a -> a foldl1 :: (a -> a -> a) -> Component l x a -> a toList :: Component l x a -> [a] null :: Component l x a -> Bool length :: Component l x a -> Int elem :: Eq a => a -> Component l x a -> Bool maximum :: Ord a => Component l x a -> a minimum :: Ord a => Component l x a -> a | |
(Eq x, Eq y) => Eq (Component l x y) Source # | |
(Ord x, Ord y) => Ord (Component l x y) Source # | |
Defined in LSC.Component Methods compare :: Component l x y -> Component l x y -> Ordering (<) :: Component l x y -> Component l x y -> Bool (<=) :: Component l x y -> Component l x y -> Bool (>) :: Component l x y -> Component l x y -> Bool (>=) :: Component l x y -> Component l x y -> Bool max :: Component l x y -> Component l x y -> Component l x y min :: Component l x y -> Component l x y -> Component l x y | |
(Show x, Show y) => Show (Component l x y) Source # | |
Generic (Component l x y) Source # | |
(NFData x, NFData y) => NFData (Component l x y) Source # | |
Defined in LSC.Component | |
(FromJSON x, FromJSON y) => FromJSON (Component l x y) Source # | |
Defined in LSC.Component Methods parseJSON :: Value -> Parser (Component l x y) parseJSONList :: Value -> Parser [Component l x y] | |
(ToJSON y, ToJSON x) => ToJSON (Component l x y) Source # | |
Defined in LSC.Component Methods toJSON :: Component l x y -> Value toEncoding :: Component l x y -> Encoding toJSONList :: [Component l x y] -> Value toEncodingList :: [Component l x y] -> Encoding | |
HasZ (Component l x y) IntSet Source # | |
Defined in LSC.Component | |
HasT (Component l x y) y Source # | |
Defined in LSC.Component | |
HasR (Component l x y) x Source # | |
Defined in LSC.Component | |
HasOrientation (Component l x y) Orientation Source # | |
Defined in LSC.Component Methods orientation :: Lens' (Component l x y) Orientation Source # | |
HasL (Component l x y) x Source # | |
Defined in LSC.Component | |
HasB (Component l x y) y Source # | |
Defined in LSC.Component | |
type Rep (Component l x y) Source # | |
Defined in LSC.Component type Rep (Component l x y) = D1 ('MetaData "Component" "LSC.Component" "main" 'False) (C1 ('MetaCons "Component" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_l") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 x) :*: (S1 ('MetaSel ('Just "_b") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 y) :*: S1 ('MetaSel ('Just "_r") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 x))) :*: (S1 ('MetaSel ('Just "_t") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 y) :*: (S1 ('MetaSel ('Just "_z") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 IntSet) :*: S1 ('MetaSel ('Just "_orientation") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Orientation))))) |
type Component' l a = Component l a a Source #
newtype BoundingBox l x y Source #
Constructors
BoundingBox | |
Fields
|
Instances
Bifunctor (BoundingBox l) Source # | |
Defined in LSC.Component Methods bimap :: (a -> b) -> (c -> d) -> BoundingBox l a c -> BoundingBox l b d first :: (a -> b) -> BoundingBox l a c -> BoundingBox l b c second :: (b -> c) -> BoundingBox l a b -> BoundingBox l a c | |
Bifoldable (BoundingBox l) Source # | |
Defined in LSC.Component Methods bifold :: Monoid m => BoundingBox l m m -> m bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> BoundingBox l a b -> m bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> BoundingBox l a b -> c bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> BoundingBox l a b -> c | |
(Integral x, Integral y) => Cartesian (BoundingBox l) x y Source # | |
Defined in LSC.Component Methods moveX :: x -> BoundingBox l x y -> BoundingBox l x y Source # moveY :: y -> BoundingBox l x y -> BoundingBox l x y Source # width :: BoundingBox l x y -> x Source # height :: BoundingBox l x y -> y Source # center :: BoundingBox l x y -> (x, y) Source # centerX :: BoundingBox l x y -> x Source # centerY :: BoundingBox l x y -> y Source # relocateX :: x -> BoundingBox l x y -> BoundingBox l x y Source # relocateY :: y -> BoundingBox l x y -> BoundingBox l x y Source # minX :: BoundingBox l x y -> x Source # maxX :: BoundingBox l x y -> x Source # minY :: BoundingBox l x y -> y Source # maxY :: BoundingBox l x y -> y Source # relocateL :: x -> BoundingBox l x y -> BoundingBox l x y Source # relocateR :: x -> BoundingBox l x y -> BoundingBox l x y Source # relocateB :: y -> BoundingBox l x y -> BoundingBox l x y Source # relocateT :: y -> BoundingBox l x y -> BoundingBox l x y Source # abscissae :: BoundingBox l x y -> [x] Source # ordinates :: BoundingBox l x y -> [y] Source # | |
Functor (BoundingBox l x) Source # | |
Defined in LSC.Component Methods fmap :: (a -> b) -> BoundingBox l x a -> BoundingBox l x b (<$) :: a -> BoundingBox l x b -> BoundingBox l x a | |
Foldable (BoundingBox l x) Source # | |
Defined in LSC.Component Methods fold :: Monoid m => BoundingBox l x m -> m foldMap :: Monoid m => (a -> m) -> BoundingBox l x a -> m foldMap' :: Monoid m => (a -> m) -> BoundingBox l x a -> m foldr :: (a -> b -> b) -> b -> BoundingBox l x a -> b foldr' :: (a -> b -> b) -> b -> BoundingBox l x a -> b foldl :: (b -> a -> b) -> b -> BoundingBox l x a -> b foldl' :: (b -> a -> b) -> b -> BoundingBox l x a -> b foldr1 :: (a -> a -> a) -> BoundingBox l x a -> a foldl1 :: (a -> a -> a) -> BoundingBox l x a -> a toList :: BoundingBox l x a -> [a] null :: BoundingBox l x a -> Bool length :: BoundingBox l x a -> Int elem :: Eq a => a -> BoundingBox l x a -> Bool maximum :: Ord a => BoundingBox l x a -> a minimum :: Ord a => BoundingBox l x a -> a sum :: Num a => BoundingBox l x a -> a product :: Num a => BoundingBox l x a -> a | |
(Eq x, Eq y) => Eq (BoundingBox l x y) Source # | |
Defined in LSC.Component Methods (==) :: BoundingBox l x y -> BoundingBox l x y -> Bool (/=) :: BoundingBox l x y -> BoundingBox l x y -> Bool | |
(Ord x, Ord y) => Semigroup (BoundingBox l x y) Source # | |
Defined in LSC.Component Methods (<>) :: BoundingBox l x y -> BoundingBox l x y -> BoundingBox l x y sconcat :: NonEmpty (BoundingBox l x y) -> BoundingBox l x y stimes :: Integral b => b -> BoundingBox l x y -> BoundingBox l x y | |
(Ord x, Ord y, Bounded x, Bounded y) => Monoid (BoundingBox l x y) Source # | |
Defined in LSC.Component Methods mempty :: BoundingBox l x y mappend :: BoundingBox l x y -> BoundingBox l x y -> BoundingBox l x y mconcat :: [BoundingBox l x y] -> BoundingBox l x y |
type BoundingBox' l a = BoundingBox l a a Source #
implode :: Cartesian f x y => f x y -> BoundingBox l x y Source #
newtype Overlap l x y Source #
Constructors
Overlap | |
Fields
|
Instances
Bifunctor (Overlap l) Source # | |
Bifoldable (Overlap l) Source # | |
(Integral x, Integral y) => Cartesian (Overlap l) x y Source # | |
Defined in LSC.Component Methods moveX :: x -> Overlap l x y -> Overlap l x y Source # moveY :: y -> Overlap l x y -> Overlap l x y Source # width :: Overlap l x y -> x Source # height :: Overlap l x y -> y Source # center :: Overlap l x y -> (x, y) Source # centerX :: Overlap l x y -> x Source # centerY :: Overlap l x y -> y Source # relocateX :: x -> Overlap l x y -> Overlap l x y Source # relocateY :: y -> Overlap l x y -> Overlap l x y Source # minX :: Overlap l x y -> x Source # maxX :: Overlap l x y -> x Source # minY :: Overlap l x y -> y Source # maxY :: Overlap l x y -> y Source # relocateL :: x -> Overlap l x y -> Overlap l x y Source # relocateR :: x -> Overlap l x y -> Overlap l x y Source # relocateB :: y -> Overlap l x y -> Overlap l x y Source # relocateT :: y -> Overlap l x y -> Overlap l x y Source # | |
Functor (Overlap l x) Source # | |
Foldable (Overlap l x) Source # | |
Defined in LSC.Component Methods fold :: Monoid m => Overlap l x m -> m foldMap :: Monoid m => (a -> m) -> Overlap l x a -> m foldMap' :: Monoid m => (a -> m) -> Overlap l x a -> m foldr :: (a -> b -> b) -> b -> Overlap l x a -> b foldr' :: (a -> b -> b) -> b -> Overlap l x a -> b foldl :: (b -> a -> b) -> b -> Overlap l x a -> b foldl' :: (b -> a -> b) -> b -> Overlap l x a -> b foldr1 :: (a -> a -> a) -> Overlap l x a -> a foldl1 :: (a -> a -> a) -> Overlap l x a -> a toList :: Overlap l x a -> [a] length :: Overlap l x a -> Int elem :: Eq a => a -> Overlap l x a -> Bool maximum :: Ord a => Overlap l x a -> a minimum :: Ord a => Overlap l x a -> a | |
(Eq x, Eq y) => Eq (Overlap l x y) Source # | |
(Ord x, Ord y) => Semigroup (Overlap l x y) Source # | |
(Ord x, Ord y, Bounded x, Bounded y) => Monoid (Overlap l x y) Source # | |
class HasOrientation s a | s -> a where Source #
Methods
orientation :: Lens' s a Source #
Instances
HasOrientation Row Orientation Source # | |
Defined in LSC.Model Methods orientation :: Lens' Row Orientation Source # | |
HasOrientation (Component l x y) Orientation Source # | |
Defined in LSC.Component Methods orientation :: Lens' (Component l x y) Orientation Source # |
areaOverlap :: (Ord x, Ord y) => Component l x y -> Component l x y -> Bool Source #
hypothenuse :: Component l x y -> Line x y Source #