Safe Haskell | None |
---|---|
Language | Haskell2010 |
- binomial :: Integral a => a -> a -> a
- size :: (Additive f, Floating a, Foldable f) => f a -> a
- data Weight f a = Weight (f a) a
- ofWeight :: Additive f => f a -> a -> Weight f a
- weight :: (Additive f, Fractional a) => Lens' (Weight f a) a
- wpoint :: (Additive f, Additive g, Fractional a) => Lens (Weight f a) (Weight g a) (f a) (g a)
- data Span a = Span {
- _spanStart :: a
- _spanEnd :: a
- spanStart :: forall a. Lens' (Span a) a
- spanEnd :: forall a. Lens' (Span a) a
- spanId :: (Ord a, Num a) => a -> Span a -> a
- grow :: (Ord a, Fractional a) => a -> Span a -> a
- fall :: (Ord a, Fractional a) => a -> Span a -> a
- coords :: (Eq a, Fractional a) => Span a -> Iso' a a
- rangeSpan :: [a] -> Span a
- mergeSpan :: Ord a => Span a -> Span a -> Span a
- knotSpans :: Int -> [a] -> [Span a]
- growSpans :: Int -> [a] -> [Span a]
- fallSpans :: Int -> [a] -> [Span a]
- data KnotData a = KnotData a [(Span a, a)]
- knotData :: Lens' (KnotData a) [(Span a, a)]
- makeData :: (Ord a, Num a) => [a] -> a -> KnotData a
- iterData :: (Ord a, Fractional a) => KnotData a -> KnotData a
- evalData :: (Ord a, Fractional a) => Int -> KnotData a -> KnotData a
- basis :: (Ord a, Fractional a) => [a] -> Int -> Int -> a -> a
- rbasis :: (Ord a, Fractional a) => [a] -> [a] -> Int -> Int -> a -> a
- data NURBS f a = NURBS [Weight f a] [a]
- eval :: (Additive f, Ord a, Fractional a) => NURBS f a -> a -> f a
- uniformKnot :: Fractional a => Int -> Int -> [a]
- degree :: Fractional a => Lens' (NURBS f a) Int
- wpoints :: Fractional a => Lens (NURBS f a) (NURBS g a) [Weight f a] [Weight g a]
- knotVector :: Eq a => Lens' (NURBS f a) [a]
- iknotVector :: (Eq a, Fractional a) => Lens' (NURBS f a) [a]
- knotSpan :: (Eq a, Fractional a) => Lens' (NURBS f a) (Span a)
- normalizeKnot :: (Eq a, Fractional a) => NURBS f a -> NURBS f a
- nurbs :: (Additive f, Fractional a) => Int -> [f a] -> NURBS f a
- wnurbs :: (Additive f, Fractional a) => Int -> [Weight f a] -> NURBS f a
- insertKnot :: (Additive f, Ord a, Fractional a) => a -> NURBS f a -> NURBS f a
- insertKnots :: (Additive f, Ord a, Fractional a) => [(Int, a)] -> NURBS f a -> NURBS f a
- appendPoint :: (Eq a, Fractional a) => a -> Weight f a -> NURBS f a -> NURBS f a
- prependPoint :: (Eq a, Fractional a) => a -> Weight f a -> NURBS f a -> NURBS f a
- split :: (Additive f, Ord a, Fractional a) => a -> NURBS f a -> (NURBS f a, NURBS f a)
- cut :: (Additive f, Ord a, Fractional a) => Span a -> NURBS f a -> NURBS f a
- removeKnot :: (Foldable f, Additive f, Ord a, Floating a, SimEq (NURBS f a)) => a -> NURBS f a -> Maybe (NURBS f a)
- removeKnot_ :: (Foldable f, Additive f, Ord a, Floating a, SimEq (NURBS f a)) => a -> NURBS f a -> NURBS f a
- removeKnots :: (Foldable f, Additive f, Ord a, Floating a, SimEq (NURBS f a)) => [(Int, a)] -> NURBS f a -> NURBS f a
- purgeKnots :: (Foldable f, Additive f, Ord a, Floating a, SimEq (NURBS f a)) => NURBS f a -> NURBS f a
- ndist :: (Metric f, Ord a, Floating a) => f a -> f a -> a
- class SimEq a where
- joint :: (Ord a, Num a, Floating a, Foldable f, Metric f, SimEq (Weight f a), SimEq (NURBS f a)) => NURBS f a -> NURBS f a -> Maybe (NURBS f a)
- (⊕) :: (Ord a, Num a, Floating a, Foldable f, Metric f, SimEq (Weight f a), SimEq (NURBS f a)) => NURBS f a -> NURBS f a -> Maybe (NURBS f a)
Documentation
Weight (f a) a |
Functor f => Functor (Weight f) Source | |
Foldable f => Foldable (Weight f) Source | |
Affine f => Affine (Weight f) Source | |
Metric f => Metric (Weight f) Source | |
Additive f => Additive (Weight f) Source | |
(Eq a, Eq (f a)) => Eq (Weight f a) Source | |
(Ord a, Ord (f a)) => Ord (Weight f a) Source | |
(Read a, Read (f a)) => Read (Weight f a) Source | |
(Show a, Show (f a)) => Show (Weight f a) Source | |
(Metric f, Ord a, Floating a, SimEq a) => SimEq (Weight f a) Source | |
type Diff (Weight f) = Weight (Diff f) Source |
wpoint :: (Additive f, Additive g, Fractional a) => Lens (Weight f a) (Weight g a) (f a) (g a) Source
Span | |
|
spanId :: (Ord a, Num a) => a -> Span a -> a Source
Piecewise constant function, returns 1 in span, 0 otherwise
grow :: (Ord a, Fractional a) => a -> Span a -> a Source
Grow within span from 0 to 1
fall :: (Ord a, Fractional a) => a -> Span a -> a Source
Fall function, opposite to grow
coords :: (Eq a, Fractional a) => Span a -> Iso' a a Source
Map value to span coordinates, span start mapped to 0, end to 1
Knot evaluation data
iterData :: (Ord a, Fractional a) => KnotData a -> KnotData a Source
Eval basis function for next degree
basis :: (Ord a, Fractional a) => [a] -> Int -> Int -> a -> a Source
Nᵢ,ₙ — n-degree basis function for i-th control point
rbasis :: (Ord a, Fractional a) => [a] -> [a] -> Int -> Int -> a -> a Source
Rᵢ,ₙ — n-degree rational basis function for i-th control point
uniformKnot :: Fractional a => Int -> Int -> [a] Source
Generate knot of degree for points
knotVector :: Eq a => Lens' (NURBS f a) [a] Source
iknotVector :: (Eq a, Fractional a) => Lens' (NURBS f a) [a] Source
normalizeKnot :: (Eq a, Fractional a) => NURBS f a -> NURBS f a Source
nurbs :: (Additive f, Fractional a) => Int -> [f a] -> NURBS f a Source
Make nurbs of degree from points
wnurbs :: (Additive f, Fractional a) => Int -> [Weight f a] -> NURBS f a Source
Make nurbs of degree from weighted points
insertKnot :: (Additive f, Ord a, Fractional a) => a -> NURBS f a -> NURBS f a Source
Insert knot
insertKnots :: (Additive f, Ord a, Fractional a) => [(Int, a)] -> NURBS f a -> NURBS f a Source
Insert knots
appendPoint :: (Eq a, Fractional a) => a -> Weight f a -> NURBS f a -> NURBS f a Source
Append point
prependPoint :: (Eq a, Fractional a) => a -> Weight f a -> NURBS f a -> NURBS f a Source
Prepend point
split :: (Additive f, Ord a, Fractional a) => a -> NURBS f a -> (NURBS f a, NURBS f a) Source
Split NURBS
removeKnot :: (Foldable f, Additive f, Ord a, Floating a, SimEq (NURBS f a)) => a -> NURBS f a -> Maybe (NURBS f a) Source
Remove knot
removeKnot_ :: (Foldable f, Additive f, Ord a, Floating a, SimEq (NURBS f a)) => a -> NURBS f a -> NURBS f a Source
Try remove knot
removeKnots :: (Foldable f, Additive f, Ord a, Floating a, SimEq (NURBS f a)) => [(Int, a)] -> NURBS f a -> NURBS f a Source
Remove knots
purgeKnots :: (Foldable f, Additive f, Ord a, Floating a, SimEq (NURBS f a)) => NURBS f a -> NURBS f a Source
Try remove knots
Nothing